WO1993023803A1 - Appareil de commande pour pile de disques - Google Patents

Appareil de commande pour pile de disques Download PDF

Info

Publication number
WO1993023803A1
WO1993023803A1 PCT/JP1993/000663 JP9300663W WO9323803A1 WO 1993023803 A1 WO1993023803 A1 WO 1993023803A1 JP 9300663 W JP9300663 W JP 9300663W WO 9323803 A1 WO9323803 A1 WO 9323803A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
disk
redundant information
new
parity
Prior art date
Application number
PCT/JP1993/000663
Other languages
English (en)
French (fr)
Inventor
Mitsuhiko Yashiro
Ken Kobata
Suijin Takeda
Sawao Iwatani
Original Assignee
Fujitsu Limited
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
Priority claimed from JP4128975A external-priority patent/JPH05324206A/ja
Priority claimed from JP4269823A external-priority patent/JP2857288B2/ja
Priority claimed from JP04269824A external-priority patent/JP3122252B2/ja
Application filed by Fujitsu Limited filed Critical Fujitsu Limited
Priority to DE4392143A priority Critical patent/DE4392143C1/de
Publication of WO1993023803A1 publication Critical patent/WO1993023803A1/ja
Priority to US09/031,004 priority patent/US5954822A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1052RAID padding, i.e. completing a redundancy group with dummy data

Definitions

  • the present invention relates to a disk array device for performing data input / output processing by accessing a plurality of disk devices in parallel, and more particularly, to efficiently generate redundant information when updating data stored in the disk devices.
  • the disk array device .
  • This client / server model is a distributed method in which a client device that requests a service and a server device that provides a service are connected by a LAN line, and the client device and the server are connected to each other to perform phase communication. It implements a processing system.
  • Typical server devices in the client server model include a print server device, a terminal server device, and a disk server device.
  • a disk server device is a node that provides a large-capacity external storage device to each client device connected to a LAN line. This disk server device requires a large amount of data management and high reliability of data management.
  • This disk array device transfers data in parallel to disk devices arranged in an array, enabling high-speed data transfer that is twice as many as the number of disks compared to a single disk device. . Also, by recording redundant information such as parity data in addition to the data, the data error due to the failure of the disk device can be detected and corrected. The same high reliability as the method of recording by duplication can be realized at a lower price than the duplication.
  • RA ID Redundant Ar rays of Inexpensive Disks
  • FIG. 1 shows a disk array device with no data redundancy, a force that is not included in the classification of David A. Patterson et al.
  • the RAI DO's disk array device uses data A to:
  • the disk array controller 10 distributes data to each of the disk devices 32-1 to 32-3 based on input / output requests from the host computer 18. It does not provide data redundancy in the event of a disk failure.
  • the RAID 1 disk array device includes a mirror disk device 32-2 in which copies A ′ to C ′ of data A to C stored in the disk device 32-1 are stored.
  • RA ID 1 is widely used because it has a low use efficiency of disk devices but has redundancy and can be realized with simple control.
  • RAID2 The RAID D2 disk array device stripes data in units of bits or bytes G9 ") and reads / writes data in parallel from / to each disk device.
  • the striped data is physically stored in all disk devices.
  • Use the naming code generated from the data as the error correction code Use the disk unit for recording the hamming code in addition to the data disk unit and break down from the humming code By identifying the disk unit and restoring the data, it is possible to secure the correct data even if the disk unit breaks down by utilizing the redundancy by the hamming code. It is not ⁇ S.
  • the disk array device with RA ID 3 has the configuration shown in Figure 3.
  • the parity P1 is calculated from the data bl to b3, the parity P2 is calculated from the data bl to b3, the data cl to c3, and the parity P3 is calculated.
  • the data writing time can be reduced by the parallel processing of the divided data.
  • a single write or read access requires a parallel seek operation of all disk devices 32-1 to 32-4. For this reason, it is effective when dealing with large amounts of data continuously.However, in the case of transaction processing in which a small amount of data is accessed at random, the high speed of data Si cannot be used and the efficiency is low. descend.
  • the disk array device of RA ID 4 divides one data into sector units and writes the data into the same disk device.
  • data a is divided into sector data al to a4 and written.
  • Parity is stored in a fixed disk device 32-4.
  • the parity P 1 power is calculated from the data al, bl, c 1
  • the parity ⁇ ⁇ ⁇ ⁇ 2 power is calculated from the data a 2, b 2, c 2, and the data a 3, b 3, c 3 power
  • ° Rightness P 3 power ⁇ Calculated and parity P 4 power calculated from data a4, b4, c4.
  • Data reading can be performed in parallel to the disk devices 32-1 to 32-3.
  • the disk array device of RAID.5 enables parallel reading and writing by not fixing the disk device for parity. That is, as shown in FIG. 6, the disk device where the parity is placed differs for each sector.
  • the parity P I force is calculated from the data a 1, b 1, cl
  • the parity P 2 force is calculated from the data a 2, b 2, d 2, and the data a 3, c 3, d 3 force, etc.
  • the parity P 3 power is calculated
  • the parity P 4 power is calculated from the data b 4, c 4, and d 4.
  • RAID 5 can access a plurality of disk devices asynchronously and execute read-Z-write, so that it is suitable for transaction processing in which a small amount of data is randomly accessed.
  • a disk array device as shown in RAID3 to RAID5 a combination of disk devices related to generation of redundant information is called a rank. For example, if there are k disk units for data recording and m disk units for recording redundant information related to data, Ck + m) disk units are collectively ranked.
  • the data before updating and the redundant information must be read from the respective disk devices at the time of updating the data. For this reason, the data update process takes more time than a normal disk device by reading the data and redundant information before the update from the disk device.
  • an object of the present invention is to provide a disk array device that stores at least one of a plurality of data handled at the time of updating in a cache memory and efficiently performs disk access necessary for generating redundant information.
  • (+) is an exclusive OR symbol
  • an object of the present invention is to provide a disk array device capable of restarting and completing a data write process interrupted after a power recovery, even if a power failure occurs during a data write process.
  • the disk array used in the present invention includes a plurality of disk devices for storing data and one disk device for storing, for example, parity data as redundant information.
  • a set of a disk device for storing data and a disk device for storing parity is defined as a rank, and data is divided and written to each disk device in a predetermined data length, for example, in units of sectors, files, or records. Shall be considered.
  • the disk device for storing the parity may be fixedly determined (RA ID-4) or may be different for each sector 20 position (RA ID-5).
  • the access processing unit Upon receiving an update request from a higher-level device, the access processing unit generates new redundant information based on the new data, the data before the update, and the redundant information before the update, and stores it in the disk array. Update the pre-updated data and redundant information to new data and redundant information.
  • parity data is used as redundant information
  • new parity data is obtained by exclusive-ORing the new data, the data before update, and the parity data before update
  • the present invention provides a cache memory to access redundant information without accessing the disk device of the disk array. Memory of cache memory The data is divided into three cases:
  • the cache control unit Before updating the disk array in the access processing unit, the cache control unit searches the cache memory for the data before update and / or the redundant information and supplies the data to the access processing unit to generate the redundant information. In addition, in the case of a hit miss in which data and / or redundant information was not stored well in the cache memory search, the cache control unit notifies the access processing unit that there is no storage and after updating based on reading from the disk array. Data and / or redundant information is stored in cache memory. Further, according to the present invention, data is written back to the disk array after updating data in a newly secured area on the cache memory a predetermined number of times. Specifically, the access processing unit updates the data in the cache memory without generating new redundant information for each update until the update count reaches a predetermined number.
  • New parity old data overnight (+) Old parity (+) latest updated data
  • dummy data D d ummy and dummy redundancy information P d ummy are stored in the free space of each disk device and cache memory in the disk array.
  • the access processing unit generates new redundant information including dummy data and dummy redundant information of the empty area when updating and deleting data, and sets the dummy data and dummy redundant information in advance without reading them from the disk array. Use values.
  • a cache memory for storing a part or all of data accessed before the update processing is provided at the time of the update processing, and the update is performed at the time of the update processing. If the previous data is stored in the cache memory, the disk device can be read from the cache memory and used. It is possible to omit the process of reading from the device and shorten the processing time. It works. Also, if the corresponding redundant information is stored in the cache memory at the same time as the data, it is possible to omit the process of directly reading out the redundant information before the update from the disk device, thereby further reducing the processing time.
  • the updated data j is stored in the cache memory without being immediately written to the disk device, and after the data has been updated a certain number of times, the data is written back to the data device. It is possible to generate new redundant information by reading the previous data and the updated data of f from the cache memory, and it becomes unnecessary to write the updated data and redundant information to the disk device for each update process. Furthermore, dummy data is inserted into the free space of the disk device and cache memory, redundant information is generated when any of the same segments including dummy data is updated, and the free space of the same segment for generating redundant information is generated. Is unnecessary. Since the dummy data is a fixed value, it does not need to be read from the disk device, and the redundant information ⁇ can be easily obtained even if dummy data is included.
  • the disk array device of the present invention in which the data writing process interrupted after the power is restored can be restarted and completed from the middle, the disk array ⁇ , the data writing unit, A parity update unit, a nonvolatile memory, and a recovery unit are provided.
  • the data write unit of the disk array mechanism reads the old data stored at the write position of any specified disk device when the write process is instructed by the higher-level device, and then reads it from the higher-level device. Write New Year's Day.
  • the parity Mif unit reads the old parity from the storage position of the parity disk device corresponding to the disk writing position of the data writing unit, and specifically excludes it based on the old parity, old data, and new data.
  • the new parity is written to the disk storage location of the old parity.
  • a non-volatile memory is provided, and the non-volatile memory stores processing stage data indicating a processing stage of the data writing unit and the parity updating unit and new data received from the host device.
  • the recovery unit refers to the processing stage data in the non-volatile memory, and performs the recovery process using the new data stored in the non-volatile memory if the processing has been interrupted during the writing process.
  • the parity update unit includes, for example, a step of generating an intermediate parity from the exclusive OR of the old data and the old parity.
  • the recovery unit processing mode is one of the following two modes when storing new data and processing stage data in nonvolatile memory.
  • Mode 1 This is the case where the power supply is down before the writing of the new data to the disk device is completed.
  • this mode 1 after the old data stored in the write position of the disk device specified by the data write unit is read, the new data read from the nonvolatile memory is written.
  • the parity updating unit reads the old parity from the storage position of the parity disk device corresponding to the data writing position of the disk and reads the new parity based on the old parity, the old data, and the new data. After the parity is generated, the new parity is written to the disk storage location of the old parity.
  • Mode 2 This is the case where the power supply is down before the writing of the new parity to the parity disk device is completed.
  • mode 2 a process of reading the stored data at the corresponding position of the disk device other than the disk device to which data is written and the parity disk device by the data writing unit is performed.
  • the parity updating unit generates a new parity from the read data of another disk device and the new data read from the nonvolatile memory, and then performs a process of writing the new parity to the disk storage position of the old parity.
  • the intermediate parity is further stored in the nonvolatile memory.
  • a new mode is added to the power recovery process when the power down occurs ⁇ before the storage of the intermediate parity is completed after the writing of the new data is completed.
  • the new parity may be stored in the non-volatile memory, and the restoration after the power is turned off may be performed by restarting the processing from the next step based on the data of the last step remaining in the non-volatile memory.
  • backup power is also added to the disk adapter provided for each disk device, the old data and old parity can be retained when the power is turned off, and the need for re-reading power during restoration processing can be eliminated.
  • the disk array device of the present invention having such a configuration, when a power failure occurs in a disk array device configured according to RAID 4 and RAID 5, writing is performed using information held in the nonvolatile memory.
  • the write process can be completed normally, Since the process from the beginning is not required after the power is restored, a faster restoration process can be performed.
  • the type of data to be retained for the restoration process due to the power failure can be selected according to the cost capacity and the available nonvolatile memory capacity.
  • Fig. 1 is an illustration of the disk array device using RA ID0
  • Figure 2 is an illustration of a disk array device using RA ID1
  • Figure 3 is an illustration of a disk array device using RA ID3
  • Figure 4 is an illustration of data division in RA ID3
  • Figure 5 is an illustration of a disk array device based on R AID 4.
  • Figure 6 is an explanatory diagram of a disk array device based on RA ID5;
  • FIG. 7 shows the hardware configuration of the present invention.
  • FIG. 8 is a block diagram of an embodiment of the cache control unit of FIG.
  • FIG. 9 is a functional block diagram showing a first embodiment of the present invention.
  • Figure 10 is an explanatory diagram showing the contents of the cache memory of the first difficult example
  • FIG. 11 is an explanatory view showing other contents of the cache memory of the first embodiment
  • FIG. 12 is a flowchart showing the overall processing operation of the present invention.
  • FIG. 13 is a flowchart showing details of the read processing of the first embodiment
  • FIG. 14 is a flowchart showing details of the write processing of the first embodiment
  • FIG. 15 is a flowchart showing details of another write process of the first embodiment
  • Fig. 16 is an explanatory diagram showing the change of the storage state of the disk array when updated multiple times.
  • Fig. 17 is a flowchart showing the details of the write-back process in Fig. 15;
  • Figure 18 is an explanatory diagram showing the contents of the cache memory of the first example
  • FIG. 19 is a flowchart showing details of the read processing of the second embodiment
  • FIG. 20 is a flowchart showing details of the write process of the second example
  • FIG. 21 is a flowchart showing details of another write process of the second example
  • FIG. 22 is a flowchart showing details of write-back process of FIG. 21;
  • FIG. 23 is a functional block diagram showing a third embodiment of the present invention.
  • FIG. 24 is an explanatory diagram showing the contents of the cache memory of the third example
  • FIG. 25 is an explanatory diagram showing another content of the cache memory of the third embodiment
  • FIG. 26 is a flowchart showing details of the write processing of the third embodiment
  • FIG. 27 is a flowchart showing details of another write process of the third embodiment
  • FIG. 28 is a flowchart showing details of write-back process of FIG. 27;
  • FIG. 29 is a functional block diagram showing a fourth embodiment of the present invention.
  • FIG. 30 is an explanatory diagram showing an initial state of dummy storage in the disk array of the fourth embodiment.
  • FIG. 31 is an explanatory diagram showing a disk array deletion process of the fourth embodiment;
  • FIG. 32 is an explanatory diagram showing the state of the disk array after the deletion process of FIG. 31;
  • FIG. 33 is an explanatory diagram showing the deletion process of the disk array;
  • FIG. 34 is an explanatory diagram showing the arrangement of the disk array after the deletion process of FIG. 33;
  • FIG. 35 is a functional block diagram showing the cache memory deletion process of the fourth embodiment;
  • FIG. 37 is a functional block diagram showing a state where the deletion of the cache memory is completed according to 35;
  • FIG. 37 is a functional block diagram showing a process of updating a plurality of data of the same segment in the rank in the fourth embodiment;
  • Fig. 38 is a functional block diagram after the update process of Fig. 37 has been completed;
  • FIG. 39 is a configuration diagram of an embodiment showing a first embodiment of the present invention in which a restoration process at the time of power-down is performed using a nonvolatile memory;
  • FIG. 40 is a functional block diagram showing the processing contents of FIG. 39;
  • FIG. 41 is a flowchart showing the overall processing operation of the embodiment of FIG. 40;
  • FIG. 42 is a flowchart showing details of the data read processing of FIG. 41;
  • FIG. 43 is a flowchart showing the details of the data write process of FIG. 41;
  • FIG. 44 is a flowchart showing details of the parity update processing of FIG. 41;
  • FIG. 45 is a flowchart showing details of the recovery processing of FIG. 41;
  • FIG. 46 is a functional block diagram showing processing contents of a second embodiment of the present invention in which a power-down recovery processing is performed using a nonvolatile memory;
  • FIG. 47 is a flowchart showing the details of the restoration process in the embodiment of FIG. 46;
  • FIG. 48 is an embodiment showing the third embodiment of the present invention in which the restoration process at the time of power-down is performed using a nonvolatile memory.
  • FIG. 49 is a functional block diagram showing the processing contents of the embodiment of FIG. 48;
  • FIG. 7 is a configuration diagram of an embodiment showing a hardware configuration of a disk array device according to the present invention.
  • an MPU 12 which operates as a control means is provided in a disk array control device 10, and an internal bus 14 from the MPU 12 supplies a ROM 20 storing a processing program, a RAM 22 used as control storage, etc., and a cache.
  • a cache memory 26 and a data transfer buffer 28 connected via a control unit 24 are provided.
  • a host interface 16 is provided for exchanging with a host computer 18 as a higher-level device.
  • a disk array 46 having a two-rank configuration of ranks 48-1, 48-2 in this example is provided under the disk array controller 10.
  • Rank 48-1 in the disk array 46 is equipped with 5 disk units 32-1 to 32-5.
  • the disk units 32-1 to 32-10 and the spare disk units 32-11 and 32-12 that make up the ranks 48-1 and 48-2 are the device adapters 30-1 to 30- Connected to internal bus 14 of MPU12 through 30-6.
  • Device adapters 30-1 and 30-6 access disk units at the same position in ranks 48-1 and 48-2. For example, in the case of device adapter 30-1, disk units 32-1 and 32-6 access MP MP2. It is executed under the control of.
  • FIG. 8 shows the configuration of the cache control unit 24 of FIG. Cache control unit 24
  • the MPU 60 controls the entire system, the control memory 62 used for controlling the MPU 60, the bus control circuit 64 that controls the exchange of data and instructions with the MPU 60 with the node 14, A memory control circuit 68 for transferring data to and from the cache memory 26 and a buffer circuit 66 for transferring data between the bus control circuit 64 and the memory control circuit 68 are provided.
  • the instruction sent from the MPU 12 of the disk array controller 10 passes through the bus control circuit 64 via the bus 14 and is passed to the MPU 60 of the cache controller 24.
  • the MPU 60 indicates the memory address to be accessed to the memory control circuit 68.
  • the MPU 60 instructs the memory control circuit 68, the buffer circuit 66, and the bus control circuit 64 to transfer data.
  • the content of the designated memory address is transferred to the bus 14 through the memory control circuit 68, the buffer circuit 66, and the bus control circuit 64.
  • the data passed from the bus 14 to the bus control circuit 64 passes through the buffer circuit 66 to the memory control circuit 68, where it is written to the designated address of the cache memory 26. Be included.
  • FIG. 9 is a functional block diagram showing the first embodiment of the present invention.
  • the cache memory 26 provided in the disk array controller 10 is used to update the disk array 46. It is characterized in that only used data is stored.
  • an access processing unit 34 provided in the disk array controller 10 is realized by program control of the MPU 12 and controls the disk array 46 based on a command as an input / output request from the host computer 18. Perform access processing.
  • the disk array 46 is shown as a one-rank configuration in which five disk devices 32-1 to 32-15 are taken out and shown.
  • the disk devices 32-1 to 32-5 constituting one rank are divided into predetermined data recording units, for example, sector units, as indicated by broken lines.
  • Each of the disk units 32-1 to 32-5 has a physical ID set in advance, and the logical ID from the host computer 18 is stored in the device ID management table provided in the access processing unit 34 by the physical ID. And the disk device to be accessed can be specified. That is, when a command between the host computers 18 is read by the access processing section 34, The disk ID and the data address are obtained, and a specific disk device is specified by the disk ID, and a read process or a write process is executed on the data address based on a request from the host computer 18.
  • As storage data for each sector position of the disk devices 32-1 to 32-5 of the disk array 46 no data is stored in the RAID 4.
  • the security disk is fixed to the disk unit 32-5.
  • the parity data P 01 obtained as the exclusive OR of the storage data D 0 1 to D 04 at each first sector position of the disk devices 3 2 1 to 3 2 4 is stored in the disk device 3 2 5
  • the same section is stored in the same location.
  • the cache control unit 24 is provided with a hit determination unit 36 and a cache access unit 38, which are realized by the program control of the MPU 60 shown in FIG.
  • the hit judging unit 36 receives the disc ID and data address notification obtained by decoding the command from the host computer 18 by the access processing unit 34, and searches the cache memory 26.
  • the cache memory 26 stores only the ⁇ f data that has been transmitted to the data storage disk devices 32-1 to 32-4 in the disk array 46.
  • the hit judging unit 36 refers to and refers to the cache table based on the device ID and the data end address from the access processing unit 34, and registers the corresponding data in the cache table in the cache table.
  • the corresponding old data before update is read from the cache memory 26 and supplied to the access processing unit 34.
  • the access processing unit 34 Before updating the old data in the specified disk device of the disk array 46 to the new data, the access processing unit 34 reads the old data before update read from the cache memory 26 and the old data stored in the disk device. Based on the parity and the new data to be updated, a new parity is generated, the new data is written to the disk device after the new parity and updated, and the new sector at the same position as the updated sector of the parity disk device 32-5 is updated.
  • the new parity is written to the sector and the parity is updated.
  • the hit judgment unit 36 does not register the target data even if the cache table is searched, and does not read from the cache memory 26 at the time of a miss judgment, the disk array 46 is updated as usual. Read the old parity before update stored in the sector and the old parity before update of the same segment of the same segment in 2-5, and generate new parity from the new data. Update the data and parity for the disk device.
  • FIG. 10 shows an example of the storage contents of the cache memory 26 of FIG. 9.
  • the storage address can be specified by the disk ID number and the sector number corresponding to the data address.
  • Data DO 1, D 0 2, DO 3,... are stored in correspondence with 32 1 to 3 2 4.
  • Figure 11 shows the storage contents of the cache memory 26 corresponding to a disk array 46 equivalent to RAID 5, which is a disk device that stores parity data every time the sector position changes.
  • the disk ID number and data are also the same.
  • the storage area can be specified by the sector number corresponding to the address.
  • the area specified by the disk ID number and the sector number erased by the diagonal lines corresponds to the parity data, and it is necessary to store only the data of the first embodiment in the cache memory 26. Are excluded. .
  • FIG. 12 is a flowchart showing the overall processing operation in the disk array controller 10 of FIG.
  • the access processing section 34 checks whether or not a command has been received from the host computer 18, and upon receiving the command, proceeds to step S2 to perform command decoding processing. For the decoded command contents, it is determined in step S3 whether the command is a read or a write. If the command is a read, the process proceeds to a read process in step S4. If a write, the process proceeds to a write process in step S5.
  • the input / output requests from the host computer 18 to the disk array 46 include:
  • step S4 the read processing in step S4 and / or the write processing power in step S5 according to the contents of each input / output request are executed.
  • FIG. 13 is a flowchart showing details of the read processing shown in step S4 of FIG.
  • the access processing unit 34 notifies the hit determination unit 36 of the cache control unit 24 of the sector number determined by the disk ID and the data address obtained as a result of decoding the host command. .
  • Hit judgment The part 36 searches the cache management table in step S2 based on the disk ID and the sector number, and semi-determines whether or not the data to be read is registered in the cache memory 26. If the result of the hit determination processing in step S2 is that no corresponding data was registered in step S3 and a mistake was made, the process proceeds to step S4, where the data is read from the sector of the disk device specified by the disk ID and data address.
  • step S5 the process returns to the host computer 18, and furthermore, the read data is stored in the cache memory 26. If data is stored in the cache memory 26 in step S6, the area for storing new data in the cache memory 26 ⁇ If the capacity is insufficient, remove unnecessary data from the cache memory 26. To secure new data.
  • an LRU method may be used in which the most recently used data is attached to the end of the list determined by the cache table, and the oldest unused data is purged.
  • step S3 if there is a data registration corresponding to the cache basket table in step S3 and a hit determination is obtained, the process proceeds from step S3 to S7, where the corresponding data is read from the cache memory 26 and the data is read. To the host computer in step S8. In the read process of FIG. 13, it is only necessary to read data from the disk array, and it is not necessary to update the parity data.
  • FIG. 14 is a flowchart showing details of the write processing shown in step S5 of FIG.
  • the access processing unit 34 first obtains the disk ID and the section number corresponding to the data address obtained as the solution fg result of the host command in step S 1, and the hit determination unit 3 of the cache control unit 24. 6 and a small hit judgment process is performed in step S2.
  • a small hit judgment process is performed in step S2.
  • the process proceeds to step S4, and a response is made based on the disk ID and the data address.
  • the old data before updating is read from the data recording disk device.
  • the old parity data before updating is read from the section at the same position as the old data of the parity recording disk device, and is stored in the data buffer 28.
  • step S5 the old data D read from the access processing unit 34 4 disk device. ld , old parity P. ld and new de - evening to generate a new parity P n ew from D n ew. That is, a new parity is generated from the exclusive OR of the old data, the old parity, and the new data according to the above equation (1).
  • step S6 the new data and new parity are written and updated in the corresponding disk devices, and in step S7, the new data is stored in the cache memory 26 to prepare for the next access.
  • step S3 the process proceeds to step 8, the old data before updating is read from the cache memory 26, and then the disk device for parity recording is read in step S9.
  • the old parity before update is read from the sector at the same position as the sector storing the old data, and transferred to the data transfer buffer 28.
  • step S5 a new parity is generated in step S5
  • the new data and new parity are written to the disk device in step S6, and the cache memory is updated in step S7 Memorize the new day that has been completed and prepare for the next access. .
  • FIG. 15 is a flowchart showing another embodiment of the write process in step S6 shown in FIG. 12.
  • the cache control unit 24 obtains the hit judgment power ⁇
  • the process of step S8 in which the data in the same area on the cache memory 26 is updated a plurality of times and then written back to the disk device is provided. That is, in the write process of FIG. 13, the new data and the new parity are written back to the disk device every time the data is updated, and the data update process takes time.
  • the process of writing back to the disk device is performed only once for a plurality of data updates, the time required for the update process can be shortened.
  • the principle of generating parity data to be written back to the disk device after a plurality of updates will be described as follows.
  • Figure 16 shows three disk units 3 2— :! The figure shows a disk array 46 with 3 to 2 3. Data D 0 is stored in the disk unit 3 2-1 and data D 1 is stored in the disk unit 3 2-2 before updating. Further, the parity P0 is stored in the parity disk device 32-3. In this state, it is assumed that the data DO of the disk device 32-1 has been updated three times with new data DO 1, DO 2, DO 3. This is the first to third disc The new parity P1 to P3 in the data update for the device 32-1 can be obtained according to the following equation.
  • Old data DO (+) Old data Dl Old parity P0 '(5). For this equation (5), when old data D1 is obtained,
  • step S8 in FIG. 15 the first to third update processes shown in FIG. 16 are performed on the cache memory 26, and when the third update is completed, the new update is performed from the expression (7).
  • the parity P3 is generated, and the latest data D03 and the new parity P3 are written back to the disk device.
  • the old data D0 before the update and the old parity P0 before the update need only be obtained, and the data thereof is unnecessary. Therefore, according to the present invention, a new area for sequentially updating the data DO1, DO2, and DO3 is newly secured in the cache memory 26, and the data is updated.
  • the pre-update ⁇ day data D 0 already stored in the cache memory is read together with the updated 3 ⁇ 4ff data DO 3 and the old parity P 0 before the update is read from the disk device 32-3, and 7) Generate a new parity P 3 according to the equation, and generate new data D 03 and The new parity P3 is written back to each disk device.
  • FIG. 17 is a flowchart showing details of the write-back processing in step S8 of FIG.
  • step S1 the counter N for setting the number of updates is incremented by one.
  • the counter N is cleared to N-0 in the initial state.
  • step S2 it is checked whether or not it is the first update. If it is the first update, a new data area is newly allocated in the cache memory 26 in step S3, and the first new data is stored in the newly allocated area in the cache memory 26 in step S4. Perform an update.
  • step S5 it is determined whether or not the counter N force setting number indicating the number of updates, for example, has reached three times, and if less than three, the processing of steps S6 to S9 is skipped and the process of FIG. Return to step 1 of the main routine.
  • the process proceeds to step S6, where the old data before the update of the same segment as the update data is read from the parity disk device, and The old data before update and the latest updated data are read from the cache memory 26, and a new parity is generated in step S7 according to the equation (7).
  • step S8 After writing the new data and the new parity to the corresponding disk units in step S8, reset the counter N in step S9 and return to step S7 in Fig. 15 to write the new data.
  • the latest updated data that has been returned is stored in the cache memory 26 to prepare for the next access.
  • FIG. 18 shows a case where only the parity data as redundant information is stored in the cache memory 26 of the disk array controller 10 of the present invention shown in FIG.
  • FIG. 4 is an explanatory view showing the stored contents of the above.
  • the overall processing operation in the disk array controller 10 is the same as the flowchart of FIG. 9 and the write process is as shown in FIG.
  • FIG 19 shows the case where only parity data is stored in the cache memory 26.
  • the access processor 34 in step S1 converts the disk ID obtained from the decoding result of the host command and the segment number indicating the data address into the corresponding device adapter. Notify the disk unit via.
  • step S2 data is read from the specified disk device to make the data buffer! 28.
  • step S3 ⁇ is sent to the host computer to end a series of processes. That is, when only the parity data is stored in the cache memory 26, no cache access is performed in the read processing.
  • FIG. 20 is a flowchart showing details of the write process when only the parity data is registered in the cache memory 26.
  • the hit determination unit 36 of the cache control unit 24 receives the notification of the disk ID and the sector number corresponding to the data address in step S1, and determines the hit in step S2. I do. That is, in the cache 3 table indicating the registered contents of the cache memory 26 as shown in FIG. 18, since there is no discrimination by the disk ID, the presence or absence of the cache registration is determined only by the sector number. If there is a hit miss in step S3, as in the first embodiment, in step S4 the old data and old parity before updating are read from the disk device and stored in the data transfer buffer 28, and step S5 is executed.
  • a new parity is generated according to the above equation (1). Then write Isseki new de in Step S 6 and the new parity to the corresponding disk device, respectively, further newly stores the new Ha & utility in the cache memory 2 6 at step S 7.
  • the process proceeds from step S3 to S8, where the corresponding old parity is read from the cache memory 26, and the old disk is read from the corresponding disk device in step S9. Read the data and put it into the data buffer 28.
  • the generation of a new parity in step S5 the writing of the new data and the new parity in step S6 to the respective disk devices, and the storage of the new parity in step S7 in the cache memory 26 are performed.
  • FIG. 21 is a flow chart showing another embodiment of the write processing when only the parity data is stored in the cache memory 26.
  • the feature is that the writing of is performed. Details of the disk write-back process in step S8 are shown in Fig. 22 ⁇ . Become.
  • the write-back process of FIG. 22 is basically the same as that of the first embodiment shown in FIG. 17, and since only the parity data is stored in the cache memory 26, the number of updates The difference is that old data is read from the disk device in step S6 after the set number of times has been reached, and the old parity and the latest new data are read from the cache memory. Other processes are the same as those in the first embodiment.
  • FIG. 23 is a functional block diagram of the third embodiment of the present invention.
  • both the data and the parity data as redundant information are stored in the cache memory 26. It is characterized by doing.
  • the cache memory 26 is divided into a data storage area 50 and a parity storage area 52.
  • Figure 24 shows the storage contents of the cache memory 26.Disk ID numbers 1 to 4 are stored in the data storage area 50, and disk ID number 5 is stored in the parity storage area 52. You. Of course, FIG. 24 shows a case where the disk device for parity storage is fixed to the disk device 32-5.
  • the reason why the cache memory 26 is divided into the data storage area 50 and the parity storage area 52 is that only the data storage area 50 is required in the first embodiment, and that in the second embodiment, Is used only for the parity storage area 52.When the parity storage area 52 or the data storage area 50 is newly added to the first and second embodiments, the area is divided. It is convenient to put.
  • FIG. 25 is an explanatory diagram showing the storage contents of the cache memory 26 for a different disk array each time the disk device for parity recording changes sector position force.
  • the cache memory 26 shown in FIG. 23 is not particularly divided into the data storage area 50 and the parity storage area 52. The entire data and parity data may be stored as one area.
  • step S3 The details of the overall processing operation and read processing of the disk array controller 10 of the third embodiment shown in FIG. 23 are the same as those of the first embodiment in FIGS. 12 and 13. Details of the processing are shown in the flowchart of FIG. Figure 26 Write Processing Is different from the first and second embodiments in that when a mistake is made in step S3, both the new data and the new parity are stored in the cache memory 26 in step S7. If a hit occurs in step S3, both old data and old parity before updating can be read from the cache memory 26 in step S8. This eliminates the need for access to the disk device and allows data to be updated at a higher speed.
  • FIG. 27 shows another embodiment of the write processing of the third embodiment.
  • the write-back processing is characterized in that the data is written back to the disk device after a plurality of data updates in step S8. Details are shown in the flowchart of FIG. In the write-back processing shown in Fig. 28, in step S6 when the number of updates reaches the set number, the old parity and old data before update from the cache memory 26, and further: the updated data of ftff Is different from the first and second embodiments. .
  • FIG. 29 is a functional block diagram of the fourth embodiment of the present invention.
  • the disk control device 10 is newly provided.
  • a dummy data processing unit 40 is provided, and the dummy data indicated by D d I ⁇ y and the P d um town are provided in the free space of the disk devices 32-1 to 32-5 and the cache memory 26 of the disk array 46.
  • the feature is that the dummy parity data shown is stored.
  • the old data during the write operation can be stored.
  • the read operation of the old parity can be omitted for dummy data and dummy parity data.
  • FIG. 30 is an explanatory diagram showing an initial state of the disk devices 32-1 to 32-5 in the fourth embodiment, in which dummy data and dummy data are stored in all the sectors which are free areas. Is stored in advance, for example, when the disk array device is shipped from the factory. It should be noted that the disk devices 32-1 to 32-5 shown in FIG. 29 exemplify a case where the disk device storing the parity data is different every time the sector position is changed, which is equivalent to RAID-5.
  • Figure 31 shows the disk devices 32-1 through 32-5 in the fourth difficult example. Indicates the state of deletion of existing data. Even when such deletion is performed, dummy data is stored at the deletion position as shown in FIG. Of course, when the dummy data is stored at the deletion position, a new parity is generated for the parity data of the same segment.
  • FIG. 33 shows another deletion process of the disk devices 32-1 to 32-5 in the fourth embodiment.
  • FIG. Perform a reorganization process to rewrite data so that the deleted empty area is packed to the upper position, and collectively form an empty section at the lower position to store dummy data and dummy parity data.
  • the processing for dummy data and dummy parity data as shown in Figs. 29 to 34 is performed on the cache memory 26 side by deleting and organizing valid data and parity data excluding dummy data and dummy parity data. It is sufficient to update later.
  • FIG. 35 shows a processing operation when a command to delete data D1 stored in, for example, the disk device 32-1, is received from the host computer 18 in the fourth embodiment.
  • a command to delete data D1 is received from host computer 18, first, The new data becomes dummy data D dummy by reading the old data D 1 and old parity before updating stored in the cache memory 26 by the parity generation unit 42 and deleting the data D 1.
  • a new parity Plnew is generated from these three exclusive ORs.
  • FIG. 36 the old data D 1 of the disk 32-1 is replaced with the dummy data D dummy, and the old parity P 1 of the disk unit 32-4 is newly generated.
  • the parity D is rewritten to the parity Pnew , and the data D1 stored in the cache memory 26 is deleted.
  • the old parity P1 is updated to the new parity P.
  • FIG. 37 is an explanatory diagram showing a process for updating a plurality of dummy data in the same segment in the rank in the fourth embodiment.
  • the data D1 currently stored in the data buffer 28 is written to the empty area of the disk drive 32-1, and the data D2 is stored in the same sector position of the disk drive 32-2. It is assumed that data is written in a free area.
  • write data D 2 Input data D l, D 2, two dummy data, and one parity dummy data to the parity generation unit 42 in order to detect the parity P 1 when Generates a new parity P1. Subsequently, as shown in FIG.
  • the cache memory used in each of the above embodiments may be a non-volatile memory provided with a backup power supply so as to cope with a power-down due to any cause. If non-volatile memory is used as the cache memory in this way, cache data is not erased even if the power is turned off, and the power capability is reduced to the initial state of the cacheability using the cache memory. Can be prevented. In addition, since it is costly to use the entire cache memory as a nonvolatile memory, for example, a part of the cache memory may be used as the nonvolatile memory.
  • FIG. 39 shows an example of a disk array device of the present invention having a function of recovery processing upon power down.
  • the disk array controller 10 is provided with an MPU 12.
  • ROM 20 storing control programs and fixed data in the internal bus 14 of the MPU 12; volatile memory 22 using RAM; cache memory 26 provided via the cache control unit 24; data ⁇ !
  • the buffer 28 and the non-volatile memory 70 operable even when the power is turned off are connected by the knock power supply 36.
  • a host interface 16 is provided and connects to a host computer 18 functioning as a higher-level device.
  • the disk array controller 10 is provided with six disk units 32-1 to 32-6 in this example, and the disk units 32-2 to 32- Each of 6 is connected to the internal bus 14 of the MPU 12 via device adapters 30-1 to 30-6. Out of the six disk devices 3 2—1 to 3 2—6, four are for data storage, and one device is for parity And the other one is spare.
  • the disk array device of the present invention realizes the same function as the RAID 4 shown in FIG. 5 or the RAID 5 shown in FIG. Then, in the case of RAID 4, disk units 32 1 to 3 2-4 are used for storing data, and disk units 32 5 are used for parity. On the other hand, in the case of RAID 5, each of the disk units 3 2-1 to 3 2-5 has the same capacity to store the same data in one disk unit as in the case of RAID 4 ⁇ , The parity disk device is not fixed, and the parity disk device switches according to a predetermined order each time the same storage position of the disk devices 32-1 to 32-5 changes.
  • FIG. 40 is a functional block diagram showing processing contents in the first embodiment of FIG. 40, an example of n disk units 3 2 ⁇ 1 to 3 2 ⁇ n is used as a disk unit for the disk array control unit 10.
  • the disk unit 3 2 ⁇ 2 is now used for parity. Shall be.
  • the disk device 32-2 is fixedly used for parity if the RAID 4 is used, and the RAID 5 is positioned for parity at the present data access.
  • the access processing unit 34 provided in the disk array control device 10 realizes functions as a data writing unit 74, a parity updating unit 76, and a data recovery unit 78 by program control by the MPU 12.
  • the volatile memory 22 and the non-volatile memory 70 are connected to the access processing section 34. It also has a built-in memory for temporarily storing data exchanged with the device adapters 30-1 to 30-n provided for each of the disk devices 32-1-32-n.
  • processing stage data 80 indicating the processing stages of the data writing unit 74 and the parity updating unit 76 are stored in the nonvolatile memory 70 ⁇ New data to be written to the specified disk device from 1 to 8 are stored.
  • the intermediate memory 88 and the new parity 90 generated by the processing of the parity update unit 76 are stored in the volatile memory 22.
  • the host adapter is added to the device adapter 30-1 of the disk device 32-1, which is the target of data writing, for example.
  • the new data 82 from the computer 18 and the old data 84 read from the new data writing area for parity update are stored.
  • the parity disk unit 32-2 device and the disk unit 30-2 have the old parity 86 and the parity read from the same position corresponding to the new data writing area of the disk unit 32-1.
  • the new parity 90 generated by the updating unit 76 is stored.
  • Non-volatile memory 70 is allocated to storage of overnight data 80 and new data 82, and volatile memory 22 is used for other than that, such as variability 88 and new parity 90.
  • the new data 8 may be stored in the volatile memory 22 if the host computer 18 can hold the new data 82 when the power is turned off.
  • FIG. 41 is a flowchart showing the overall processing operation in the access processing section 34 of FIG.
  • step S1 when the power of the disk array device is first turned on, predetermined initialization is performed in step S1 based on an initial program routine (IPL); the process proceeds to step S2 to check whether the power has been turned off. . If power-on is started by the power switch after the power is turned off by the normal power-off operation, it is determined that the power is not turned off. The process proceeds to step S3 and waits for the reception of a command from the host computer 18. In step S3, when the command is received from the host computer-evening 18, the process proceeds to step S4 to decode the command.
  • IPL initial program routine
  • step S5 When the read access request is determined in step S5, the process proceeds to step S8 to execute the data read process. I do.
  • step S6 if a write access request is determined, the process proceeds to step S6 to execute a data write process, and then executes a parity update process in step S7. If the power-down is determined in step S2 when the power-on is started, the recovery process is performed in step S9, and then the normal process from step S3 is performed.
  • the data write processing of step S6 in the flowchart of FIG. 41 is performed by the data write section 74 provided in the access processing section 34 of FIG. 40, and the parity update processing of step S7 is performed by the parity update section.
  • the recovery process of step S 9 is performed by the data recovery unit 78.
  • FIG. 42 is a flowchart showing details of the data reading process shown in step S8 of FIG. It is a mouth chart.
  • data is read from the disk device via the device adapter from which the data was read, and is stored in the device adapter in step S2 and then in step S3. Transfer data to the host computer 18.
  • the speed of the disk device is different from the transfer speed of the host computer 18, it passes through the data transfer buffer 28 provided in the disk array controller 10 shown in FIG. The read data thus read is transferred to the host computer 18.
  • FIG. 43 is a flowchart showing details of the data write processing shown in step S6 of FIG.
  • step S1 new data 32 from the host computer 18 is stored in the memory, that is, Store in volatile memory 70.
  • step S2 if the disk device 32-1, for example, is designated as a write target, the new data 82 is stored in the device adapter 30-1, and stored.
  • step S2 if the disk device 32-1, for example, is designated as a write target, the new data 82 is stored in the device adapter 30-1, and stored.
  • the content of the new data writing area of the disk device 32-1 is read as old data 84 in accordance with an instruction from the device adapter 30-1, and stored in the device adapter 30-1.
  • the new data 82 in the device adapter 3-1 is transferred to the disk unit 321 in step S5, and the new data writing area is planned in step S6.
  • FIG. 44 is a flowchart showing details of the parity update process shown in step S7 of FIG.
  • step S1 the same data as the area to be written to new data in the disk device 32-1 of the parity disk device 32-2 is read as the old parity 86 in step S1. Then, the read old ity 86 is stored in the device adapter 3-1. Subsequently, in step S3, an intermediate parity 88 is created from the old data 84 and the old parity 86, and stored in the volatile memory 22. Next, the intermediate data between the new data 82 of the nonvolatile memory 70 and the volatile memory 22. Reads out the parity, creates a new parity, and stores it in the volatile memory.
  • the intermediate parity 88 is created from the exclusive OR of the old data 84 and the old parity 86.
  • the new parity 90 is equal to the new data 82 and the intermediate parity 88. Also created from exclusive 1 ⁇ 2 «l sum.
  • the ⁇ of the new parity 90 is basically created from the exclusive OR of the new data 82, the old data 84 and the old parity 86, but in the embodiment of FIG. Has created the new parity 90 through the intermediate parity creation stage.
  • the process of creating a new parity through the intermediate parity 88 and 0 stages includes the following three cases, including the case in Figure 41.
  • Intermediate parity 88 is calculated by taking the exclusive data of old data 84 and old parity 86, and stored in volatile memory 22. Storage capacity of intermediate parity 8 8 for volatile memory 22 ⁇ When finished, old memory 84 of device adapter 30-1 and old parity 86 of device adapter 30-2 are stored in memory area S Is released. Next, a new parity 90 is obtained by taking the exclusive OR of the intermediate parity 88 of the volatile memory 22 and the new data 82 of the nonvolatile memory # 0, and the result is stored in the volatile memory 22. This is the processing of the embodiment of FIG. 44, and the processing of the following equation is performed.
  • An intermediate parity 88 is generated by performing an exclusive OR operation on the old parity 86 stored in the memory of the device adapter 30-2 and the new data 82 of the non-volatile memory 70. Store in volatile memory 22.
  • the old parity 86 becomes unnecessary, so the memory area of the device adapter 30-2, which was stored with the old parity 86, is released.
  • an exclusive OR of the intermediate parity 88 of the volatile memory 22 and the old data 84 of the device adapter 30-1 is generated, and a new parity 90 is generated and stored in the volatile memory 22. That is, the following processing is performed.
  • the generation of the new parity via the intermediate parity generation stage is not limited to the cases 1 to 3, and the old data 84 in the device adapter 30-1 is read and stored, and the old parity 8 in the device adapter 30-2 is read and stored.
  • Case 1 or Case 3 processing may be selected in the order of the readout storage power of 6 and quickest.
  • the parity updating process is sequentially performed in step S7. — After issuing a seek instruction to 1 and disconnecting it, it issues a seek instruction to the parity disk unit 3 2—2 and separates it.
  • the old data or old parity will be read out for the one who received the seek completion notification. Therefore, when the old data 84 is read first, the intermediate parity is generated from the new data and the old data as in Case 1, and when the old parity 86 is read first, the old parity is generated as in Case 3. Generate intermediate parity from parity and new data. Then, after generating the intermediate parity, in case 1, the old parity can be read, and a new parity can be generated when it is read. In case 3, a new parity can be generated when the old data is read out. Of course, when new data, old data, and old
  • New data (+) Old data (+) Old parity New parity Generates new parity by exclusive-ORing all at once and generates intermediate parity The process may be omitted.
  • FIG. 45 is a flowchart showing details of the recovery processing shown in step S9 of FIG.
  • the timing of the recovery process differs before and after the end of writing to the disk unit 32-1 of the new data 82.
  • it is first checked in step S1 whether the writing of new data has been completed. If the writing of new data has not been completed, the power will be turned off before the writing of new data is completed. The process proceeds to step S2 and subsequent steps.
  • step S2 the new data 82 held in the non-volatile memory end 0 is read out, stored in the device adapter 30-1 and stored therein, and in the next step S3, the disk device 32-1 Then, the contents of the area to be written with new data are read out as old data 84 and stored in device adapter 30-1 in step S4. Subsequently, in step S5, the new data 82 in the device adapter 30-1 is loosened to the disk device 32-1, and in step S6, the new data 82 is written to the disk device 32-1. In other words, if the power goes down before the writing of new data is completed, the same processing as steps S2 to S6 except for step S1 in the data writing processing shown in FIG.
  • step S6 the parity Mi? Process is executed in step S7. This parity update process is the same as the content shown in the flowchart of FIG.
  • step S1 determines whether the writing of the new data has been completed. If the writing of the new parity has not been completed, the process from step S9 is performed.
  • step C 9 is performed since the writing of the new data to the disk device 32-1 has already been completed.
  • a new parity is created by exclusive-ORing the data read from the other disk devices 3 2—3 to 3 2—n except for the disk device 3 2 ⁇ 2 for the parity with the new data. That is, the new data and the data of other disk devices are used without using the old parity.
  • a new parity is generated only from the data.
  • step S10 the new parity is transferred to the device adapter 30-2 and stored therein, and then in step SI1, the new parity is returned to the disk device 32-2, and in step S12, the new parity is stored in the disk device 3-2.
  • step S10 the new parity is transferred to the device adapter 30-2 and stored therein, and then in step SI1, the new parity is returned to the disk device 32-2, and in step S12, the new parity is stored in the disk device 3-2.
  • step S8 the new parity is stored in the disk device 3-2.
  • FIG. 46 is a functional block diagram showing the processing contents of the second embodiment of the recovery processing of the present invention.
  • the non-volatile memory 70 stores the processing stage data 80 and the new data. It is characterized in that an intermediate parity 88 is also stored in addition to 82. For this reason, the non-volatile memory 70 has an increased memory capacity for storing the intermediate parity 88, and has a cost that is higher than that of the first embodiment.
  • the recovery process can be further speeded up.
  • the overall control processing in the second embodiment of FIG. 46 is basically the same as that of the first embodiment shown in FIG. 41, and the processing by the data writing unit 74 and the parity updating unit 76 is also intermediate.
  • the parity 88 is stored in the non-volatile memory 70, it is the same as the flow charts of FIGS. 43 and 44.
  • the recovery processing by the data recovery unit 78 is as shown in the flowchart of FIG. 47 with the new storage of the intermediate parity 88 in the non-volatile memory 70.
  • the timing at which the power-down force occurs is determined in steps S1, S8, and S13, and it is determined that the writing of new data has not been completed due to the power-down. If it is determined in S1, the processing in steps S2 to S7 is performed. This is the same as the case of the first embodiment shown in FIG.
  • step S8 when it is determined in step S1 that the writing of the new data has been completed, it is determined in step S8 whether the storage of the intermediate parity has been completed. If the storage capacity of the intermediate parity has not been completed, that is, if the power-down force has occurred between the end of the writing of the new data and before the storage of the intermediate parity, the processing of steps S9 to S12 is performed. . This processing is the same as the processing in steps S9 to S12 in the first embodiment of FIG. 47, and it is assumed that the new data has already been written.
  • the new parity is created by taking the exclusive OR of the data read from the new data and the new data, and written to the parity disk unit.
  • step S8 the flow advances to step S13 to check whether the writing of the new parity has been completed. If the new parity has not been written in step S13, that is, if the power-down occurs before the new parity is written after the intermediate parity is stored, steps S14 to S17 Process.
  • step S 14 a new parity is created from the exclusive OR of the new data 82 and the intermediate parity 88, which are stored in the nonvolatile memory 70, and stored in the nonvolatile memory 70.
  • step S15 the new parity 90 is read from the non-volatile memory 70, transferred to the device adapter 30-2, and stored therein.
  • step S15 the new parity 90 is stored in the disk device 32-2.
  • step S17 the new parity 90 is derived from the new data 82 and the intermediate parity 88. Only the process of writing data to the parity disk device 32 is required, and the recovery process can be performed at a higher speed than in the case of starting over from the beginning.
  • FIG. 48 shows the configuration of the third embodiment of the recovery processing according to the present invention.
  • the nonvolatile memory 70 of the functional block diagram of FIG. It is characterized in that, in addition to 80, new data 82, and intermediate parity 88, new parity 9 is further held.
  • the backup power supply line 94 from the knockup power supply 36 is connected to all of the device adapters 30-1 to 30-6, and the device adapters 30-1 to 30-6 are connected when the power goes down.
  • the recovery data 84 and the old parity 86 read from the disk device side, or the new data 82 and the new parity 90 read from the access processor 34 side It is characterized by doing so.
  • the cache memory 26 may be a non-volatile memory, and may store data indicating the processing steps stored in the non-volatile memory 70 in the embodiment of FIG. Further, the processing functions may be provided by the MPU 12 in combination with the functions of the respective embodiments.
  • a magnetic disk device is taken as an example of a disk device.
  • a disk array using an optical disk device may be used instead.
  • the present invention is not limited by the numerical values shown in the embodiments. [Possibility of using m ⁇ ]
  • the data necessary for generating new redundant information is stored in the cache memory during the write processing to the disk array, so The reading process can be omitted, and even if the redundant information is stored in the disk device, the execution time of the writing process can be reduced, and a higher speed process can be realized. Also, even if a power failure occurs during the write processing of a disk array with a configuration equivalent to RAID 4 or RAID, the write processing is resumed from the middle after the power is restored, thereby maintaining the data redundancy. Can be completed, and the reliability of the disk array device can be further improved. Furthermore, by storing the data in the nonvolatile memory, the restoration process after power down is speeded up, and the device can be started up more quickly.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

明 細 書
[発明の名称】 ディスクアレイ装置
【技術分野】
本発明は、 複数のディスク装置を並列的にアクセスしてデ一夕入出力処理 を行うディスクアレイ装置に関し、 特にディスク装置に格納したデータを更新す る時の冗長情報の生成を効率良く行うようしたディスクアレイ装置に関する。
近年、 複数のユーザが外部記憶装置、 プリンタ等の高価な周辺装置ゃファ ィル等の資源 (resource) を共有して、 資源の有効利用化を図るために L A N (Local Area Network) の構築が急速に普及しつつある。 このような LANにお いて、 資源の共有という点で優れているのがクライアント Zサーバ ·モデルであ
1
る。 このクライアント/サーバ ·モデルとは、 サービスを要求するクライアント 装置とサービスを提供するサーバ装置とを L A N回線により接:続し、 クライアン ト装置とサーバ装露:問で相 通信を行うことにより、 分散処理システムを実現す るものである。 クライアント サーバ ·モデルにおける代表的なサーバ装置とし ては、 プリントサーバ装置、 ターミナルサーバ装置、 及びディスクサーバ装置な どがある。 これらのサーバ装置の中で、 ディスクサーバ装置は、 LAN回線に接 続された各クライアント装置に対し大容量の外部記憶装置を提供するノ一ドであ る。 このディスクサーバ装置には、 大量のデータ管理やデータ管理の高い信頼性 力《要求される。 このような要求に対処するためのディスクサーバ装置に接続され る大容量の外部記憶装置として、 磁気ディスク装置や光磁気ディスク装置等のラ ンダム ·アクセス可 iで書き換え可能なディスク装置を有するディスクアレイ装 置力;提供されるようになってきている。 このディスクアレイ装置は、 アレイ状に 配置されたディスク装置に並列的にデータ転送を行うことで、 一台のディスク装 置の場台と比べて、 ディスクの台数倍の高速データ転送が可能になる。 また、 デ 一夕に加えて、 パリティデータなどの冗長な情報を付け加えて記録しておくこと で、 ディスク装置の故障等を原因とするデータエラーの検出と訂正力可能となり 、 ディスク装置の内容を二重ィ匕して記録する方法と同程度の高信頼性を、 二重化 より低価格で実現することができる。
【背景技術】 従来、 カルフォルニア大学バークレイ校のデビット · A 'パターソン (D av i d A. P a t t e r s o n) らは、 高速に^ Λのデータを多くのディ スクにアクセスし、 ディスク故障時におけるデータの冗長性を実現するディスク ァレイ装置について、 レベル 1からレベル 5までに分類付けを行つて評価した論 文を発表している (A i SIGMOD Con rance, Chicago, Illinois, June 1-3, 19 88 P109-P116)o このデビット *.A ·パターソンら力提案したディスクアレイ装 置を分類するレベル 1〜5は、 RA ID (Redundant Ar rays o f Inexpens ive D i sks) 1〜5と略称される。 RA I D 1 〜 5を簡単に説明すると次のようになる。
[RA I D 0] 図 1はデータの冗長性をもたないディスクアレイ装置を 示したもので、 デビット · A ·パターソンらの分類には含まれていない力 これ を仮に RA ID0と呼ぶ、。 RAI DOのディスクアレイ装置は、 データ A〜: [に 示すように、 ディスクァレイ制御装置 10はホストコンピュータ 18からの入出 力要求に基づきデータをディスク装置 32— 1〜 32— 3のそれぞれに分散させ ているだけであり、 ディスク故障時におけるデータの冗長性はない。
[RAID1] RAID 1のディスクアレイ装置は図 2に示すように、 ディクス装置 32— 1に格納したデータ A〜Cのコピー A '〜C 'を格納したミ ラーディスク装置 32— 2を備える。 RA I D 1はディスク装置の利用効率力く低- いが冗長性をもっており、簡単な制御で実現できるため、 広く普及している。
[RAID2] RA I D2のディスクアレイ装置はデータをビットや バイト単位でストライビング G9"割) し、 それぞれのディスク装置に並列に読み 書きを行う。 ストライビングしたデータは全てのディスク装置で物理的に同じセ クタに記録する。 エラー訂正コードとしてはデータから生成したノヽミングコード を使用する。 データ用ディスク装置の他にハミングコードを記録するためのディ スク装置を持ち、ハミングコ一ドから故障したディスク装置を特定して、 デ一夕 を復元する。 このようにハミングコードによる冗長性を傭えることでディスク装 置が故障しても正しいデータを確保できる力^ ディスク装置の利用効率が悪いた めに^ S化されていない。
[RAID 3] RA ID 3のディスクアレイ装置は、 図 3に示す構成を もつ。 即ち、 図 4に示すように例えばデータ a, b, cをビットまたはセクタ単 位にデータ a l〜a 3, b l〜b 3, c 1〜 c 3に分割し、 更にデータ a 1〜 a 3力、らパリティ P 1を計算し、 データ b l〜b 3からパリティ P2を計算し、 デ —タ c l〜c 3カヽらパリティ P 3を計算し、 図 3のディスク装置 32— 1〜32 一 4を同時並列的にアクセスして書き込む。 RA I D3では、 データの冗長性は パリティにより保持される。 また.分割したデー夕の並列処理によりデータの書込 み時間は短縮できる。 しかし、 1回の書込み又は読出しのアクセスで、 全てのデ ィスク装置 32— 1〜32— 4の並列的なシーク動作を必要とする。 このため大 量のデータを連続して扱う場合には有効であるが、少量のデー夕をランダムにァ クセスするトランザクション処理のような場合には、 データ Si の高速性が生か せず、 効率が低下する。
[RA Iひ 4] RA I D 4のディスクアレイ装置は、 図 5に示すように 、 1つのデータをセクタ単位に分割して同じディスク装置に書込む。 例えばディ スク装置 32—1をみると、 データ aをセクタデータ a l〜a 4に分割して書き 込んでいる。 パリティは固定的に決めたディスク装置 32— 4に格納している。 ここでデータ a l, b l, c 1からパリティ P 1力《計算され、 データ a 2, b 2 , c 2からパリティ Ρ 2力く計算され、 データ a 3, b 3, c 3力、らノ、°リティ P 3 力《計算され、 データ a 4, b 4, c 4からパリティ P 4力く計算されている。 デー 夕読出しは、 ディスク装置 32— 1〜32— 3に対して並列して読み出しできる 。 データ a〜bの読出しは、 データ aを例にとると、 ディスク装置 32—1のセ クタ 0〜3をアクセスしてセクタデータ a l〜a 4を順次読出して合成する。 デ —夕書込みは、 書き込み前のデータとパリティを読み出してから新パリティを計 算して書き込むため、 1度の書き込みにについて、 合計 4回のアクセスが必要に なる。 例えば、 ディスク装置 32— 1のセクタデータ a 1を更新 (書き替え) す る場合には、 更新場所の旧デ一夕 (a l) 。ld 及び対応するディスク装置 32—
4の旧パリティ (P I) 。ld を読出し、新データ (S i) n ew と整^ ¾のとれた 新パリティ (P I) n ew を求めて書込む動作を、 更新のためのデータ書込み以外 にも必要とする。 また書込みの際に必ずパリティ用のディスク装置 32— 4への アクセスが起きるため、 複数のディスク装置の書き込みを同時に実行できない。 例えばディスク装置 3 2— 1のデータ a lの書込みとディスク装置 3 2— 2のデ 一夕 b 2の同時書き込みを行なおうとしても、 同じディスク装置 3 2— 4'からパ リティ P 1 , P 2を読出して計算後に書込む必要があるため、 同時に書込みはで きない。 このように R A I D 4の定義は行われている力 メリットが少ないため 現在のところ実用化の動きは少ない。
[R A I D 5] RA I D.5のディスクァレイ装置は、パリティ用のディ スク装置を固定しないことで、並列の読み書きを可能にしている。 即ち、 図 6に 示すように、 セクタごとにパリティの置かれるディスク装置が異なっている。 こ こでデータ a 1, b 1 , c lからパリティ P I力《計算され、 データ a 2 , b 2, d 2からパリティ P 2力計算され、 データ a 3, c 3, d 3力、らハ。リティ P 3力《 計算され、 データ b 4, c 4, d 4からパリティ P 4力計算されている。 並列の 読み書きは、 例えばディスク装置 3 2— 1のセクタ 0のデータ a 1とディスク装 置 3 2— 2のセクタ 1のデータ b 2は、 パリティ P l, P 2が異なるディスク装 置 3 2— 4, 3 2— 3に置かれているため 复せず、 同時に読み書きができる。 尚、書込み時に合計 4回のアクセスを必要とするオーバーへッドは RA I D 4と 同じである。 このように RA I D 5は、非同期に複数のディスク装置にアクセス してリード Zライトを実行できるため、少量データをランダムにアクセスするト ランザクシヨン処理に向いている。 ここで RA I D 3〜RA I D 5に示したよう なディスクアレイ装置において、冗長な情報の生成に関連するディスク装置の組 合わせをランクと呼ぶことにする。 例えぽ、 データ記録用の k台のディスク装置 と、 データに関連した冗長な情報を記録する m台のディスク装置がある場合、 Ck +m) 台のディスク装置をまとめてランクとする。
このような従来の RA I D 4および RA I D 5に相当するディスクアレイ 装置にあっては、 ランク内のディスク装置に格納しているデータの一部あるいは 全部を書き替えて^ ίする場合、 更新するデータに関連する冗長な情報も更新す る必要がある。 この時、新しい冗長情報を得るために、 更新前のデータと冗長情 報が必要になる。 いま冗長情報としてパリティデータを使用したとすると、 ディ スクアレイ装置のランク内の 1台のディスク装置のデータを更新する時には次の (1) 式から新パリティを計算することができる。 旧データ (+) 旧パリティ (+) 新データ =新パリティ (1) 但し、 (+) は排他的論理和を示す。
この (1)式から分かるように、 データ更新時には、 更新データの書き込みの 前に、 更新前データと冗長情報をそれぞれのディスク装置から読み出しておかな ければならない。 このため、 更新前のデータおよび冗長情報をディスク装置から 読出す分だけ通常のディスク装置よりデータ更新の処理に時間力多くかかるとい う 題力くあつた。
したがって本発明の目的は、 更新時に取扱う複数のデータの少なくとも 1 つをキャッシュメモリに記憶して冗長情報を生成するために必要なディスクァク セスを効率良く行うようにしたディスクァレイ装置を提供する。
—方、 従来のディスクアレイ装置にあっては、 データ書込みの途中で何ら かの原因によって電源の供袷が途絶えた場合、 従来のディスク装置または RA I D 1〜; A I D 3迄のディスクアレイ装置では、 電源復旧後に再び同じ書込み作 業を始めから行うことができる。 しかし、 RA I D4および RA I D5のデイス クアレイ装置では、 次の理由により電源復旧後に再び同じ書き込み作業を始めか ら行うこと力 <許されない。 RA I D 4および R A I D 5のデータ書込み時には、 次式に示すように、 複数のディスク装置内のデ一夕の排他的論理和を取ってパリ ティとし、 ノ、。リティ用のディスク装置に保持する。
データ a (+) データ b (+) · · · =パリティ P
但し、 (+) は排他的論理和記号
データとパリティの格納場所は、 RA I D4では図 5のように特定のディ スク装置 32— 1〜32— 4に固定している。 これに対し R A I D 5では、 図 6 ようにパリティをディスク装置 32— 1〜32— 4に分散させて、 パリティ読み 書き動作による特定のディスク装置へのアクセスの集中を解消している。 これら の RA I D4および RA I D5のデータ読出し時は、 ディスク装置 32— 1~3 2— 4内のデ一タカ <書き換えられないので、 パリティの整合性は保持される力、 書込み時にはパリティもデータに合わせて変更する必要がある。 例えばディスク 装置 32—1内の 1つの旧データ (a l) 。ld を新データ (a l) new に書き換 えたとき、 パリティ P 1の整合性を取るには (1)式に示した計算を行い、 パリ ティを更新することでディスク装置のデータ全体のパリティの整合性を保つこと ができる。 (1)式から判るように、 データ書込み処理では、 ディスク装置内の 旧データ及び旧パリティを先ず読み出す必要があり、 この後に新データの書込み と、新パリティの生成及び書込みを行う。 この新データあるいは新パリティの書 δ き込み中に電源が切断されると、実際どこまでデータが正常に書かれているかが 認識できなくなり、 パリティの整^ ½が失われる。 この状態で、 電源復旧時に再 び同じデータ書き込み処理を行うと、パリティの整^ ¾の取れていないディスク 装置から旧データ、 旧パリティを読み込むので、整合性の取れていない新パリテ ィを^^して書き込み ¾を終了してしまうという問題があった。
10 従って本発明の目的は、 データ書込みの処理中に電源ダウン力起きても、 電源復旧後に中断したデータ書込み処理を途中から再開して完了できるようにし たディスクアレイ装置を提供する。
【発明の開示】
まず本発明で用いるディスクアレイは、 データを格納する複数台のディス i s ク装置と冗長情報として例えばパリティデータを格納する 1台のディスク装置を 備える。 ここでデータ格納用のディスク装置とパリティ格納用のディスク装置の 組をランクと定義し、 また各ディスク装置に所定データ長、 例えばセクタ単位、 ファイル単位、又はレコード単位にデータを分割して書込むものとする。パリテ ィ格納用のディスク装置は、 固定的に決めてもよいし (RA I D— 4) 、 セクタ 2 0 位置毎に異ならせるようにしてもよい (RA I D— 5 ) 。 アクセス処理部は、上 位装置からの更新要求を受けると、新たなデータ、 更新前のデ一夕および更新前 の冗長情報に基づいて新たな冗長情報を生成すると共に、 ディスクァレイに格納 . している更新前のデータおよび冗萇情報を新たなデータおよび冗長情報に更新す る。冗長情報としてパリティデータを用いた場合、新たなデータ、 更新前のデー 25 タおよび更新前のパリティデータの排他的論理和により新たなパリティデータを
^^する。 即ち、 次式で求める。
新パリティ-新データ (+) 旧データ (+) 旧パリティ さらに本発明は、冗長情報をディスクアレイのディスク装置をァクセスす ることなく^^するため、 キャッシュメモリを設ける。 キヤッシャメモリの記憶 データは次の 3つのケースに分かれる。
( 1 ) データのみを記憶
(2 ) 冗長情報のみを記憶
( 3) データと冗長情報の両方を記憶
キャッシュ制御部は、 アクセス処理部でディスクアレイを更新する前にキ ャッシュメモリから更新前のデータ及び又は冗長情報を検索してアクセス処理部 に供給して冗長情報を生成させる。 またキャッシュ制御部は、 キャッシュメモリ の検索でデータ及び又は冗長情報力く記憶されていなかったヒットミスの場合には 、 ァクセス処理部に記憶なしを通知してディスクアレイからの読出しに基づく更 新後にデータ及び又は冗長情報をキヤッシュメモリに記憶する。 さらに本発明は 、 予め定めた所定回数だけデータをキヤッシュメモリ上の新たに確保した領域で 更新した後にディスクアレイに書き戻す。 具体的には、 アクセス処理部は、 更新 回数力所定回数に達するまでは、 更新毎に新たな冗長情報を生成することなくキ ャッシュメモリ上でデータを更新する。 更新回数力《所定回数に達した時には、 キ ャッシュメモリ上でデー夕を更新した後に、 ディスクアレイから読出した更新前 の冗長情報 (旧パリティ) およびキュッシュメモリから読出した最新の更新デー 夕と更新前のデータ (旧データ) 力、ら新たな冗長情報を生成し、 ディスクアレイ にデータおよび冗長情報を書き戻す。 この場合の冗長情報の生成は、 パリティデ —夕の生成を例にとると次式のようになる。
新パリティ =旧デ一夕 (+) 旧パリティ (+) 最新の更新データ 更に、 ディクスアレイ内の各ディスク装置及びキャッシュメモリの空き領域に ダミーデータ D d ummy およびダミー冗長情報 P d ummy を格納し、 アクセス処理部 はデータの更新及び削除時に空き領域のダミーデータ及びダミー冗長情報を含め て新たな冗長情報を生成し、 且つダミーデータ及びダミー冗長情報についてはデ ィスクアレイから読出さずに予め設定した値を使用する。
このような本発明のディスクアレイ装置によれば、 デ一夕の更新処理時に 、 更新処理以前にアクセスされたデータの一部または全部を記憶しておくキヤッ シュメモリを設け、 更新処理の際に更新前のデータがキャッシュメモリに記憶さ れていたならば、 キャッシュメモリから読出して使用することで、 ディスク装置 から読み出す処理が省くことができ、処理時間を短縮することカ^!能となる。 ま たデータと同時に対応する冗長情報もキヤッシュメモりに記憶するれば、更新前 の冗長情報もディスク装置から直接読み出す処理を省略すること力く可能となって 、一層の処理時間の短縮力可能となる。 更に、更新処理時に、更新されたデータ j をすぐディスク装置に書き込まないでキャッシュメモリ上に記憶しておき、 その データか 定回数だけ更新された後にデータ装置に書き戻す処理を行うことで、 更新前データと «fの更新データをキヤッシュメモリから読出して新たな冗長情 報を生成すること力でき、 更新処理毎に更新データと冗長情報のディスク装置に 書き込み処理を不要にできる。更にまたディスク装置およびキヤッシュメモリの 空き領域にダミ一データを入れ、 ダミーデータを含めて同一セグメントのいずれ かの更新時に冗長情報の生成を行い、冗長情報を生成するための同一セグメント の空き領域の を不要とする。 またダミ一データは決 た固定値であることか らディスク装置からの読出しを必要とせず、 ダミーデータを含めても冗長情報の ^^は簡単にできる。
またデータ書込中に電源ダウンが起きても、電源復旧後に中断したデータ 書込み処理を途中から再開して完了できるようにした本発明のディスクアレイ装 置は、 ディスクアレイ■、 データ書込部、 パリティ更新部、 不揮発性メモリ、 及び復旧部を備える。 ディスクアレイ機構のデータ書込部は、上位装置から書込 処理を命令された際に、指定された任意のディスク装置の書込み位置に格納して いる旧データを読岀した後に上位装置から¾¾された新デー夕を書込む。 パリテ ィ Mif部は、 データ書込部によるディスク書込み位置に対応するパリティ用ディ スク装置の格納位置から旧パリティを読出し、 旧パリティ、 旧データおよび新デ 一夕に基づいて、具体的には排他的論理和から新パリティを «した後に、 旧パ リティのディスク格納位置に新パリティを書込む。 更に不揮発性メモリが設けら れ、 不揮発性メモリには、 データ書込部およびパリティ更新部の処理段階を示す 処理段階データおよび上位装置から された新データを格納する。 復旧部は、 電源投入時に、不揮発性メモリの処理段階データを参照し、書込み処理力途中で 中断されていた場合には、 不揮発性メモリに保持されている新データを用いて復 旧処理を行う。 ここで、 パリティ更新部は、 例えば旧デ一夕と旧パリティの排他的論理和から中 間パリティを生成する段階を含む。 復旧部の処理モードは不揮発性メモリに新デ 一夕と処理段階データを格納する場合、 次の 2つのモードのいずれかとなる。
[モード 1 ] 新データのディスク装置に対する書込完了前に電源ダウン 力く起きていた場合である。 このモード 1では、 データ書込部により指定されたデ ィスク装置の書込み位置に格納している旧データを読出した後に、 不揮発性メモ リから読出した新デー夕を書込む処理を行わせる。 次に新デー夕の書込み完了後 にパリティ更新部によりデータのディスク書込み位置に対応するパリティ用ディ スク装置の格納位置から旧パリティを読出し、 旧パリティ、 旧データおよび新デ 一夕に基づいて新パリティを生成した後に、 旧パリティのディスク格納位置に新 パリティを書込む処理を行わせる。
[モード 2 ] 新パリティのパリティ用ディスク装置に対する書込み完了 前に電源ダウンが起きていた場合である。 このモード 2の場合は、 データ書込部 によりデータを書込むディスク装置及びパリティ用ディスク装置以外の他のディ スク装置の対応位置の格納データを読出す処理を行わせる。 次にパリティ更新部 により他のディスク装置の読出データと不揮発性メモリから読出した新データと から新パリティを生成した後に、 旧パリティのディスク格納位置に新パリティを 書込む処理を行わせる。
また本発明は、 不揮発性メモリに、 更に中間パリティを格納する。 この場 合、 新データの書込完了から中間パリティの格納完了前に電源ダウンカ <起きたと きの回復処理力く新たなモードとして加わる。 更に本発明は、 不揮発性メモリに新 パリティを格納するようにしてもよく、電源ダウン後の復旧は、 不揮発性メモリ に残っている最後の段階のデータに基づき次の段階からの処理を再開すればよ 、 。 この場合、 ディスク装置毎に設けているディスクアダプタにもバックアップ電 源を加えておけば、 電源ダウン時に旧データ及び旧パリティも保持でき、 復旧処 理の際の再読出し力不要にできる。 このような構成を備えた本発明のディスクァ レイ装置によれば、 R A I D 4および R A I D 5に従った構成のディスクアレイ 装置で電源ダウン力起きた場合、 不揮発性メモリに保持した情報を用いて、 書込 み処理の途中から処理を再開することで正常に書込み処理を終えることができ、 電源回復後に最初からの処理を必要としないため、 より高速の復旧処理ができる 。 また電源ダウンによる復旧処理のために保持するデータの種別は、 コスト面力、 ら使用可能な不揮 ¾#メモリの容量に応じて選択することができる。
【n®の簡単な説明】
図 1は RA I D 0によるディスクアレイ装置の ¾明図
図 2は RA I D 1によるディスクアレイ装置の説明図
図 3は RA I D 3によるディスクアレイ装置の説明図
図 4は RA I D 3におけるデータ分割の説明図;
図 5は R A I D 4によるディスクァレイ装置の説明図;
1 0 図 6は RA I D 5によるディスクアレイ装置の説明図;
図 7は本発明のハードウエア構成を示した ¾St例構成図;
図 8は図 7のキヤッシュ制御部の実施例構成図; .
図 9は本発明の第 1実施例を示した機能プロック図;
図 1 0は第 1難例のキヤッシュメモリの内容を示した説明図;
図 1 1は第 1実施例のキヤッシュメモリの他の内容を示した説明図;
図 1 2は本発明の全体的な処理動作を示したフローチャート ;
図 1 3は第 1実施例のリード処理の詳細を示したフローチャート;
図 1 4は第 1実施例のライト処理の詳細を示したフローチャート ;
図 1 5は第 1実施例の他のライト処理の詳細を示したフローチャート ;
20 図 1 6は複数回更新したときのディスクアレイの格納状態の変化を示した説明図 図 1 7は図 1 5の書戻し処理の詳細を示したフローチャート ;
図 1 8は第 例のキヤッシュメモリの内容を示した説明図;
図 1 9は第 2実施例のリード処理の詳細を示したフローチャート ;
25 図 2 0は第 2¾¾例のライト処理の詳細を示したフローチヤ一ト;
図 2 1は第 2 ^例の他のライト処理の詳細を示したフローチャート; 図 2 2は図 2 1の書戻し処理の詳細を示したフローチャート ;
図 2 3は本発明の第 3実施例を示した機能プロック図;
図 2 4は第 3¾¾例のキヤッシュメモリの内容を示した説明図; 図 2 5は第 3実施例のキャッシュメモリの他の内容を示した説明図;
図 2 6は第 3実施例のライト処理の詳細を示したフローチャート ;
図 2 7は第 3実施例の他のライト処理の詳細を示したフローチャート ; 図 2 8は図 2 7の書戻し処理の詳細を示したフローチャート ;
図 2 9は本発明の第 4実施例を示した機能プロック図;
図 3 0は第 4実施例のディスクアレイおけるダミー記憶初期状態を示した説明図 図 3 1は第 4実施例のディスクアレイの削除処理を示した説明図;
図 3 2は図 3 1の削除処理後のディスクァレイの状態を示した説明図; 図 3 3はディスク Ύレイの削除処理を示した説明図;
図 3 4は図 3 3の削除処理後のディスクァレイの整理状態を示した説明図; 図 3 5は第 4実施例のキヤッシュメモリの削除処理を示した機能プロック図; 図 3 6は図 3 5によるキャッシュメモリの削除終了状態の機能ブロック図; 図 3 7は第 4実施例でランク内の同一セグメン卜の複数データを更新する処理を 示した機能ブロック図;
図 3 8は図 3 7の更新処理を終了した状態の機能プロック図;
図 3 9は不揮発性メモリを用いて電源ダウン時の復旧処理を行う本発明の第 1実 施例を示した実施例構成図;
図 4 0は図 3 9の処理内容を示した機能プロック図;
図 4 1は図 4 0の実施例の全体的な処理動作を示したフローチャート ; 図 4 2は図 4 1のデータ読出処理の詳細を示したフローチヤ一ト ;
図 4 3は図 4 1のデ一夕書込処理の詳細を示したフローチャート ;
図 4 4は図 4 1のパリティ更新処理の詳細を示したフローチャート ; 図 4 5は図 4 1の復旧処理の詳細を示したフローチャート ;
図 4 6は不揮発性メモリを用いて電源ダウン時の復旧処理を行う本発明の第 2実 施例の処理内容を示した機能プロック図;
図 4 7は図 4 6の実施例における復旧処理の詳細を示したフローチャート ; 図 4 8は不揮発性メモリを用いて電源ダウン時の復旧処理を行う本発明の第 3実 施例を示した実施例構成図; 図 49は図 48の実施例の処理内容を示した機能プロック図;
【発明の実施するための最良の形態】
1. 本発明のハードウェア構成
図 7は本発明によるディスクアレイ装置のハードウエア構成を示した実施 例構成図である。 図 7において、 ディスクァレイ制御装置 10には制御手段とし て動作する MPU12が設けられ、 MP U12からの内部バス 14に対し、 処理 プログラムを格納した ROM20、 制御記憶等として用いられる RAM22、 キ ャッシュ制御部 24を介して接続したキヤッシュメモリ 26、 データ転送バッフ ァ 28が設けられる。 また、 上位装置としてのホストコンピュータ 18とのやり 取りを行うため、 ホストイン夕フェース 16力設けられている。 ディスクアレイ 制御装置 10の配下には、 この^ ffi例にあってはランク 48— 1, 48— 2の 2 ランク構成のディスクアレイ 46が設けられている。 ディスクアレイ 46の中の ランク 48— 1には 5台のディスク装置 32— 1〜32— 5力く設けら ランク 48— 2にも同じく 5台のディスク装置 32— 6〜 32—10が設けられる。更 に、 ランク 48— 1, 48— 2のそれぞれに対し予備機として待機状態にあるデ イスク装置 32— 11, 32— 12が設けられる。 ランク 48— 1, 48— 2を 構成する 5台のディスク装置の内、 4台がデータ記録用に使用され、残り 1台が パリティ記録用に される。 但し、 パリティ記録用のディスク装置力《固定され - るのは、 図 5に示した RA I D 4のディスクアレイの場合であり、 図 6に示した RA I D 5のディスクアレイにあっては、 ディスク内への記録単位であるセクタ 位置が異なる毎に、 ランク内でのパリティの記録位置が変更されるようになる。
ランク 48-1, 48— 2を構成するディスク装置 32— 1〜 32—1 0及び予備のディスク装置 32— 11, 32— 12は、 ディスクアレイ制御装置 1ひに設けたデバイスアダプタ 30— 1〜30— 6を介して MPU12の内部バ ス 14に接続される。 デバイスアダプタ 30— 1, 30— 6はランク 48— 1, 48-2の同一位置のディスク装置、例えばデバイスアダプタ 30— 1にあって はディスク装置 32— 1, 32— 6のアクセスを MP ϋΐ 2の制御のもとに実行 する。
図 8は図 7のキヤッシュ制御部 24の構成を示す。 キヤッシュ制御部 24 は、 全体を制御する M P U 6 0、 M P U 6 0の制御で使用する制御記憶 6 2、 ノ ス 1 4との間でデータや M P U 6 0との指示のやり取りを制御するバス制御回路 6 4、 キャッシュメモリ 2 6との間でデータの受渡しを行うメモリ制御回路 6 8 、 バス制御回路 6 4とメモリ制御回路 6 8の間のデータ受渡しを行うバッファ回 路 6 6を備える。 ディスクアレイ制御装置 1 0の M P U 1 2から送られた指示は 、 バス 1 4を経由してバス制御回路 6 4を通り、 キャッシュ制御部 2 4の M P U 6 0に渡される。 M P U 6 0は、 アクセス対象のメモリアドレスをメモリ制御回 路 6 8に指示する。 更に M P U 6 0は、 メモリ制御回路 6 8、 バッファ回路 6 6 、 バス制御回路 6 4へデータ転送に間する指示を行う。 キャッシュメモリ 2 6カヽ らの読出しの場合は、 指示されたメモリアドレスの内容力 \ メモリ制御回路 6 8 、 バッファ回路 6 6およびバス制御回路 6 4を通してバス 1 4に渡される。 キヤ ッシュメモリ 2 6への書込みの場合、 バス 1 4からバス制御回路 6 4に渡された データは、 バッファ回路 6 6経由でメモリ制御回路 6 8へ渡り、 キャッシュメモ リ 2 6の指定ァドレスに書込まれる。
2. データのみをキャッシュメモリに言己憶する第 1実施例
図 9は本発明の第 1実施例を示した機能ブロック図であり、 この第 1実施例に あっては、 ディスクアレイ制御装置 1 0に設けたキヤッシュメモリ 2 6にディス クアレイ 4 6の更新に使用したデータのみを記憶するようにしたことを特徴とす る。 図 9において、 ディスクアレイ制御装置 1 0に設けられたアクセス処理部 3 4は M P U 1 2のプログラム制御により実現され、 ホストコンピュータ 1 8から の入出力要求としてのコマンドに基づいてディスクアレイ 4 6に対するアクセス 処理を実行する。 ここでディスクアレイ 4 6としてディスク装置 3 2— 1〜 3 2 一 5の 5台を取り出して示した 1ランク構成として示している。 1つのランクを 構成するディスク装置 3 2— 1〜 3 2— 5は、 破線で示すように所定のデータ記 録単位、 例えばセクタ単位に分けられている。 また、 ディスク装置 3 2— 1〜3 2— 5のそれぞれには物理 I D力予め設定されており、 ホストコンピュータ 1 8 からの論理 I Dをアクセス処理部 3 4に設けたデバイス I D管理テーブルで物理 I Dに変換して、 アクセス対象となるディスク装置を指定することができる。 即 ち、 ホストコンピュータ 1 8間のコマンドをアクセス処理部 3 4で军読すると、 ディスク I Dとデータァドレスが得られ、 ディスク I Dにより特定のディスク装 置を指定してデータァドレスに対しホストコンビュータ 1 8からの要求に基づい たリ一ド処理またはラィト処理を実行することになる。 ディスクアレイ 4 6のデ イスク装置 3 2— 1〜 3 2— 5の各セクタ位置に対する格納データとして、 この 実施例にあっては R A I D 4において、ノヽ。リティディスクをディスク装置 3 2— 5に固定した場合を例にとっている。例えばディスク装置 3 2— 1〜3 2— 4の 各第 1セクタ位置での格納データ D 0 1〜D 0 4の排他的論理和として求めたパ リティデータ P 0 1をディスク装置 3 2— 5の同一セク夕位置に格納している。 キヤッシュ制御部 2 4には図 8に示した MP U 6 0でのプログラム制御で実現さ れるヒット判定部 3 6とキャッシュアクセス部 3 8力《設けられる。 ヒット判定部 3 6はアクセス処理部 3 4でホストコンピュータ 1 8からのコマンドを解読して 得られたディスク I Dとデータァドレスの通知を受け、 キヤッシュメモリ 2 6の 検索を行う。 第 lHife例において、キャッシュメモリ 2 6にはディスクアレイ 4 6の中のデ一タ記録用のディスク装置 3 2— 1〜3 2— 4に対し行つた^ fデー 夕のみ力記憶されている。 ヒット判定部 3 6はアクセス処理部 3 4からのデバィ ス I Dとデータ了ドレスに基づいてキヤッシュテーブルを参,照し、 キヤッシュテ —ブルで該当するデータのキャッシュ登録を、 即ちヒットを判定すると、 キヤッ シュメモリ 2 6から対応する更新前の旧データを読み出してアクセス処理部 3 4 に供給する。 アクセス処理部 3 4はディスクアレイ 4 6の指定されたディスク装 置の旧データを新データに更新する前に、キヤッシュメモリ 2 6から読み出した 更新前の旧データ、 ディスク装置に格納している旧パリティおよび更新する新デ 一夕とに基づき、新パリティを生成し、新パリティの 後にディスク装置に新 データを書き込んで更新すると共に、パリティ用のディスク装置 3 2 - 5の更新 セクタと同一位置のセクタに新パリティを書き込んで、パリティの更新を行う。 ヒット判定部 3 6でキャッシュ テーブルを検索しても対象データの登録が得 られなかつたミス判定時には、 キャッシュメモリ 2 6から読み出さず、通常通り ディスクアレイ 4 6の更新対象となったディスク装置の対応セクタに格納してい る更新前の旧データとパリティ用のディスク装置 3 2— 5の同一セグメントの更 新前の旧パリティを読み出し、更に新データとから新パリティを生成した後、 デ ィスク装置に対するデータとパリティを更新する。
図 1 0は図 9のキャッシュメモリ 2 6の記憶内容の一例を示したもので、 記憶ァドレスはディスク I D番号とデータァドレスに対応するセクタ番号で特定 することができ、 ディスクアレイ 4 6のディスク装置 3 2—1〜3 2— 4と対応 関係をもってデータ D O 1 , D 0 2 , D O 3 , · · ·を記憶している。
図 1 1はセクタ位置力変わる毎にパリティデータを記憶するディスク装置 力く異なる R A I D 5相当のディスクアレイ 4 6に対応したキヤッシュメモリ 2 6 の記憶内容を示したもので、 同じくディスク I D番号とデータアドレスに対応し たセクタ番号で記憶領域を特定することができる。 ここで斜線により消去したデ イスク I D番号とセクタ番号で指定される領域は、 パリティデータに対応してい ること力、ら、 第 1実施例のデー夕のみをキヤッシュメモリ 2 6に記憶する場合に は除外されている。 .
図 1 2は図 9のディスクアレイ制御装置 1 0における全体的な処理動作を 示したフローチャートである。 図 1 2において、 まずステップ S 1でアクセス処 理部 3 4がホストコンピュータ 1 8からのコマンドの受領の有無をチェックして おり、 コマンドを受領するとステップ S 2に進んでコマンド解読処理を行う。 解 読したコマンド内容について、 ステップ S 3でリードかラィトかを判別し、 リ一 ドであればステツプ S 4のリード処理に進み、 ライトであればステップ S 5のラ イト処理に進む。 ここで、 ホストコンピュータ 1 8によるディスクアレイ 4 6に 対する入出力要求としては、
①新規データの書込み、
②既存デー夕を書き替える更新、
③既存データの削除、
があり、各入出力要求の内容に応じたステップ S 4のリード処理及びまたはステ ップ S 5のライト処理力 <実行されることになる。
図 1 3は図 1 2のステップ S 4に示したリ一ド処理の詳細を示したフロー チャートである。 図 1 3において、 まずステップ S 1でアクセス処理部 3 4がホ ストコマンドの解読結果として得られたディスク I Dとデータァドレスで決まる セクタ番号をキャッシュ制御部 2 4のヒット判定部 3 6に通知する。 ヒット判定 部 3 6はステップ S 2でキヤッシュ管理テーブルをディスク I Dとセクタ番号に 基づいて検索し、 キャッシュメモリ 2 6に対するリ一ド対象データの登録の有無 を半!!定する。 ステップ S 2におけるヒット判定の処理結果、 ステップ S 3で対応 データの登録がなく、 ミスであった場合には、 ステップ S 4に進み、 ディスク I Dとデータァドレスで指定されるディスク装置のセクタからデータを読み出して 、図 2に示したデータ ^^バッファ 2 8に βする。 続いてステップ S 5でホス トコンピュータ 1 8に^ し、更にキヤッシュメモリ 2 6にリ一ドデータを記憶 する。 ステップ S 6でキャッシュメモリ 2 6にデータを格納する場合、 キヤッシ ュメモリ 2 6に新しいデータを格納する領域力《足りなければ、 不要と思われるデ —夕をキャッシュメモリ 2 6から追い出し、新たに領域を確保して新しいデータ を記憶する。 このキヤッシュメモリ 2 6の管理としては、最新に使用したデータ をキヤッシュ テーブルで決まるリストの最後に取り付け、 使用していない最 も古いデータを追い出す L RU方式を用いればよい。一方、 ステップ S 3でキヤ ッシュ籠テーブルに対応するデータ登録が存在してヒット判定が得られると、 ステップ S 3から S 7に進み、対応するデータをキャッシュメモリ 2 6から読み 出してデ一タ ッファ 2 8に^!し、 ステップ S 8でホストコンピュータに する。 この図 1 3のリード処理にあっては、 ディスクアレイからデータを読 み出すだけであること力、ら、パリティデータの更新は必要としない。
図 1 4は図 1 2のステップ S 5に示したライト処理の詳細を示したフロー チャートである。 図 1 4において、 まずァグセス処理部 3 4はステップ S 1でホ ストコマンドの解 fg果として得られたディスク I Dとデータァドレスに対応し たセク夕番号をキヤッシュ制御部 2 4のヒット判定部 3 6に通知し、 ステップ S 2でヒッ小判定処理が行われる。 このヒット判定の結果、 ステップ S 3でミスが 半 U別されると、 キヤッシュメモリ 2 6に更新前の旧データがないことからステツ プ S 4に進み、 ディスク I Dとデータアドレスに基づいて対応するデータ記録用 のディスク装置から更新前の旧データを読み出す。 またパリティ記録用のディス ク装置の旧データと同一位置のセク夕から更新前の旧パリティデータを読み出し て、 データ バッファ 2 8に^ tする。 次にステップ S 5で、 アクセス処理部 3 4力ディスク装置から読み出した旧データ D。l d , 旧パリティ P。l d及び新デ —夕 D n ewから新パリティ P n ew を生成する。 即ち、 前述した (1 ) 式に従って 旧データ, 旧パリティ及び新データの排他的論理和から新パリティを生成する。 次にステップ S 6で新デ一夕と新パリティをそれぞれ対応するディスク装置に書 き込んで更新し、 ステップ S 7でキャッシュメモリ 2 6に新データを記憶して次 のアクセスに備える。 一方、 ステップ S 3でヒッ ト判定の結果がヒットであった 場合にはステップ 8に進み、 キャッシュメモリ 2 6から更新前の旧データを読み 出し、 続いてステップ S 9でパリティ記録用のディスク装置の旧データを格納し たセクタと同一位置のセクタから更新前の旧パリティを読み出して、 データ転送 ノ ッファ 2 8に転送する。 以降の処理はミスヒ、、ノ卜の場合と同様、 ステップ S 5 で新パリティを生成し、 ステップ S 6で新データと新パリティをそれぞれデイス ク装置に書き込み、 更にステップ S 7でキヤッシュメモリに更新が済んだ新デー 夕を記憶して、 次のアクセスに備える。 .
3. 複数回更新後のディスク装置への書戻し処理
図 1 5は図 1 2に示したステップ S 6のライト処理の他の実施例を示した フローチャートであり、 このライト処理にあっては、 キャッシュ制御部 2 4でヒ ット判定力《得られたときに、 キャッシュメモリ 2 6上で同じ領域のデータを複数 回更新した後にディスク装置に書き戻すステップ S 8の処理を設けたことを特徵 とする。 即ち、 図 1 3のライト処理にあっては、 データ更新毎にディスク装置に 対する新データ及び新パリティの書戻しを行っており、 データ更新処理に時間が かかる。 これに対し図 1 5の実施例にあっては、.複数回のデータ更新に 1回だけ ディスク装置に書き戻す処理を行うため、 更新処理に要する時間を短縮すること ができる。 ここで、 複数回の更新後にディスク装置に書き戻すパリティデータの 生成原理を説明すると次のようになる。
図 1 6は説明を簡単にするため、 3台のディスク装置 3 2—:!〜 3 2— 3 を備えたディスクアレイ 4 6を示しており、 更新前の状態でディスク装置 3 2— 1にはデータ D 0力格納され、 ディスク装置 3 2— 2にはデータ D 1力格納され 、 更にパリティ用のディスク装置 3 2— 3にはパリティ P 0力格納されている。 この状態で、 ディスク装置 3 2— 1のデータ D Oに対し新データ D O 1 , D O 2 , D O 3と 3回、 更新の処理を行ったとする。 この 1回目から 3回目のディスク 装置 32—1に対するデータ更新における新パリティ P1〜P3は、 次式に従つ て求めることができる。
1回目 新データ D01 (+) 旧データ Dl=新パリティ P1 (2) 2回目 新データ D02 (+) 旧データ Dl=新パリティ P2 (3) 3回目 新データ D03 (+) 旧データ Dl=新パリティ P3 (4) ここで、 図 15のステップ. S 8におけるディスク装置に書戻しを行うまで の更新回数を 3回に設定していたとすると、 3回目の更新で得られた新パリティ P3をディスク装置 32— 3に格納し、 また最新の更新デ一夕 D03をディスク 装置 32—1に格納すればよい。 3回目の更新結果を示す (4)式の旧データ D 1に関しては、更新前の格納状態から
旧データ DO (+) 旧データ Dl=旧パリティ P0 ' (5) の関係がある。 この (5)式について、 旧データ D1を求めると、
旧データ D1-旧データ DO (+) 旧パリティ P0 (6) となる。従って、 (6)式を (4)式に代入すると、 3回目の更新で生成される 新ノ、。リティ P 3は
新パリティ P 3=
旧デー夕 D 0 (+) 旧パリティ P 0 (+)最新デ一夕 D 03 (7) で表すこと力できる。
図 15のステップ S 8の処理にあっては、 図 16に示す 1回目から 3回目 の更新処理をキャッシュメモリ 26上で行い、 3回目の更新が済んだときに (7 ) 式から新ハ。リティ P 3を生成し、最新データ D 03と新パリティ P 3のそれそ' れをディスク装置に書き戻す処理を行う。 この (7)式で新パリティ P 3を するためには、更新前の旧データ D 0及び更新前の旧パリティ P 0が得られれば よく、 それ のデータは不要となる。従って本発明にあっては、 キャッシュメ モリ 26上でデータ DO 1, DO 2, DO 3を順次更新するための領域を新たに 確保してデータ更新を行い、 3回目のデータ更新が終了した時点で、 既にキヤッ シュメモリに記憶されている更新前の〖日データ D 0を更新が済んだ ¾ffのデータ DO 3と共に読み出し、更にディスク装置 32— 3から更新前の旧パリティ P 0 を読み出して、 (7)式に従った新パリティ P 3を生成し、新データ D 03及び 新パリティ P 3をそれぞれのディスク装置に書き戻すようになる。
図 1 7は図 1 5のステップ S 8の書戻し処理の詳細を示したフローチヤ一 トである。 図 1 7において、 まずステップ S 1で更新回数を設定するカウンタ N を 1つインクリメントする。 尚、 カウンタ Nは初期状態で N - 0にクリアされて いる。 続いてステップ S 2で 1回目の更新か否かチェックする。 1回目の更新で あればステップ S 3で更新デーダの領域をキヤッシュメモリ 2 6上に新たに確保 し、 ステップ S 4で、新たに確保したキヤッシュメモリ 2 6上の領域で 1回目の 新データの更新を行う。 次にステップ S 5で、 更新回数を示すカウンタ N力設定 回数、 例えば 3回に達したか否か判定し、 3回未満であればステップ S 6〜S 9 の処理を飛ばして図 1 2のメインルーチンの①にリターンする。 ステップ S 5で 更新回数を示す力ゥン夕 1^-カ《設定回数に達するとステップ S 6に進み、 パリティ 用のディスク装置から更新データと同一セグメントの更新前の旧パリティを読み 出し、 またキヤッシュメモリ 2 6から更新前の旧データと最新の更新済みデータ を読み出し、 ステップ S 7で (7 ) 式に従って新パリティを生成する。 続いてス テツプ. S 8で新デー夕と新パリティをそれぞれ対応するディスク装置に書き込ん だ後、 ステップ S 9でカウンタ Nをリセットし、 図 1 5のステップ S 7にリ一夕 ンし、書戻しが済んだ最新の更新データをキヤッシュメモリ 2 6に記憶して次の アクセスに備える。
4. 冗長情報のみをキヤッシュメモリに記憶する第 2実施例 図 1 8は図 9に示した本発明のディスクアレイ制御装置 1 0のキヤッシュ メモリ 2 6に冗長情報としてのパリティデータのみを記憶した場合の記憶内容を 示した説明図である。 この第 2実施例で使用するキャッシュメモリ 2 6にはディ スク I D番号 1〜5の論理和と、 セクタ番号で指定される領域にパリティデータ P 0 1 , P 0 2 , P 0 3, · · ·のみを記憶している。 このようにキャッシュメ モリ 2 6にパリティデータのみを記憶するようにした場合のディスクァレイ制御 装置 1 0における全体的な処理動作は、 図 1 2のフローチャートと同じになり、 リード処理は図 1 9に示すようになり、 またライト処理は図 2 0に示すようにな る。
図 1 9はキャッシュメモリ 2 6にパリティデータのみを記憶した場合のリ ―ド処理の詳細を示したフ口ーチャ一トであり、ステップ S 1でァクセス処理部 3 4はホストコマンドの解読結果から得られたディスク I Dと、 データァドレス を示すセグメント番号を対応するデバイスアダプタを経由してディスク装置に通 知する。 次いでステップ S 2で、指定したディスク装置からデータを読み出して データ^!バッファ 2 8に し、.ステップ S 3でホストコンピュータに βし て一連の処理を終了する。即ち、 キヤッシュメモリ 2 6にパリティデータのみを 記憶している場合には、 リ一ド処理におけるキヤッシュアクセスは行わない。
図 2 0はパリティデータのみをキヤッシュメモリ 2 6に登録した場合のラ ィト処理の詳細を示したフローチャートである。 図 2 0のライト処理にあっては 、 ステップ S 1の-ディスク I Dとデータァドレスに対応するセクタ番号の通知を 受けて、 キャッシュ制御部 2 4のヒット判定部 3 6がステップ S 2でヒット判定 を行う。即ち、 図 1 8に示すようなキヤッシュメモリ 2 6の登録内容を示すキヤ ッシュ^ 3テーブルについて、 ディスク I Dによる区^ ίはないことから、 セクタ 番号のみによりキヤッシュ登録の有無を判定する。 ステップ S 3でヒットミスで あった場合には、 第 1実施例と同様、 ステップ S 4でディスク装置から更新前の 旧データと旧パリティを読み出してデータ転送バッファ 2 8に^ し、 ステツプ S 5で前記 (1)式に従って新パリティを生成する。 次いでステップ S 6で新デ 一夕と新パリティをそれぞれ対応するディスク装置に書き込み、更にステツプ S 7で新ハ&リティをキャッシュメモリ 2 6に新たに記憶する。一方、 ステップ S 2 のヒット判定の結果がヒットであった場合にはステップ S 3から S 8に進み、 キ ャッシュメモリ 2 6から対応する旧パリティを読み出し、 ステツプ S 9で対応す るディスク装置から旧データを読み出してデータ ¾^バッファ 2 8に^ tする。 以下同様に、 ステップ S 5の新パリティの生成、 ステップ S 6の新データと新パ リティのそれぞれのディスク装置に対する書込み、更にステツプ S 7の新パリテ ィのキャッシュメモリ 2 6に対する記憶を行う。
図 2 1ほパリティデータのみをキヤッシュメモリ 2 6に記憶する場合のラ ィト処理の他の実施例を示したフローチャートであり、 図 1 5に対しステップ S 8で 回のデータ更新後にディスク装置への書込みを行うようにしたことを特 徵とする。 このステップ S 8のディスク書戻し処理の詳細は図 2 2Έ示すように なる。 図 2 2の書戻し処理は図 1 7に示した第 1実施例の場合と基本的に同じで ある力く、 キャッシュメモリ 2 6にパリティデータのみを言己憶していることから、 更新回数力設定回数に達した後のステップ S 6でディスク装置から旧データを読 み出し、 キャッシュメモリから旧パリティと最新の新データを読み出す点力相違 している。 他の処理は第 1実施例の場合と同じである。
5. データ及び冗長情報の両方をキヤッシュメモリに記憶する第 3 実施例
図 2 3は本発明の第 3実施例の機能ブロック図を示したもので、 この第 3 実施例にあってはキヤッシュメモリ 2 6にデータと冗長'隋報としてのパリティデ 一夕の両方を記憶するようにしたことを特徴とする。 まずキヤッシュメモリ 2 6 はデータ記憶領域 5 0とパリティ記憶領域 5 2に分けられている。
図 2 4はキャッシュメモリ 2 6の記憶内容を示したもので、 ディスク I D 番号 1〜4についてはデータ記憶領域 5 0に格納され、 ディスク I D番号 5につ いてはパリティ記憶領域 5 2に記憶される。 勿論、 図 2 4はパリティ記憶用ディ スク装置をディスク装置 3 2— 5に固定した場合である。 ここで、 キャッシュメ モリ 2 6をデータ記憶領域 5 0とパリティ記憶領域 5 2に分けている理由は、 第 1実施例についてはデータ記憶領域 5 0のみでよく、 また第 2実施例にあっては パリティ記憶領域 5 2のみでよぐ、 この第 1実施例及び第 2実施例に対し更 パ リティ記憶領域 5 2またはデータ記憶領域 5 0を新たに追加するような場合に、 領域を分けておくことが便利である。
図 2 5はパリティ記録用のディスク装置がセクタ位置力変化する毎に相違 するディスクアレイを対象としたキャッシュメモリ 2 6の記憶内容を示した説明 図である。 このようにパリティデータがセグメント毎に異なったディスク装置に 格納されている場合には、 図 2 3に示したキヤッシュメモリ 2 6は特にデータ記 憶領域 5 0とパリティ記憶領域 5 2に分けることなく、 全体を 1つの領域として データ及びパリティデータを記憶すればよい。
図 2 3に示した第 3実施例のディスクアレイ制御装置 1 0の全体的な処理 動作及びリ一ド処理の詳細は図 1 2, 図 1 3の第 1実施例と同じである 、 ラィ ト処理の詳細が図 2 6のフローチャートに示すようになる。 図 2 6のライト処理 にあっては、 ステップ S 3でミスとなった場合にステップ S 7で新データと新パ リティの両方をキャッシュメモリ 2 6に記憶する点力、 第 1実施例及び第 2実施 例と異なる。 また、 ステップ S 3でヒットとなった場合にはステップ S 8でキヤ ッシュメモリ 2 6から更新前の旧データと旧パリティの両方を読み出すこと力《で き、 このため旧データ及び旧パリティを読み出すためのディスク装置のアクセス は必要なく、 データ更新を更に高速で行うことができる。
図 2 7は第 3実施例のライト処理の他の実施例を示したもので、 ステップ S 8で複数回のデータ更新後にディスク装置に書き戻すようにしたことを特徴と し、 この書戻し処理の詳細は図 2 8のフローチヤ一トに示すようになる。 図 2 8 の書戻し処理にあっては、 更新回数が設定回数に達したときのステップ S 6にお いて、 キヤッシュメモリ 2 6から更新前の旧パリティと旧データ、 更に: ftffの更 新データを読み出す点が第 1及び第 2実施例と異なる。 .
6. ダミーデータを空き領域に記憶する第 4実施例 図 2 9は本発明の第 4実施例の機能プロック図であり、 この第 4実施例に あっては、ディスク制御装置 1 0に新たにダミーデータ処理部 4 0を設け、 ディ スクアレイ 4 6のディスク装置 3 2—1〜3 2— 5及びキャッシュメモリ 2 6の 空き領域に D d I^yで示すダミ一データ及び P d um町で示すダミ一パリティデー タを格納するようにしたことを特徵とする。 このようにディスク装置 3 2— 1〜 3 2— 5及びキャッシュメモリ 2 6の未使用領域に固定的に定めたダミーデ一ダ 及びダミーパリティデータを格納しておくことで、 ライト動作時の旧データ及び 旧パリティのリ一ド動作をダミーデータ及びダミーパリティデータについては省 略すること力できる。
図 3 0は第 4実施例におけるディスク装置 3 2— 1〜3 2— 5の初期状態 を示した説明図であり、空き領域となる全てのセクタにダミ一データ及びダミ一 ノ、。リティデータを、例えばディスクアレイ装置の工場出荷等の際に予め格納して いる。 尚、 図 2 9のディスク装置 3 2— 1 ~ 3 2— 5は、セクタ位置が変わる毎 にバリティデータを記憶するディスク装置が異なる R A I D— 5相当の場合を例 にとっている。
図 3 1は第 4難例におけるデイスク装置 3 2— 1〜3 2— 5における既 存データの削除状態を示したもので、 このような削除力く行われた場合にも、 図 3 2に示すように削除位置にダミーデータを格納する。 勿論、削除位置にダミーデ 一夕を格納した場合には、 同一セグメントのパリティデータについては新パリテ ィを生成するようになる。
図 3 3は第 4実施例におけるディスク装置 3 2— 1〜3 2— 5の他の削除 処理を示したもので、 このようなデータ削除を行った場合には、 図 3 4に示すよ うに、 削除した空き領域を上位に詰めるようにデータを書き替える整理処理を行 V、、 下位にまとめて空きセク夕領域を形成してダミ一データ及びダミーパリティ データを格納する。
図 2 9〜図3 4に示すようなダミ一デー夕及びダミーパリティデータに関 する処理は、 キャッシュメモリ 2 6側についてはダミーデータ及びダミーパリテ ィデータを除く有効なデータ及びパリティデータについ T削除及び整理後の更新 を行っておけばよい。
図 3 5は第 4実施例において、 ホストコンピュータ 1 8より例えばディス ク装置 3 2— 1に格納しているデータ D 1の削除命令を受けたときの処理動作を 示している。 ホストコンピュータ 1 8よりデータ D 1の削除命令を受けた場合に は、 まずノ、。リティ生成部 4 2でキャッシュメモリ 2 6に記憶している更新前の旧 データ D 1と旧パリティ. P 1を読み出し、 データ D 1の削除により新データはダ ミーデータ D d u mm y となることから、 これら 3つの排他的論理和により新パリテ ィ P l n ew を生成する。 続いて図 3 6に示すように、 ディスク 3 2— 1の旧デー 夕 D 1をダミーデータ D d ummy に書き替え、 またディスク装置 3 2— 4の旧パリ ティ P 1を新たに生成した新パリティ P l n ew に書き替え、 更にキャッシュメモ リ 2 6に記憶しているデータ D 1を削除すると同時に旧パリティ P 1を新パリテ ィ P に更新する。
図 3 7は第 4実施例において、 ランク内の同一セグメントにある複数のダ ミ—データを更新する場合の処理を示した説明図である。 図 3 7において、 今、 データ ¾ϋバッファ 2 8に格納されているデータ D 1をディスク装置 3 2— 1の 空き領域に書き込み、 またデー夕 D 2をディスク装置 3 2— 2の同一セクタ位置 の空き領域に書き込むものとする。 この場合には、 最終的にデータ D 2の書込み が終了したときのバリティ P 1を賊するため、パリティ生成部 4 2に対しデー タ D l, D 2, ダミーデータ 2つ, パリティダミーデータ 1つを入力して、 これ らの排他的論理和により新パリティ P 1を生成する。続いて図 3 8に示すように 、 データ D 1をディスク装置 3 2—1に書き込むと共に、データ D 2をディスク 装置 3 2— 2に書き込み、 更にパリティ生成部 4 2で生成した新パリティ P 1を ディスク装置 3 2— 5に書き込むようになる。 勿論、 図示しないキャッシュメモ リ 2 6に対しても、新たにデータ D 1, D 2及びパリティ P 1を記憶して次のァ クセスに備えるようになる。 尚、 上記の各実施例で使用するキヤッシュメモリと しては、何等かの原因による電源ダウンに対処できるようにするため、ノ 、ックァ ップ電源を備えた不揮発性メモリとしてもよい。 このようにキャッシュメモリに 不揮発性メモリを使用すれば、 電源ダウンがあってもキヤッシュデータが消去さ れず、電源ダウンによりキャッシュメモリを用いたァク ス性能力初期状態に低 下してしまうこと力防止できる。 また、 キャッシュメモリ全体を不揮発性メモリ とすることはコスト的に高価になることから、例えばキヤッシュメモリの一部を 不揮発性メモリとしてもよい。
7. 不揮発性メモリを使用して電源ダウンに対する復旧処理を行う 実施例
図 3 9は電源ダウン時の復旧処理の機能を備えた本発明のディスクアレイ 装置の 例を示す。 図 3 9において、 ディスクアレイ制御装置 1 0には MP U 1 2力く設けられる。 MP U 1 2の内部バス 1 4に制御プログラムや固定データを 格納した ROM2 0、 RAMを用いた揮発性メモリ 2 2、 キャッシュ制御部 2 4 を介して設けられたキャッシュメモリ 2 6、データ^!バッファ 2 8、 ノ ックァ ップ電源 3 6により電源ダウン時にも動作可能な不揮発性メモリ 7 0を接続して いる。 また、 ホストインタフェース 1 6が設けられ 上位装置として機能するホ ストコンピュータ 1 8を接続している。一方、 ディスクアレイ制御装置 1 0に対 しては、 この,例にあつては 6台のディスク装置 3 2— 1〜 3 2— 6を設けて おり、 ディスク装置 3 2— 2〜 3 2— 6のそれぞれはデバイスアダプタ 3 0— 1 〜3 0— 6を介して MP U 1 2の内都バス 1 4に接続されている。 6台のディス ク装置 3 2— 1〜 3 2— 6の内、 4合がデータ格納用で り、 1台力《パリティ用 であり、残りの 1台は予備である。
本発明のディスクアレイ装置にあっては、 図 5に示した R A I D 4あるい は図 6に示した R A.I D 5と同じ機能を実現することから、 例えばディスク装置 3 2— 6を予備ディスク装置とすると、 R A I D 4の場合にはディスク装置 3 2 一 1〜3 2— 4がデータ格納用に使用され、 ディスク装置 3 2— 5がパリティ用 に使用される。 一方、 R A I D 5.の場合には、 ディスク装置 3 2— 1〜3 2— 5 のそれぞれは R A I D 4の場合と同様、 1つのディスク装置に同一のデ一夕単位 をまとめて格納する力 <、 パリティ用のディスク装置は固定されず、 ディスク装置 3 2— 1〜3 2— 5の同一格納位置力変わる毎にパリティ用のディスク装置が所 定の順番に従って切り替わる。
図 4 0は図 3 9の第 1実施例における処理内容を示した機能ブロック図 である。 図 4 0において、 ディスクアレイ制御装置 1 0 対するディスク装置は ディスク装置 3 2— 1〜3 2— nの n台を例にとっており、 今、 ディスク装置 3 2— 2力《パリティ用として用いられたものとする。 勿論、 ディスク装置 3 2— 2 は R A I D 4であれば固定的にパリティ用として定められており、 RA I D 5に ついては、 現時点のデータアクセスにおいてパリティ用として位置付けられてい ることになる。 ディスクァレイ制御装置 1 0に設けられたァクセス処理部 3 4は M P U 1 2によるプログラム制御でデータ書込部 7 4, パリティ更新部 7 6及び データ復旧部 7 8としての機能を実現する。 このアクセス処理部 3 4に対しては 揮発性メモリ 2 2と不揮発性メモリ 7 0力く接続されている。 またディスク装置 3 2— 1〜3 2— n毎に設けたデバイスアダプタ 3 0— 1〜3 0— nのディスク装 置との間でやり取りするデータを一時記憶するメモリを内蔵している。
図 4 0の第 1実施例にあっては、不揮発性メモリ 7 0にデータ書込部 7 4及び パリティ更新部 7 6の処理段階を示す処理段階データ 8 0力《格納され、 またホス トコンピュータ 1 8から Siされた指定されたディスク装置に書き込むための新 データ 8 2力く格納される。一方、揮発性メモリ 2 2にはパリティ更新部 7 6の処 理で生成される中間パリティ 8 8及び新パリティ 9 0力格納される。 更に、 デバ イスアダプタ 3 0— 1〜3 0— nについては、 いまデータ書込みの対象となって いる例えばディスク装置 3 2 - 1のデバイスアダプタ 3 0— 1には、 ホストコン ピュータ 1 8から された新データ 8 2とパリティ更新のために新データ書込 み予定領域から読み出された旧データ 8 4が格納される。 また、パリティ用のデ イスク装置 3 2— 2のデバ、ィスァダブ夕 3 0— 2にはディスク装置 3 2— 1の新 データ書込み予定領域に対応する同一位置から読み出した旧パリティ 8 6とパリ ティ更新部 7 6で生成された新パリティ 9 0力格納される。 ここで、 ディスクァ レイ制御装置 1 0に使用するメモ-リを全て不揮発性メモリとすることはメモリ容 量の増加でコスト的な負担が大きいことから、第 1実施例にあっては処理段階デ 一夕 8 0と新データ 8 2の記憶に不揮発性メモリ 7 0を割り当て、 それ以外の中 曰バリティ 8 8や新パリティ 9 0については揮発性メモリ 2 2を使用している。 尚、電源ダウン時にホストコンピュータ 1 8側に新データ 8 2力保持できれば、 新データ 8 を揮発性メモリ 2 2に格納するようにしてもよい。
図 4 1は図 4 0のアクセス処理部 3 4における全体的な処理動作を示した フローチャートである。 図 4 1において、 まずディスクアレイ装置の電源を投入 すると、 ステップ S 1でイニシャルプログラムルーチン (I P L) に基づく所定 のィニシャライズが行わ; ステップ S 2に進んで電源ダウンがぁつたか否かチ エックする。 通常の口グオフ操作による電-源切断後に口グォンによりパワーオン スタートした場合には電源ダウンなしと判定さ ステップ S 3に進み、 ホスト コンピュータ 1 8からのコマンド受領を待つ。 ステップ S 3でホストコンビユー - 夕 1 8からのコマンドを受領するとステップ S 4に進んでコマンド解読を行い、 ステップ S 5でリードアクセスの要求を判別するとステップ S 8に進んでデータ 読出処理を実行する。一方、 ライトアクセスの要求を判別するとステップ S 6に 進んでデータ書込処理を実行し、続いてステップ S 7でパリティ更新処理を実行 する。 パワーオンスタートした際に、 ステップ S 2で電源ダウンが判別された場 合には、 ステップ S 9で復旧処理を行ってからステップ S 3以降の通常処理に入 る。 この図 4 1のフローチャートにおけるステップ S 6のデータ書込処理が図 4 0のアクセス処理部 3 4に設けたデータ書込部 7 4により行われ、 またステップ S 7のパリティ更新処理がパリティ更新部 7 6により行われ、更にステップ S 9 の復旧処理がデータ復旧部 7 8により行われることになる。
図 4 2は図 4 1のステップ S 8に示したデータ読出処理の詳細を示したフ 口一チャートである。 図 4 2において、 ホストコンピュータからのリードコマン ドを解読すると、 データ読出しの対象となったデバイスアダプタを介してディス ク装置からデータを読み出し、 ステップ S 2でデバイスアダプタに格納した後に ステップ S 3でホストコンピュータ 1 8にデータ転送を行う。 このときディスク 装置側の Θ速度とホストコンピュータ 1 8側の転送速度と力異なっている場合 には、 図 3 9に示したディスクアレイ制御装置 1 0に設けているデータ転送バッ ファ 2 8を経由した読出データのホストコンピュータ 1 8に対する転送が行われ る。
図 4 3は図 4 1のステップ S 6に示したデータ書込み処理の詳細を示した フローチャートである。 図 4 3において、 ホストコンピュータ 1 8からのライト コマンドに伴ってディスク装置に書き込む新デー夕力転送されてくることから、 ステップ S 1でホストコンピュータ 1 8からの新データ 3 2をメモリ、 即ち不揮 発性メモリ 7 0に格納する。 続いてステップ S 2で新デ一夕 8 2を例えばディス ク装置 3 2— 1が書込対象として指定されたとすると、 デバイスアダプタ 3 0— 1に して格納する。 続いてデバイスアダプタ 3 0— 1からの指示でディスク 装置 3 2— 1の新データ書込予定領域の内容を旧データ 8 4として読み取り、 デ バイスアダプタ 3 0— 1内に格納する。 旧データ 8 4の格納力く済むと、 ステップ S 5でデバイスアダプタ 3ひ一 1内の新データ 8 2をディスク装置 3 2— 1に転 ― 送し、 ステップ S 6で新データ書込予定領域に新データ 8 2を書き込む。
図 4 4は図 4 1のステップ S 7に示したパリティ更新処理の詳細を示した フローチャートである。 図 4 4において、 まずステップ S 1でパリティ用のディ スク装置 3 2— 2のディスク装置 3 2— 1における新データ書込み予定領域と同 —領域の内容を旧パリティ 8 6として読み取り、 ステップ S 2で、 読み取った旧 ノ リティ 8 6をデバイスアダプタ 3ひ一 2に格納する。 続いてステップ S 3で旧 デ一夕 8 4と旧パリティ 8 6から中間パリティ 8 8を作成して揮発性メモリ 2 2 に格納する。 次に不揮発性メモリ 7 0の新データ 8 2と揮発性メモリ 2 2の中間 ノ、。リティ 8 8を読み出して新パリティ 9 0を作成して、 揮発性メモリ 2 2に格納 する。 ここで、 中間パリティ 8 8は旧データ 8 4と旧パリティ 8 6の排他的論理 和から作成される。 また、新パリティ 9 0は新データ 8 2と中間パリティ 8 8の 同じく排他 ½«l和から作成する。 ステップ S 4で新パリティ 9 0の作成格納が 済むとステップ S 5で揮発性メモリ 2 2の新パリティ 9 0を読み出して、 デバイ スアダプタ 3 0— 2に して格納する。 続いてステップ S 6で新パリティ 9 0 をパリティ用のディスク装置 3 2— 2に し、 ステップ S 7で新パリティ 9 0 i をディスク装置 3 2— 2のディスク装置 3 2— 1における新データの書込領域と 同じ: I域に書き込んでパリティ更新処理を終了する。 ここで、—新パリティ 9 0の «は基本的には新データ 8 2 , 旧データ 8 4及び旧パリティ 8 6の排他的論理 和から作成するものであるが、 図 3の実施例にあっては中間パリティ 8 8の作成 段階を経て新パリティ 9 0を作成している。 この中間パリティ 8 8の段階を経由0 した新パリティの作成過程は、 図 4 1の場合を含めて次の 3つのケース通りがあ
[ケース 1] 新データ 8 2と旧データ 8 4の排他的論理和をとつて中間 ノ、。リティ 8 8を し、揮発性メモリ 2 2に格納する。 この揮発性メモリ 2 2へ の格納が終了すると旧データ 8 4は不要となるので、 デバイスアダプタ 3 0— 15 の旧データを格納していたメモリ領域は開放される。次に揮発性メモリ 2 2の中 間バリティ 8 8とデバイスアダプタ 3 0— 2の旧パリティ 8 6との排他的論理和 をとつて新パリティ 9 0を^^し、不揮髡性メモリ 7 0に格納する。 即ち、 次式 の処理を行う 0 一 :
新データ (+) 旧データ-中間パリティ
0 中間パリティ (+) 旧パリティ =新パリティ
[ケース 2] 旧データ 8 4と旧パリティ 8 6の排他 侖理和をとつて中 間パリティ 8 8を し、揮発性メモリ 2 2に格納する。 中間パリティ 8 8の揮 発性メモリ 2 2に対する格納力《終了すると、 デバイスアダプタ 3 0— 1の旧デー 夕 8 4及びデバィスアダプタ 3 0— 2の旧パリティ 8 6を格納していたメモリ領S 域が開放される。 次に揮発性メモリ 2 2の中間パリティ 8 8と不揮発性メモリ Ί 0の新データ 8 2との排他 理和をとつて新パリティ 9 0を し、揮発性メ モリ 2 2に格納する。 これは図 4 4の実施例の処理であり、 次式の処理を行うこ とになる。
旧データ (+) 旧パリティ-中間パリティ 中間パリティ (+) 新データ =新パリティ
[ケース 3 ] デバイスアダプタ 3 0— 2のメモリに格納している旧パリ ティ 8 6と不揮発性メモリ 7 0の新データ 8 2の排他的論理和をとつて中間パリ ティ 8 8を生成し、揮発性メモリ 2 2に格納する。 中間パリティ 8 8の揮発性メ モリ 2 2に対する格納が終了すると旧パリティ 8 6は不要となることから、 旧パ リティ 8 6力く格納されていたデバイスアダプタ 3 0— 2のメモリ領域は開放され る。 次に揮発性メモリ 2 2の中間パリティ 8 8とデバイスアダプタ 3 0—1の旧 データ 8 4の排他的論理和をとり、 新パリティ 9 0を生成して揮発性メモリ 2 2 に格納する。 即ち、 次式の処理を行う。
旧パリティ (+) 新データ =中間パリティ
中間パリティ (+) 旧データ =新パリティ
更に、 中間パリティの生成段階を経由した新パリティの生成はケース 1 〜3に限定されず、 デバイスアダプタ 3 0—1における旧データ 8 4の読出格納 、 及びデバイスアダプタ 3 0— 2における旧パリティ 8 6の読出格納力く速い順に ケース 1またはケース 3の処理を選択すればよい。 即ち、 図 4 1のフローチヤ一 卜にあっては、 ステップ S 6でデータ書込処理を実行した後にステップ S 7でパ リティ更新処理を順番に行うようにしている力 実際にはディスク装置 3 2— 1 に対しシーク命令を発行して切り離した後に、 パリティ用のディスク装置 3 2— 2にシーク命令を発行して突き離しており、 ディスク装置 3 2— 1 , 3 2— 2の 内、 最初にシーク完了通知を受けた方について旧データまたは旧パリティの読出 しを行うことになる。 従って、 旧データ 8 4を最初に読み出した場合にはケース 1のように新データと旧データから中間パリティを生成し、 また旧パリティ 8 6 を最初に読み出した場合にはケース 3のように旧パリティと新データから中間パ リティを生成する。 そして、 中間パリティの生成後にケース 1については旧パリ ティカ《読み出されたら新パリティを生成し、 ケース 3については旧データ力く読み 出されたら新パリティを生成すればよい。 勿論、 新データ, 旧データ, 旧パリテ イカ揃った段階で
新データ (+) 旧データ (+) 旧パリティ =新パリティ により一括して排他的論理和をとつて新パリティを生成し、 中間パリティの生成 過程を省略するようにしてもよい。
図 4 5は図 4 1のステップ S 9に示した復旧処理の詳細を示したフロー チャートである。 ここで、 図 4 0の第 1¾½例にあっては、不揮発性メモリ 7 0 に電源ダウンの際に保持されるのは処理段階データ 8 0と新データ 8 2のみであ り、 従って、電源ダウンのタイミングが新デーダ 8 2のディスク装置 3 2— 1に 対する書込終了の前後で復旧処理の内容が分かれることになる。 図 4 5の復旧処 理において、 まずステップ S 1で新データの書込終了か否かチェックし、新デー 夕の書込みが終了していなければ新データの書込完了以前に電源ダウンが起きて いることからステップ S 2以降の処理に進む。即ち、 ステップ S 2で不揮発性メ モリ了 0に保持されている新データ 8 2を読み出して、 デバイスアダプタ 3 0— 1に ¾ して格納し、次のステップ S 3でディスク装置 3 2—1から新データ書 込予定領域の内容を旧データ 8 4として読み出し、 ステップ S 4でデバィスァダ プ夕 3 0— 1に格納する。続いてステップ S 5でデバイスアダプタ 3 0—1内の 新データ 8 2をディスク装置 3 2—1に緩し、 ステップ S 6でディスク装置 3 2 - 1に対する新データ 8 2の書込みを行う。 即ち、新データの書込完了前に電 源ダウンが起きた場合には、図 4 3に示したデータ書込処理の内のステップ S 1 を除くステップ S 2〜S 6と同じ処理を回復処理として実行する。 このように不 揮発性メモリ 7 0に新データ 8 2を保持していたことで、 復旧処理の際に改めて - ホストコンピュータ 1 8から新データ 8 2を させる必要がなく、 その分だけ 回復処理を高速ィ匕させる o 侖、 ステップ S 6で新データ 8 2の書込みが済むと ステップ S 7でパリティ Mi?処理を実行する。 このパリティ更新処理は図 4 4の フローチャートに示した内容と同じになる。
一方、 ステップ S 1で新データの書込終了が判別された場合にはステップ S 8に進み、新パリティの書込終了の有無をチヱックする。 ここで、新パリティ の書込みが済んでいなかった場合にはステップ S 9以降の処理を行う。 まず、既 に新データのディスク装置 3 2— 1に対する書込みは完了してい.ることから、 ス テツブ S 9でハ。リティ用のディスク装置 3 2— 2を除く他のディスク装置 3 2— 3〜 3 2— nから読み出したデータと新データの排他的論理和により新パリティ を作成する。 即ち、 旧パリティを使用せずに新データと他のディスク装置のデー タのみから新パリティを生成する。 続いてステップ S 1 0で新パリティをデバイ スアダプタ 3 0— 2に転送して格納した後、 ステップ S I 1でディスク装置 3 2 —2に^ し、 ステップ S 1 2で新パリティをディスク装置 3 2— 2に書き込ん で一連の回復処理を終了する。 更にステップ S 8で新パリティの書込終了力判別 された場合には復旧処理は不要であることから、 そのままメインルーチンにリタ ーンする。
図 4 6は本発明の復旧処理の第 2実施例の処理内容を示した機能プロック 図であり、 第 2実施例にあっては、 不揮発性メモリ 7 0に処理段階データ 8 0及 び新データ 8 2に加えて中間パリティ 8 8も格納するようにしたことを特徴とす る。 このため、 不揮発性メモリ 7 0は中間パリティ 8 8を格納する分だけメモリ 容量力増加して、 第 1実施例に比べコスト的に高価になる力^ 電源ダウンにより 中間パリティ 8 8を保持できるために復旧処理を更に高速化できる。 図 4 6の第 2実施例における全体的な制御処理は図 4 1に示した第 1実施例と基本的に同じ であり、 またデータ書込部 7 4及びパリティ更新部 7 6による処理も中間パリテ ィ 8 8を不揮発性メモリ 7 0に格納する以外は図 4 3及び図 4 4のフローチヤ一 トと同じになる。 これに対しデータ復旧部 7 8による復旧処理は、 新たに不揮発 性メモリ 7 0に中間パリティ 8 8を格納したことに伴い、 図 4 7のフローチヤ一 卜に示すようになる。 図 4 7において、 電源ダウン力起きたタイミングの判別は . ステップ S 1 , ステップ S 8及び S 1 3のそれぞれで行っており、 電源ダウンに より新データの書込終了が済んでいないことがステップ S 1で判別されると、 ス テツプ S 2〜S 7の処理が行われる。 これは図 4 5に示した第 1実施例の場合と 同じである。 次にステップ S 1で新デ一夕の書込終了が判別された場合には、 ス テツプ S 8で中間パリティの格納終了の有無力く判別される。 中間パリティの格納 力'済んでいなかつた場合、 即ち新データの書込終了から中間パリティの格納前の 間に電源ダウン力 <起きていた場合にはステップ S 9〜S 1 2の処理を行う。 この 処理は図 4 7の第 1実施例におけるステップ S 9〜S 1 2の処理と同じであり、 新データが既に書込み済みであること力、ら、 パリティ用のディスク装置を除く他 のディスク装置から読み出したデータと新データの排他的論理和をとることで新 パリティを作成して、 パリティ用のディスク装置に書き込んでいる。 更にステツ プ S 8で中間パリティの格納終了が判別された場合には、 ステップ S 1 3に進ん で、新パリティの書込終了の有無をチェックする。 ステップ S 1 3で新パリティ の書込み力済んでいなかつた場合、即ち中間パリティの格納が済んでから新パリ ティを書き込む前に電源ダウンが起きた場合には、 ステップ S 1 4〜S 1 7の処 理を行う。 まず、 ステップ S 1 4で不揮発性メモリ 7 0に ί ^している新データ 8 2と中間パリティ 8 8の排他的論理和から新パリティを作成して、不揮発性メ モリ 7 0に格納する。 次にステップ S 1 5で不揮発性メモリ 7 0から新パリティ 9 0を読み出してデバイスアダプタ 3 0—2に転送して格納し、 ステップ S 1 5 で新パリティ 9 0をディスク装置 3 2— 2に^ して、 ステップ S 1 7で書込み を行う。 このように不揮発性メモリ- 7 0に電源ダウンの際に新データ 8 2及び中 間パリティ 8 8が保持できていれば、新データ 8 2と中間パリティ 8 8から新パ リティ 9 0を^^してパリティ用のディスク装置 3 2— に書き込む処理だけで 済み、最初からやり直す場合に比べて復旧処理をより高速化することができる。
図 4 8は本発明による復旧処理の第 3実施例の構成を示し、 この実施例に あっては図 4 9の機能ブ□ック図の不揮発性メモリ 7 0に示すように、処理段階 データ 8 0 , 新データ 8 2及び中間パリティ 8 8に加えて、更に新パリティ 9ひ も保持するようにしたことを特徵とする。更に、ノ ックアップ電源 3 6からのバ ックアツプ電源ライン 9 4をデバイスアダプタ 3 0— 1〜 3 0— 6の全てに接続 - し、電源ダウンの際にデバイスアダプタ 3 0— 1〜3 0— 6を動作状態とし、 デ イスク装置側から読み出した復旧デ一夕 8 4や旧パリティ 8 6の保持、 あるいは アクセス処理部 3 4側から^!した新データ 8 2や新パリティ 9 0の ができ るようにしたことを特徴とする。 この図 4 8及び図 4 9に示す第 3実施例によれ ば、電源ダウンの発生時で処理を中断すると、 その直前で得られたデータが不揮 発性メモリ 7 0及びデバイスアダプタ 3 0— 1, 3 0— 2にそのまま保持されて いるため、電源復旧後の復旧処理は電源ダウン力く起きた段階より 1つ前の段階か らの処理を再開すればよく、電源ダウンの前後における龍した処理を最小限に した高速の復旧処理を行うことができる。
更に、本発明の他の鶴例としては、 図 7の実施例と図 の難例を組 ^るようにしてもよい。 このためのハードウェア構成は、 図 7の 例のキヤ ッシュメモリ 2 6を不揮発性メモリとし、 図 3 9の実施例で不揮発性メモリ 7 0 に記憶している処理段階を示すデ一夕を格納すればよい。 また M P U 1 2により 処理機能は、 両者の各実施例の機能を合せて持たせればよい。
尚、上記の実施例はディスク装置として磁気ディスク装置を例にとるもの であったが、 これ以外に光ディスク装置によるディスクアレイであってもよいこ とは勿論である。 また本発明は、 実施例で示された数値による限定は受けない。 【産 m±の利用の可能性】
以上説明してきたように本発明によれば、 ディスクアレイに対する書込処 理の際に、新たな冗長情報を生成するために必要なデータをキヤッシュメモリに 格納していくことで、 ディスク装置からの読出処理を省くことができ、 冗長情報 をディスク装置に格納していても書込処理の実行時間を短縮し、 より高速の処理 を実現することができる。 また R A I D 4及び R A I D 相当の構成をもつディ スクアレイの書込処理中に電源ダウン力く起きても、 電源復旧後に書込処理を途中 から再開することで、 データの冗長性を維持した書込処理を完結させることがで き、 ディスクアレイ装置の信頼性をより一層、 向上させることができる。 更に、 不揮発性メモリへのデータ格納による保持で、 電源ダウン後の復旧処理を高速化 し、 より迅速な装置の立ち上げ力可能となる。

Claims

請求の範囲
1. ディスクアレイ装置に於いて、
データ格納用の »:のディスク装置と冗長情報格納用の 1つのディスク装置を 備えたディスクアレイと、
上位装置からの更新要求に基づき.、新たなデータ、更新前のデータおよび更新前 の冗長情報に基づいて新たな冗長情報を誠してディスクアレイのデータおよび 冗長情報を更新するアクセス処理手段と、
前記アクセス処理手段による 1回の更新処理の際に取扱うデータと冗長情報の少 なくとも 1つを記憶するキャッシュ記憶手段と、
前記アクセス処理手段でディスクアレイを更新する前に前記キヤッシュ記憶手段 から^前のデータを検索して前記ァクセス処理手段に供給して新たな冗長情報 を させるキャッシュ制御手段と、
を備えたことを特徴とする。
2. 請求の範囲 1のディスクアレイ装置に於いて、前記キャッシュ制御手 段は、前記キャッシュ記憶手段から検索データが得られなかった場合には、前記 アクセス処理手段に記憶なしを通知して更新後のデータを前記キヤッシュ記憶手 段に記憶すると共に直ちにディスクアレイに書き込むことを特徴とする。
3. 請求の範囲 1のディスクアレイ装置に於いて、前記アクセス処理手段 は、更新したデータと冗長情報の少なくとも 1つを前記キヤッシュ記憶手 の 新たに確保した領域で更新した後にディスクァレイに書き戻すことを特徴とする o
4. 請求の範囲 1のディスクアレイ装置に於いて、前記アクセス処理手段 は、 データと冗長情報の少なくとも 1つをキャッシュ記憶手社の新たに確保し た領域で複数回!^した後にディスクアレイに書き戻すことを特徵とする。 '
5. 請求の範囲 4のディスクアレイ装置に於いて、前記キャッシュ記憶手 段に前記ァクセス処理手段による更新されたデータのみを記憶した場合、前記ァ クセス処理手段は、 ¾f回数が所定回数に達するまでは、更新毎に新たな冗長情 報を^^することなく前記キヤッシュ記憶手 g±でデータを更新し、更新回数が 所定回数に達した時には、 キヤッシュ記憶手段上でデータを更新した後にディス クアレイから読出した更新前の冗長情報および前記キュッシュ記憶手段から読出 した最新の更新デ一夕と更新前のデ一夕から新たな冗長情報を生成し、 前記ディ スクアレイにデータおよび冗長情報を書き戻すことを特徴とする。
6. 請求の範囲 4のディスクアレイ装置に於いて、前記キャッシュ記憶手 段に前記ァクセス処理手段により更新された冗長情報のみを記憶する場合、前記 アクセス処理手段は、 更新回数が所定回数に達するまでは、 更新毎に新たな冗長 情報を生成することなく前記キヤッシュ記憶手段上でデータを更新し、 更新回数 力く所定回数に達した時には、 キヤッシュ記憶手段上でデータを更新した後にディ スクアレイから読出した更新前のデ一夕と前記キュッシュ記憶手段から読出した 最新の更新データと更新前の冗長情報とから新たな冗長情報を生成し、 ディスク ァレイにデータおよび冗長情報を書き戻すことを特徴とする。
7. 請求の範囲 4のディスクアレイ装置に於いて、 前記キャッシュ記憶手 段に前記ァクセス処理手段により更新されたデ一夕及び冗長情報を記憶する場合 、 前記アクセス処理手段は、 更新回数力《所定回数に達するまでは、 更新毎に新た な冗長情報を生成することなく前記キヤッシュ記憶手段上でデータを更新し、 更 新回数が所定回数に達した時には、 キヤッシュ記憶手段上でデータを更新した後 にキヤッシュ記憶手段から読出した更新前のデータと冗長情報および最新の更新 データから新たな冗長情報を生成し、前記ディスクアレイにデータおよび冗長情 報を書き戻すことを特徴とする。
8. 請求の範囲 1のディスクアレイ装置に於いて、 前記デイクスアレイ内 の各ディスク装置及びキヤッシュ記憶手段の空き領域にダミーデータおよびダミ 一冗長情報を格納し、前記ァクセス処理手段はデ一夕の更新時及び削除時に空き 領域のダミーデータ及びダミー冗長情報を含めて新たな冗長情報を生成し、 且つ ダミーデータ及びダミー冗長情報についてはディスクアレイから読出さずに予め 設定した値を使用することを特徴とする。
9. 請求の範囲 1のディスクアレイ装置に於いて、前記冗長情報としてパ リティデータを使用し、 前記アクセス処理手段は、 更新時に、 新たなデ一夕、 更 新前のデータおよび更新前のパリティデータの排他的論理和により新たなパリテ ィデータを^^することを特徴とする。
1 0. ディスクアレイ装置に於いて、
データ格納用の複数のデータ格納用ディスク装置と 1つの冗長情報格納用ディス ク装置を備えたディスクアレイと、
上位装置から書込処理を命令された際に、指定されたディスク装置の書込み位置 に格納している旧データを読出した後に上位装置から¾¾された新デー夕を書込 む書込手段と、
前記書込手段によるディスク書込み位置に対応する冗長情報用ディスク装置の格 納位置から旧冗長情報を読出し、前記旧冗長情報、 旧データおよび新データに基 づいて新冗長情報を賊した後に、前記旧冗長情報のディスク格納位置に新冗長 情報を書込む冗長情報更新手段と、
前記書込手段および冗長情報更新手段の処理段階を示す 理段階データおよび上 置から された新データを格納する不揮発性メモリ手段と、
を備えたことを特徴とする。
1 1. 請求の範囲 1 0のディスクアレイ装置に於いて、更に、電源投入時 に、前記不揮発性メモリ手段の処理段階データを参照し、書込み処理が途中で中 断されていた場合には、前記不揮発性メモリ手段に保持されている新デー夕を用 いて復旧処理を行う復旧手段を設けたことを特徴とする。
1 2. 請求の範囲 1 1のディスクアレイ装置に於いて、前記復旧手段は、 新データのディスク装置に対する書込完了前に電源ダウンが起きていた場合には 、書込手段により指定されたディスク装置の書込み位置に格納している旧データ を読出した後に前記不揮発性メモリ手段から読出した新データを書込む処理を行 わせ、次に前記冗長情報更新手段により前記書込手段によるディスク書込み位置 に対応する冗長情報用ディスク装置の格納位置から旧冗長情報を読出し、 旧冗長 情報、 旧データおよび新データに基づいて新冗長情報を賊した後に、前記旧冗 長情報のディスク格納位置に新冗長情報を書込む処理を行わせることを特徵とす る。
1 3. 請求の範囲 1 1のディスクアレイ装置に於いて、前記復旧手段は、 新冗長情報の冗長情報用ディスク装置に対する書込み完了前に電源ダウンが起き ていた場合には、 前記書込手段により新データを書込むディスク装置及び冗長情 報用ディスク装置以外の他のディスク装置の対応位置の格納データを読出す処理 を行わせ、 次に前記冗長情報更新手段により前記他のディスク装置の読出データ と不揮発性メモリ手段から読出した新デー夕とから新冗長情報を生成した後に、 前記旧冗長情報のディスク格納位置に新冗長情報を書込む処理を行わせることを 特徵とする。
1 4. 請求項 1 0記載のディスクアレイ装置に於いて、前記冗長情報更新 手段は、 旧冗長情報と旧デー夕から中間冗長情報を生成した後に該中間冗長情報 と新データから新冗長情報を生成し、 前記不揮発性メモリ手段は、 前記処理段階 データ及び新データに加えて前記中間冗長情報を格納することを特徴とする。
1 5. 請求項 1 4記載のディスクアレイ装置に於いて、 更に、電源投入時 に、 前記不揮発性メモリ手段の処理段階データを参照し、.書込み処理が途中で中 断されていた場合には、前記不揮発性メモリ手段に保持されている新データおよ び中間冗長情報を用いて復旧処理を行う復旧手段を設けたことを特徴とする。
1 6. 請求の範囲 1 5のディスクアレイ装置に於いて、 前記復旧手段は、 新データのディスク装置に対する書込完了前に電源ダウンが起きていた場合には 、 書込手段により指定されたディスク装置の書込み位置に格納している旧データ を読出した後に前記不揮発性メモリ手段から読出した新デ一夕を書込む処理を行■ わせ、 次に前記冗長情報更新手段により前記書込手段によるディスク書込み位置 に対応する冗長情報用ディスク装置の格納位置から旧冗長情報を読出し、 旧冗長 情報、 旧データおよび新デー夕に基づいて中間冗長情報の生成を経て新冗長情報 を生成した後に、 前記旧冗長情報のディスク格納位置に新冗長情報を書込む処理 を行わせることを特徴とする。
1 7. 請求の範囲 1 5のディスクアレイ装置に於いて、前記復旧手段は、 前記新データの書込完了後で中間冗長情報の不揮発性メモリ手段に対する格納前 に電源ダウン力く起きていた場合には、書込手段により新データを書込むディスク 装置及び冗長情報用ディスク装置以外の他のディスク装置の対応位置の格納デー タを読出す処理を行わせ、 次に前記冗長情報更新手段により前記他のディスク装 置の読出データと不揮発性メモリ手段から読出した新デ一タとから新冗長情報を 賊した後に、前記旧冗長情報のディスク格納位置に新冗長情報を書込む処理を 行わせることを特徵とする。
1 8. 請求の範囲 1 5のディスクアレイ装置に於いて、前記復旧手段は、 中間冗長情報の格納後で新データの書込み完了前に電源ダゥン力く起きていた場合 には、前 Ξ%長情報更新手段により前記不揮発性メモリ手段から新データと中間 冗長情報を読出して新冗長情報を生成した後に、前記旧冗長情報のディスク格納 位置に新冗長情報を書込む処理を行わせることを特徵とする。
1 9. 請求項 1 0記載のディスクアレイ装置に於いて、前記不揮発性メモ リ手段は、前 §己前記処理段階デ一夕及び新データに加え更に新冗長情報を格納す ることを特徵とする。
2 0. 請求項 1 9記載のディスクアレイ装置に於いて、更に、電源投入時 に、前記不揮発性メモリ手段の処理段階データを参照し、.書込み処理力途中で中 断されていた場合には、前記不揮発性メモリ手段に保持されている新データおよ び新冗長情報を用いて復旧処理を行う復旧手段を設けたことを特徵とする。
2 1. 請求の範囲 1 9のディスクアレイ装置に於いて、更に前記複数のデ イスク装置毎に設けたディスクアダプタにバックアツプ電源を供給し、電源ダウ ン時に旧データ及び旧冗長情報を保持可能としたことを特徴とする。
2 2, 請求の範囲 1 0のディスクアレイ装置に於いて、前記不揮発性メモ リ手段はパックアップ電源を備えたことを特徴とする
2 3. 請求の範囲 1ひのディスクアレイ装置に於いて、前記複数のディス ク装置の れぞれは、 1つのデータ単位に属する同一データの書込みを受けると 共に、予め定めたディスク装置を冗長情報の格納に使用することを特徴とする。
2 4. 請求の範囲 1ひのディスクァレイ装置に於いて、前記複数のディス ク装置のそれぞれは、 1つのデータ単位に属する同一データの書込みを受けると 共に、 データ書込み毎に冗長情報の格納に使用するディスク装置を異ならせるこ とを特徴とする。
2 5. 請求の範囲 1 0のディスクアレイ装置に於いて、前記書込手段と冗 長情報更新手段とを^ IJ的に動作させることを特徴とするディスクァレイ装置。
2 6. 請求の範囲 Γ0のディスクアレイ装置に於いて、前記冗長情報とし てパリティデータを使用することを特徴とする。
2 7. ディスクアレイ装置に於いて、
データ格納用の複数のディスク装置と冗長情報格納用の 1つのディスク装置を備 えたディスクアレイと、
上位装置からの更新要求に基づき、新たなデータ、 更新前のデータおよび更新前 の冗長情報に基づいて新たな冗長情報を生成してディスクアレイのデータおよび 冗長情報を更新するアクセス処理手段と、
前記ァクセス処理手段による 1回の更新処理の際に取扱うデータと冗長情報の少 なくとも 1つ及び前記ァクセス更新手段の処理段階を示す処理段階デー夕を記憶 する不揮発性のキヤッシュ記憶手段と、
前記アクセス処理手段でディスクアレイを更新する前に前記キヤッシュ記憶手段 から更新前のデー夕を検索して前記ァクセス処理手段に供給して新たな冗長情報 を生成させるキヤッシュ制御手段と、
を備えたことを特徴とする。
2 8. 請求の範囲 2 7のディスクアレイ装置に於いて、 更に、 電源投入時 に、 前記不揮発性のキヤッシュ記憶手段の記憶情報を参照して復旧処理を行う復 旧手段を設けたことを特徴とする。
PCT/JP1993/000663 1992-05-21 1993-05-20 Appareil de commande pour pile de disques WO1993023803A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE4392143A DE4392143C1 (de) 1992-05-21 1993-05-20 Platten-Array-Vorrichtung
US09/031,004 US5954822A (en) 1992-05-21 1998-02-26 Disk array apparatus that only calculates new parity after a predetermined number of write requests

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP4128975A JPH05324206A (ja) 1992-05-21 1992-05-21 ディスクアレイ装置
JP4/128975 1992-05-21
JP4269823A JP2857288B2 (ja) 1992-10-08 1992-10-08 ディスクアレイ装置
JP04269824A JP3122252B2 (ja) 1992-10-08 1992-10-08 ディスクアレイ制御方式
JP4/269823 1992-10-08
JP4/269824 1992-10-08

Publications (1)

Publication Number Publication Date
WO1993023803A1 true WO1993023803A1 (fr) 1993-11-25

Family

ID=27315849

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1993/000663 WO1993023803A1 (fr) 1992-05-21 1993-05-20 Appareil de commande pour pile de disques

Country Status (2)

Country Link
US (2) US5787460A (ja)
WO (1) WO1993023803A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5497457A (en) * 1994-10-17 1996-03-05 International Business Machines Corporation Redundant arrays of independent libraries of dismountable media with parity logging
EP0718766A2 (en) * 1994-12-21 1996-06-26 Symbios Logic Inc. Method of operating a disk drive array

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3409859B2 (ja) 1991-01-31 2003-05-26 株式会社日立製作所 制御装置の制御方法
US6874101B2 (en) * 1991-01-31 2005-03-29 Hitachi, Ltd. Storage unit subsystem
WO1993023803A1 (fr) * 1992-05-21 1993-11-25 Fujitsu Limited Appareil de commande pour pile de disques
JP3344907B2 (ja) 1996-11-01 2002-11-18 富士通株式会社 Raid装置及び論理ボリュームのアクセス制御方法
JP4499193B2 (ja) * 1997-04-07 2010-07-07 ソニー株式会社 記録再生装置及び記録再生方法
US6012123A (en) * 1997-06-10 2000-01-04 Adaptec Inc External I/O controller system for an independent access parity disk array
US6430701B1 (en) * 1998-01-27 2002-08-06 Aiwa Co., Ltd. Data recording and reproducing method and apparatus using plurality of data recording and reproducing units, and computer-readable recording medium
WO1999039347A1 (fr) * 1998-02-02 1999-08-05 Hitachi, Ltd. Procede de remplacement automatique en cours de lecture et unite de disques magnetiques utilisant ce procede
US6295577B1 (en) 1998-02-24 2001-09-25 Seagate Technology Llc Disc storage system having a non-volatile cache to store write data in the event of a power failure
US6256705B1 (en) * 1998-06-05 2001-07-03 International Business Machines Corporation System and method for organizing data stored in a log structured array
DE19826091A1 (de) * 1998-06-12 1999-12-16 Alcatel Sa Verfahren zum gesicherten Ändern von in einer Datenbank gespeicherten Daten, Datenbanksystem und damit ausgestattetes Netzelement
US6446220B1 (en) 1998-08-04 2002-09-03 International Business Machines Corporation Updating data and parity data with and without read caches
US6332197B1 (en) 1998-08-04 2001-12-18 International Business Machines Corp. System for updating data in a multi-adaptor environment
US6128762A (en) * 1998-08-04 2000-10-03 International Business Machines Corporation Updating and reading data and parity blocks in a shared disk system with request forwarding
US6272662B1 (en) 1998-08-04 2001-08-07 International Business Machines Corporation Distributed storage system using front-end and back-end locking
US6446237B1 (en) 1998-08-04 2002-09-03 International Business Machines Corporation Updating and reading data and parity blocks in a shared disk system
US6279138B1 (en) 1998-08-04 2001-08-21 International Business Machines Corporation System for changing the parity structure of a raid array
US6516426B1 (en) 1999-01-11 2003-02-04 Seagate Technology Llc Disc storage system having non-volatile write cache
US20030157292A1 (en) * 1999-06-23 2003-08-21 Dataplay, Inc. Miniature optical disk for data storage
JP2001034427A (ja) * 1999-07-23 2001-02-09 Fujitsu Ltd デバイス制御装置及び制御方法
US7007193B1 (en) 2000-01-07 2006-02-28 Storage Technology Corporation Method and system for reconstructing data serially arranged on a magnetic tape track
US6823398B1 (en) * 2000-03-31 2004-11-23 Dphi Acquisitions, Inc. File system management embedded in a storage device
US6990058B1 (en) 2000-04-03 2006-01-24 Dphi Acquisitions, Inc. Structure and method for storing data on optical disks
US6738333B1 (en) 2000-05-30 2004-05-18 Dphi Acquisitions, Inc. Format for recording data in a storage disk
US7051054B1 (en) 2000-05-30 2006-05-23 Dphi Acquisitions, Inc. Method and apparatus for emulating read/write file system on a write-once storage disk
WO2001093035A2 (en) * 2000-05-30 2001-12-06 Dataplay, Inc. Defect management system for write-once storage disk
JP2001356882A (ja) * 2000-06-13 2001-12-26 Nec Corp データ読み書き制御方法及びディスクアレイ装置並びにデータ読み書き制御用プログラムを記憶した記録媒体
US6513135B2 (en) 2000-08-02 2003-01-28 Hitachi, Ltd. Automatic read reassignment method and a magnetic disk drive
TW573299B (en) * 2000-08-31 2004-01-21 Dataplay Inc Double-sided digital optical disk and method and apparatus for making
US7062702B2 (en) * 2001-03-14 2006-06-13 Hewlett-Packard Development Company, L.P. Efficient parity operations
US6567891B2 (en) * 2001-03-14 2003-05-20 Hewlett-Packard Development Company, L.P. Methods and arrangements for improved stripe-based processing
US20020143958A1 (en) * 2001-03-30 2002-10-03 Montero Gabriel G. Method and apparatus for asynchronous time-based updates of http sessions
US7114001B2 (en) * 2001-05-11 2006-09-26 International Business Machines Corporation Predictive networking
US6996668B2 (en) 2001-08-06 2006-02-07 Seagate Technology Llc Synchronized mirrored data in a data storage device
US6904556B2 (en) * 2001-08-09 2005-06-07 Emc Corporation Systems and methods which utilize parity sets
US6871263B2 (en) * 2001-08-28 2005-03-22 Sedna Patent Services, Llc Method and apparatus for striping data onto a plurality of disk drives
US7159080B1 (en) * 2001-12-20 2007-01-02 Network Appliance, Inc. System and method for storing storage operating system data in switch ports
US7146522B1 (en) * 2001-12-21 2006-12-05 Network Appliance, Inc. System and method for allocating spare disks in networked storage
US7650412B2 (en) * 2001-12-21 2010-01-19 Netapp, Inc. Systems and method of implementing disk ownership in networked storage
US7296068B1 (en) 2001-12-21 2007-11-13 Network Appliance, Inc. System and method for transfering volume ownership in net-worked storage
US7007220B2 (en) * 2002-03-01 2006-02-28 Broadlogic Network Technologies, Inc. Error correction coding across multiple channels in content distribution systems
EP1506482A2 (en) * 2002-05-14 2005-02-16 Koninklijke Philips Electronics N.V. Hard disk drive system, method of using such a system and apparatus
US7734867B1 (en) * 2002-05-17 2010-06-08 Hewlett-Packard Development Company, L.P. Data storage using disk drives in accordance with a schedule of operations
US6922752B2 (en) * 2002-08-23 2005-07-26 Hewlett-Packard Development Company, L.P. Storage system using fast storage devices for storing redundant data
US7979632B2 (en) * 2002-09-06 2011-07-12 Hewlett-Packard Development Company, L.P. Storage system including a fast storage device for storing redundant data
US7281177B2 (en) * 2003-07-14 2007-10-09 International Business Machines Corporation Autonomic parity exchange
US7254754B2 (en) * 2003-07-14 2007-08-07 International Business Machines Corporation Raid 3+3
US8726129B1 (en) * 2004-07-23 2014-05-13 Hewlett-Packard Development Company, L.P. Methods of writing and recovering erasure coded data
JP4394533B2 (ja) * 2004-07-28 2010-01-06 株式会社日立製作所 ディスクアレイシステム
JP2006107311A (ja) * 2004-10-08 2006-04-20 Hitachi Ltd ディスクアレイ装置およびその制御方法
US20060195657A1 (en) * 2005-02-28 2006-08-31 Infrant Technologies, Inc. Expandable RAID method and device
JP4435705B2 (ja) * 2005-03-14 2010-03-24 富士通株式会社 記憶装置、その制御方法及びプログラム
US7779294B2 (en) * 2005-04-15 2010-08-17 Intel Corporation Power-safe disk storage apparatus, systems, and methods
US7610507B2 (en) * 2006-09-08 2009-10-27 Agere Systems Inc. High-speed redundant disk controller methods and systems
US8370715B2 (en) 2007-04-12 2013-02-05 International Business Machines Corporation Error checking addressable blocks in storage
JP4819116B2 (ja) * 2008-12-19 2011-11-24 富士通株式会社 制御装置、ストレージ装置および制御方法
JP5404804B2 (ja) * 2009-05-25 2014-02-05 株式会社日立製作所 ストレージサブシステム
JP5534024B2 (ja) 2010-10-21 2014-06-25 富士通株式会社 ストレージ制御装置およびストレージ制御方法
US20170097887A1 (en) * 2015-10-02 2017-04-06 Netapp, Inc. Storage Controller Cache Having Reserved Parity Area
KR102498208B1 (ko) * 2016-06-07 2023-02-10 삼성전자주식회사 여분의 용량을 포함하는 메모리 장치 및 이를 포함하는 적층 메모리 장치
KR20180051703A (ko) * 2016-11-07 2018-05-17 삼성전자주식회사 Raid 방식으로 데이터를 저장하는 스토리지 장치
CN109725824A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 用于向存储系统中的盘阵列写入数据的方法和设备
US11016848B2 (en) * 2017-11-02 2021-05-25 Seagate Technology Llc Distributed data storage system with initialization-less parity
WO2019183958A1 (zh) * 2018-03-30 2019-10-03 华为技术有限公司 数据写入方法、客户端服务器和系统
WO2020257977A1 (en) * 2019-06-24 2020-12-30 Micron Technology, Inc. Memory device with parity data system and method
US11928497B2 (en) * 2020-01-27 2024-03-12 International Business Machines Corporation Implementing erasure coding with persistent memory
US11768599B2 (en) * 2021-07-13 2023-09-26 Saudi Arabian Oil Company Managing an enterprise data storage system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63115251A (ja) * 1986-10-31 1988-05-19 Nec Corp デイスクキヤツシユ制御装置
JPS6428755A (en) * 1987-07-24 1989-01-31 Hitachi Ltd Data block updating system

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5195100A (en) * 1990-03-02 1993-03-16 Micro Technology, Inc. Non-volatile memory storage of write operation identifier in data sotrage device
US5274799A (en) * 1991-01-04 1993-12-28 Array Technology Corporation Storage device array architecture with copyback cache
JP3409859B2 (ja) * 1991-01-31 2003-05-26 株式会社日立製作所 制御装置の制御方法
US5333305A (en) * 1991-12-27 1994-07-26 Compaq Computer Corporation Method for improving partial stripe write performance in disk array subsystems
US5341381A (en) * 1992-01-21 1994-08-23 Tandem Computers, Incorporated Redundant array parity caching system
US5418921A (en) * 1992-05-05 1995-05-23 International Business Machines Corporation Method and means for fast writing data to LRU cached based DASD arrays under diverse fault tolerant modes
WO1993023803A1 (fr) * 1992-05-21 1993-11-25 Fujitsu Limited Appareil de commande pour pile de disques
US5408644A (en) * 1992-06-05 1995-04-18 Compaq Computer Corporation Method and apparatus for improving the performance of partial stripe operations in a disk array subsystem
US5315602A (en) * 1992-08-12 1994-05-24 Digital Equipment Corporation Optimized stripe detection for redundant arrays of disk drives
US5513192A (en) * 1992-08-28 1996-04-30 Sun Microsystems, Inc. Fault tolerant disk drive system with error detection and correction
US5666511A (en) * 1992-10-08 1997-09-09 Fujitsu Limited Deadlock suppressing schemes in a raid system
US5867640A (en) * 1993-06-01 1999-02-02 Mti Technology Corp. Apparatus and method for improving write-throughput in a redundant array of mass storage devices
JPH086854A (ja) * 1993-12-23 1996-01-12 Unisys Corp アウトボードファイルキャッシュ外部処理コンプレックス
US5774643A (en) * 1995-10-13 1998-06-30 Digital Equipment Corporation Enhanced raid write hole protection and recovery
US5860090A (en) * 1995-10-20 1999-01-12 Informix Software, Inc. Append-only storage in a disk array using striping and parity caching
US5761705A (en) * 1996-04-04 1998-06-02 Symbios, Inc. Methods and structure for maintaining cache consistency in a RAID controller having redundant caches
US5860091A (en) * 1996-06-28 1999-01-12 Symbios, Inc. Method and apparatus for efficient management of non-aligned I/O write request in high bandwidth raid applications
US5872800A (en) * 1996-09-16 1999-02-16 Cirrus Logic, Inc. Write verify method for correcting unrecoverable sectors in a disc storage system using track level redundancy
US5844919A (en) * 1996-09-16 1998-12-01 Cirrus Logic, Inc. Sector and track level error correction system for disc storage systems
US5835698A (en) * 1996-09-20 1998-11-10 Novell, Inc. Unilaterally-controlled, time-insensitive, data-link recovery apparatus and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63115251A (ja) * 1986-10-31 1988-05-19 Nec Corp デイスクキヤツシユ制御装置
JPS6428755A (en) * 1987-07-24 1989-01-31 Hitachi Ltd Data block updating system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5497457A (en) * 1994-10-17 1996-03-05 International Business Machines Corporation Redundant arrays of independent libraries of dismountable media with parity logging
EP0718766A2 (en) * 1994-12-21 1996-06-26 Symbios Logic Inc. Method of operating a disk drive array
EP0718766A3 (en) * 1994-12-21 1999-03-17 Hyundai Electronics America Method of operating a disk drive array

Also Published As

Publication number Publication date
US5954822A (en) 1999-09-21
US5787460A (en) 1998-07-28

Similar Documents

Publication Publication Date Title
WO1993023803A1 (fr) Appareil de commande pour pile de disques
US5089958A (en) Fault tolerant computer backup system
US8924637B2 (en) Flash memory storage system
US6058489A (en) On-line disk array reconfiguration
US6052799A (en) System and method for recovering a directory for a log structured array
US7721143B2 (en) Method for reducing rebuild time on a RAID device
US6330642B1 (en) Three interconnected raid disk controller data processing system architecture
US5959860A (en) Method and apparatus for operating an array of storage devices
US5579474A (en) Disk array system and its control method
US7281089B2 (en) System and method for reorganizing data in a raid storage system
US5596709A (en) Method and apparatus for recovering parity protected data
US5325519A (en) Fault tolerant computer with archival rollback capabilities
JP3177242B2 (ja) データ記憶装置における書込みオペレーション識別子の不揮発性メモリ記憶
US6766491B2 (en) Parity mirroring between controllers in an active-active controller pair
US6151685A (en) System and method for recovering a segment directory for a log structured array
US6886075B2 (en) Memory device system and method for copying data in memory device system
US20010018728A1 (en) Data storage system having redundant solid state data storage device
JPH0675708A (ja) アレイ型記録装置
JPH06202817A (ja) ディスクアレイ装置及びそのデータ更新方法
GB2460767A (en) Updating firmware of a disk drive in a redundant array
JP2857288B2 (ja) ディスクアレイ装置
JPH06230903A (ja) ディスクアレイ装置の障害回復方法、およびディスクアレイ装置
JP3122252B2 (ja) ディスクアレイ制御方式
JPH07306758A (ja) ディスクアレイ装置及びその制御方法
KR19980047273A (ko) 레이드 레벨 5 시스템에서 캐쉬 관리 방법

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): DE US