Abstract:
A RAID apparatus includes a plurality of recording devices, a first adaptor connected to a first interface which is connected to a high-level apparatus, a controller for controlling processing of data transmitted by the high-level apparatus, and a second adaptor that connects to a second interface connected to a plurality of recording devices. The controller has a first memory area in which said data are stored, a second memory area used for a write-back of the data in said plurality of recording devices, a write-back information control unit controlling a write-back type of data stored in the first memory area and a usage state of the second memory area, a write-back data determination unit for determination of data to be written-back based on the write-back information, and a write-back execution unit for executing a write-back of the data to be written back on the plurality of recording devices.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is related to and claims priority to Japanese patent application no. 2007-221721 filed on Aug. 28, 2007 in the Japan Patent Office, the entire contents of which are incorporated by reference herein. 
     BACKGROUND 
     1. Field 
     The present invention relates to a RAID apparatus, a controller of the RAID apparatus and a write-back control method of the RAID apparatus. 
     2. Description of the Related Art 
     Hard disk drives characterized by data non-volatility and high capacity are in widespread use as external recording devices of computers. A Redundant Arrays of Independent (Inexpensive) Disks (RAID) apparatus is used for duplicating data and storing the data in a plurality of hard disk drives, or storing the data with redundant information such as parity data. 
     A RAID controller apparatus controlling data transmission between the RAID apparatus and a host computer may be equipped with a high capacity cache memory. The high capacity cache memory may buffer data to improve a data rate. The RAID controller connects to a plurality of hard disk drives and controls them in accordance with each RAID level. 
     With a RAID apparatus, when the host computer writes data, the data are stored in the cache memory and then written back to the hard disk drives asynchronously. The data write-back to the hard disk drives is executed from the least-frequently accessed data with the Least Recently Used (LRU) method in consideration of overall performance of the RAID apparatus. 
     For a typical RAID apparatus, a summation of the capacities of the hard disk drives is much higher than a capacity of the cache memory. Therefore, efficient write-back is required to increase free space of the cache memory to use the RAID apparatus in an effective way. 
     However, a load on the hard disk drive will be heavy and the write-back efficiency of the entire RAID apparatus will be reduced if the write-backs are concentrated on a specific hard disk drive. Hence, the hard disk drive that is frequently used for the write-back is exempt from a write-back scheduling. 
     A RAID apparatus needs a buffer to calculate the parity in the write-back when supporting a RAID4, RAID5 or RAID6 level. Consequently, the more hard disk drives for RAID4, RAID5 or RAID6 levels are used, the more buffers are needed. Needing more buffers causes a problem in that even when the loads on the hard disk drives are light, the write-back process may be suspended due to a buffer shortage. 
     Other accesses to the cache memory are exclusively controlled during the writing-back process. Thus, when the write-back process is suspended, other processes commanded by the host computer are interfered with for a certain amount of time. In addition, when the write-back being processed is revoked due to RAS processing, the withdrawal takes time. 
     SUMMARY 
     In accordance with an aspect of an embodiment, a RAID apparatus includes a plurality of recording devices, a first adaptor that connects to a first interface connected to a high-level apparatus, a controller for controlling processing of data transmitted by the high-level apparatus, and a second adaptor that connects to a second interface connected to a plurality of recording devices in which the data are stored. The controller has a first memory area in which the data are stored, a second memory area used for a write-back of the data in the plurality of recording devices, a write-back information control unit controlling a write-back type of data stored in the first memory area and a usage state of the second memory area, a write-back data determination unit for determination of data to be written-back based on the write-back information, and a write-back execution unit for executing a write-back of the data to be written back on the plurality of recording devices. 
     These together with other aspects and advantages which will be subsequently apparent, reside in the details of construction and operation as more fully hereinafter described and claimed, reference being had to the accompanying drawings forming a part hereof, wherein like numerals refer to like parts throughout. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a functional block diagram showing a structure of the RAID apparatus in this embodiment; 
         FIG. 2  is an explanatory diagram of a cache data management with the LRU method; 
         FIG. 3  is a flow chart showings processes to determine data to be written back by a write-back scheduler; and 
         FIG. 4  is a functional block diagram showing a structure of a computer executing a RAID control program in this embodiment. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Reference may now be made in detail to embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to like elements throughout. 
     Referring to accompanying drawings, a preferred embodiment of the RAID apparatus, the controller of the RAID apparatus and the write-back control method of the RAID apparatus will be discussed. 
     First, the structure of the RAID apparatus in this embodiment will be discussed.  FIG. 1  is a functional block diagram showing the structure of the RAID apparatus in this embodiment. As shown in  FIG. 1 , a RAID apparatus  1  includes a plurality of RAID groups  10  and a RAID control apparatus  12 . This RAID apparatus  1  supports RAID 4, RAID 5, RAID 6 and other RAID levels. 
     In  FIG. 1 , the RAID apparatus  1  includes six RAID groups of RAID logical units (RLU)  00 - 05 . Of the RLUs, a RLU  04  and a RLU  05  are RAID 1 level. A RLU  00  and a RLU  01  are RAID 5 level. The RLU  00  includes 5 hard disk drives: 4 of which are for data storage, 1 of which is for parity storage. The RLU  01  includes 16 hard disk drives: 15 of which are for data storage, 1 of which is for parity storage. A RLU  02  and a RLU  03  are RAID 1+0 level. The RLU  02  includes 8 hard disk drives: 4 of which are for data, 4 of which are for mirroring. The RLU  03  includes 16 hard disk drives: 8 of which are for data, 8 of which are for mirroring. 
     The RAID control apparatus  12  is an apparatus for controlling data write to the RAID groups  10  and data read from the RAID groups  10 . The RAID control apparatus  12  has a channel adopter  13  for controlling data transmission with the host computer  11 , a device adaptor  14  for controlling data transmission with the RAID groups  10  and a central controller  15 . 
     The central controller  15  is an apparatus for controlling the RAID control apparatus  12  entirely. The central controller  15  has a cache memory  16 , a cache memory controller  17 , a RAID apparatus controller  18 , a buffer controller  19 , a write-back unit  41  and a write-back scheduler  42 . 
     The cache memory  16  is a memory for buffering data transmitted between the host computer  11  and the RAID groups  10 . The cache memory controller  17  is a controller for controlling the cache memory  16  and cache data states. The cache data states are classified such as: a state that the data stored in the cache is written in the hard disk drive or is not written in the hard disk drive, in other words, whether the date is dirty data or not, a state that the data are being written or not, or a state that another exclusive process is being executed or not. The cache memory controller  17  controls the cache data with the LRU method. 
       FIG. 2  is the explanatory diagram of the cache data management with the LRU method. As shown in  FIG. 2 , the data stored in the cache memory  16  of the RAID control apparatus  12  is ranked from the Most Recently Used (MRU) level to the Least Recently Used (LRU) level in accordance with a use of the data by the host computer  11 . When the host computer  11  accesses the data stored in the cache memory  16 , such situation is considered as a cache hit and the data are ranked at the MRU level as the most frequently accessed data. By contrast, the dirty data are written back to the RAID groups  10  asynchronously. 
     A RAID apparatus controller  18  is a controller for managing information on the RAID groups  10 . The RAID apparatus controller  18  manages information on the write-back types according to the RAID levels of each RAID group  10 . The information on the write-back types of each RAID group is information about whether the buffer for the parity calculation is needed on the write-back, and information on the loads on the hard disk drives. The buffer controller  19  is a controller for controlling the buffers to generate parity of the cache data in RAID 4, RAID 5 or RAID 6 when the data are written back. The information on the write-back types of each RAID group controlled by the RAID controller  18  and the information on the number of buffer requests in a queue controlled by a buffer controller  19  construct the write-back information for the write-back control as described later. 
     The write-back unit  41  is a processing unit to execute the write-back of the cache data. The cache data in RAID 4, RAID 5 or RAID 6 is written across a full strip bandwidth or in a part of the strip. A large write is a write-back in which all of the data are written in the full stripe. Meanwhile, a small write is a write-back in which the data in the stripe is partially renewed. 
     For the large write, the write-back unit  41  executes the write-back according to the following procedures. 1). Reserve the buffer. 2). Generate a new parity from the dirty data in a cache and then write the new parity in the buffer. 3). Write the dirty data in the cache and the new parity in the buffer on disks. 4). Free up the buffer. 
     For the small write, the write-back unit  41  executes the write-back according to the following procedures. 1). Reserve a buffer. 2). Read old data and an old parity from the disks and write them in the buffer. 3). Generate a new parity from the dirty data in the cache and the old data and the old parity in the buffer and then write the new parity in the buffer. 4). Rewrite the dirty data in the cache and the new parity in the buffer on the disks. 5). Free up the buffer. 
     The write-back scheduler  42  is a processor that determines cache data to be written back and commands a write-back to the write-back unit  41 .  FIG. 3  is the flow chart illustrating the processes of write-back target determination processes by the write-back scheduler  42 . The write-back target determination processes are processed when there is no disk access requested by the host computer  11 . 
     As shown in  FIG. 3 , the write-back scheduler  42  judges whether the dirty data exists or not (operation S 101 ). When there is no dirty data, the write-back scheduler  42  completes the determination process. Whereas, when the dirty data exists, the write-back scheduler unit  42  selects dirty data in order from the LRU level (operation S 102 ). Subsequently, the write-back scheduler  42  judges whether the dirty data are being written back or another exclusive process is being executed based on the information managed by the cache memory manager  17  (operation S 103 ). 
     Thereafter, when the dirty data are not being written or another process is being executed, the write-back scheduler  42  judges whether the dirty data are in RAID 4, RAID 5 or RAID 6 (operation S 104 ). In other words, the write-back scheduler  42  judges whether the dirty data needs the buffer to calculate the parity in the write-back (write-back type). When the dirty data are not in RAID 4, RAID 5, or RAID 6, the determination process proceeds to a operation S 106 . In other words, when the dirty data does not need the buffer for the parity calculation in the write-back regardless of the buffer queuing state, the determination process proceeds to a operation S 106 . Thus, the write-back process is efficiently executed. Meanwhile, when the dirty data are in RAID 4, RAID 5, or RAID 6, the write-back scheduler  42  judges whether the number of the buffers requests in the queue is equal to or less than the arbitrary number N based on the information managed by the buffer controller  19  (operation S 105 ). 
     When the number of buffer requests in the queue is equal to or less than the specific threshold N, the determination process proceeds to a operation S 106 . Then the write-back scheduler  42  judges whether the loads on the hard disk drives of the RAID groups to store dirty data are equal to or less than the threshold based on the information managed by the RAID apparatus controller  18  (operation S 106 ). When the number of the buffer requests in the queue is equal to or less than the threshold, the write-back scheduler  42  commands the write-back unit  41  to write back the dirty data (operation S 107 ). 
     Meanwhile, no write-back is commanded and the determination process proceeds to operation S 108  when the loads on the hard disk drives of the RAID groups in which the dirty data are stored is not less than the threshold, or when the number of buffer requests in the queue is not less than the arbitrary number N, or when the dirty data are being written back or another exclusive process is being executed. 
     Then the write-back scheduler  42  judges whether there is other dirty data to be processed (operation S 108 ). When there is other dirty data to be processed, the determination process goes back to the operation S 102  and select next is completed. 
     As mentioned above, in this embodiment, the buffer controller  19  manages the information including the number of buffer requests in the queue. When the dirty data are in RAID 4, RAID 5, or RAID 6 and the number of buffer requests in the queue is not less than the arbitrary number N, the write-back scheduler  42  does not write back the dirty data. Thus, the suspensions of the write-back process attributed to the buffer request can be reduced and therefore the write-back can be executed efficiently. In addition, decreasing the arbitrary number N helps to reduce buffer request queuing. Hence, the free space of the cache memory can be increased and the performance of the RAID apparatus can be fully exercised. 
     The RAID apparatus having been described in this embodiment can be structured on a typical computer system basis.  FIG. 4  is the structure block diagram of the computer system, i.e., the structure block diagram of a hardware environment. 
     As shown in  FIG. 4 , the computer system has a central processing unit (CPU)  20 , a read-only memory (ROM)  21 , a random-access memory (RAM)  22 , a communication interface  23 , a recording device  24 , an I/O device  25 , a potable recording medium reader  26  and a bus  27  that connects with all these components. 
     A recording medium in various forms such as a hard disk or a magnetic disk can be used as the recording device  24 . In the recording device  24  or in the ROM  21 , the RAID control program whose procedures are partially illustrated in the flow chart of  FIG. 3  is stored. The write-back in this embodiment can be executed by processing the RAID control program by the CPU  20 . 
     The RAID control program provided by a program provider  28  can be stored in the recording device  24  via a network  29  and the communication interface  23 . Alternatively, the RAID control program can be stored in a commercially available portable recording medium  30 . The commercially available portable recording medium  30  is mounted on the portable recording medium reader  26  and executed by the CPU  20 . A recording medium in various forms such as a CD-ROM, a flexible disk, an optical disk, a magneto-optical disk or a DVD can be used as the portable recording medium  30 . The write-back in this embodiment can be executed by reading the RAID control program stored in the recording medium by the portable recording medium reader  26 . 
     A micro controller unit (MCU) or a micro processing unit (MPU) can be used instead of the CPU  20  of the computer system described in this specification. 
     Further, according to an aspect of the embodiments, any combinations of the described features, functions and/or operations can be provided. 
     The many features and advantages of the embodiments are apparent from the detailed specification and, thus, it is intended by the appended claims to cover all such features and advantages of the embodiments that fall within the true spirit and scope thereof. Further, since numerous modifications and changes will readily occur to those skilled in the art, it is not desired to limit the inventive embodiments to the exact construction and operation illustrated and described, and accordingly all suitable modifications and equivalents may be resorted to, falling within the scope thereof.