WO2011102429A1 - ストレージ装置、その制御方法およびシステム管理プログラム - Google Patents

ストレージ装置、その制御方法およびシステム管理プログラム Download PDF

Info

Publication number
WO2011102429A1
WO2011102429A1 PCT/JP2011/053413 JP2011053413W WO2011102429A1 WO 2011102429 A1 WO2011102429 A1 WO 2011102429A1 JP 2011053413 W JP2011053413 W JP 2011053413W WO 2011102429 A1 WO2011102429 A1 WO 2011102429A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
disk
backup
primary
state
Prior art date
Application number
PCT/JP2011/053413
Other languages
English (en)
French (fr)
Inventor
治夫 横田
諭之 引田
Original Assignee
国立大学法人 東京工業大学
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 国立大学法人 東京工業大学 filed Critical 国立大学法人 東京工業大学
Priority to JP2012500644A priority Critical patent/JP5808018B2/ja
Priority to US13/579,974 priority patent/US9086812B2/en
Publication of WO2011102429A1 publication Critical patent/WO2011102429A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to a storage apparatus that includes a plurality of data disks each having a primary data area and a backup data area, and stores one data in a primary data area of one data disk and a backup data area of another data disk, and Regarding control.
  • Enumerating the main methods in the past for example, a method that aggregates frequently accessed data to some data disks using the property that there is a bias in access to the disk among a plurality of data disks. It has been. Also, a technique is known in which the number of rotations of the data disk is kept low when the data disk is rotating and is in an idle state indicating that no writing process or reading process is performed. In addition to the main data disk that stores the data, a cache disk for access that stores the same data is prepared, and the frequency of access to the data disk is reduced by devising the cache algorithm. Is also known.
  • Non-Patent Document 1 using the locality of data access, frequently accessed data is collected in a small number of read-only cache disks, and the majority of other data disks are rotated as much as possible.
  • Non-Patent Document 1 attention is paid only to data cache, and storage reliability is not considered.
  • the main data disk storing data in the storage apparatus has a failure such as a crash for some reason, it cannot be handled because there is no copy.
  • the backup side disk is added to increase the reliability, the storage apparatus becomes large and the manufacturing cost and power consumption increase.
  • the conventional method has a problem in that it does not consider the reliability of data that is important as a storage apparatus even if the power saving is realized by aiming at power saving and ensuring performance.
  • the present invention has been made in view of the above problems, and in a storage apparatus having a plurality of data disks each having a primary data area and a backup data area, the performance and reliability are ensured.
  • the issue is to save power.
  • a storage device includes a plurality of data disks in which a storage area of the disk is logically divided into one primary data area and one or more backup data areas; Control for storing data to be stored in one of the data disks in the primary data area of the data disk in response to a write request, and storing the data in a backup data area of at least one other data disk
  • the system management means indicates the normal rotation state of the data disk and a predetermined low-speed rotation state or a stop state lower than the normal rotation number.
  • Disk rotation state detection means for detecting which state is, and A disk rotation state control means for switching the rotation state of the data disk to the normal rotation state or the normal rotation pause state, and the rotation state of the data disk selected from the plurality of data disks in response to a write request or a read request Is controlled to switch the rotation state to the normal rotation state by the disk rotation state control means when the disk is in the normal rotation state, and is set as a write target when the data disk is in the normal rotation state.
  • Data placement control means for performing a process of moving data to the selected data disk or a process of moving data to be read from the selected data disk.
  • the storage apparatus can place the two data disks for ensuring reliability in the normal rotation pause state as much as possible, and can return to the normal rotation state when there is a write request or a read request.
  • the normal rotation pause state does not only indicate a state where the rotation is stopped, but also indicates a low-speed rotation state where the rotation is performed at a rotation speed lower than the normal rotation speed.
  • the storage apparatus can save power by not rotating the primary disk and the backup disk at all times, but leaving as many data disks as possible in a normal rotation pause state. it can. Therefore, the storage apparatus can save power while ensuring its performance and reliability.
  • the data placement control means includes a primary data disk having a primary data area associated with the data to be written at the time of the write request, and the primary side data disk.
  • One or more backup-side data disks each having a backup data area associated as a data disk backup are selected, and it is detected that the primary-side or backup-side data disk is in the normal rotation pause state. If the data disk is spun up to the normal rotation state by the disk rotation state control means and then the data disk is accessed, and the data requested by the write request when the data disk is in the normal rotation state To move to the data disk When the read request is made, it is detected that the selected data disk on the primary side or the backup side is in the normal rotation pause state.
  • the disk rotation state control means Prioritize access to the disk, and when the data disk is in the normal rotation state, perform processing to move the data targeted by the read request from the data disk, and at the time of the read request, the selected primary side
  • the disk rotation state control means causes the data rotation-side data disk to have a longer time in the normal rotation pause state. Spin up until the data disk is accessed and the data disk It is preferred that the data disk is the process of moving the data to which the read request is targeted when the usually rotating state from the data disk.
  • the storage apparatus causes the data arrangement control means to spin up to the normal rotation state by the disk rotation state control means. Then access the data disk.
  • the storage apparatus accesses the data disk, and both data disks are In the normal rotation pause state, only one data disk is spun up and accessed. That is, the storage apparatus can ensure a normal rotation pause state of one of the two data disks for ensuring reliability for a long time.
  • the storage apparatus when both data disks are in the normal rotation pause state, the reference for selecting the data disk to be spun up is the longer side of the normal rotation pause state.
  • the total number of data disks can reduce the number of spin-ups of each data disk and the number of times of switching to the normal rotation pause state.
  • the storage apparatus can save power by placing as many data disks as possible in the normal rotation pause state. Therefore, the storage apparatus can save power while ensuring its performance and reliability.
  • the storage apparatus performs a read process from one of the primary data area and the backup data area after spinning up the primary-side or backup-side data disk that was normally in a rotation suspension state at the time of a read request. .
  • the storage apparatus further includes a plurality of cache memories whose storage areas are logically divided into one primary data area and one or more backup data areas,
  • a cache memory capacity detecting unit for detecting a queue length and detecting the current memory capacity state by comparing the detected queue length with a predetermined threshold value for classifying the memory capacity state;
  • the data placement control means temporarily stores data to be stored in one of the data disks in response to a write request in a primary data area of the cache memory associated with the data disk; Storing the data in a backup data area of at least one other cache memory; When it is detected that the queue length of the cache memory is in the memory capacity within the threshold range for moving data to the disk, the data stored in the cache memory is moved to the data disk. It is preferable to constitute so as to be.
  • the storage apparatus since the storage apparatus includes the cache memory that caches data on the data disk, the frequency of access to the data disk can be reduced. In other words, the storage device can save as many data disks as possible in a normal rotation pause state, and thus can save power. Further, since the primary data and the backup data are held in both the cache memory and the data disk, the reliability can be further improved. For example, if the power supplies of the cache memory on the primary side and the backup side are held, data can be held even if one of them crashes.
  • the storage apparatus further includes a cache disk indicating a read-only disk for storing data obtained by copying the original data stored in the data disk, and the data arrangement control means includes the data disk.
  • the data stored in is copied and stored in the cache disk, and at the time of a read request, the cache disk is given priority over the data disk, and the data targeted by the read request is read. preferable.
  • the storage apparatus since the storage apparatus includes the read-only cache disk, the frequently accessed data stored in each data disk is aggregated in the cache disk, so that the data disk The frequency of access can be lowered.
  • the storage device can save as many data disks as possible in a normal rotation pause state, and thus can save power.
  • the storage apparatus control method logically combines a disk storage area into one primary data area and one or more backup data areas.
  • a storage apparatus control method comprising: a system management means for allocating and managing data in the data disk and the cache memory in response to a memory capacity state of the cache memory and an external write request or read request Therefore, the system management means associates with the data targeted by the write request at the time of the write request.
  • Primary data processing for writing the data as primary data to a primary data disk having a designated primary data area, and the data for a backup data disk having a backup data area associated with the data.
  • Backup data processing to write the data as backup data, and the primary data processing temporarily stores the data targeted for the write request to the first data disk that is the primary data disk.
  • a rotation state of the first data disk being a normal rotation state; and a predetermined low-speed rotation state being lower than the normal rotation number or being stopped Normal rotation pause state indicating the state
  • a primary-side write step for writing data to the first data disk when the state is the normal rotation state wherein the primary-side write step includes the first cache memory Storing the data stored in the primary data area in the primary data area of the first data disk and the data associated with the backup data area of the first data disk are stored The data stored in the backup data area of the second cache memory is transferred to the first data Data stored in the primary data area of the first cache memory, wherein the backup data processing temporarily stores the data targeted by the write request.
  • the rotation state of the second data disk associated as the backup of the first data disk is a normal rotation state and the normal rotation pause state Determining when the second data disk is in the normal rotation pause state, switching the rotation state to the normal rotation state when the rotation state of the second data disk is the normal rotation pause state,
  • the second data disk A backup side write step for writing data to the backup side, wherein the backup side write step converts the data stored in the backup data area of the third cache memory to the second cache memory Storing data in the backup data area of the data disk and data stored in the primary data area of the fourth cache memory storing data associated with the primary data area of the second data disk; And storing in the primary data area of the second data disk.
  • the storage apparatus control method is executed by the system management means including primary data processing and backup data processing at the time of a write request. Reliability can be increased. Further, the system management means performs a process of temporarily caching data to be stored in the primary data area of the data disk in the cache memory and storing the data in the data disk in the primary data process.
  • the data disk can be kept in a normal rotation pause state. Further, the data disk is in a normal rotation state while the process of storing data from the cache memory to the data disk is performed.
  • the system management means continuously updates the data associated with the backup data area of the data disk in the normal rotation state during the period in which the data disk is in the normal rotation state. . That is, the system management means stores the data stored in the backup data area of the cache memory in which the data associated with the backup data area of the data disk is stored in the backup data area of this data disk.
  • the system management means temporarily caches the backup for the data stored in the primary data area of the data disk in the backup data processing, and stores it in the corresponding data disk.
  • the system management means continuously updates the data associated with the primary data area of the data disk in the normal rotation state during the period in which the data disk is in the normal rotation state. . Therefore, also in this backup data processing, the power consumption can be reduced as in the case of the primary data processing by continuously updating the two data areas during the normal rotation state of the data disk.
  • the storage apparatus control method provides a plurality of data disks in which the storage area of the disk is logically divided into one primary data area and one or more backup data areas.
  • a plurality of cache memories logically divided into one primary data area and one or a plurality of backup data areas, and data copied from the original data stored in the data disk.
  • the data disk, the cache memory, and the cache in accordance with a cache disk indicating a read-only disk, a rotation state of the data disk, a memory capacity state of the cache memory, and an external write request or read request System management means to place and manage data on disk
  • the system management means applies a primary data disk having a primary data area associated with data targeted by the write request at the time of the write request.
  • the primary data processing temporarily stores the data targeted by the write request in the primary data area of the first cache memory associated with the first data disk that is the primary data disk.
  • Step and the first data Discriminating whether the rotation state of the disk is a normal rotation state, a predetermined low-speed rotation state lower than the normal rotation number, or a normal rotation pause state indicating a stop state; and the first data
  • the backup data processing includes a backup data of a third cache memory as a backup of the data stored in the primary data area of the first cache memory temporarily for the data targeted by the write request Step to store in the area Determining whether the rotation state of the second data disk associated as the backup of the first data disk is a normal rotation state or the normal rotation pause state; and the second data disk Switching the rotation state to the normal rotation state when the rotation state of the second data disk is the normal rotation state, and switching the second data disk to the second data disk when the rotation state of the second data disk is the normal rotation state.
  • a backup side write step for writing data to the backup side wherein the backup side write step converts the data stored in the backup data area of the third cache memory to the second data Storing in a backup data area of the disk; and backup data of the second data disk Storing a copy of the data stored in the area in the cache disk, and primary data in the fourth cache memory storing data associated with the primary data area of the second data disk Storing the data stored in the area in the primary data area of the second data disk, and copying the data associated with the primary data area of the second data disk to the cache disk. Storing the data.
  • the storage apparatus control method according to the second aspect of the present invention can achieve the same effects as the storage apparatus control method according to the first aspect of the present invention. Furthermore, when the data disk is in the normal rotation state, a process of storing a copy of the data in the cache disk is executed, so that unnecessary rotation of the data disk can be prevented. Thereby, the reading process can be stably performed by the cache disk, and the data disk can be kept in the normal rotation pause state for a longer time.
  • the storage apparatus control method provides a plurality of data disks in which the storage area of the disk is logically divided into one primary data area and one or more backup data areas.
  • a plurality of cache memories logically divided into one primary data area and one or a plurality of backup data areas, a rotation state of the data disk, and a memory capacity state of the cache memory;
  • a storage device control method comprising system management means for allocating and managing data in the data disk and cache memory in response to an external write request or read request, wherein the system management means At the time of the read request, the data targeted by the read request is the fifth associated with the data.
  • the step of determining whether there is no primary data area in the cache memory, and data stored in the primary data area of the fifth cache memory if the data is not in the primary data area in the fifth cache memory As a backup for the above, the step of determining whether or not the data exists in the backup data area of the sixth cache memory, and if the data does not exist in the backup data area of the sixth cache memory, Both a primary data disk corresponding to data stored in the primary data area in the cache memory and a backup data disk corresponding to data stored in the backup data area in the sixth cache memory Determining whether or not a normal low speed rotation state lower than a predetermined normal rotation speed or a normal rotation pause state indicating a stopped state, the primary side data disk, and the backup side When both of the data disks are in the normal rotation pause state, the data disk on the longer side of the normal rotation pause state is spun up to the normal rotation state indicating that the data disk is rotating at the normal rotation speed.
  • the storage apparatus control method sequentially searches for data storage candidates targeted by the read request by the system management means at the time of the read request. That is, the system management means searches the primary data area in the cache memory with the highest priority as the data storage candidate, and then searches the backup data area of the cache memory as a backup. As a result, the system management means accesses the data disk only when the data to be read cannot be read by the processing so far, and during that time, the data disk can be kept in a normal rotation pause state.
  • the system management means accesses the data disk, if at least one data disk of the primary side or the backup side is in the normal rotation pause state, the data disk on the non-access side is kept in the normal rotation pause state.
  • the storage device normally places the primary and backup data disks in the normal rotation pause state as much as possible, and spins up the primary or backup data disk to the normal rotation state only when absolutely necessary. Since it can be operated, significant power saving can be realized.
  • the storage apparatus control method provides a plurality of data disks in which the storage area of the disk is logically divided into one primary data area and one or more backup data areas.
  • a plurality of cache memories logically divided into one primary data area and one or a plurality of backup data areas, and data copied from the original data stored in the data disk.
  • the data disk, the cache memory, and the cache in accordance with a cache disk indicating a read-only disk, a rotation state of the data disk, a memory capacity state of the cache memory, and an external write request or read request
  • System management means to place and manage data on disk
  • the system management means determines whether the data targeted by the read request is not in the primary data area in the fifth cache memory associated with the data at the time of the read request.
  • a sixth cache memory as a backup for the data stored in the primary data area of the fifth cache memory when the data is not in the primary data area of the fifth cache memory. Determining whether there is no data in the backup data area, and if the data is not in the backup data area in the sixth cache memory, determining whether the data is not in the cache disk. And the data is stored in the cache.
  • a data disk on the primary side corresponding to data stored in the primary data area in the fifth cache memory and a backup side corresponding to data stored in the backup data area in the sixth cache memory Determining whether or not both of the data disks are in a normal low speed rotation state or a normal rotation pause state indicating a stop state lower than a predetermined normal rotation speed, and the primary side data disk Normal rotation indicating that the data disk on the side where the normal rotation pause state is long is rotating at the normal rotation number when both of the backup data disks are in the normal rotation pause state.
  • the storage apparatus control method according to the fourth aspect of the present invention can achieve the same effects as the storage apparatus control method according to the third aspect of the present invention.
  • processing is performed in which the cache disk is prioritized over the data disk.
  • the normal rotation can be stopped for a long time.
  • the system management program comprises a plurality of data disks in which a disk storage area is logically divided into one primary data area and one or a plurality of backup data areas.
  • a storage apparatus that stores data to be stored in one of the data disks in the primary data area of the data disk and performs control for storing the data in a backup data area of at least one other data disk
  • Disc rotation state detection means for detecting whether the computer is in a normal rotation state of the data disk, a predetermined low-speed rotation state lower than the normal rotation number, or a normal rotation pause state indicating a stop state
  • the rotation state of the data disk is the normal rotation state or the
  • the disk rotation state control means for switching to the normal rotation pause state, the disk A process for controlling the rotation state to be switched to the normal rotation state by the rotation state control means, and moving the data to be written to
  • the primary-side and backup-side data disks related to predetermined data are set in a normal rotation pause state as much as possible, and can be returned to the normal rotation state when there is a write request or a read request. it can. Therefore, the storage apparatus can save power while ensuring its performance and reliability by setting as many data disks as possible in a normal rotation pause state. Further, the computer of the storage apparatus in which the system management program according to claim 9 is installed can achieve the same effect.
  • the storage device of the second aspect it is possible to secure a normal rotation suspension state of one of the primary-side and backup-side data disks related to predetermined data for a long time, and the number of spin-up start times of each data disk and The number of times of switching to the normal rotation pause state can be reduced. Therefore, the storage apparatus can save power while ensuring its performance and reliability by keeping many data disks in a normal rotation pause state as much as possible.
  • the storage device of the third aspect since the cache memory is provided in addition to the data disk, the writing process can be performed stably and the frequency of access to the data disk can be reduced. As a result, the storage apparatus can keep as many data disks as possible in the normal rotation pause state, and thus can save power. Further, since the primary data and the backup data are held in both the cache memory and the data disk, the reliability can be further improved.
  • the read-only cache disk is provided in addition to the data disk, the read process can be performed stably and the frequency of access to the data disk can be reduced. As a result, the storage apparatus can keep as many data disks as possible in the normal rotation pause state, and thus can save power.
  • the system management means when the write request is made, performs primary data processing and backup data processing, thereby ensuring reliability.
  • the primary data area and the backup data area can be updated during the normal rotation of the data disk. Therefore, in the primary data processing or the backup data processing, it is possible to reduce the power consumption as compared with the case where only one of the data areas is updated during the normal rotation state of the data disk.
  • the system management means executes determination processing in an order in which the data disk is not accessed as much as possible, and accesses the data disk.
  • the data disk on the non-access side can be kept in the normal rotation pause state. Therefore, significant power saving can be realized.
  • FIG. 1 is a block diagram schematically showing a configuration of a storage device according to an embodiment of the present invention.
  • FIG. 2 is an explanatory diagram schematically illustrating a case where the cache memory stores a single data cache unit in the storage apparatus of FIG. 1.
  • 3 is a flowchart showing the overall flow of Write processing in the storage device of FIG.
  • FIG. 4 is a flowchart showing the primary data processing of FIG. 3, where (a) shows the overall flow of processing, and (b) shows D Primary write processing.
  • FIG. 4 is a flowchart showing the Backup data processing of FIG. 3, where (a) shows the overall flow of processing, and (b) shows D Backup writing processing, respectively.
  • FIG. 3 is a flowchart (part 1) showing a flow of a Read process in the storage apparatus of FIG.
  • FIG. 1 is a block diagram schematically showing a configuration of a storage device according to an embodiment of the present invention.
  • FIG. 2 is an explanatory diagram schematically illustrating a case where the cache memory
  • FIG. 9 is a flowchart (No. 2) showing the flow of a Read process in the storage device of FIGS. 2 and 8.
  • FIG. FIG. 2 is an explanatory diagram schematically illustrating a case in which the cache memory stores a plurality of cache units in which data of a data disk is stored in the storage device of FIG. 1.
  • FIG. 9 is an explanatory diagram schematically showing a process of writing data received from a network to a cache memory in the storage device of FIG. 8.
  • FIGS. 9A and 9B are explanatory diagrams schematically showing processing until data received from a network is written to a cache disk in the storage device of FIG. 8, where FIG. 9A is a write process from a cache memory to a data disk, and FIG.
  • FIG. 9 is a flowchart showing an overall flow of primary data processing in the storage apparatus of FIG. It is a flowchart which shows D Primary write processing of FIG. It is a flowchart which shows D backup ⁇ primary write processing of FIG.
  • FIG. 9 is a flowchart showing an overall flow of backup data processing in the storage apparatus of FIG. 8.
  • FIG. It is a flowchart which shows D Backup write processing of FIG.
  • FIG. 9 is an explanatory diagram schematically showing processing when there is a read request from the network and the requested data is not in the cache disk in the storage device of FIG. 8.
  • FIG. 9 is a flowchart (No.
  • FIG. 2 is an explanatory diagram schematically illustrating a case in which the cache unit is a single unit and the cache memory stores a plurality of backup data for one primary data in the storage apparatus of FIG. 1.
  • a storage apparatus 1 includes a system management unit 10 and a data disk 20 as main components, and a cache memory 30 for stably performing write processing. And a cache disk 40 for stabilizing the reading process.
  • a system management unit 10 and a data disk 20 as main components
  • a cache memory 30 for stably performing write processing.
  • a cache disk 40 for stabilizing the reading process.
  • the system management means 10 includes, for example, a computer including an arithmetic device such as a CPU (Central Processing Unit), a storage device such as a memory and a hard disk, and an interface device that transmits and receives various types of information to and from the outside. It consists of installed programs.
  • This system management means 10 is realized by the hardware device and software cooperating to control the hardware resources described above by a program. As shown in FIG.
  • the storage unit 12, the data distribution unit 13, the data management unit 14, and the data arrangement control unit 15 are provided.
  • the communication transmission / reception means 11 transmits / receives data to / from a client computer (not shown) via the network 2.
  • the communication transmitter / receiver 11 is a communication board that transmits and receives data using a TCP / IP (TransmissionTransControl Protocol / Internet Protocol) communication protocol.
  • TCP / IP TransmissionTransControl Protocol / Internet Protocol
  • the communication transmitting / receiving means 11 includes an input / output interface for inputting / outputting data to / from the data disk 20, the cache memory 30 and the cache disk 40 in the storage apparatus 1.
  • the data disk 20, the cache memory 30, and the cache disk 40 are not particularly distinguished, they are simply referred to as storage devices.
  • the data storage means 12 stores data received from the outside via the communication transmission / reception means 11 and data input from the storage device in the storage device 1 via the communication transmission / reception means 11 in a predetermined storage device. is there.
  • the data storage unit 12 includes a data receiving unit 121 and a data writing unit 122.
  • the data receiving unit 121 receives data via the communication transmitting / receiving unit 11.
  • the data receiving unit 121 receives data from the data transmission source (for example, a client computer not shown) notified from the data arrangement control unit 15 via the communication transmitting / receiving unit 11.
  • the data received by the data receiving unit 121 is output to the data writing unit 122.
  • the data writing unit 122 writes the data received by the data receiving unit 121 to the write address on the storage device instructed by the data arrangement control unit 15.
  • the data distribution unit 13 distributes the data stored in the storage device via the communication transmitting / receiving unit 11 to a request source (for example, a client computer (not shown)) that requested the data.
  • a request source for example, a client computer (not shown)
  • the data distribution unit 13 includes a data reading unit 131 and a data transmission unit 132.
  • the data reading unit 131 reads the data instructed from the data arrangement control unit 15 from the storage device and outputs the data to the data transmission unit 132. It is assumed that an address for specifying data is instructed to the data reading unit 131 from the data arrangement control unit 15.
  • the data transmission unit 132 transmits the data read by the data reading unit 131 to a client computer (not shown) notified from the data arrangement control unit 15 via the communication transmission / reception unit 11 or other data notified similarly. Or transmitted to a storage device.
  • the data management means 14 is for managing data stored in the storage device in the storage device 1.
  • the data management unit 14 includes a cache memory capacity detection unit 141, a disk rotation state detection unit 142, and a disk rotation state control unit 143. Details of the cache memory capacity detection unit 141, the disk rotation state detection unit 142, and the disk rotation state control unit 143 will be described later.
  • the data arrangement control unit 15 controls the data storage unit 12, the data distribution unit 13, and the data management unit 14, manages data stored in each storage device in the storage apparatus 1, and determines its arrangement. Details of the data arrangement control means 15 will be described later.
  • the data disk 20 includes, for example, a general magnetic disk device, an optical disk device, a magneto-optical disk device, and the like.
  • the storage area of the disk is logically divided into a primary data area and a backup data area.
  • the primary data area and backup data area of the data disk 20 are also referred to as a primary layer and a backup layer.
  • the data disk 20 stores primary data 21 as primary layer data and backup data 22 as backup layer data.
  • FIG. 1 illustrates only one data disk 20, but the storage device 1 includes a plurality of data disks 20. Although details will be described later, FIG. 2 and FIG. 8 show examples of combinations of storage devices as the main part of the storage device.
  • the system management means 10 stores data to be stored in one of the plurality of data disks 20 in the primary data area of the data disk 20 and stores the data in at least one other It is assumed that the data is stored in the backup data area of the data disk 20.
  • the storage apparatus 1 includes data disks 20a and 20b as shown in FIG.
  • the data disk 20a includes a primary data area 21a and a backup data area 22a
  • the data disk 20b includes a primary data area 21b and a backup data area 22b. It is assumed that the data targeted for the write request or the read request is associated with the data disk 20 in advance.
  • the system management means 10 stores certain data in the primary data area 21a of the data disk 20a at the time of writing. This stored data is called primary data or data P 1 .
  • a data disk having a primary data area associated with the data P 1 is referred to as a primary data disk D primary .
  • the system management means 10 stores the same data in the backup data area 22b of the data disk 20b.
  • the data are the stored called the backup data or data B 1.
  • a data disk having a backup data area associated with the data B 1 is referred to as a backup-side data disk D backup .
  • the primary data disk D primary is the data disk 20a
  • the backup data disk D backup is the data disk. 20b.
  • the system management unit 10 stores another certain data in the primary data area 21b of the data disk 20b at the time of another writing.
  • the data are the stored called the Primary data or data P 2.
  • the system management unit 10 when storing the data P 2, and stores the data of the same contents in the backup data area 22a of the data disk 20a.
  • the storage device 1 while ensuring the performance and reliability of the apparatus, in order to save power, the system manager 10, typically, as much as possible the data disk D backup of the primary-side data disk D primary and backup side, respectively Control is performed to spin up the data disk on the primary side or backup side only when it is absolutely necessary.
  • the system management means 10 places the disk rotation state detection means 142, the disk rotation state control means 143, and the data arrangement control means 15 in order to keep each data disk 20 as paused as possible. And.
  • the disk rotation state detection unit 142 detects whether the rotation state of the data disk 20 is a normal rotation state or a normal rotation pause state under the control of the data arrangement control unit 15.
  • the normal rotation state indicates a state in which the data disk 20 is rotating at a predetermined normal rotation speed.
  • the normal rotation speed is the disk rotation speed when performing a write process or a read process, and can be, for example, 7200 [rpm], 10000 [rpm], 15000 [rpm], or the like.
  • the normal rotational speed can be appropriately changed depending on various factors such as access speed, power consumption, and noise.
  • the normal rotation pause state indicates a predetermined low-speed rotation state or stop state lower than the normal rotation speed.
  • the normal rotation pause state is described as being the rotation stop state.
  • the disk rotation state control means 143 switches the rotation state of the data disk 20 to either a normal rotation state or a stopped state (normal rotation pause state) under the control of the data arrangement control means 15.
  • the data arrangement control unit 15 manages information relating each data disk 20 and data stored in the disk in a database (not shown), and controls the disk rotation state detection unit 142 and the disk rotation state control unit 143. To do.
  • the data placement control means 15 selects the primary data disk D primary associated with the data targeted by the write request or read request from the plurality of data disks 20.
  • the data disk D backup on the backup side is searched, the searched data disks D primary and D backup are accessed, and data is moved in response to a write request or a read request.
  • the disk rotation state detection unit 142 detects that the primary side data disk D primary or the backup side data disk D backup is in a rotation stop state at the time of the write request, the data arrangement control unit 15 The data disk is accessed after being spun up to the normal rotation state by the disk rotation state control means 143.
  • the disk rotation state detection unit 142 detects that the data disk D primary on the primary side or the data disk D backup on the backup side is in the rotation stop state at the time of the read request, the data arrangement control unit 15 The data disk on the normal rotation side is preferentially accessed.
  • the storage apparatus 1 shown in FIG. 1 includes a cache memory 30 that caches data to be stored in the data disk 20 in order to perform writing processing stably.
  • a cache memory 30 that caches data to be stored in the data disk 20 in order to perform writing processing stably.
  • the relationship among the system management means 10, the data disk 20, and the cache memory 30 will be described.
  • the cache memory 30 is composed of, for example, a general semiconductor memory, a constantly rotating disk, an SSD (Solid State Drive), or the like.
  • the cache memory 30 may be a volatile memory or a nonvolatile memory.
  • a backup power source is used.
  • the cache memory 30 is logically divided into a primary data area and a backup data area. As a result, reliability can be ensured even when a volatile memory is used.
  • the cache memory 30 stores primary data 31 and backup data 32.
  • FIG. 1 illustrates only one cache memory 30, but the storage apparatus 1 includes a plurality of cache memories 30 (see FIGS. 2 and 8).
  • the number of cache memories 30 can be appropriately changed in design. For example, as shown in FIG. 2, when the cache memory 30 stores a single data cache unit 20, the number of cache memories 30 is the same as the number of data disks 20. When the cache memory 30 stores a plurality of cache units for storing data on the data disk 20, the number of cache memories 30 is smaller than the number of data disks 20. For example, as shown in FIG. 8, when the cache unit in which the cache memory 30 stores data of the data disk 20 is “2”, the number of cache memories 30 is half of the number of data disks 20. Details of the configuration of the storage apparatus shown in FIG. 8 will be described later.
  • the data arrangement control means 15 manages each data disk 20 and manages information associated with each cache memory 30 and data stored in the cache memory in a database (not shown).
  • the data placement control unit 15 In response to a write request from the outside, the data placement control unit 15 temporarily stores data to be stored in one of the plurality of data disks 20, primary data in the cache memory 30 associated with the data disk 20. The data is stored in an area, and the data is stored in a backup data area of at least one other cache memory 30. In this way, when the data placement control means 15 writes data to these cache memories 30, the data distribution means 13 returns a response. As a result, a high-speed response to an access request is possible, and the frequency of disk access can be reduced. Therefore, the rotation stop time of the data disk 20 can be secured and the rotation start frequency can be kept low.
  • the storage device 1 includes cache memories 30a and 30b as shown in FIG.
  • the cache memory 30a includes a primary data area 31a and a backup data area 32a
  • the cache memory 30b includes a primary data area 31b and a backup data area 32b.
  • the data targeted by the write request or the read request is associated with the cache memory 30 in advance. Control of writing data to the cache memory 30 from the outside is performed by the data arrangement control means 15 shown in FIG.
  • the data arrangement control unit 15 when there is a write data write request, stores the data P 1 in the primary data area 31a of the cache memory 30a.
  • the data arrangement control unit 15 uses the adjacent preceding log write (nWAL) method when writing data to the cache memory 30.
  • nWAL adjacent preceding log write
  • P 1 stored in the cache memory 30a indicates a very small part of P 1 stored in the data disk 20a or data whose contents are newly rewritten.
  • the process of storing the data P 1 in the primary data disk 20a is called a primary process, and the backup side data disk is used as this backup data.
  • the process of storing the data B 1 in 20b is called a backup process.
  • cache memory 30a having a primary data area 31a for storing data P 1 and the primary side of the cache memory.
  • cache memory 30b having a backup data area for storing data B 1 which is backup data of the data P 1 is referred to as a backup side cache memory.
  • the primary cache memory indicates the data disk 20b
  • the backup cache memory indicates the data disk 20a.
  • the cache memories 30a and 30b and the data disks 20a and 20b are associated with each other in advance as follows.
  • the primary data area 31a of the cache memory 30a is associated with the primary data area 21a of the data disk 20a.
  • the backup data area 32a of the cache memory 30a is associated with the backup data area 22a of the data disk 20a.
  • the primary data area 31b of the cache memory 30b is associated with the primary data area 21b of the data disk 20b.
  • the backup data area 32b of the cache memory 30b is associated with the backup data area 22b of the data disk 20b.
  • Control for moving data from the cache memory 30 to the data disk 20 is performed by the cache memory capacity detection means 141 and the data arrangement control means 15 shown in FIG.
  • the cache memory capacity detection unit 141 detects the current queue length in the cache memory 30.
  • the data arrangement control unit 15 performs control to move the data stored in the cache memory 30 to the corresponding data disk 20 according to the detected current queue length of the cache memory 30.
  • the cache memory capacity detection unit 141 detects the current memory capacity state by comparing the detected queue length with a predetermined threshold value for classifying the memory capacity state. did. Then, when it is detected that the queue length of the cache memory 30 is in a memory capacity state within the threshold range for moving data to the disk, the data arrangement control means 15 stores the cache memory 30 in the cache memory 30. The stored data is moved to the data disk 20.
  • the cache memory 30 is a disk or SSD, for example, the memory capacity indicates the capacity of the disk or SSD.
  • the current queue length W and two thresholds using the magnitude relationship between the state of the memory capacity (a1) ⁇ ( It was divided into three states according to the conditions of a3).
  • the state of the memory capacity represents a state in which the data to be written to the data disk 20 is not sufficiently accumulated in the cache memory 30 yet. Therefore, the data arrangement control unit 15 does not write data yet. Thereby, power saving can be achieved.
  • the state of the memory capacity indicates a state in which the data to be written to the data disk 20 is accumulated to some extent in the cache memory 30.
  • the data arrangement control means 15 writes data if the corresponding data disk 20 is in the normal rotation state. That is, even if the current queue length W satisfies the condition (a2), if the corresponding data disk 20 is in the rotation stop state, the data placement control unit 15 does not write data. Thereby, power saving can be achieved.
  • the state of the memory capacity indicates a state where data exceeding the allowable amount is accumulated in the cache memory 30.
  • the control means 15 writes data to the corresponding data disk 20. At this time, if the corresponding data disk 20 is in the rotation stopped state, the data arrangement control means 15 spins up the data disk 20 and writes the data.
  • the data arrangement control means 15 When data is written from the cache memory 30 to the data disk 20, the data arrangement control means 15 writes the primary data and backup data stored in the same data disk 20 in synchronization. That is, in the example shown in FIG. 2, for example, when the data placement control unit 15 writes the data P 1 from the cache memory 30a to the data disk 20a, the data B 2 is continuously written. Further, when the data placement control means 15 writes the data B 2 from the cache memory 30a to the data disk 20a, the data placement control means 15 continues to write the data P 1 . The data arrangement control unit 15 also performs the writing process between the cache memory 30b and the data disk 20b in the same manner.
  • the rotation state of the primary side data disk 20 and the backup side data disk 20 with respect to the write request data is generally asynchronous, so depending on the timing, the data P stored in the data disk 20 a
  • the content of 1 does not match the content of data B 1 stored in the data disk 20b.
  • the content of data P 2 may not match the content of data B 2 .
  • the data arrangement control means 15 manages whether the storage data of each storage device is the latest, and the primary cache memory 30 and the backup cache memory 30 are arranged. Even if there is a period in which there is a difference between the contents on the primary side and the contents on the backup side for the same data stored in each data disk 20, the contents can be matched.
  • the data placement control unit 15 performs the process of moving the data stored in the cache memory 30 to the data disk 20 according to the queue length of the cache memory 30 or the rotation state of the data disk 20. This is done in the primary process and backup process. Details of the operation will be described later.
  • the storage apparatus 1 shown in FIG. 1 includes a cache disk 40 indicating a read-only disk in order to perform a read process stably.
  • the relationship among the system management means 10, the data disk 20, the cache memory 30, and the cache disk 40 will be described.
  • the cache disk 40 stores data obtained by copying the original data stored in the data disk 20, and is always in a normal rotation state.
  • the cache disk 40 includes, for example, a general magnetic disk device, optical disk device, magneto-optical disk device, SSD (Solid State Drive).
  • the cache disk 40 may be the same as the data disk 20. In this case, the cache disk 40 does not need to divide the storage area of the disk into a primary data area and a backup data area.
  • the cache disk 40 stores primary data 41 and backup data 42 without particularly dividing the storage area.
  • the primary data 41 indicates, for example, data obtained by copying original data (for example, data P 1 ) stored in the primary data disk 20a.
  • the backup data 42 indicates, for example, data obtained by copying data (for example, data B 2 ) stored in the backup data area 22a of the data disk 20a.
  • FIG. 1 illustrates only one cache disk 40, but the number of cache disks may be plural.
  • the number of the cache disks 40 is preferably smaller than the number of the data disks 20 for that purpose. Is preferably about 30% of the number of data disks 20 (see FIG. 8).
  • the data arrangement control means 15 manages each data disk 20 and each cache memory 30, and manages information associated with each cache disk 40 and data stored in the cache disk in a database (not shown).
  • the data arrangement control unit 15 stores a copy of the data stored in the primary data area 21a of the data disk 20a in the cache disk 40. .
  • the data disk 20a is normally rotated. Therefore, in the present embodiment, the data placement control unit 15 performs the process of moving the data stored in the cache memory 30 to the data disk 20 and then continues the data stored in the data disk 20. The data is copied and stored in the cache disk 40. Thereby, when it is not necessary, the data disk 20 can be kept in the rotation stopped state, so that power saving can be achieved.
  • the data placement control means 15 performs the process of copying the data and storing it in the cache disk 40 in the above-described primary process and backup process, respectively. Details of the operation will be described later.
  • the cache disk 40 is always in the normal rotation state, but the data disk 20 is stopped when the data disk 20 is not needed. Also, the cache disk 40 is prioritized and the data targeted by the read request is read.
  • the data placement control unit 15 prioritizes the cache memory 30 over the cache disk 40 at the time of a read request. Read the data targeted by the read request. In this case, the data arrangement control unit 15 first searches for data to be read with priority on the cache memory on the primary side, and then searches on the cache memory on the backup side.
  • the data arrangement control means 15 applies the data disk 20 from the data disk 20 storing the original data to the cache disk 40 only when the read request is not stored in the cache disk 40 or when a cache hit miss occurs. Write data. At this time, the data written in the cache disk 40 is returned as a response. In this way, when the data is written from the data disk 20 to the cache disk 40, the data placement control means 15 determines in advance which of the primary data disk 20 and the backup data disk 20 to read from. Data is read according to the rules (b1) to (b3). These rules are rules for saving power by avoiding unnecessary rotation of the data disk 20 as much as possible when writing to the cache disk 40.
  • the data arrangement control means 15 spins up the selected data disk 20 to the normal rotation state by the disk rotation state control means 143, and then accesses the data disk 20 to read the data.
  • the data placement control unit 15 selects the side with the larger total queue size, the data stored in the data disk 20 is updated before the memory capacity of the cache memory 30 exceeds the allowable range. It becomes easy. Therefore, there is an effect of shortening the period in which the primary data and the backup data do not match.
  • FIG. 3 is a flowchart showing the overall flow of Write processing in the storage apparatus of FIG.
  • the write process is a write process to the storage device performed by the system management means 10, and includes a primary data process (step S100) and a backup data process (step S200).
  • FIG. 4 is a flowchart showing the primary data process of FIG. 3, wherein (a) shows the overall flow of the process, and (b) shows the D Primary write process.
  • D Primary indicates a disk in which primary data for the data of interest is stored.
  • the sequence data as shown in FIG. 2, when attention is focused on the data P 1, the data disk 20a is D Primary. Further, by arranging the data as shown in FIG. 2, when attention is focused on the data P 2, the data disk 20b is D Primary.
  • the cache memory capacity detection unit 141 of the system management unit 10 stores the current primary layer data queue P i W in the i-th cache memory.
  • the data to which the write data received from the outside is added is set as a new primary layer data queue P i W (step S101).
  • the initial value of the current primary layer data queue P i W is, for example, 0.
  • the cache memory capacity detection unit 141 determines whether or not the queue length of the new primary layer data queue P i W is smaller than the maximum allowable queue size PW max in the primary layer data queue (step S102). .
  • the data placement control unit 15 uses the primary layer data of the i-th cache memory. It is determined whether or not the condition that the data disk D primary corresponding to is rotating and the queue length of the primary layer data queue P i W is larger than the queue size threshold PW th in the primary layer data queue is satisfied (step S103).
  • step S103 when the condition that the data disk D primary is rotating and the queue length of the primary layer data queue P i W is larger than the threshold value PW th (step S103: Yes), the system management means 10 The process proceeds to the D primary writing process of S110. Details of the D primary writing process in step S110 will be described later. When this D primary write processing is completed, the system management means 10 returns to step S101. On the other hand, when the data disk D primary is rotating and the condition that the queue length of the primary layer data queue P i W is larger than the threshold value PW th is not satisfied (step S103: No), the system management unit 10 performs step S101. Return to.
  • step S102 when the queue length of the primary layer data queue P i W is equal to or larger than the maximum allowable queue size PW max in the primary layer data queue (step S102: No), the disk rotation state detection unit 142 determines that the i th It is determined whether or not the data disk D primary corresponding to the primary layer data in the cache memory is rotating (step S104).
  • step S104 when the data disk D primary is not rotating (step S104: No), the disk rotation state control means 143 spins up the data disk D primary (step S105). Subsequent to step S105, the system management unit 10 proceeds to step S110. If the data disk D primary is rotating in step S104 (step S104: Yes), the system management unit 10 skips step S105 and proceeds to step S110.
  • step S110 the D primary writing process in step S110 will be described.
  • the data arrangement control unit 15 empties the primary layer data queue P i W of the i-th cache memory (step S112). Then, the data arrangement control unit 15 writes P i W written from the i-th cache memory to the corresponding data disk D primary (primary layer) to the cache disk D cache (step S113).
  • the cache disk D cache corresponds to the cache disk 40 shown in FIG. FIG. 1 shows one cache disk 40, but the number of cache disks is not limited, and when there are a plurality of cache disks, the cache disk D cache indicates one of them.
  • Step S114 the data arrangement control section 15, a memory cache data B u W corresponding to the backup layer data of the data disk D primary (cache memory backup layer data queues), and writes the data disk D primary (backup layer) ( Step S114).
  • the data arrangement control unit 15 empties the backup layer data queue B u W of the cache memory written to the data disk D primary (backup layer) (step S115). Then, the data arrangement control unit 15 writes B u W written in the data disk D primary (backup layer) into the cache disk D cache (step S116).
  • FIG. 5 is a flowchart showing the Backup data processing of FIG. 3, wherein (a) shows the overall flow of the processing, and (b) shows the D Backup writing processing.
  • D Backup indicates a disk in which backup data for the data of interest is stored.
  • the data disk 20b becomes D Backup .
  • the data disk 20a is D Backup.
  • the cache memory capacity detection unit 141 of the system management unit 10 performs primary layer data in the i-th cache memory targeted in the primary data processing.
  • the backup layer data queue B k W stored in the kth cache memory plus the externally received write data is used as a new backup layer data queue B k W as a backup layer for S201).
  • the initial value of the current backup layer data queue B k W is, for example, 0.
  • the cache memory capacity detection unit 141 determines whether or not the queue length of the backup layer data queue B k W is smaller than the maximum allowable queue size BW max in the backup layer data queue (step S202).
  • the data placement control unit 15 uses the primary layer data of the i-th cache memory. The condition that the data disk D backup corresponding to the backup layer data B k W of P i W is rotating and the queue length of the backup layer data queue B k W is larger than the queue size threshold BW th in the backup layer data queue It is determined whether or not the condition is satisfied (step S203).
  • step S203 when the condition that the data disk D backup is rotating and the queue length of the backup layer data queue B k W is larger than the threshold value BW th (step S203: Yes), the system management unit 10 performs step The process proceeds to the D backup writing process of S210. Details of the D backup writing process will be described later. When this D backup writing process is completed, the system management means 10 returns to step S201. On the other hand, when the data disk D backup is rotating and the condition that the queue length of the backup layer data queue B k W is larger than the threshold value BW th is not satisfied (step S203: No), the system management unit 10 performs step S201. Return to.
  • step S202 if the queue length of the backup layer data queue B k W is the maximum allowable queue size BW max than in the backup layer data queue (step S202: No), the disk rotational state detecting unit 142, a backup layer It is determined whether or not the data disk D backup corresponding to the data B k W is rotating (step S204).
  • step S204 when the data disk D backup is not rotating (step S204: No), the disk rotation state control means 143 spins up the data disk D backup (step S205). Following step S205, the system management unit 10 proceeds to the D backup writing process of step S210. In step S204, if the data disk D backup is rotating (step S204: Yes), the system management unit 10 skips step S205 and proceeds to step S210.
  • step S210 the D backup writing process in step S210 will be described.
  • the data placement control unit 15 writes the backup layer data queue B k W stored in the kth cache memory to the corresponding data disk D backup (backup layer) (step S211).
  • the data arrangement control unit 15 writes the data B 1 of the backup data area 32b of the cache memory 30b to the backup data area 22b (backup layer) of the data disk 20b.
  • the data arrangement control unit 15 empties the backup layer data queue B k W of the kth cache memory (step S212). Then, the data arrangement control unit 15 writes B k W written from the kth cache memory to the corresponding data disk D backup (backup layer) to the cache disk D cache (step S213).
  • the data arrangement control section 15 a memory cache data P u W that corresponds to the primary layer data of the data disk D backup (cache memory primary layer data queues), and writes the data disk D backup (primary layer) (Ste S214).
  • u indicates an identification number that generalizes the data of the primary layer corresponding to the backup layer of the data disk D backup when there are a plurality of pairs of the cache memory and the data disk.
  • u 2
  • k 1
  • the data placement control unit 15 empties the primary layer data queue P u W of the cache memory written in the data disk D backup (primary layer) (step S215). Then, the data arrangement control unit 15 writes P u W written in the data disk D backup (primary layer) into the cache disk D cache (step S216).
  • step S302 When the backup layer data B k W does not include the data R i to be read (step S302: Yes), the data placement control unit 15 determines whether or not the data R i to be read does not exist in the cache disk Dcache. (Step S303). When there is no data R i to be read in the cache disk D cache (step S303: Yes), the data arrangement control unit 15 proceeds to the determination process of step S311.
  • step S301 when the primary layer data P i W includes data R i to be read (step S301: No), or when the backup layer data B k W includes data R i to be read (step S302: No). ) Or when there is data R i to be read out on the cache disk D cache (step S303: No), the data arrangement control means 15 reads out the corresponding data R i to be read out (step S310) and performs the processing. finish.
  • step S311 the data placement control unit 15 determines that both the data disk D primary corresponding to the memory cache data of the primary layer and the data disk D backup corresponding to the memory cache data of the backup layer are present. It is determined whether or not both are stopped.
  • step S311 if both the data disk D primary and the data disk D backup are not stopped (step S311: No), the data placement control unit 15 indicates that the primary data disk D primary is rotating. It is determined whether or not there is (step S312).
  • step S312 when the primary-side data disk D primary is rotating (step S312: Yes), the data arrangement control unit 15 reads data R i to be read from the data disk D primary (step S313). Then, the data arrangement control section 15 writes the data R i read from the data disk D primary to the cache disk D cache (step S314).
  • the data reading means 131 of the data distribution means 13 reads data R i from the cache disk D cache, it is possible to output the response data to the read request.
  • the data arrangement control unit 15 performs the same process as the D primary write process in step S110 described above. That is, the data arrangement control unit 15 performs the processes of steps S111 to S116 described above. As a result, the system management unit 10 ends the read process when the primary data disk D primary is rotating. Subsequently, the disk rotation state control means 143 may stop the rotation of the data disk D primary .
  • step S312 when the primary data disk D primary is not rotating (step S312: No), since the backup data disk D backup is rotating, the data arrangement control means 15 determines that the rotating data disk D is rotating. Data R i to be read is read from backup (step S315). Then, the data arrangement control section 15 writes the data R i read from the data disk D backup to the cache disk D cache (step S316). Thus, by the data reading means 131 reads data R i from the cache disk D cache, it is possible to output the response data to the read request.
  • the data arrangement control unit 15 performs the same process as the D backup write process in step S210 described above. That is, the data arrangement control unit 15 performs the processes of steps S211 to S216 described above. Thereby, the system management means 10 ends the read process when the backup-side data disk D backup is rotating. Subsequently, the disk rotation state control means 143 may stop the rotation of the data disk D backup .
  • step S311 the system management unit 10 proceeds to the determination process in step S321.
  • step S321 the determination process in step S321 will be described.
  • the data placement control unit 15 determines that the total queue size (P i W + B i W) of the i-th memory cache data indicating the data disk D primary (primary layer) side is the data It is determined whether or not the total queue size (P k W + B k W) of the kth memory cache data indicating the disk D backup (backup layer) side is larger (step S321).
  • the cache memory on the data disk D primary side uses the cache memory 30a.
  • the cache memory on the data disk D backup side indicates the cache memory 30b. Therefore, in this case, the total queue size (P i W + B i W) indicates the sum of the memory capacity of the primary data area 31a and the memory capacity of the backup data area 32a. In this case, the total queue size (P k W + B k W) indicates the sum of the memory capacity of the primary data area 31b and the memory capacity of the backup data area 32b.
  • step S321 when the total queue size (P i W + B i W) of the memory cache data on the primary layer side is larger than the total queue size (P k W + B k W) of the memory cache data on the backup layer side (step S321: Yes), the disk rotation state control means 143 spins up the data disk D primary on the primary layer side (step S322).
  • the disk rotation state control means 143 spins up the data disk 20a.
  • step S321 the data placement control unit 15 determines that the total queue size (P k W + B k W) of the memory cache data on the backup layer side is the total queue size (P i W + B i W) of the memory cache data on the primary layer side. It is discriminate
  • step S325 when the total queue size (P k W + B k W) of the memory cache data on the backup layer side is larger than the total queue size (P i W + B i W) of the memory cache data on the primary layer side (step S325: Yes), the disk rotation state control means 143 spins up the data disk D backup on the backup layer side (step S332).
  • the disk rotation state control means 143 spins up the data disk 20b.
  • step S325 When the total queue size (P k W + B k W) of the memory cache data on the backup layer side is equal to the total queue size (P i W + B i W) of the memory cache data on the primary layer side in step S325 (step S325: No), the data arrangement control means 15 selects the data disk (D primary or D backup ) having the longer rotation stop period from the stopped data disk D primary and data disk D backup , and controls the disk rotation state. The means 143 spins up the selected data disk (step S326).
  • steps S327 and S328 performed by the data arrangement control unit 15 are the same as the processes in steps S313 and S314 described above or the processes in steps S315 and S316 described above, and thus description thereof is omitted.
  • the data disk selected based on the determination result in step S325 is the primary data disk (step S329: D primary )
  • the data arrangement control unit 15 executes the process in step S110.
  • the selected data disk is a data disk on the backup side (step S329: D backup )
  • the process of step S210 described above is executed.
  • FIG. 8 shows a combination example of each storage device as a main part of the storage device having a plurality of cache units.
  • Plural cache units mean that each cache memory 30 stores data of the data disks 20 of a plurality of nodes on both the primary layer side and the backup layer side.
  • the storage device 1 shown in FIG. 8 includes a data disk 20a, a data disk 20b, a data disk 20c, a data disk 20d, a data disk 20e, and a data disk 20f.
  • These data disks 20a to 20f have the same configuration as the data disks 20a and 20b shown in FIG. 2 except that the number of the data disks 20a to 20f is six and the number of data types is six. The description is omitted.
  • the primary data P 1 to P 6 are associated with the primary data areas 21a to 21f of the data disks 20a to 20f, respectively.
  • the backup data B 1 to B 6 are respectively associated with the backup data areas 22b, 22c, 22d, 22e, 22f, and 22a of the adjacent data disks 20b, 20c, 20d, 20e, 20f, and 20a, respectively. Yes.
  • the storage device 1 shown in FIG. 8 includes a cache memory 30a, a cache memory 30b, and a cache memory 30c. These cache memories 30a to 30c are configured in the same manner as the cache memories 30a and 30b shown in FIG. 2 except that the number is three and the number of data types is six. The description will be omitted as appropriate.
  • the data arrangement control unit 15 stores the data P 1 in the primary data area 31a of the cache memory 30a.
  • data P 1 and data P 2 are stored as different primary data.
  • the data P 1 is data to be stored in the primary data area 21a of the data disk 20a
  • the data P 2 is data to be stored in the primary data area 21b of the data disk 20b.
  • the cache memory 30a stores the memory cache data of the data disks 20a and 20b of the two nodes in the primary data area 31a.
  • data B 4 and data B 5 are stored as different backup data.
  • the data B 4 is data to be stored in the backup data area 22e of the data disk 20e
  • the data B 5 is data to be stored in the backup data area 22f of the data disk 20f.
  • the cache memory 30a stores the memory cache data of the data disks 20e and 20f of the two nodes in the backup data area 32a.
  • the backup data area 32a of the cache memory 30a has 2 cache units.
  • the cache memory 30a stores data of the data disks 20 of the two nodes on both the primary layer side and the backup layer side.
  • the cache memories 30b and 30c store data of the data disks 20 of the two nodes on both the primary layer side and the backup layer side.
  • N cu Number of Cash Units
  • the number of data disks 20 in the storage apparatus 1 is six and the number of cache memories 30 is three.
  • a general description will be given assuming that there are a plurality of data disks 20.
  • the correspondence relationship between this generalized case and the storage device shown in FIG. 8, for example, is as follows.
  • FIG. 11 is a flowchart showing the overall flow of primary data processing in the storage apparatus of FIG.
  • a primary side relationship identification symbol is used.
  • the j-th data queue P ij W among the primary layer data queues of the i-th cache unit is designated.
  • the primary layer data queue P ij W is stored on the primary side of the cache memory 30 and is write data for the j-th data disk D lj in the l-th disk unit.
  • step S100B the cache memory capacity detection unit 141 of the system management unit 10 writes the j-th primary layer data queue P ij W in the i-th cache unit. Sometimes, the memory capacity of the queue P i W of the entire i-th cache unit (primary data) is detected (step S121).
  • steps S122 to S125 executed by the system management means 10 are the same as the processes of steps S102 to S105 described above (see FIG. 4A), except that the data disk to be detected for the rotation state is different. ), The description is omitted as appropriate.
  • the data disk whose rotation state is to be detected is the j-th data disk D lj in the l-th disk unit corresponding to the i-th cache unit.
  • step S123 the system management unit 10 satisfies the condition that the data disk D lj is rotating and the queue length of the primary layer data queue P i W is larger than the threshold value PW th (step S123: Yes), or If the data disk D lj is rotating in step S124 (step S124: Yes), or after step S125, the process proceeds to step S130.
  • Step S130 the D primary writing process in step S130 will be described with reference to FIG. 12 (refer to FIG. 10 as appropriate).
  • the data arrangement control unit 15 first sets the initial value of the variable r for counting the number of repetitions to “1” (step S131). It is determined whether or not the current value of the variable r is equal to or less than the number Ncu of nodes constituting the cache unit (step S132). In the case of the example shown in FIG. 8, the number of nodes N cu constituting the cache unit is “2”.
  • step S132 if the current value of the variable r is equal to or less than the node number N cu (step S132: Yes), the data arrangement control section 15, a data disk D lr it is determined whether or not rotating (step S133 ).
  • the data placement control unit 15 uses the r-th primary layer data queue P ir W of the i-th cache unit stored in the cache memory, The corresponding data disk D lr (primary layer) is written (step S134), and the P ir W is written to the cache disk D cache (step S135).
  • r 1, for example, the first data P 1 among the data stored in the primary data area 31a of the cache memory 30a shown on the left side of FIG. Data is written to the data area 21a.
  • the data placement control means 15 stores the memory cache data B uv W ( vth backup layer data queue in the uth cache unit) corresponding to the backup layer data of the data disk Dlr to which this primary layer has been written,
  • the data is written to the data disk D lr (backup layer) (step S137).
  • r 1, as shown on the left side in FIG. 10 (a)
  • the second data B 6 stored in the backup data area 32b of the cache memory 30b is written to the backup data area 22a of the data disk 20a.
  • step S140 the data arrangement control unit 15 adds “1” to the current value of the variable r (step S140), and returns to step S132.
  • step 133 If the data disk Dlr is not rotating in the above-described step S133 (step 133: No), the data arrangement control unit 15 skips the above-described steps S134 to S139 and proceeds to step S140.
  • step S132 if the current value of the variable r is greater than the number of nodes N cu (step S132: No), the data arrangement control unit 15 executes a D Backup ⁇ primary writing process of step S150, the then The process returns to step S121 in FIG.
  • step S150 the D backup ⁇ primary writing process in step S150 will be described with reference to FIG. 13 (see FIGS. 10 and 11 as appropriate).
  • the data placement control means 15 first determines that the queue length of the backup layer data queue B i W of the i-th cache unit targeted in this primary data processing (S100B) is the same as that in the backup layer data queue. It is determined whether or not it is larger than the queue size threshold BW th (step S151).
  • step S151 the identification symbol i is used instead of the identification symbol k indicating the relationship on the backup side.
  • the backup layer data queue B i W specifically corresponds to the following data. For example, when the process of writing the data P 1 stored in the primary data area 31a of the cache memory 30a shown in FIG. 10A to the disk is performed before the process of step S150, the backup layer data queue B i W Corresponds to the data queue of the backup data area 32a.
  • step S151 when the queue length of the backup layer data queue B i W is larger than the threshold value BW th (step S151: Yes), the data arrangement control unit 15 sets the initial value of the variable r for counting the number of repetitions to “1”. (Step S152). Then, the data arrangement control unit 15 determines whether or not the current value of the variable r is less than or equal to the number of nodes Ncu constituting the cache unit (step S153).
  • step S153 If the current value of the variable r is equal to or less than the node number N cu (step S153: Yes), the data arrangement control section 15 corresponds to the i-th cache unit of backup layer data, r-th of the m-th disk units It is determined whether or not the data disk D mr is rotating (step S154).
  • step S154 the identification symbols m and r in the backup side relationship are used.
  • the backup layer data queue B i W is the data queue of the backup data area 32a shown in FIG. 8
  • step S154 When the data disk D mr is rotating in the above-described step S154 (step S154: Yes), the data placement control unit 15 stores the r-th backup layer data in the i-th cache unit stored in the cache memory.
  • the queue B ir W is written to the corresponding data disk D mr (backup layer) (step S155). For example, the data B 4 stored in the backup data area 32a shown in FIG. 8 is written into the backup data area 22e of the data disk 20e.
  • the data placement control unit 15 writes Bir W written in the data disk D mr (backup layer) to the cache disk D cache (step S156). Then, the data arrangement control unit 15 deletes the rth backup layer data queue BirW that has already been written to the data disk from the buffer (current value) of the backup layer data queue BiW of the ith cache unit ( Step S157).
  • the data arrangement control means 15 uses the memory cache data P wv W (the vth primary layer data queue of the wth cache unit) corresponding to the primary layer data of the data disk D mr to which this backup layer has been written.
  • Writing to the data disk D mr (primary layer) (step S158). For example, when the data B 4 stored in the backup data area 32a shown in FIG. 8 is written to the backup data area 22e of the data disk 20e, the data P 5 stored in the primary data area 31c of the cache memory 30c is Write to the primary data area 21e of the data disk 20e.
  • the data arrangement control unit 15 writes P wv W written in the data disk D mr (primary layer) into the cache disk D cache (step S159). Then, the data arrangement control means 15 uses the vth primary layer data queue that has already been written to the disk from the buffer (current value) of the primary layer data queue P w W in cache units corresponding to the primary layer data of the data disk D mr. P wv W is deleted (step S160). Then, the data arrangement control unit 15 adds “1” to the current value of the variable r (step S161), and returns to step S153.
  • step 154 If the data disk D mr is not rotating in the above-described step S154 (step 154: No), the data arrangement control unit 15 skips the above-described steps S155 to S160 and proceeds to step S161.
  • step S153: No When the current value of the variable r exceeds the number of nodes N cu in step S153 described above (step S153: No), or the queue length of the backup layer data queue B i W is equal to or less than the threshold BW th in step S151 described above. In the case (step S151: No), the data arrangement control unit 15 returns to step S121 in FIG.
  • FIG. 14 is a flowchart showing the overall flow of Backup data processing in the storage apparatus of FIG.
  • the identification symbol of the relationship on the backup side is used.
  • the l-th backup layer data queue of the k-th cache unit is used as a backup of the j-th primary data queue P ij W of the i-th cache unit.
  • This backup layer data queue BklW is stored on the backup side of the cache memory 30, and is write data for the nth data disk Dmn in the mth disk unit.
  • step S200B the cache memory capacity detection means 141 of the system management means 10 is stored in the kth cache unit stored on the backup side of the cache memory 30.
  • step S221 the memory capacity of the queue B k W for the entire k-th cache unit (backup data) is detected (step S221).
  • steps S222 to S225 executed by the system management unit 10 are the same as the processes of steps S202 to S205 described above (see FIG. 5A), except that the data disk whose rotation state is to be detected is different. ), The description is omitted as appropriate.
  • the data disk whose rotation state is to be detected is the nth data disk Dmn of the mth disk unit corresponding to the kth cache unit.
  • step S223 the system management unit 10 satisfies the condition that the data disk D mn is rotating and the queue length of the backup layer data queue B k W is larger than the threshold value BW th (step S223: Yes), or If the data disk D mn is rotating in step S224 (step S224: Yes), or after step S225, the process proceeds to step S230.
  • the data arrangement control means 15 first sets the initial value of the variable r for counting the number of repetitions to “1” (step S231). It is determined whether or not the current value of the variable r is less than or equal to the number of nodes N cu constituting the cache unit (step S232). If the current value of the variable r is equal to or less than the node number N cu (step S232: Yes), the data arrangement control section 15, a data disk D mr is determined whether or not rotating (step S233).
  • step S233 when the data disk D mr is rotating (step S233: Yes), the data arrangement control unit 15 stores the rth backup layer data queue B of the kth cache unit stored in the cache memory. Write kr W to the corresponding data disk D mr (backup layer) (step S234).
  • the data P 1 is written in the primary data area 21a of the data disk 20a, for example, in the cache memory 30a shown on the left side of FIG.
  • the first data B 1 stored in the backup data area 32b of the cache memory 30b is written to the backup data area 22b of the data disk 20b.
  • the data arrangement control unit 15 writes B kr W written in the data disk D mr (backup layer) to the cache disk D cache (step S235), and the backup layer data queue B k W in the kth cache unit.
  • the r-th backup layer data queue B kr W that has already been written to the disk is deleted from the buffer (current value) (step S236).
  • the data placement control means 15 stores the memory cache data P uv W ( vth primary layer data queue of the uth cache unit) corresponding to the primary layer data of the data disk D mr that has written this backup layer,
  • the data is written to the data disk D mr (primary layer) (step S237).
  • the second data stored in the primary data area 31a of the cache memory 30a is stored.
  • the data P 2 written in the primary data area 21b of the data disk 20b.
  • the data arrangement control unit 15 writes P uv W written to the data disk D mr (primary layer) to the cache disk D cache (step S238), and cache units corresponding to the primary layer data of the data disk D mr
  • the vth primary layer data queue P uv W that has already been written to the disk is deleted from the buffer (current value) of the primary layer data queue P u W (step S239).
  • the data arrangement control unit 15 adds “1” to the current value of the variable r (step S240), and returns to step S232.
  • step 233: No If the data disk D mr is not rotating in the above-described step S233 (step 233: No), the data arrangement control unit 15 skips the above-described steps S234 to S239 and proceeds to step S240.
  • step S232 if the current value of the variable r is greater than the number of nodes N cu (step S232: No), the data arrangement control unit 15 executes a D Primary ⁇ backup writing process in step S250, then, It returns to step S221 of FIG.
  • the D primary ⁇ backup writing process in step S250 will be described with reference to FIG. 16 (see FIGS. 10 and 14 as appropriate).
  • the data placement control unit 15 first determines that the queue length of the primary layer data queue P k W of the kth cache unit targeted in this Backup data processing (S200B) is the primary layer data queue. It is determined whether or not the queue size is larger than the threshold value PW th (step S251).
  • the identification symbol k is used instead of the identification symbol “i” indicating the relationship on the primary side.
  • the primary layer data queue P k W corresponds to the following data. For example, when the process of writing the data B 1 stored in the backup data area 32b of the cache memory 30b shown in FIG. 10A to the disk is performed before the process of step S250, the primary layer data queue P k W Corresponds to the data queue of the primary data area 31b.
  • step S251 when the queue length of the primary layer data queue P k W is larger than the threshold value PW th (step S251: Yes), the data arrangement control unit 15 sets the initial value of the variable r for counting the number of repetitions to “1”. (Step S252). Then, the data arrangement control unit 15 determines whether or not the current value of the variable r is equal to or less than the number of nodes Ncu constituting the cache unit (step S253).
  • step S253 If the current value of the variable r is equal to or less than the node number N cu (step S253: Yes), the data arrangement control section 15 corresponds to the k-th primary layer data in the cache unit, the k-th disc unit r th It is determined whether or not the data disk D kr is rotating (step S254).
  • both the cache unit and the disk unit are kth.
  • the primary layer data queue P k W is a data queue of the primary data area 31b shown in FIG. 8
  • step S254 When the data disk D kr is rotating in the above-described step S254 (step S254: Yes), the data arrangement control unit 15 stores the rth primary layer data of the kth cache unit stored in the cache memory.
  • the queue P kr W is written to the corresponding data disk D kr (primary layer) (step S255).
  • the data P 3 stored in the primary data area 31b shown in FIG. 8 is written to the primary data area 21c of the data disk 20c.
  • the data arrangement control unit 15 writes P kr W written to the data disk D kr (primary layer) to the cache disk D cache (step S256). Then, the data arrangement control unit 15 deletes the r-th primary layer data queue P kr W that has already been written to the disk from the buffer (current value) of the primary layer data queue P k W in the k-th cache unit (step S1). S257).
  • the data placement control means 15 uses the memory cache data B wv W ( vth backup layer data queue in cache unit) corresponding to the backup layer data of the data disk D kr that has written this primary layer as the data disk D Write to kr (backup layer) (step S258). For example, when the data P 3 stored in the primary data area 31b shown in FIG. 8 is written into the primary data area 21c of the data disk 20c, the data “B 2 ” in the backup data area 32c of the cache memory 30c is stored. The data is written into the backup data area 22c of the data disk 20c.
  • the data arrangement control unit 15 writes B wv W written in the data disk D kr (backup layer) into the cache disk D cache (step S259). Then, the data arrangement control means 15 uses the vth backup layer data queue that has already been written to the disk from the buffer (current value) of the backup layer data queue B w W in cache units corresponding to the backup layer data of the data disk D kr. B wv W is deleted (step S260). Then, the data arrangement control unit 15 adds “1” to the current value of the variable r (step S261), and returns to step S253.
  • step 154: No If the data disk D kr is not rotating in the above-described step S254 (step 154: No), the data arrangement control unit 15 skips the above-described steps S255 to S260 and proceeds to step S261.
  • step S253 If the current value of the variable r in step S253 mentioned above exceeds the number of nodes N cu (step S253: No), or the queue length of the primary layer data queue P k W is a threshold value PW th or less in the step S251 described above In the case (step S251: No), the data arrangement control unit 15 returns to step S221 in FIG.
  • FIG. 18 shows the overall flow of read processing in a storage apparatus having a plurality of cache units as in the storage apparatus of FIG.
  • the processes in steps S401 to S403 and S410 executed by the system management means 10 are the processes in steps S301 to S303 and S310 described above except that the data to be read is R ij. Since it is the same as (see FIG. 6), the description is omitted as appropriate.
  • the data R ij to be read represents that the original data is stored in the j-th data disk D lj in the l-th disk unit corresponding to the i-th cache unit.
  • the data R ij corresponds to the data P 1 .
  • the data arrangement control means 15 of the system management means 10 refers to a database (not shown) for managing each data disk 20. Then, considering the disk unit, as shown in FIG. 17, the primary side data disk and the backup side data disk are determined (step S404), and the process proceeds to the discrimination process of step S411.
  • FIG. 17 shows a case where a read request to the data P 6 stored in the primary data area 21f of the data disk 20f. In this case, since the data P 6 does not exist in the cache memory 30 or the cache disk 40, a hit miss occurs and the corresponding data is read from the data disk 20.
  • the primary data disk is determined as the data disk 20f
  • the backup data disk is determined as the data disk 20a.
  • the data arrangement control means 15 copies the corresponding data from the rotating data disk 20 to the cache disk 40.
  • the data placement control unit 15 refers to the database (not shown) without considering the disk unit, and the data disk on the primary side and the data on the backup side. The disc is determined.
  • steps S411 to S416 executed by the system management unit 10 are the same as the processes in steps S311 to S316 described above (see FIG. 6), and thus description thereof is omitted.
  • the data placement control unit 15 of the system management unit 10 refers to a database (not shown) for managing each cache memory 30 and also considers the cache unit, and the primary side cache memory and the backup side cache memory. Are determined (step S417), and the process proceeds to the determination process (see FIG. 7) of step S321 described above.
  • the data placement control unit 15 refers to a database (not shown) without considering the cache unit, and the cache memory on the primary side and the cache on the backup side. Determine the memory.
  • one of the primary and backup data disks 20 relating to predetermined data is kept in a rotation stopped state for a long time.
  • the number of spin-ups of each data disk 20 and the number of times of switching to rotation stop can be reduced. Therefore, the storage apparatus 1 of the present embodiment can save power while ensuring its performance and reliability by keeping as many data disks 20 as possible in a rotation stop state.
  • the normal rotation pause state of the data disk 20 has been described as being the rotation stop state.
  • a low-speed rotation state may be used instead of the rotation stop state. If the rotation of the data disk 20 is completely stopped, there is an advantage that the steady power is not consumed. However, when the data disk 20 is rotated again, the disk is in an idle state (normally rotating at a rotational speed but not being written or read). There is a delay until the spike current occurs.
  • the data disk 20 is set to the low speed rotation state, the time required to change from the low speed rotation state to the disk idle state and its power consumption are reduced. That is, the low-speed rotation state is more preferable from the viewpoint of the performance of the storage device and power saving.
  • the rotational speed at low speed is preferably as low as possible from the normal rotational speed from the viewpoint of power saving, but is excessively low from the viewpoint of shortening the response time at the time of spin-up and reducing performance degradation. do not have to.
  • the preferred rotational speed at low speed is also affected by the frequency of access (read / write) to the disk drive. Therefore, the rotational speed at low speed can be appropriately changed in consideration of the difference in priority between the power consumption and the time required to return to the normal rotational speed, and the operation method such as usage conditions.
  • the relationship between the normal rotation speed and the rotation speed at low speed is, as is conventionally known in the field of storage, with the maximum rotation speed and the rotation speed at low speed corresponding one-to-one, and at low speed.
  • the number of revolutions may be about 60% of the maximum number of revolutions.
  • a method of switching the maximum rotation speed to a multi-speed rotation speed so as to be 30 to 95% of the maximum depending on the access frequency has been proposed.
  • the maximum number of rotations and the number of rotations at low speed may be made to correspond one-to-many.
  • step S125 instead of fixing the data disk to be spun up in step S125, out of N cu memory cache data from P i1 to P iNcu in the data queue P i W including this P ij W Thus, the data disk corresponding to the cache data having the largest queue length may be spun up. In this case, the data queue of the cache memory 30 can be effectively reduced.
  • the cache memory 30 has been described as being logically divided into one primary data area and one backup data area. However, the cache memory 30 is divided into one primary data area and a plurality of backup data areas. You may comprise. As an example, FIG. 19 shows a schematic diagram in the case where a single cache unit is stored in the storage apparatus and the cache memory stores two backup data for one primary data. Needless to say, it may be divided into one primary data area and three or more backup data areas.
  • the cache memory 30a shown in FIG. 19 is divided into one primary data area 31 and two backup data areas 32.
  • the primary data area 31 of the cache memory 30a as a memory cache data to be stored in the data disk 20a as the primary data, data CP i is stored.
  • data CB i-1 is stored as memory cache data to be stored as backup data in the data disk 20a.
  • data CB i-2 is stored.
  • the backup data (data CB i ) of the data CP i stored in the primary data area 31 of the cache memory 30a is the backup data area 32 of the cache memory 30b and the backup data area 32 of the cache memory 30c. And is stored in. Therefore, for example, even if the data CB i stored in the backup data area 32 of the cache memory 30b is erased by Backup data processing (step S200), the data CB stored in the backup data area 32 of the cache memory 30c. It is possible to leave i for a while without erasing i at the same time.
  • the storage apparatus 1 has been described as one system management unit 10 controlling a plurality of data disks 20, but the present invention is not limited to this.
  • system management means may be provided for each data disk to configure autonomous storage apparatuses individually, and the entire storage apparatus may be configured as an autonomous storage system including a plurality of autonomous storage apparatuses.
  • each autonomous storage device can replicate and move data in cooperation with other autonomous storage devices.
  • the storage apparatus 1 has been described as including the system management means 10, the data disk 20, the cache memory 30, and the cache disk 40, but the present invention is not limited to this. .
  • the cache disk 40 may be omitted.
  • the cache memory 30 may be omitted.
  • the data disk 20 and the system management means may be used for simple configuration only.
  • the processing is changed as follows in the operation of the storage device described above.
  • the data arrangement control unit 15 skips step S113 and step S116 in the primary data process (step S100) of the write process.
  • the data arrangement control unit 15 skips steps S213 and S216.
  • the data arrangement control unit 15 skips steps S303, S314, S316, S324, S328, and S334.
  • the data placement control unit 15 skips steps S135, S138, S156, and S159 in the primary data process (step S100B) of the write process.
  • the data arrangement control unit 15 skips steps S235, S238, S256, and S259.
  • the data arrangement control unit 15 skips steps S414, S416, S324, S328, and S334.
  • the storage apparatus includes a system management unit, a data disk 20, a cache memory 30, and a cache disk 40, and performs control to stop as many data disks 20 as possible according to the control method described above. It was. An experiment was conducted to estimate the effect of reducing the power consumption of the storage device of this example compared to the conventional storage device.
  • the storage system of the conventional system does not include the cache memory 30 and the cache disk 40, and all the data disks 20 are always rotating and does not perform special control as in the embodiment. It is.
  • Table 1 summarizes the explanation of symbols in the mathematical formulas described below.
  • the storage apparatus includes m data disks 20 and n cache disks 40.
  • the power consumption P dataDisk related to the entire m data disks 20 of the storage apparatus of the example was calculated by the equation (1).
  • fr represents the read access frequency
  • fw represents the write access frequency.
  • f r and f w are respectively shown in a ratio of 0 to 1 (0 ⁇ f r ⁇ 1, 0 ⁇ f w ⁇ 1).
  • Access to the data disk 20 can be classified into a read event, a write event, and other events. However, if all accesses are associated with a read event or a write event, f r + f w is 1.
  • the first term on the right side of Equation (1) is a term corresponding to the power consumption when there is no access to the data disk 20 at the time of writing, reading and other times.
  • the second term on the right side of Equation (1) is a term corresponding to the power consumption when reading directly from the data disk 20 when a cache hit miss occurs in both the cache memory 30 and the cache disk 40 during reading.
  • the third term on the right side of Equation (1) is a term corresponding to the power consumption when writing directly to the data disk 20 when the queue length of the cache memory 30 exceeds the threshold during writing.
  • the power consumption P cacheDisk relating to the entire n rotating cache disks 40 of the storage apparatus of the example was calculated by the equation (2).
  • the first term on the right side of Equation (2) is a term corresponding to the power consumption when the cache memory 30 is hit and when the read process itself does not occur.
  • the second term on the right side of equation (2) is a term corresponding to the power consumption when the cache memory 40 is hit when the cache memory 30 is hit-miss.
  • the third term on the right side of equation (2) is a term corresponding to the power consumption when data is read from the data disk 20 and further written to the cache disk 40 when no hit is found in the cache disk 40.
  • the fourth term on the right side of Equation (2) is a term corresponding to the power consumption for writing the data to the cache disk 40 when the memory buffer of the cache memory 30 overflows and is written to the data disk 20.
  • the power consumption P total related to the entire storage apparatus of the example was calculated by the formula (3).
  • the storage device of the comparative example is provided with m data disks 20, and the power consumption P normal is calculated by the equation (4).
  • the power consumption reduction ratio, and read access frequency f r, by the ratio of the write access frequency f w varies greatly.
  • the power consumption reduction rate varies greatly depending on the ratio between the number n of cache disks 40 and the number m of data disks 20.
  • 10 to 20% of the total number of disks is the cache disk 40
  • the access data has strong locality
  • the cache memory hit rate h c for read access is In a very high situation, as shown in No. A6 of Table 2, it is possible to achieve a power saving of about 71.1 [%] at the maximum.
  • the optimum value is, for example, an application depends on the type of data stored in the data disk 20 or the like. For example, when a large number of blog pages accessed by many users are stored in the data disk 20 and a small number of blog pages with low access frequency are stored, h c becomes high. Application of the example control method is particularly preferred.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

プライマリデータ領域とバックアップデータ領域とを有した複数のデータディスクを備えたストレージ装置において、その性能と信頼性を確保しつつ、省電力化する。ストレージ装置(1)のシステム管理手段(10)は、ディスク回転状態検出手段(142)と、データディスク(20)を回転または停止させるディスク回転状態制御手段(143)と、データディスク(20)にアクセスしてデータを移動させるデータ配置制御手段(15)とを備え、データ配置制御手段(15)は、書込時にプライマリ側またはバックアップ側のデータディスクが停止中の場合に、スピンアップさせてアクセスし、読込時にプライマリ側またはバックアップ側のデータディスクが停止中の場合に、回転中の側に優先してアクセスし、読込時にプライマリ側およびバックアップ側のデータディスクが両方とも停止中の場合に、停止時間が長い側をスピンアップさせてアクセスする。

Description

ストレージ装置、その制御方法およびシステム管理プログラム
 本発明は、プライマリデータ領域とバックアップデータ領域とを有したデータディスクを複数台備えて1つのデータをあるデータディスクのプライマリデータ領域と別のデータディスクのバックアップデータ領域にそれぞれ記憶するストレージ装置およびその制御に関する。
 従来、ストレージ装置内の複数のデータディスクにおいて、原データとその原データのバックアップデータとを分散させて蓄積することで、データを多重化して、故障時において迅速に復旧させることのできる技術が知られている(例えば、特許文献1参照)。このようなストレージ装置において、データディスクには、原データを記憶するプライマリ領域と、原データのバックアップデータを記憶するバックアップ領域とからなる複数の論理記憶区分が設定されている。そして、ストレージ装置は、プライマリデータ領域とバックアップデータ領域とを有したデータディスクを複数台備えて、原データをあるデータディスク(プライマリ側のディスク)のプライマリデータ領域に記憶するとともに、その原データのバックアップデータを別のデータディスク(バックアップ側のディスク)のバックアップデータ領域に記憶する。これによって、この種のストレージ装置は、プライマリ側のディスクもバックアップ側のディスクも常時回転させることを前提に、プライマリ側またはバックアップ側のディスクが故障したときに、迅速に復旧することができる。
 近年、例えばインターネット等、現在の情報化社会を支えるために、膨大なデータを記憶するために数多くのデータディスクを備えた専用のストレージ装置が様々な用途で利用されている。このようなストレージ装置は、情報量の増加に対応して年々規模が大きくなり、また、その台数が増加している。各ストレージ装置において、保存すべき記録を書き込む(ライト)要求や、読み出し(リード)要求も同様に増加している。また、ストレージ装置の電力消費量も同様に増加しており、地球温暖化対策の一環として電力消費量の減少やストレージ装置の管理コストの減少が喫緊の課題として浮上している。
 ストレージ装置を省電力化するためには、データを記憶している磁気ディスク装置(データディスク)の回転をなるべく止めておくようにすると最も大きな効果を発揮することができる。ただし、磁気ディスク装置の回転を止めた場合には、応答時間やスループットなどの性能の劣化が懸念される。そのため、省電力化しつつ性能を維持するという課題に対処するために、従来、様々な手法が提案されてきた。
 従来の主な手法を列挙すると、例えば、複数のデータディスクの中でディスクに対するアクセスには偏りがあるという性質を利用し、頻繁にアクセスされるデータを一部のデータディスクに集約させる手法が知られている。また、データディスクが回転中であってライト処理やリード処理をしていない状態を示すアイドル時には、このデータディスクの回転数を低く抑える手法が知られている。さらに、データを記憶しているメインのデータディスクとは別に、同じデータを記憶させたアクセス用のキャッシュディスクを用意し、そのキャッシュアルゴリズムを工夫することでデータディスクへのアクセスの頻度を下げるという手法も知られている。
 例えば、非特許文献1に記載の方法では、データアクセスの局所性を利用して、アクセス頻度の高いデータを少数の読み出し専用のキャッシュディスクに集め、他の大多数のデータディスクをできる限り回転させずに停止させる手法を提案している。
特開2004-334739号公報
Dennis Colarelli, Dirk Grunwald. Massive Arrays of Idle Disks For Storage Archives. Proc. 2002 Conf. High-Performance Networking and Computing, IEEE CS Press 2002
 しかしながら、例えば、非特許文献1に記載の方法では、データのキャッシュにのみ着目し、ストレージの信頼性は考慮していない。つまり、ストレージ装置内でデータを記憶しているメインのデータディスクが何らかの理由でクラッシュ等の故障を起こした場合にその複製がないので対応することができない。仮に信頼性を高めるためにバックアップ側のディスクを増設した場合には、ストレージ装置が大型になり、製造コストや電力消費量が増加してしまうことになる。このように従来の手法は、省電力化および性能の確保を志向することで省電力化を実現したとしても、ストレージ装置として重要であるデータの信頼性については考慮していないという問題がある。
 また、ストレージ装置内のデータディスクの台数を変更せずに、プライマリデータ領域とバックアップデータ領域とを有したデータディスクを備えたストレージ装置において、省電力化を図ることが考えられる。この場合、従来技術では、プライマリ側のディスクもバックアップ側のディスクも常時回転させていることを前提としていた。そのため、ストレージ装置を省電力化する技術とストレージ装置の信頼性を確保する技術とを単純に組み合わせることができなかった。
 そこで、本発明は、以上のような問題点に鑑みてなされたものであり、プライマリデータ領域とバックアップデータ領域とを有した複数のデータディスクを備えたストレージ装置において、その性能と信頼性を確保しつつ、省電力化することを課題としている。
 前記課題を解決するために、本発明に係るストレージ装置は、ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、書込要求に応じて前記データディスクの1つに格納すべきデータを当該データディスクの前記プライマリデータ領域に格納すると共に、当該データを少なくとも1つの別の前記データディスクのバックアップデータ領域に格納する制御を行うシステム管理手段とを備えたストレージ装置において、前記システム管理手段が、前記データディスクの通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを検出するディスク回転状態検出手段と、前記データディスクの回転状態を前記通常回転状態または前記通常回転休止状態に切り替えるディスク回転状態制御手段と、書込要求または読込要求に応じて、前記複数台のデータディスクの中から選択したデータディスクの回転状態が前記通常回転休止状態である場合に前記ディスク回転状態制御手段によって回転状態を前記通常回転状態に切り替えさせる制御を行うと共に、当該データディスクが前記通常回転状態であるときに、書込対象とするデータを前記選択したデータディスクに移動させる処理、または、読込対象とするデータを前記選択したデータディスクから移動させる処理を行うデータ配置制御手段とを備えることを特徴とする。
 かかる構成によれば、ストレージ装置は、信頼性を確保するための2つのデータディスクをなるべく通常回転休止状態としておき、書込要求や読込要求があるときに、通常回転状態に戻すことができる。ここで、通常回転休止状態とは、回転が停止している状態だけを示すものではなく、通常回転数よりも低い回転数で回転する低速回転状態をも示している。また、かかる構成によれば、ストレージ装置は、プライマリ側のディスクとバックアップ側のディスクを常時回転させるのではなく、多くのデータディスクをなるべく通常回転休止状態としておくことで、省電力化することができる。したがって、ストレージ装置は、その性能と信頼性を確保しつつ、省電力化することができる。
 また、本発明に係るストレージ装置は、前記データ配置制御手段が、書込要求時において、書込対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクと、前記プライマリ側のデータディスクのバックアップとして対応付けられたバックアップデータ領域を有する1つまたは複数のバックアップ側のデータディスクとをそれぞれ選択し、プライマリ側またはバックアップ側のデータディスクが前記通常回転休止状態であることが検出された場合に、前記ディスク回転状態制御手段によって前記通常回転状態にまでスピンアップさせてから当該データディスクにアクセスし、当該データディスクが前記通常回転状態であるときに前記書込要求が対象とするデータを前記データディスクに移動させる処理をディスク毎に連続して行い、読込要求時において、選択した前記プライマリ側または前記バックアップ側のデータディスクが前記通常回転休止状態であることが検出された場合に、前記通常回転状態の側のデータディスクに優先してアクセスし、当該データディスクが前記通常回転状態であるときに前記読込要求が対象とするデータを前記データディスクから移動させる処理を行い、前記読込要求時において、選択した前記プライマリ側および前記バックアップ側のデータディスクが両方とも前記通常回転休止状態であることが検出された場合に、前記通常回転休止状態の時間が長い側のデータディスクを前記ディスク回転状態制御手段によって前記通常回転状態にまでスピンアップさせてから当該データディスクにアクセスし、当該データディスクが前記通常回転状態であるときに前記読込要求が対象とするデータを前記データディスクから移動させる処理を行うことが好ましい。
 かかる構成によれば、ストレージ装置は、書込要求時に書き込み先のデータディスクが通常回転休止状態であったとしても、データ配置制御手段が、ディスク回転状態制御手段によって通常回転状態にまでスピンアップさせてから当該データディスクにアクセスする。また、ストレージ装置は、読込要求時において、読み出し対象のデータを格納した2つのデータディスクのうち一方が通常回転状態であれば、データ配置制御手段がそのデータディスクにアクセスし、両方のデータディスクが通常回転休止状態であれば、一方のデータディスクだけをスピンアップしてアクセスする。つまり、ストレージ装置は、信頼性を確保するための2つのデータディスクの一方の通常回転休止状態を長時間確保することができる。
 また、両方のデータディスクが通常回転休止状態の場合にスピンアップする側のデータディスクを選択する基準を、通常回転休止状態の時間が長い側としたことで、信頼性を確保するための2つのデータディスクについての総計で、各データディスクのスピンアップの開始回数および通常回転休止状態への切り換え回数を少なく抑えることができる。つまり、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことで、省電力化することができる。したがって、ストレージ装置は、その性能と信頼性を確保しつつ、省電力化することができる。
 また、ストレージ装置は、読込要求時に、通常回転休止状態であったプライマリ側またはバックアップ側のデータディスクをスピンアップした後に、プライマリデータ領域またはバックアップデータ領域のうちの一方のデータ領域から読み出し処理を行う。そのため、このスピンアップしたデータディスクを予め定めた期間だけ通常回転状態に保持しておくことで、その期間内に、一方のデータ領域に対して別の読込要求や書込要求があった場合にデータディスクをスピンアップする必要がない。また、その期間内に他方のデータ領域に対する読込要求や書込要求があった場合にも、このデータディスクをスピンアップする必要がない。
 また、本発明に係るストレージ装置は、さらに、記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記キャッシュメモリにおける現在のキュー長を検出し、前記検出したキュー長と、メモリ容量の状態を分類するための予め定められた閾値とを比較することにより現在のメモリ容量の状態を検出するキャッシュメモリ容量検出手段とを備え、前記データ配置制御手段が、書込要求に応じて前記データディスクの1つに格納すべきデータを一時的に、当該データディスクに対応付けられた前記キャッシュメモリのプライマリデータ領域に格納すると共に、当該データを少なくとも1つの別の前記キャッシュメモリのバックアップデータ領域に格納し、前記キャッシュメモリのキュー長が、データをディスクに移動させるための閾値の範囲内のメモリ容量の状態であることが検出された場合に、当該キャッシュメモリに格納されているデータを当該データディスクに移動させるように構成することが好ましい。
 かかる構成によれば、ストレージ装置は、データディスクのデータをキャッシュするキャッシュメモリを備える構成としたので、データディスクへのアクセスの頻度を下げることができる。つまり、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことができるので、省電力化することができる。また、キャッシュメモリとデータディスクの両方でプライマリデータとバックアップデータとを保持する構成としたので、信頼性をより高めることができる。例えば、プライマリ側とバックアップ側のキャッシュメモリの電源を保持しておけば、一方がクラッシュしてもデータを保持することができる。
 また、本発明に係るストレージ装置は、さらに、前記データディスクに格納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクを備え、前記データ配置制御手段が、前記データディスクに格納されているデータをコピーして前記キャッシュディスクに格納し、読込要求時には、前記データディスクよりも前記キャッシュディスクを優先して、当該読込要求が対象とするデータを読み出すように構成することが好ましい。
 かかる構成によれば、ストレージ装置は、読み出し専用のキャッシュディスクを備えているので、各データディスクに格納されている頻繁にアクセスされるデータをキャッシュディスクに集約させておくことで、データディスクへのアクセスの頻度を下げることができる。つまり、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことができるので、省電力化することができる。
 また、前記課題を解決するために、本発明の第1の観点に係るストレージ装置の制御方法は、ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスクおよびキャッシュメモリにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、前記システム管理手段が、書込要求時において、書込要求が対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクに対して当該データをプライマリデータとして書き込むプライマリデータ処理と、当該データに対応付けられたバックアップデータ領域を有するバックアップ側のデータディスクに対して、当該データをバックアップデータとして書き込むバックアップデータ処理と、を含んで実行し、前記プライマリデータ処理が、記書込要求が対象とするデータを一時的に、前記プライマリ側のデータディスクである第1のデータディスクに対応付けられた第1のキャッシュメモリのプライマリデータ領域に格納するステップと、前記第1のデータディスクの回転状態が通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを判別するステップと、前記第1のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、前記第1のデータディスクの回転状態が前記通常回転状態であるときに当該第1のデータディスクに対してデータの書込を行うプライマリ側の書込ステップとを含み、前記プライマリ側の書込ステップが、前記第1のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第1のデータディスクのプライマリデータ領域に格納するステップと、当該第1のデータディスクのバックアップデータ領域に対応付けられているデータが格納されている第2のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第1のデータディスクのバックアップデータ領域に格納するステップと、を含み、前記バックアップデータ処理が、前記書込要求が対象とするデータを一時的に、前記第1のキャッシュメモリのプライマリデータ領域に格納されているデータに対するバックアップとして、第3のキャッシュメモリのバックアップデータ領域に格納するステップと、前記第1のデータディスクのバックアップとして対応付けられた第2のデータディスクの回転状態が通常回転状態と前記通常回転休止状態とのいずれであるのかを判別するステップと、前記第2のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、前記第2のデータディスクの回転状態が前記通常回転状態であるときに当該第2のデータディスクに対してデータの書込を行うバックアップ側の書込ステップとを含み、前記バックアップ側の書込ステップが、前記第3のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第2のデータディスクのバックアップデータ領域に格納するステップと、当該第2のデータディスクのプライマリデータ領域に対応付けられているデータが格納されている第4のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第2のデータディスクのプライマリデータ領域に格納するステップと、を含むことを特徴とする。
 かかる手順によれば、本発明の第1の観点に係るストレージ装置の制御方法は、書込要求時において、システム管理手段によって、プライマリデータ処理と、バックアップデータ処理と、を含んで実行するので、信頼性を高めることができる。また、システム管理手段は、プライマリデータ処理にて、データディスクのプライマリデータ領域に格納すべきデータを一時的にキャッシュメモリにキャッシュしてからデータディスクに格納する処理を行う。ここで、データをキャッシュメモリにキャッシュしている間は、データディスクを通常回転休止状態としておくことができる。また、データをキャッシュメモリからデータディスクに格納する処理を行っている間は、データディスクが通常回転状態である。そして、システム管理手段は、プライマリデータ処理にて、このデータディスクが通常回転状態である期間に、続けて、この通常回転状態のデータディスクのバックアップデータ領域に対応付けられているデータの更新も行う。すなわち、システム管理手段は、データディスクのバックアップデータ領域に対応付けられているデータが格納されているキャッシュメモリのバックアップデータ領域に格納されているデータを、このデータディスクのバックアップデータ領域に格納する。ここでバックアップデータ領域に対応付けられているデータを更新する際には、このデータディスクが通常回転休止状態のときに更新する場合と比較すると、データディスクをスピンアップする必要がないため、電力消費を低減することができる。
 また、かかる手順によれば、システム管理手段は、バックアップデータ処理にて、データディスクのプライマリデータ領域に格納されているデータに対するバックアップを一時的にキャッシュメモリにキャッシュしてから該当するデータディスクに格納する処理を行う。そして、システム管理手段は、バックアップデータ処理にて、このデータディスクが通常回転状態である期間に、続けて、この通常回転状態のデータディスクのプライマリデータ領域に対応付けられているデータの更新も行う。したがって、このバックアップデータ処理に際しても、データディスクの通常回転状態中に2つのデータ領域を続けて更新することで、プライマリデータ処理と同様に、電力消費を低減することができる。
 また、本発明の第2の観点に係るストレージ装置の制御方法は、ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクに格納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスク、キャッシュメモリおよびキャッシュディスクにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、前記システム管理手段が、書込要求時において、書込要求が対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクに対して当該データをプライマリデータとして書き込むプライマリデータ処理と、当該データに対応付けられたバックアップデータ領域を有するバックアップ側のデータディスクに対して、当該データをバックアップデータとして書き込むバックアップデータ処理と、を含んで実行し、前記プライマリデータ処理が、前記書込要求が対象とするデータを一時的に、前記プライマリ側のデータディスクである第1のデータディスクに対応付けられた第1のキャッシュメモリのプライマリデータ領域に格納するステップと、前記第1のデータディスクの回転状態が通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを判別するステップと、前記第1のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、前記第1のデータディスクの回転状態が前記通常回転状態であるときに当該第1のデータディスクに対してデータの書込を行うプライマリ側の書込ステップとを含み、前記プライマリ側の書込ステップが、前記第1のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第1のデータディスクのプライマリデータ領域に格納するステップと、前記第1のデータディスクのプライマリデータ領域に格納されているデータのコピーを、前記キャッシュディスクに格納するステップと、当該第1のデータディスクのバックアップデータ領域に対応付けられているデータが格納されている第2のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第1のデータディスクのバックアップデータ領域に格納するステップと、前記第1のデータディスクのバックアップデータ領域に対応付けられているデータのコピーを、前記キャッシュディスクに格納するステップとを含み、前記バックアップデータ処理が、前記書込要求が対象とするデータを一時的に、前記第1のキャッシュメモリのプライマリデータ領域に格納されているデータに対するバックアップとして、第3のキャッシュメモリのバックアップデータ領域に格納するステップと、前記第1のデータディスクのバックアップとして対応付けられた第2のデータディスクの回転状態が通常回転状態と前記通常回転休止状態とのいずれであるのかを判別するステップと、前記第2のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、前記第2のデータディスクの回転状態が前記通常回転状態であるときに当該第2のデータディスクに対してデータの書込を行うバックアップ側の書込ステップとを含み、前記バックアップ側の書込ステップが、前記第3のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第2のデータディスクのバックアップデータ領域に格納するステップと、前記第2のデータディスクのバックアップデータ領域に格納されているデータのコピーを、前記キャッシュディスクに格納するステップと、当該第2のデータディスクのプライマリデータ領域に対応付けられているデータが格納されている第4のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第2のデータディスクのプライマリデータ領域に格納するステップと、前記第2のデータディスクのプライマリデータ領域に対応付けられているデータのコピーを、前記キャッシュディスクに格納するステップとを含むことを特徴とする。
 かかる手順によれば、本発明の第2の観点に係るストレージ装置の制御方法は、本発明の第1の観点に係るストレージ装置の制御方法と同様な効果を奏することができる。さらに、データディスクが通常回転状態のときに、そのデータのコピーをキャッシュディスクに格納する処理を実行するので、データディスクの不要な回転動作を防止することができる。これにより、読み出し処理をキャッシュディスクによって安定的に行い、データディスクをより長く通常回転休止状態としておくことができる。
 また、本発明の第3の観点に係るストレージ装置の制御方法は、ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスクおよびキャッシュメモリにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、前記システム管理手段が、読込要求時において、読込要求が対象とするデータが、当該データに対応付けられた第5のキャッシュメモリにおけるプライマリデータ領域に無いか否かを判別するステップと、当該データが前記第5のキャッシュメモリにおけるプライマリデータ領域には無い場合、前記第5のキャッシュメモリのプライマリデータ領域に格納されるデータに対するバックアップとして、第6のキャッシュメモリのバックアップデータ領域に、当該データが無いか否かを判別するステップと、当該データが前記第6のキャッシュメモリにおけるバックアップデータ領域には無い場合、前記第5のキャッシュメモリにおけるプライマリデータ領域に格納されるデータに対応するプライマリ側のデータディスクと、前記第6のキャッシュメモリにおけるバックアップデータ領域に格納されるデータに対応するバックアップ側のデータディスクとが両方とも、予め定められた通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態であるか否かを判別するステップと、前記プライマリ側のデータディスクと、前記バックアップ側のデータディスクとが両方とも前記通常回転休止状態である場合に、前記通常回転休止状態の時間が長い側のデータディスクを前記通常回転数で回転している状態を示す通常回転状態にまでスピンアップして、当該データディスクから当該データを読み出すステップと、前記プライマリ側のデータディスクまたは前記バックアップ側のデータディスクが前記通常回転休止状態である場合に、前記通常回転状態の側から当該データを読み出すステップと、を含んで実行することを特徴とする。
 かかる手順によれば、本発明の第3の観点に係るストレージ装置の制御方法は、読込要求時において、システム管理手段によって、読込要求が対象とするデータの格納候補を順次検索する。すなわち、システム管理手段は、当該データの格納候補として、キャッシュメモリにおけるプライマリデータ領域を最優先で検索し、次に、バックアップとしてのキャッシュメモリのバックアップデータ領域を検索する。これにより、システム管理手段は、これまでの処理で読込対象のデータを読み出すことができない場合にはじめて、データディスクにアクセスするので、その間、データディスクを通常回転休止状態としておくことができる。また、システム管理手段がデータディスクにアクセスするときに、プライマリ側またはバックアップ側のうち少なくとも一方のデータディスクが通常回転休止状態であれば、アクセスしない側のデータディスクを通常回転休止状態に保持し続けることができる。つまり、ストレージ装置は、通常は、プライマリ側およびバックアップ側のデータディスクをなるべく通常回転休止状態としておき、どうしても必要な場合にだけ、プライマリ側またはバックアップ側のデータディスクを通常回転状態にまでスピンアップする運用ができるので、大幅な省電力化を実現することができる。
 また、本発明の第4の観点に係るストレージ装置の制御方法は、ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクに格納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスク、キャッシュメモリおよびキャッシュディスクにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、前記システム管理手段が、読込要求時において、読込要求が対象とするデータが、当該データに対応付けられた第5のキャッシュメモリにおけるプライマリデータ領域に無いか否かを判別するステップと、当該データが前記第5のキャッシュメモリにおけるプライマリデータ領域には無い場合、前記第5のキャッシュメモリのプライマリデータ領域に格納されるデータに対するバックアップとして、第6のキャッシュメモリのバックアップデータ領域に、当該データが無いか否かを判別するステップと、当該データが前記第6のキャッシュメモリにおけるバックアップデータ領域には無い場合、当該データが前記キャッシュディスクに無いか否かを判別するステップと、当該データが前記キャッシュディスクに無い場合、前記第5のキャッシュメモリにおけるプライマリデータ領域に格納されるデータに対応するプライマリ側のデータディスクと、前記第6のキャッシュメモリにおけるバックアップデータ領域に格納されるデータに対応するバックアップ側のデータディスクとが両方とも予め定められた通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態であるか否かを判別するステップと、前記プライマリ側のデータディスクと、前記バックアップ側のデータディスクとが両方とも前記通常回転休止状態である場合に、前記通常回転休止状態の時間が長い側のデータディスクを前記通常回転数で回転している状態を示す通常回転状態にまでスピンアップして、当該データディスクから当該データを読み出すステップと、前記プライマリ側のデータディスクまたは前記バックアップ側のデータディスクが前記通常回転休止状態である場合に、前記通常回転状態の側から当該データを読み出すステップと、を含んで実行することを特徴とする。
 かかる手順によれば、本発明の第4の観点に係るストレージ装置の制御方法は、本発明の第3の観点に係るストレージ装置の制御方法と同様な効果を奏することができる。さらに、読込要求が対象とするデータの格納候補を順次検索する際に、データディスクよりもキャッシュディスクを優先して検索する処理を実行するので、キャッシュディスクにてヒットすることで、データディスクをより長く通常回転休止状態としておくことができる。
 また、本発明に係るシステム管理プログラムは、ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクを備え、書込要求に応じて前記データディスクの1つに格納すべきデータを当該データディスクの前記プライマリデータ領域に格納すると共に、当該データを少なくとも1つの別の前記データディスクのバックアップデータ領域に格納する制御を行うストレージ装置のコンピュータを、前記データディスクの通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを検出するディスク回転状態検出手段、前記データディスクの回転状態を前記通常回転状態または前記通常回転休止状態に切り替えるディスク回転状態制御手段、書込要求または読込要求に応じて、前記複数台のデータディスクの中から選択したデータディスクの回転状態が前記通常回転休止状態である場合に前記ディスク回転状態制御手段によって回転状態を前記通常回転状態に切り替えさせる制御を行うと共に、当該データディスクが前記通常回転状態であるときに、書込対象とするデータを前記選択したデータディスクに移動させる処理、または、読込対象とするデータを前記選択したデータディスクから移動させる処理を行うデータ配置制御手段、として機能させるためのプログラムである。このように構成されることにより、このプログラムをインストールされたコンピュータは、このプログラムに基づいた各機能を実現することができる。
 請求項1に係るストレージ装置によれば、所定のデータに関するプライマリ側およびバックアップ側のデータディスクをなるべく通常回転休止状態としておき、書込要求や読込要求があるときに、通常回転状態に戻すことができる。したがって、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことで、その性能と信頼性を確保しつつ、省電力化することができる。また、請求項9に係るシステム管理プログラムをインストールされたストレージ装置のコンピュータは、同様の効果を奏することができる。
 請求項2に係るストレージ装置によれば、所定のデータに関するプライマリ側およびバックアップ側のデータディスクの一方の通常回転休止状態を長時間確保することができると共に、各データディスクのスピンアップの開始回数および通常回転休止状態への切り換え回数を少なく抑えることができる。したがって、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことで、その性能と信頼性を確保しつつ、省電力化することができる
 請求項3に係るストレージ装置によれば、データディスクに加えてキャッシュメモリを備えるので、書込処理を安定に行うことができ、データディスクへのアクセスの頻度を下げることができる。そのため、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことができるので、省電力化することができる。また、キャッシュメモリとデータディスクの両方でプライマリデータとバックアップデータとを保持する構成としたので、信頼性をより高めることができる。
 請求項4に係るストレージ装置によれば、データディスクに加えて読み出し専用のキャッシュディスクを備えているので、読み出し処理を安定に行うことができ、データディスクへのアクセスの頻度を下げることができる。そのため、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことができるので、省電力化することができる。
 請求項5または請求項6に係るストレージ装置の制御方法によれば、書込要求時において、システム管理手段によって、プライマリデータ処理とバックアップデータ処理とを行うことで信頼性を確保しつつ、これら両処理においてデータディスクの通常回転状態中にプライマリ側データ領域およびバックアップ側データ領域をそれぞれ更新することができる。したがって、プライマリデータ処理またはバックアップデータ処理において、データディスクの通常回転状態中にいずれか一方のデータ領域だけを更新する場合に比べ電力消費を低減することができる。
 請求項7または請求項8に係るストレージ装置の制御方法によれば、読込要求時において、システム管理手段がデータディスクになるべくアクセスしない順序で判別処理を実行し、データディスクにアクセスする場合であったとしても、プライマリ側またはバックアップ側のうち少なくとも一方のデータディスクが通常回転休止状態であれば、アクセスしない側のデータディスクを通常回転休止状態に保持し続けることができる。したがって、大幅な省電力化を実現することができる。
本発明の実施形態に係るストレージ装置の構成を模式的に示すブロック図である。 図1のストレージ装置においてキャッシュメモリがデータディスクのデータを記憶するキャッシュ単位が単数の場合を模式的に示す説明図である。 図2のストレージ装置においてWrite処理の全体の流れを示すフローチャートである。 図3のPrimaryデータ処理を示すフローチャートであって、(a)は処理の全体の流れ、(b)はDPrimary書込処理をそれぞれ示している。 図3のBackupデータ処理を示すフローチャートであって、(a)は処理の全体の流れ、(b)はDBackup書込処理をそれぞれ示している。 図2のストレージ装置においてRead処理の流れを示すフローチャート(その1)である。 図2および図8のストレージ装置においてRead処理の流れを示すフローチャート(その2)である。 図1のストレージ装置においてキャッシュメモリがデータディスクのデータを記憶するキャッシュ単位が複数の場合を模式的に示す説明図である。 図8のストレージ装置においてネットワークから受信したデータをキャッシュメモリへ書き込む処理を模式的に示す説明図である。 図8のストレージ装置においてネットワークから受信したデータをキャッシュディスクに書き込むまでの処理を模式的に示す説明図であって、(a)はキャッシュメモリからデータディスクへの書込処理、(b)はデータディスクからキャッシュディスクへの書込処理をそれぞれ示している。 図8のストレージ装置におけるPrimaryデータ処理の全体の流れを示すフローチャートである。 図11のDPrimary書込処理を示すフローチャートである。 図12のDbackup\primary書込処理を示すフローチャートである。 図8のストレージ装置におけるBackupデータ処理の全体の流れを示すフローチャートである。 図14のDBackup書込処理を示すフローチャートである。 図15のDprimary\backup書込処理を示すフローチャートである。 図8のストレージ装置においてネットワークからリード要求があり、かつ、要求されたデータがキャッシュディスクにない場合の処理を模式的に示す説明図である。 図8のストレージ装置においてRead処理の流れを示すフローチャート(その1)である。 図1のストレージ装置においてキャッシュ単位が単数であってキャッシュメモリが1つのプライマリデータに対して複数のバックアップデータを記憶する場合を模式的に示す説明図である。
 図面を参照して本発明のストレージ装置およびその制御方法を実施するための形態について詳細に説明する。以下では、説明の都合上、1.ストレージ装置の基本構成の概要、2.データ書込時の安定化のための構成の概要、3.データ読込時の安定化のための構成の概要、4.キャッシュ単位が単数の場合のストレージ装置の動作、5.キャッシュ単位が複数の場合のストレージ装置の動作の各章について順次説明することとする。
[1.ストレージ装置の基本構成の概要]
 本発明の実施形態に係るストレージ装置1は、図1に示すように、システム管理手段10と、データディスク20とを主な構成要素として備え、また、書き込み処理を安定に行うためにキャッシュメモリ30を備え、さらに読み込み処理を安定にするためにキャッシュディスク40を備えている。ここでは、主な構成要素であるシステム管理手段10とデータディスク20との関係を説明する。
 システム管理手段10は、例えば、CPU(Central Processing Unit)等の演算装置と、メモリ、ハードディスク等の記憶装置と、外部との各種情報の送受信を行うインタフェース装置とを備えたコンピュータと、このコンピュータにインストールされたプログラムとから構成される。このシステム管理手段10は、ハードウェア装置とソフトウェアとが協働することによって、前記したハードウェア資源がプログラムによって制御されることにより実現され、図1に示すように、通信送受信手段11と、データ格納手段12と、データ配信手段13と、データ管理手段14と、データ配置制御手段15とを備えることとした。
 通信送受信手段11は、ネットワーク2を介して、図示しないクライアントコンピュータと、データの送受信を行う。例えば、通信送受信手段11は、TCP/IP(Transmission Control Protocol/Internet Protocol)の通信プロトコルによってデータの送受信を行う通信ボードである。
 また、通信送受信手段11には、このストレージ装置1内のデータディスク20、キャッシュメモリ30およびキャッシュディスク40との間で、データの入出力を行う入出力インタフェースを含む。なお、以下では、データディスク20、キャッシュメモリ30およびキャッシュディスク40を特に区別しない場合には、単に、記憶装置という。
 データ格納手段12は、通信送受信手段11を介して外部から受信したデータや、このストレージ装置1内の記憶装置から通信送受信手段11を介して入力したデータを、所定の記憶装置に記憶するものである。ここでは、データ格納手段12は、データ受信手段121と、データ書込手段122とを備えている。
 データ受信手段121は、通信送受信手段11を介してデータを受信するものである。このデータ受信手段121は、データ配置制御手段15から通知されるデータの送信元(例えば図示しないクライアントコンピュータ)から、通信送受信手段11を介してデータを受信する。このデータ受信手段121で受信されたデータは、データ書込手段122に出力される。
 データ書込手段122は、データ受信手段121で受信されたデータを、データ配置制御手段15から指示される記憶装置上の書き込みアドレスに書き込むものである。
 データ配信手段13は、通信送受信手段11を介して、記憶装置に記憶されているデータを、そのデータを要求した要求元(例えば図示しないクライアントコンピュータ)に、当該データを配信するものである。ここでは、データ配信手段13は、データ読出手段131と、データ送信手段132とを備えている。
 データ読出手段131は、データ配置制御手段15から指示されるデータを記憶装置から読み出してデータ送信手段132に出力する。なお、データ配置制御手段15からは、データを特定するアドレス等が、データ読出手段131に対して指示されるものとする。
 データ送信手段132は、データ読出手段131で読み出されたデータを、通信送受信手段11を介して、データ配置制御手段15から通知される図示しないクライアントコンピュータに送信したり、同じく通知される他の記憶装置に送信したりするものである。
 データ管理手段14は、このストレージ装置1内の記憶装置に格納されているデータを管理するためのものである。ここでは、データ管理手段14は、キャッシュメモリ容量検出手段141と、ディスク回転状態検出手段142と、ディスク回転状態制御手段143とを備えることとした。これらキャッシュメモリ容量検出手段141、ディスク回転状態検出手段142、およびディスク回転状態制御手段143の詳細については、後記する。
 データ配置制御手段15は、データ格納手段12、データ配信手段13およびデータ管理手段14を制御し、ストレージ装置1内の各記憶装置に格納するデータを管理してその配置を決定するものである。データ配置制御手段15の詳細については、後記する。
 データディスク20は、例えば、一般的な磁気ディスク装置、光ディスク装置、光磁気ディスク装置などから構成されている。データディスク20は、ディスクの記憶領域がプライマリデータ領域とバックアップデータ領域とに論理的に分割されている。また、データディスク20のプライマリデータ領域およびバックアップデータ領域のことを、プライマリ層およびバックアップ層とも呼ぶ。図1に示す例では、データディスク20は、プライマリ層データとしてのプライマリデータ21と、バックアップ層データとしてのバックアップデータ22とを格納している。
 図1では、データディスク20を1台だけ例示したが、ストレージ装置1は、複数台のデータディスク20を備えている。詳細は後記するが、図2および図8に、ストレージ装置の要部として各記憶装置の組み合わせ例を示す。
 システム管理手段10は、外部からの書込要求に応じて、複数のデータディスク20の1つに格納すべきデータを当該データディスク20のプライマリデータ領域に格納すると共に、当該データを少なくとも1つの別のデータディスク20のバックアップデータ領域に格納する制御を行うことを前提としている。例えば、ストレージ装置1が図2に示すように、データディスク20a、20bを備えているものとする。ここで、データディスク20aは、プライマリデータ領域21aと、バックアップデータ領域22aとを備え、データディスク20bは、プライマリデータ領域21bと、バックアップデータ領域22bとを備えている。書込要求または読込要求が対象とするデータと、データディスク20とは予め対応付けられているものとする。
 この場合、システム管理手段10は、書込時に、あるデータをデータディスク20aのプライマリデータ領域21aに格納する。この格納されているデータをプライマリデータまたはデータP1と呼ぶ。ここで、データP1に対応付けられたプライマリデータ領域を有するデータディスクをプライマリ側のデータディスクDprimaryと呼ぶ。
 また、システム管理手段10は、データP1を格納するときに、同じ内容のデータをデータディスク20bのバックアップデータ領域22bに格納する。この格納されているデータをバックアップデータまたはデータB1と呼ぶ。ここで、データB1に対応付けられたバックアップデータ領域を有するデータディスクをバックアップ側のデータディスクDbackupと呼ぶ。
 したがって、図2において、データP1(=データB1)に着目した場合には、プライマリ側のデータディスクDprimaryとはデータディスク20aのことであり、バックアップ側のデータディスクDbackupとはデータディスク20bである。
 一方、図2に示す例の場合、システム管理手段10は、別の書込時に、別のあるデータをデータディスク20bのプライマリデータ領域21bに格納する。この格納されているデータをプライマリデータまたはデータP2と呼ぶ。また、システム管理手段10は、データP2を格納するときに、同じ内容のデータをデータディスク20aのバックアップデータ領域22aに格納する。この格納されているデータをバックアップデータまたはデータB2と呼ぶ。したがって、図2において、データP2(=データB2)に着目した場合には、プライマリ側のデータディスクDprimaryとはデータディスク20bのことであり、バックアップ側のデータディスクDbackupとはデータディスク20aである。
 ストレージ装置1は、装置の性能と信頼性を確保しつつ、省電力化するために、システム管理手段10によって、通常は、プライマリ側のデータディスクDprimaryおよびバックアップ側のデータディスクDbackupをそれぞれなるべく休止させた状態としておき、どうしても必要な場合にだけ、プライマリ側またはバックアップ側のデータディスクをスピンアップする制御を行う。
 システム管理手段10は、各データディスク20をそれぞれなるべく休止させた状態としておくために、図1に示すように、ディスク回転状態検出手段142と、ディスク回転状態制御手段143と、データ配置制御手段15とを備えている。
 ディスク回転状態検出手段142は、データ配置制御手段15の制御の下、データディスク20の回転状態が、通常回転状態と通常回転休止状態とのいずれであるのかを検出するものである。
 ここで、通常回転状態とは、データディスク20が予め定められた通常回転数で回転している状態を示す。通常回転数は、書き込み処理や読み出し処理のアクセスを行うときのディスク回転数であり、例えば、7200[rpm]、10000[rpm]、15000[rpm]等とすることができる。また、通常回転数は、例えば、アクセスのスピードや消費電力、騒音等様々な要因で適宜設計変更することができる。
 また、通常回転休止状態とは、通常回転数よりも低い予め定められた低速回転状態または停止状態を示す。以下では、簡単のため、通常回転休止状態を回転停止状態であるものとして説明する。
 ディスク回転状態制御手段143は、データ配置制御手段15の制御の下、データディスク20の回転状態を通常回転状態また停止状態(通常回転休止状態)のいずれかに切り替えるものである。
 データ配置制御手段15は、各データディスク20とディスクに格納するデータとを関連付けた情報等を図示しないデータベースで管理しており、また、ディスク回転状態検出手段142およびディスク回転状態制御手段143を制御するものである。
 データ配置制御手段15は、書込要求または読込要求に応じて、複数台のデータディスク20の中から、書込要求または読込要求が対象とするデータに対応付けられたプライマリ側のデータディスクDprimaryと、バックアップ側のデータディスクDbackupとを探索し、探索されたデータディスクDprimary、Dbackupにそれぞれアクセスして、書込要求または読込要求に応じてデータを移動させる処理を行う。
 データ配置制御手段15は、書込要求時において、プライマリ側のデータディスクDprimaryまたはバックアップ側のデータディスクDbackupが回転停止状態であることがディスク回転状態検出手段142によって検出された場合には、ディスク回転状態制御手段143によって通常回転状態にまでスピンアップさせてから当該データディスクにアクセスする。
 また、データ配置制御手段15は、読込要求時において、プライマリ側のデータディスクDprimaryまたはバックアップ側のデータディスクDbackupが回転停止状態であることがディスク回転状態検出手段142によって検出された場合には、通常回転状態の側のデータディスクに優先してアクセスする。
 さらに、データ配置制御手段15は、読込要求時において、プライマリ側のデータディスクDprimaryおよびバックアップ側のデータディスクDbackupが両方とも回転停止状態であることがディスク回転状態検出手段142によって検出された場合には、回転停止状態の時間が長い側のデータディスクをディスク回転状態制御手段143によって通常回転状態にまでスピンアップさせてから当該データディスクにアクセスする。
[2.データ書込時の安定化のための構成の概要]
 図1に示すストレージ装置1は、書き込み処理を安定に行うために、データディスク20へ格納するデータをキャッシュするキャッシュメモリ30を備えている。ここでは、システム管理手段10と、データディスク20と、キャッシュメモリ30との関係を説明する。
 キャッシュメモリ30は、例えば、一般的な半導体メモリ、常時回転しているディスクやSSD(Solid State Drive)等から構成される。キャッシュメモリ30は、揮発性メモリでも不揮発性メモリでもよい。キャッシュメモリ30を揮発性メモリで構成する場合には、バックアップ電源を用いる。キャッシュメモリ30は、メモリがプライマリデータ領域とバックアップデータ領域とに論理的に分割されている。これにより、揮発性メモリを用いた場合でも信頼性を確保することができる。図1に示す例では、キャッシュメモリ30は、プライマリデータ31と、バックアップデータ32とを格納している。
 図1では、キャッシュメモリ30を1台だけ例示したが、ストレージ装置1は、複数台のキャッシュメモリ30を備えている(図2、図8参照)。キャッシュメモリ30の台数は、適宜設計変更することができる。例えば、図2に示すように、キャッシュメモリ30がデータディスク20のデータを記憶するキャッシュ単位が単数の場合には、キャッシュメモリ30の台数は、データディスク20の台数と同じである。また、キャッシュメモリ30がデータディスク20のデータを記憶するキャッシュ単位が複数である場合には、キャッシュメモリ30の台数は、データディスク20の台数よりも少なくなる。例えば、図8に示すように、キャッシュメモリ30がデータディスク20のデータを記憶するキャッシュ単位が「2」である場合には、キャッシュメモリ30の台数は、データディスク20の台数の半分となる。なお、図8に示すストレージ装置の構成の詳細は後記する。
 データ配置制御手段15は、各データディスク20を管理すると共に、各キャッシュメモリ30とキャッシュメモリに格納するデータとを関連付けた情報等を図示しないデータベースで管理している。
 データ配置制御手段15は、外部からの書込要求に応じて、複数のデータディスク20の1つに格納すべきデータを一時的に、当該データディスク20に対応付けられたキャッシュメモリ30のプライマリデータ領域に格納すると共に、当該データを少なくとも1つの別のキャッシュメモリ30のバックアップデータ領域に格納する。
 このようにデータ配置制御手段15が、これらのキャッシュメモリ30にデータを書き込んだ時点で、データ配信手段13は応答を返す。これにより、アクセス要求に対して高速な応答が可能となり、さらに、ディスクアクセスの頻度を下げることができる。そのため、データディスク20の回転停止時間を確保し、回転開始回数を低く抑えることができる。
 例えば、ストレージ装置1が図2に示すように、キャッシュメモリ30a、30bを備えているものとする。ここで、キャッシュメモリ30aは、プライマリデータ領域31aと、バックアップデータ領域32aとを備え、キャッシュメモリ30bは、プライマリデータ領域31bと、バックアップデータ領域32bとを備えている。書込要求または読込要求が対象とするデータと、キャッシュメモリ30とは予め対応付けられているものとする。外部からキャッシュメモリ30へデータを書き込む制御は、図1に示すデータ配置制御手段15が行う。
 このデータ配置制御手段15は、例えば、図9に示すように、外部から、writeデータの書き込み要求があった場合に、このデータP1をキャッシュメモリ30aのプライマリデータ領域31aに格納する処理を行うと共に、データB1(=データP1)をキャッシュメモリ30bのバックアップデータ領域32bに格納する処理を行う。つまり、データ配置制御手段15は、キャッシュメモリ30へのデータの書き込みに際して、隣接先行ログ書き込み(nWAL:Neighboring Write Ahead Log)の手法を利用する。なお、例えば、キャッシュメモリ30aに格納されているP1は、データディスク20aに格納されているP1のごく一部のデータや、中身が新しく書き換えられたデータを示している。
 ここで、writeデータの書き込み要求があったときに行う一連の書き込み処理のうち、プライマリ側のデータディスク20aにデータP1を格納する処理をprimary処理と呼び、このバックアップデータとしてバックアップ側のデータディスク20bにデータB1を格納する処理をbackup処理と呼ぶ。
 また、図2に示す例の場合には、データP1を格納するプライマリデータ領域31aを有するキャッシュメモリ30aをプライマリ側のキャッシュメモリと呼ぶ。また、データP1のバックアップデータであるデータB1を格納するバックアップデータ領域を有するキャッシュメモリ30bをバックアップ側のキャッシュメモリと呼ぶ。同様に、図2において、データP2(=データB2)に着目した場合には、プライマリ側のキャッシュメモリとはデータディスク20bを示し、バックアップ側のキャッシュメモリとはデータディスク20aを示す。
 また、図2に示す例の場合には、キャッシュメモリ30a,30bと、データディスク20a,20bとは予めそれぞれ次のように対応付けられているものとする。
 キャッシュメモリ30aのプライマリデータ領域31aと、データディスク20aのプライマリデータ領域21aとが対応付けられている。
 キャッシュメモリ30aのバックアップデータ領域32aと、データディスク20aのバックアップデータ領域22aとが対応付けられている。
 キャッシュメモリ30bのプライマリデータ領域31bと、データディスク20bのプライマリデータ領域21bとが応付けられている。
 キャッシュメモリ30bのバックアップデータ領域32bと、データディスク20bのバックアップデータ領域22bとが対応付けられている。
 キャッシュメモリ30からデータディスク20へデータを移動させる制御は、図1に示すキャッシュメモリ容量検出手段141およびデータ配置制御手段15が行う。
 キャッシュメモリ容量検出手段141は、キャッシュメモリ30における現在のキュー長を検出するものである。
 データ配置制御手段15は、検出されたキャッシュメモリ30の現在のキュー長に応じて、キャッシュメモリ30に格納されているデータを該当するデータディスク20に移動させる制御を行う。
 本実施形態では、キャッシュメモリ容量検出手段141は、検出したキュー長と、メモリ容量の状態を分類するための予め定められた閾値とを比較することにより現在のメモリ容量の状態を検出することとした。そして、データ配置制御手段15は、キャッシュメモリ30のキュー長が、データをディスクに移動させるための閾値の範囲内のメモリ容量の状態であることが検出された場合に、当該キャッシュメモリ30に格納されているデータを当該データディスク20に移動させる。なお、キャッシュメモリ30が例えばディスクやSSDである場合、メモリ容量とは、ディスクやSSDの容量を示す。
 本実施形態では、一例として、現在のキュー長Wと2つの閾値(最小許容キューサイズWth、最大許容キューサイズWmax)との大小関係を用いて、メモリ容量の状態を(a1)~(a3)の条件に応じて3つの状態に区分した。
(a1)W<Wth
(a2)Wth<W<Wmax
(a3)W>Wmax
 現在のキュー長Wが前記(a1)の条件を満たす場合には、メモリ容量の状態は、キャッシュメモリ30には、データディスク20に書き込むべきデータがまだ充分に蓄積されていない状態を表しているため、データ配置制御手段15は、まだデータを書き込まないこととする。これにより、省電力化を図ることができる。
 現在のキュー長Wが前記(a2)の条件を満たす場合には、メモリ容量の状態は、キャッシュメモリ30には、データディスク20に書き込むべきデータがある程度蓄積されている状態を表しているため、データ配置制御手段15は、該当するデータディスク20が通常回転状態であれば、データを書き込むこととする。つまり、現在のキュー長Wが前記(a2)の条件を満たしていたとしても、該当するデータディスク20が回転停止状態であれば、データ配置制御手段15は、データを書き込まないこととする。これにより、省電力化を図ることができる。
 現在のキュー長Wが前記(a3)の条件を満たす場合には、メモリ容量の状態は、キャッシュメモリ30には、許容量を超えたデータが蓄積されている状態を表しているため、データ配置制御手段15は、該当するデータディスク20にデータを書き込むこととする。このときに、該当するデータディスク20が回転停止状態であれば、データ配置制御手段15は、そのデータディスク20をスピンアップしてデータを書き込む。
 データ配置制御手段15は、キャッシュメモリ30からデータディスク20へデータを書き込む際には、同一のデータディスク20に格納されるプライマリデータとバックアップデータとを同期させて書き込む。つまり、図2に示す例では、データ配置制御手段15は、例えば、キャッシュメモリ30aからデータディスク20aへデータP1を書き込む際には、続けてデータB2を書き込む。また、データ配置制御手段15は、キャッシュメモリ30aからデータディスク20aへデータB2を書き込む際には、続けてデータP1を書き込む。データ配置制御手段15は、キャッシュメモリ30bとデータディスク20bとの間の書き込み処理も同様に処理する。
 ストレージ装置1内では、書込要求のデータについてのプライマリ側のデータディスク20とバックアップ側のデータディスク20との回転状態は、一般に非同期なので、タイミングによっては、データディスク20aに格納されているデータP1の内容と、データディスク20bに格納されているデータB1の内容とが一致していない場合も生じる。同様に、データP2の内容とデータB2の内容とが一致していない場合も生じることがある。ただし、データ配置制御手段15は、各記憶装置の格納データが最新のものであるか否かを管理しており、かつ、プライマリ側のキャッシュメモリ30とバックアップ側のキャッシュメモリ30とを配置したので、各データディスク20に格納される同一データについてのプライマリ側の内容とバックアップ側の内容とに差が生じる期間があったとしても、内容を一致させることができる。
 データ配置制御手段15は、以上のようにキャッシュメモリ30のキュー長やデータディスク20の回転状態に応じて、当該キャッシュメモリ30に格納されているデータを当該データディスク20に移動させる処理を、前記したprimary処理とbackup処理にてそれぞれ行う。その動作の詳細については後記する。
[3.データ読込時の安定化のための構成の概要]
 図1に示すストレージ装置1は、読み込み処理を安定に行うために、読み出し専用のディスクを示すキャッシュディスク40を備えている。ここでは、システム管理手段10と、データディスク20と、キャッシュメモリ30と、キャッシュディスク40との関係を説明する。
 キャッシュディスク40は、データディスク20に格納されたオリジナルのデータをコピーしたデータを格納するものであり、常時、通常回転状態である。キャッシュディスク40は、例えば、一般的な磁気ディスク装置、光ディスク装置、光磁気ディスク装置、SSD(Solid State Drive)などから構成されている。キャッシュディスク40は、データディスク20と同じものを用いてもよい。この場合には、キャッシュディスク40は、ディスクの記憶領域をプライマリデータ領域とバックアップデータ領域とに分割する必要はない。
 図1に示す例では、キャッシュディスク40は、記憶領域を特に分割することなく、プライマリデータ41と、バックアップデータ42とを格納している。この場合、プライマリデータ41は、例えば、プライマリ側のデータディスク20aが格納しているオリジナルのデータ(例えば、データP1)をコピーしたデータを示す。また、バックアップデータ42は、例えば、このデータディスク20aのバックアップデータ領域22aに格納しているデータ(例えば、データB2)をコピーしたデータを示す。
 図1では、キャッシュディスク40を1台だけ例示したが、キャッシュディスクの台数は複数でもよい。例えば、キャッシュディスク40およびデータディスク20がすべて同規模の記憶領域を有する場合には、キャッシュディスク40の台数は、その目的から、データディスク20の台数よりも少なくすることが好ましく、省電力の観点からは、データディスク20の台数の3割程度までであることが特に好ましい(図8参照)。
 キャッシュディスク40にデータを格納する制御は、図1に示すデータ配置制御手段15が行う。データ配置制御手段15は、各データディスク20および各キャッシュメモリ30を管理すると共に、各キャッシュディスク40とキャッシュディスクに格納するデータとを関連付けた情報等を図示しないデータベースで管理している。
 データ配置制御手段15は、例えば、図8の一部である図10(b)に示すように、データディスク20aのプライマリデータ領域21aに格納されているデータのコピーを、キャッシュディスク40に格納する。このとき、データディスク20aは通常回転状態である。したがって、本実施形態では、データ配置制御手段15は、キャッシュメモリ30に格納されているデータをデータディスク20に移動させる処理を実行した後で、続けて、データディスク20に格納されているデータをコピーしてキャッシュディスク40に格納することとする。これにより、必要のないときにはデータディスク20を回転停止状態にしておくことがでるので、省電力化を図ることができる。なお、データ配置制御手段15は、データをコピーしてキャッシュディスク40に格納する処理を、前記したprimary処理とbackup処理にてそれぞれ行う。その動作の詳細については後記する。
 また、ストレージ装置1において、キャッシュディスク40は常時、通常回転状態であるが、データディスク20は必要のないときには回転停止状態とするので、データ配置制御手段15は、読込要求時には、データディスク20よりもキャッシュディスク40を優先して、当該読込要求が対象とするデータを読み出す。
 また、本実施形態のように、ストレージ装置1がキャッシュメモリ30を備える構成とした場合には、データ配置制御手段15は、読込要求時には、キャッシュディスク40よりもキャッシュメモリ30を優先して、当該読込要求が対象とするデータを読み出す。そして、この場合、データ配置制御手段15は、読み出し対象のデータを、まず、プライマリ側のキャッシュメモリを優先して探索し、次いで、バックアップ側のキャッシュメモリを探索する。
 また、データ配置制御手段15は、読込要求時に、キャッシュディスク40に格納されていない場合やキャッシュヒットミス等が生じた場合にはじめて、オリジナルデータが格納されているデータディスク20からキャッシュディスク40に当該データを書き込む。そして、このときキャッシュディスク40に書き込んだデータを応答として返す。このようにデータディスク20からキャッシュディスク40に当該データを書き込む際には、データ配置制御手段15は、プライマリ側のデータディスク20と、バックアップ側のデータディスク20のいずれから読み出すかについて予め定めた次の規則(b1)~(b3)にしたがってデータを読み出す。これらの規則は、キャッシュディスク40への書き込み時に、データディスク20の無用な回転開始をできるだけ避けて省電力化を図るための規則である。
(b1)プライマリ側のキャッシュメモリに対応したプライマリ側のデータディスクDprimaryと、バックアップ側のキャッシュメモリに対応したバックアップ側のデータディスクDbackupとの一方が回転停止状態である場合に、通常回転状態の側から当該データを読み出す。
(b2)プライマリ側のデータディスクDprimaryおよびバックアップ側のデータディスクDbackupが両方とも回転停止状態である場合には、対応するキャッシュメモリ30の中でキャッシュしているすべてのデータ(メモリキャッシュデータ)の総キューサイズが大きい側のキャッシュメモリ30に対応したデータディスク20を選択する。
 この場合には、データ配置制御手段15は、選択したデータディスク20をディスク回転状態制御手段143によって通常回転状態にまでスピンアップさせてから当該データディスク20にアクセスしてデータを読み出す。ここで、データ配置制御手段15は、総キューサイズが大きい側を選択することとしたので、キャッシュメモリ30のメモリ容量が許容範囲を超える前に、データディスク20に格納されているデータを更新し易くなる。そのため、プライマリデータとバックアップデータとが不一致となるような期間を短縮する効果がある。
(b3)プライマリ側のデータディスクDprimaryと、バックアップ側のデータディスクDbackupとが両方とも回転停止状態、かつ、メモリキャッシュデータの総キューサイズが等しい場合には、回転停止状態の時間が長い側のデータディスク20を選択する。この場合も、データ配置制御手段15は、選択したデータディスク20をディスク回転状態制御手段143によって通常回転状態にまでスピンアップさせてから当該データディスク20にアクセスしてデータを読み出す。なお、ストレージ装置にキャッシュメモリ30を備えていない場合には、回転停止状態の時間の長さだけで判別する。
[4.キャッシュ単位が単数の場合のストレージ装置の動作]
 ここでは、ストレージ装置1が、一例として図2に示すように、キャッシュ単位を単数とした場合の動作について説明する。なお、図2では、ストレージ装置1のデータディスク20およびキャッシュメモリ30の台数は2台であるが、複数であるものとして一般化して説明する。以下では、4-1.Write処理の概要、4-2.Primaryデータ処理、4-3.Backupデータ処理、4-4.Read処理の各節に分けて順次説明する。
[4-1.Write処理の概要]
 図3は、図2のストレージ装置においてWrite処理の全体の流れを示すフローチャートである。Write処理は、システム管理手段10が行う記憶装置への書込処理であって、Primaryデータ処理(ステップS100)と、Backupデータ処理(ステップS200)とを含む。
[4-2.Primaryデータ処理]
 まず、ステップS100のPrimaryデータ処理について図4を参照(適宜図1および図2参照)して説明する。図4は、図3のPrimaryデータ処理を示すフローチャートであって、(a)は処理の全体の流れ、(b)はDPrimary書込処理をそれぞれ示している。
 ここで、DPrimaryとは、着目しているデータについてのプライマリ側データが格納されているディスクを示している。例えば、図2に示すようにデータを配列し、データP1に着目した場合には、データディスク20aがDPrimaryとなる。また、図2に示すようにデータを配列し、データP2に着目した場合には、データディスク20bがDPrimaryとなる。
 Primaryデータ処理(ステップS100)では、図4(a)に示すように、まず、システム管理手段10のキャッシュメモリ容量検出手段141は、i番目のキャッシュメモリにおける現在のプライマリ層データキューPiWに、外部から受信した書込データを加えたものを、新たなプライマリ層データキューPiWとする(ステップS101)。ここで、現在のプライマリ層データキューPiWの初期値は例えば0である。また、図2に示すように、i=1の場合、キャッシュメモリ30aを指し、i=2の場合、キャッシュメモリ30bを指す。
 次に、キャッシュメモリ容量検出手段141は、この新たなプライマリ層データキューPiWのキュー長が、プライマリ層データキューにおける最大許容キューサイズPWmaxよりも小さいか否かを判別する(ステップS102)。プライマリ層データキューPiWのキュー長が、プライマリ層データキューにおける最大許容キューサイズPWmaxよりも小さい場合(ステップS102:Yes)、データ配置制御手段15は、i番目のキャッシュメモリのプライマリ層データに対応するデータディスクDprimaryが回転中、かつ、プライマリ層データキューPiWのキュー長がプライマリ層データキューにおけるキューサイズの閾値PWthよりも大きいという条件を満たすか否かを判別する(ステップS103)。
 ステップS103において、データディスクDprimaryが回転中、かつ、プライマリ層データキューPiWのキュー長が閾値PWthよりも大きいという条件を満たす場合(ステップS103:Yes)、システム管理手段10は、ステップS110のDprimary書込処理に進む。なお、ステップS110のDprimary書込処理の詳細については後記する。このDprimary書込処理が終了すると、システム管理手段10は、ステップS101に戻る。一方、データディスクDprimaryが回転中、かつ、プライマリ層データキューPiWのキュー長が閾値PWthよりも大きいという条件を満たさない場合(ステップS103:No)、システム管理手段10は、ステップS101に戻る。
 また、ステップS102において、プライマリ層データキューPiWのキュー長が、プライマリ層データキューにおける最大許容キューサイズPWmax以上である場合(ステップS102:No)、ディスク回転状態検出手段142は、i番目のキャッシュメモリのプライマリ層データに対応するデータディスクDprimaryが回転中であるか否かを判別する(ステップS104)。
 ステップS104において、データディスクDprimaryが回転中ではない場合(ステップS104:No)、ディスク回転状態制御手段143は、そのデータディスクDprimaryをスピンアップする(ステップS105)。ステップS105に続いて、システム管理手段10は、ステップS110に進む。また、ステップS104において、データディスクDprimaryが回転中である場合(ステップS104:Yes)、システム管理手段10は、ステップS105をスキップしてステップS110に進む。
<ステップS110のDprimary書込処理>
 ここで、ステップS110のDprimary書込処理を説明する。図4(b)に示すように、データ配置制御手段15は、i番目のキャッシュメモリのプライマリ層データキューPiWを、対応するデータディスクDprimary(プライマリ層)に書き込む(ステップS111)。図2において、例えば、i=1の場合、データ配置制御手段15は、キャッシュメモリ30aのプライマリデータ領域31aのデータP1を、データディスク20aのプライマリデータ領域21a(プライマリ層)に書き込む。
 次に、データ配置制御手段15は、i番目のキャッシュメモリのプライマリ層データキューPiWを空にする(ステップS112)。そして、データ配置制御手段15は、i番目のキャッシュメモリから対応するデータディスクDprimary(プライマリ層)に書き込まれたPiWを、キャッシュディスクDcacheへ書き込む(ステップS113)。ここで、キャッシュディスクDcacheは、図1に示すキャッシュディスク40に相当する。なお、図1には、1つのキャッシュディスク40を示したが、キャッシュディスクの台数に限定は無く、キャッシュディスクが複数ある場合には、キャッシュディスクDcacheはそのうちのいずれかを示すものである。
 続いて、データ配置制御手段15は、このデータディスクDprimaryのバックアップ層データに対応するメモリキャッシュデータBuW(キャッシュメモリのバックアップ層データキュー)を、データディスクDprimary(バックアップ層)に書き込む(ステップS114)。図2において、i=1の場合、データ配置制御手段15は、キャッシュメモリ30aのバックアップデータ領域32aのデータB2を、データディスク20aのバックアップデータ領域22a(バックアップ層)に書き込む。
 なお、u(unknown)は、キャッシュメモリとデータディスクとの組が複数ある場合に、データディスクDprimaryのプライマリ層に対応したバックアップ層のデータを一般化した識別番号を示す。したがって、例えば、キャッシュメモリとデータディスクとの組が3つあるならば、i=1の場合にはu=2またはu=3もあり得る。図2の例では、i=1の場合にはu=1、i=2の場合にはu=2となる。
 続いて、データ配置制御手段15は、データディスクDprimary(バックアップ層)に書き込まれたキャッシュメモリのバックアップ層データキューBuWを空にする(ステップS115)。そして、データ配置制御手段15は、データディスクDprimary(バックアップ層)に書き込まれたBuWを、キャッシュディスクDcacheへ書き込む(ステップS116)。
[4-3.Backupデータ処理]
 次に、ステップS200のBackupデータ処理について図5を参照(適宜図1および図2参照)して説明する。図5は、図3のBackupデータ処理を示すフローチャートであって、(a)は処理の全体の流れ、(b)はDBackup書込処理をそれぞれ示している。
 ここで、DBackupとは、着目しているデータについてのバックアップ側データが格納されているディスクを示している。例えば、図2に示すようにデータを配列し、データB1に着目した場合には、データディスク20bがDBackupとなる。また、図2に示すようにデータを配列し、データB2に着目した場合には、データディスク20aがDBackupとなる。
 Backupデータ処理(ステップS200)は、図5(a)に示すように、まず、システム管理手段10のキャッシュメモリ容量検出手段141は、Primaryデータ処理で対象としたi番目のキャッシュメモリにおけるプライマリ層データに対するバックアップ層として、k番目のキャッシュメモリに格納されているバックアップ層データキューBkWに、外部から受信した書込データを加えたものを、新たなバックアップ層データキューBkWとする(ステップS201)。ここで、現在のバックアップ層データキューBkWの初期値は例えば0である。また、図2に示すように、i=1、k=2の場合、キャッシュメモリ30bを指し、i=2、k=1の場合、キャッシュメモリ30aを指す。
 次に、キャッシュメモリ容量検出手段141は、このバックアップ層データキューBkWのキュー長が、バックアップ層データキューにおける最大許容キューサイズBWmaxよりも小さいか否かを判別する(ステップS202)。バックアップ層データキューBkWのキュー長が、バックアップ層データキューにおける最大許容キューサイズBWmaxよりも小さい場合(ステップS202:Yes)、データ配置制御手段15は、i番目のキャッシュメモリのプライマリ層データPiWのバックアップ層データBkWに対応するデータディスクDbackupが回転中、かつ、バックアップ層データキューBkWのキュー長がバックアップ層データキューにおけるキューサイズの閾値BWthよりも大きいという条件を満たすか否かを判別する(ステップS203)。
 ステップS203において、データディスクDbackupが回転中、かつ、バックアップ層データキューBkWのキュー長が閾値BWthよりも大きいという条件を満たす場合(ステップS203:Yes)、システム管理手段10は、ステップS210のDbackup書込処理に進む。なお、Dbackup書込処理の詳細については後記する。このDbackup書込処理が終了すると、システム管理手段10は、ステップS201に戻る。一方、データディスクDbackupが回転中、かつ、バックアップ層データキューBkWのキュー長が閾値BWthよりも大きいという条件を満たさない場合(ステップS203:No)、システム管理手段10は、ステップS201に戻る。
 また、ステップS202において、バックアップ層データキューBkWのキュー長が、バックアップ層データキューにおける最大許容キューサイズBWmax以上である場合(ステップS202:No)、ディスク回転状態検出手段142は、バックアップ層データBkWに対応するデータディスクDbackupが回転中であるか否かを判別する(ステップS204)。
 ステップS204において、データディスクDbackupが回転中ではない場合(ステップS204:No)、ディスク回転状態制御手段143は、そのデータディスクDbackupをスピンアップする(ステップS205)。ステップS205に続いて、システム管理手段10は、ステップS210のDbackup書込処理に進む。また、ステップS204において、データディスクDbackupが回転中である場合(ステップS204:Yes)、システム管理手段10は、ステップS205をスキップしてステップS210に進む。
<ステップS210のDbackup書込処理>
 ここで、ステップS210のDbackup書込処理を説明する。図5(b)に示すように、データ配置制御手段15は、k番目のキャッシュメモリに格納されているバックアップ層データキューBkWを、対応するデータディスクDbackup(バックアップ層)に書き込む(ステップS211)。図2において、i=1、k=2の場合、データ配置制御手段15は、キャッシュメモリ30bのバックアップデータ領域32bのデータB1を、データディスク20bのバックアップデータ領域22b(バックアップ層)に書き込む。
 次に、データ配置制御手段15は、k番目のキャッシュメモリのバックアップ層データキューBkWを空にする(ステップS212)。そして、データ配置制御手段15は、k番目のキャッシュメモリから対応するデータディスクDbackup(バックアップ層)に書き込まれたBkWを、キャッシュディスクDcacheへ書き込む(ステップS213)。
 続いて、データ配置制御手段15は、このデータディスクDbackupのプライマリ層データに対応するメモリキャッシュデータPuW(キャッシュメモリのプライマリ層データキュー)を、データディスクDbackup(プライマリ層)に書き込む(ステップS214)。図2において、i=1、k=2の場合、データ配置制御手段15は、キャッシュメモリ30bのプライマリデータ領域31bのデータP2を、データディスク20bのプライマリデータ領域21b(プライマリ層)に書き込む。
 なお、u(unknown)は、キャッシュメモリとデータディスクとの組が複数ある場合に、データディスクDbackupのバックアップ層に対応したプライマリ層のデータを一般化した識別番号を示す。図2に示す例では、i=1、k=2の場合にはu=2となり、i=2、k=1の場合にはu=1となる。
 続いて、データ配置制御手段15は、データディスクDbackup(プライマリ層)に書き込まれたキャッシュメモリのプライマリ層データキューPuWを空にする(ステップS215)。そして、データ配置制御手段15は、データディスクDbackup(プライマリ層)に書き込まれたPuWを、キャッシュディスクDcacheへ書き込む(ステップS216)。
[4-4.Read処理]
 次に、システム管理手段10が記憶装置からデータを読み出す処理(Read処理)について図6および図7を参照(適宜図1および図2参照)して説明する。
 図6に示すように、システム管理手段10のデータ配置制御手段15は、i番目のキャッシュメモリにおけるプライマリ層データPiWに、読み出し対象のデータRiが無いか否かを判別する(ステップS301)。図2において、例えば、i=1の場合、データ配置制御手段15は、データRiが、キャッシュメモリ30aのプライマリデータ領域31aに無いか否かを判別する。
 プライマリ層データPiWに、読み出し対象のデータRiが無い場合(ステップS301:Yes)、データ配置制御手段15は、i番目のキャッシュメモリにおけるプライマリ層データに対するバックアップ層として、k番目のキャッシュメモリに格納されているバックアップ層データBkWに、読み出し対象のデータRiが無いか否かを判別する(ステップS302)。図2において、例えば、i=1の場合、k=2なので、データ配置制御手段15は、データRiが、キャッシュメモリ30bのバックアップデータ領域32bに無いか否かを判別する。
 バックアップ層データBkWに、読み出し対象のデータRiが無い場合(ステップS302:Yes)、データ配置制御手段15は、キャッシュディスクDcacheに、読み出し対象のデータRiが無いか否かを判別する(ステップS303)。キャッシュディスクDcacheに、読み出し対象のデータRiが無い場合(ステップS303:Yes)、データ配置制御手段15は、ステップS311の判別処理に進む。
 一方、プライマリ層データPiWに、読み出し対象のデータRiがある場合(ステップS301:No)、または、バックアップ層データBkWに、読み出し対象のデータRiがある場合(ステップS302:No)、または、キャッシュディスクDcacheに、読み出し対象のデータRiがある場合(ステップS303:No)、データ配置制御手段15は、該当する読み出し対象のデータRiを読み出し(ステップS310)、処理を終了する。
<ステップS311の判別処理>
 ここで、ステップS311の判別処理を説明する。図6に示すように、ステップS311にて、データ配置制御手段15は、プライマリ層のメモリキャッシュデータに対応するデータディスクDprimaryと、バックアップ層のメモリキャッシュデータに対応するデータディスクDbackupとが両方とも停止しているか否かを判別する。図2に示すようにデータを配列し、データP1,B1に着目した場合には、例えば、i=1、k=2の場合、データディスクDprimaryはデータディスク20aを指し、データディスクDbackupはデータディスク20bを指す。
 ステップS311において、データディスクDprimaryとデータディスクDbackupとが両方とも停止しているわけではない場合(ステップS311:No)、データ配置制御手段15は、プライマリ側のデータディスクDprimaryが回転中であるか否かを判別する(ステップS312)。
 ステップS312において、プライマリ側のデータディスクDprimaryが回転中の場合(ステップS312:Yes)、データ配置制御手段15は、データディスクDprimaryから読み出し対象のデータRiを読み出す(ステップS313)。そして、データ配置制御手段15は、データディスクDprimaryから読み出したデータRiをキャッシュディスクDcacheへ書き込む(ステップS314)。これにより、データ配信手段13のデータ読出手段131がキャッシュディスクDcacheからデータRiを読み出すことで、リード要求に対する応答データを出力することができる。
 続いて、データディスクDprimaryが回転中なので、データ配置制御手段15は、前記したステップS110のDprimary書込処理と同様の処理を行う。すなわち、データ配置制御手段15は、前記したステップS111~S116の処理を行う。これにより、システム管理手段10は、プライマリ側のデータディスクDprimaryが回転中の場合のリード処理を終了する。なお、続いて、ディスク回転状態制御手段143は、このデータディスクDprimaryの回転を停止してもよい。
 ステップS312において、プライマリ側のデータディスクDprimaryが回転中でない場合(ステップS312:No)、バックアップ側のデータディスクDbackupが回転中なので、データ配置制御手段15は、この回転しているデータディスクDbackupから読み出し対象のデータRiを読み出す(ステップS315)。そして、データ配置制御手段15は、データディスクDbackupから読み出したデータRiをキャッシュディスクDcacheへ書き込む(ステップS316)。これにより、データ読出手段131がキャッシュディスクDcacheからデータRiを読み出すことで、リード要求に対する応答データを出力することができる。
 続いて、このデータディスクDbackupが回転中なので、データ配置制御手段15は、前記したステップS210のDbackup書込処理と同様の処理を行う。すなわち、データ配置制御手段15は、前記したステップS211~S216の処理を行う。これにより、システム管理手段10は、バックアップ側のデータディスクDbackupが回転中の場合のリード処理を終了する。なお、続いて、ディスク回転状態制御手段143は、データディスクDbackupの回転を停止してもよい。
 一方、ステップS311において、データディスクDprimaryとデータディスクDbackupとが両方とも停止している場合(ステップS311:Yes)、システム管理手段10は、ステップS321の判別処理に進む。
<ステップS321の判別処理>
 ここで、ステップS321の判別処理を説明する。図7に示すように、ステップS321にて、データ配置制御手段15は、データディスクDprimary(プライマリ層)側を示すi番目のメモリキャッシュデータの総キューサイズ(PiW+BiW)が、データディスクDbackup(バックアップ層)側を示すk番目のメモリキャッシュデータの総キューサイズ(PkW+BkW)よりも大きいか否かを判別する(ステップS321)。
 図2に示すようにデータを配列し、データP1,B1に着目した場合には、例えば、i=1、k=2のとき、データディスクDprimary側のキャッシュメモリは、キャッシュメモリ30aを指し、データディスクDbackup側のキャッシュメモリは、キャッシュメモリ30bを指す。したがって、この場合、総キューサイズ(PiW+BiW)は、プライマリデータ領域31aのメモリ容量と、バックアップデータ領域32aのメモリ容量との和を示す。
 また、この場合、総キューサイズ(PkW+BkW)は、プライマリデータ領域31bのメモリ容量と、バックアップデータ領域32bのメモリ容量との和を示す。
 ステップS321において、プライマリ層側のメモリキャッシュデータの総キューサイズ(PiW+BiW)が、バックアップ層側のメモリキャッシュデータの総キューサイズ(PkW+BkW)よりも大きい場合(ステップS321:Yes)、ディスク回転状態制御手段143は、プライマリ層側のデータディスクDprimaryをスピンアップする(ステップS322)。図2において、例えば、i=1、k=2の場合、ディスク回転状態制御手段143は、データディスク20aの方をスピンアップする。続いて、データ配置制御手段15が行うステップS323,S324,S110の各処理は、前記したステップS313,S314,S110の各処理と同様なので説明を省略する。
 一方、ステップS321において、プライマリ層側のメモリキャッシュデータの総キューサイズ(PiW+BiW)が、バックアップ層側のメモリキャッシュデータの総キューサイズ(PkW+BkW)以下である場合(ステップS321:No)、データ配置制御手段15は、バックアップ層側のメモリキャッシュデータの総キューサイズ(PkW+BkW)が、プライマリ層側のメモリキャッシュデータの総キューサイズ(PiW+BiW)よりも大きいか否かを判別する(ステップS325)。
 ステップS325において、バックアップ層側のメモリキャッシュデータの総キューサイズ(PkW+BkW)が、プライマリ層側のメモリキャッシュデータの総キューサイズ(PiW+BiW)よりも大きい場合(ステップS325:Yes)、ディスク回転状態制御手段143は、バックアップ層側のデータディスクDbackupをスピンアップする(ステップS332)。図2において、例えば、i=1、k=2の場合、ディスク回転状態制御手段143は、データディスク20bの方をスピンアップする。続いて、データ配置制御手段15が行うステップS333,S334,S210の各処理は、前記したステップS315,S316,S210の各処理と同様なので説明を省略する。
 ステップS325において、バックアップ層側のメモリキャッシュデータの総キューサイズ(PkW+BkW)と、プライマリ層側のメモリキャッシュデータの総キューサイズ(PiW+BiW)とが等しい場合(ステップS325:No)、データ配置制御手段15は、停止しているデータディスクDprimaryとデータディスクDbackupのうち、回転停止期間の長い方のデータディスク(DprimaryまたはDbackup)を選択し、ディスク回転状態制御手段143は、この選択されたデータディスクをスピンアップする(ステップS326)。
 続いて、データ配置制御手段15が行うステップS327,S328の各処理は、前記したステップS313,S314の各処理、または、前記したステップS315,S316の各処理と同様なので説明を省略する。そして、データ配置制御手段15は、前記したステップS325の判別結果により選択したデータディスクがプライマリ側のデータディスクである場合(ステップS329:Dprimary)、前記したステップS110の処理を実行し、一方、選択したデータディスクがバックアップ側のデータディスクである場合(ステップS329:Dbackup)、前記したステップS210の処理を実行する。
[5.キャッシュ単位が複数の場合のストレージ装置の動作]
 ここでは、ストレージ装置1が、一例として図8に示すように、キャッシュ単位を単数とした場合の動作について説明する。以下では、5-1.ストレージ装置の構成例、5-2.Write処理のPrimaryデータ処理、5-3.Write処理のBackupデータ処理、5-4.Read処理の各節に分けて順次説明する。
[5-1.ストレージ装置の構成例]
 図8は、キャッシュ単位を複数としたストレージ装置の要部として各記憶装置の組み合わせ例を示している。キャッシュ単位を複数とするとは、各キャッシュメモリ30が、プライマリ層側もバックアップ層側も、複数ノードのデータディスク20のデータを記憶していることを意味する。
 図8に示すストレージ装置1は、データディスク20aと、データディスク20bと、データディスク20cと、データディスク20dと、データディスク20eと、データディスク20fとを備えている。これらデータディスク20a~20fは、台数が6台であって、データ種類が6種類である点を除いて、図2に示したデータディスク20a,20bと同様な構成なので、同様の符号を付して説明を省略する。
 なお、プライマリデータP1~P6は、データディスク20a~20fのプライマリデータ領域21a~21fにそれぞれ対応付けられている。一方、バックアップデータB1~B6は、それぞれ1つ隣のデータディスク20b、20c,20d,20e,20f,20aのバックアップデータ領域22b、22c,22d,22e,22f,22aにそれぞれ対応付けられている。
 また、図8に示すストレージ装置1は、キャッシュメモリ30aと、キャッシュメモリ30bと、キャッシュメモリ30cとを備えている。これらキャッシュメモリ30a~30cは、台数が3台であって、データ種類が6種類である点を除いて、図2に示したキャッシュメモリ30a,30bと同様な構成なので、同様の符号を付して説明を適宜省略する。
 書込要求または読込要求が対象とするデータと、キャッシュメモリ30a~30cとは予め対応付けられているものとする。外部から各キャッシュメモリ30へデータを書き込む制御は、図1に示すデータ配置制御手段15が行う。
 このデータ配置制御手段15は、例えば、図9に示すように、外部から、writeデータの書き込み要求があった場合に、このデータP1をキャッシュメモリ30aのプライマリデータ領域31aに格納する処理を行うと共に、データB1(=データP1)をキャッシュメモリ30bのバックアップデータ領域32bに格納する処理を行う。この処理と同様に、外部から、データP2の書き込み要求があった場合に、このデータP2をキャッシュメモリ30aのプライマリデータ領域31aに格納する処理を行うと共に、データB2(=データP2)をキャッシュメモリ30cのバックアップデータ領域32cに格納する処理を行う。
 ここで、例えば、図8に示すキャッシュメモリ30aのプライマリデータ領域31aに着目すると、異なるプライマリデータとして、データP1とデータP2とが格納されている。このうち、データP1は、データディスク20aのプライマリデータ領域21aに格納すべきデータであり、一方、データP2は、データディスク20bのプライマリデータ領域21bに格納すべきデータである。このようにキャッシュメモリ30aは、プライマリデータ領域31aに、2つのノードのデータディスク20a,20bのメモリキャッシュデータを格納している。
 同様に、キャッシュメモリ30aのバックアップデータ領域32aに着目すると、異なるバックアップデータとして、データB4とデータB5とが格納されている。このうち、データB4は、データディスク20eのバックアップデータ領域22eに格納すべきデータであり、一方、データB5は、データディスク20fのバックアップデータ領域22fに格納すべきデータである。このようにキャッシュメモリ30aは、バックアップデータ領域32aに、2つのノードのデータディスク20e,20fのメモリキャッシュデータを格納している。言い換えると、キャッシュメモリ30aのバックアップデータ領域32aは、キャッシュ単位を2としている。
 要するに、キャッシュメモリ30aは、プライマリ層側もバックアップ層側も、2つのノードのデータディスク20のデータを記憶している。同様に、キャッシュメモリ30b,30cは、プライマリ層側もバックアップ層側も、2つのノードのデータディスク20のデータを記憶している。換言すると、図8に示すストレージ装置は、キャッシュ単位を2としている。
 図8に示す例では、キャッシュ単位数(Number of Cash Unit、以下Ncuと呼ぶ)を複数とする場合に、その数は3以上であってもよい。また、図8では、ストレージ装置1のデータディスク20の台数は6台であり、キャッシュメモリ30の台数は3台であるが、以下では、それぞれが複数であるものとして一般化して説明する。この一般化した場合と、例えば図8に示す記憶装置との対応関係は、次の通りである。
<プライマリ側の関係>
 プライマリ側の関係は、Write処理のPrimaryデータ処理の中で適用される。
 プライマリ側の関係において、キャッシュ単位i=1は、キャッシュメモリ30aのプライマリデータ領域31aに格納されたデータP1とデータP2とから成る。
 また、キャッシュ単位i=2は、キャッシュメモリ30bのプライマリデータ領域31bに格納されたデータP3とデータP4とから成る。
 また、キャッシュ単位i=3は、キャッシュメモリ30cのプライマリデータ領域31cに格納されたデータP5とデータP6とから成る。
 キャッシュ単位iの中のノード別のデータの順番を識別記号j(j=1,2)で識別し、キャッシュメモリ30のプライマリ側の各データを「ij」で指定する。
 プライマリ側の関係において、ディスク単位l=1は、データディスク20a,20bから成る。
 また、ディスク単位l=2は、データディスク20c,20dから成る。
 また、ディスク単位l=3は、データディスク20e,20fから成る。
 ディスク単位lの中のデータディスクの順番を識別記号j(j=1,2)で識別し、プライマリ側に着目したときのデータディスクを「lj」で指定する。
<バックアップ側の関係>
 バックアップ側の関係は、Write処理のBackupデータ処理の中で適用される。そのため、バックアップ側の関係で指定する識別記号と、プライマリ側の関係で指定した識別記号とは独立に扱う。
 バックアップ側の関係において、キャッシュ単位k=1は、キャッシュメモリ30aのバックアップデータ領域32aに格納されたデータB4とデータB5とから成る。
 また、キャッシュ単位k=2は、キャッシュメモリ30bのバックアップデータ領域32bに格納されたデータB1とデータB6とから成る。
 また、キャッシュ単位k=3は、キャッシュメモリ30cのバックアップデータ領域32cに格納されたデータB2とデータB3とから成る。
 キャッシュ単位kの中のノード別のデータの順番を識別記号l(l=1,2)で識別し、キャッシュメモリのバックアップ側の各データを「kl」で指定する。
 バックアップ側の関係において、ディスク単位m=1は、データディスク20a,20bから成る。
 また、ディスク単位m=2は、データディスク20c,20dから成る。
 また、ディスク単位m=3は、データディスク20e,20fから成る。
 ディスク単位mの中のデータディスクの順番を識別記号n(n=1,2)で識別し、バックアップ側に着目したときのデータディスクを「mn」で指定する。
[5-2.Write処理のPrimaryデータ処理]
 図8のストレージ装置のようにキャッシュ単位を複数としたストレージ装置においてWrite処理の全体の流れは、図3に示した通り、Primaryデータ処理と、Backupデータ処理とを含む。ただし、図8のストレージ装置の場合の処理は、図2のストレージ装置の場合の処理と異なる。そこで、図8のストレージ装置の場合には、Primaryデータ処理をステップS100Bと表記し、Backupデータ処理をステップS200Bと表記する。
 まず、ステップS100BのPrimaryデータ処理について図11を参照(適宜図1、図4、図8参照)して説明する。図11は、図8のストレージ装置におけるPrimaryデータ処理の全体の流れを示すフローチャートである。
 前提として、プライマリ側の関係の識別記号を用いる。また、キャッシュ単位が複数の場合のPrimaryデータ処理(ステップS100B)では、i番目のキャッシュ単位のプライマリ層データキューのうちのj番目のデータキューPijWを指定する。このプライマリ層データキューPijWは、キャッシュメモリ30のプライマリ側に格納されており、l番目のディスク単位のj番目のデータディスクDljに対する書込データである。
 Primaryデータ処理(ステップS100B)では、図11に示すように、まず、システム管理手段10のキャッシュメモリ容量検出手段141は、i番目のキャッシュ単位のうちj番目のプライマリ層データキューPijWを書き込むときには、i番目のキャッシュ単位(プライマリデータ)全体のキューPiWのメモリ容量を検出する(ステップS121)。
 以下、システム管理手段10が実行するステップS122~S125の各処理は、回転状態を検出する対象のデータディスクが異なる点を除いて、前記したステップS102~S105の各処理(図4(a)参照)と同様なので説明を適宜省略する。ここで、回転状態を検出する対象のデータディスクは、i番目のキャッシュ単位に対応する、l番目のディスク単位のj番目のデータディスクDljである。
 システム管理手段10は、ステップS123において、データディスクDljが回転中、かつ、プライマリ層データキューPiWのキュー長が閾値PWthよりも大きいという条件を満たす場合(ステップS123:Yes)、または、ステップS124においてデータディスクDljが回転中である場合(ステップS124:Yes)、または、ステップS125の後に、ステップS130に進む。
<ステップS130のDPrimary書込処理>
 ここで、ステップS130のDprimary書込処理について図12を参照(適宜図10参照)して説明する。図12に示すように、データ配置制御手段15は、まず、繰り返し回数をカウントする変数rの初期値を「1」とする(ステップS131)。変数rの現在値がキャッシュ単位を構成するノード数Ncu以下であるか否かを判別する(ステップS132)。なお、図8に示す例の場合には、キャッシュ単位を構成するノード数Ncuは「2」である。
 ステップS132において、変数rの現在値がノード数Ncu以下である場合(ステップS132:Yes)、データ配置制御手段15は、データディスクDlrが回転中であるか否かを判別する(ステップS133)。データディスクDlrが回転中である場合(ステップS133:Yes)、データ配置制御手段15は、キャッシュメモリに格納されている、i番目のキャッシュ単位のr番目のプライマリ層データキューPirWを、対応するデータディスクDlr(プライマリ層)に書き込み(ステップS134)、そのPirWをキャッシュディスクDcacheへ書き込む(ステップS135)。このとき、r=1ならば、例えば、図10(a)の左側に示すキャッシュメモリ30aのプライマリデータ領域31aに格納されているデータのうち、1番目のデータP1を、データディスク20aのプライマリデータ領域21aへ書き込むことになる。
 続いて、データ配置制御手段15は、i番目のキャッシュ単位のプライマリ層データキューPiWのバッファ(現在値)から、既にデータディスクに書き込んだr番目のプライマリ層データキューPirWを削除する(ステップS136)。このとき、r=1ならば、例えば、図10(a)の左側に示すプライマリデータ領域31aから1番目のデータP1を削除すると、図10(b)の左側に示すように、プライマリデータ領域31aにはデータP2が残ることになる。
 続いて、データ配置制御手段15は、このプライマリ層を書き込んだデータディスクDlrのバックアップ層データに対応するメモリキャッシュデータBuvW(u番目のキャッシュ単位のv番目のバックアップ層データキュー)を、このデータディスクDlr(バックアップ層)に書き込む(ステップS137)。このとき、r=1ならば、図10(a)の左側に示すように、データP1をデータディスク20aのプライマリデータ領域21aへ書き込む場合には、図10(a)の右側に示すように、キャッシュメモリ30bのバックアップデータ領域32bに格納された2番目のデータB6を、当該データディスク20aのバックアップデータ領域22aへ書き込むこととなる。
 次いで、データ配置制御手段15は、データディスクDlr(バックアップ層)に書き込まれたBuvWをキャッシュディスクDcacheへ書き込む(ステップS138)。そして、データ配置制御手段15は、データディスクDlrのバックアップ層データに対応するキャッシュ単位のバックアップ層データキューBuWのバッファ(現在値)から、既にディスクに書き込んだv番目のバックアップ層データキューBuvWを削除する(ステップS139)。このとき、r=1ならば、図10(a)の右側に示すバックアップデータ領域32bに格納された2番目のデータB6を削除すると、図10(b)の右側に示すように、バックアップデータ領域32bにデータB1が残ることになる。
 続いて、データ配置制御手段15は、変数rの現在値に「1」を加算し(ステップS140)、ステップS132に戻る。
 前記したステップS133において、データディスクDlrが回転中ではない場合(ステップ133:No)、データ配置制御手段15は、前記したステップS134~ステップS139をスキップしてステップS140に進む。
 前記したステップS132において、変数rの現在値がノード数Ncuを超えた場合(ステップS132:No)、データ配置制御手段15は、ステップS150のDbackup\primary書込処理を実行し、その後、図11のステップS121に戻る。
<ステップS150のDbackup\primary書込処理>
 ここで、ステップS150のDbackup\primary書込処理について図13を参照(適宜図10および図11参照)して説明する。図13に示すように、データ配置制御手段15は、まず、このPrimaryデータ処理(S100B)で対象としているi番目のキャッシュ単位のバックアップ層データキューBiWのキュー長が、バックアップ層データキューにおけるキューサイズの閾値BWthよりも大きいか否かを判別する(ステップS151)。
 なお、ステップS151では、バックアップ側の関係を示す識別記号kの代わりに、識別記号iを用いる。また、ここで、バックアップ層データキューBiWは、具体的には、次のデータが相当する。例えば、ステップS150の処理の前に、図10(a)に示すキャッシュメモリ30aのプライマリデータ領域31aに格納されたデータP1をディスクに書き込む処理をした場合には、バックアップ層データキューBiWは、バックアップデータ領域32aのデータキューに相当する。
 ステップS151において、バックアップ層データキューBiWのキュー長が閾値BWthよりも大きい場合(ステップS151:Yes)、データ配置制御手段15は、繰り返し回数をカウントする変数rの初期値を「1」とする(ステップS152)。そして、データ配置制御手段15は、変数rの現在値がキャッシュ単位を構成するノード数Ncu以下であるか否かを判別する(ステップS153)。変数rの現在値がノード数Ncu以下である場合(ステップS153:Yes)、データ配置制御手段15は、i番目のキャッシュ単位のバックアップ層データに対応する、m番目のディスク単位のr番目のデータディスクDmrが回転中であるか否かを判別する(ステップS154)。
 なお、ステップS154では、バックアップ側の関係における識別記号m,rを用いる。また、例えば、バックアップ層データキューBiWが、図8に示すバックアップデータ領域32aのデータキューである場合、データディスクDmrは、r=1のときにデータディスク20eであり、r=2のときにデータディスク20fとなる。
 前記したステップS154において、データディスクDmrが回転中である場合(ステップS154:Yes)、データ配置制御手段15は、キャッシュメモリに格納されている、i番目のキャッシュ単位のr番目のバックアップ層データキューBirWを、対応するデータディスクDmr(バックアップ層)に書き込む(ステップS155)。例えば、図8に示すバックアップデータ領域32aに格納されたデータB4を、データディスク20eのバックアップデータ領域22eに書き込む。
 続いて、データ配置制御手段15は、データディスクDmr(バックアップ層)に書き込まれたBirWをキャッシュディスクDcacheへ書き込む(ステップS156)。そして、データ配置制御手段15は、i番目のキャッシュ単位のバックアップ層データキューBiWのバッファ(現在値)から、既にデータディスクに書き込んだr番目のバックアップ層データキューBirWを削除する(ステップS157)。
 次いで、データ配置制御手段15は、このバックアップ層を書き込んだデータディスクDmrのプライマリ層データに対応するメモリキャッシュデータPwvW(w番目のキャッシュ単位のv番目のプライマリ層データキュー)を、このデータディスクDmr(プライマリ層)に書き込む(ステップS158)。例えば、図8に示すバックアップデータ領域32aに格納されたデータB4を、データディスク20eのバックアップデータ領域22eに書き込む場合には、キャッシュメモリ30cのプライマリデータ領域31cに格納されたデータP5を、データディスク20eのプライマリデータ領域21eに書き込む。
 続いて、データ配置制御手段15は、データディスクDmr(プライマリ層)に書き込まれたPwvWを、キャッシュディスクDcacheへ書き込む(ステップS159)。そして、データ配置制御手段15は、データディスクDmrのプライマリ層データに対応するキャッシュ単位のプライマリ層データキューPwWのバッファ(現在値)から、既にディスクに書き込んだv番目のプライマリ層データキューPwvWを削除する(ステップS160)。そして、データ配置制御手段15は、変数rの現在値に「1」を加算し(ステップS161)、ステップS153に戻る。
 前記したステップS154において、データディスクDmrが回転中ではない場合(ステップ154:No)、データ配置制御手段15は、前記したステップS155~ステップS160をスキップしてステップS161に進む。
 前記したステップS153において変数rの現在値がノード数Ncuを超えた場合(ステップS153:No)、または、前記したステップS151においてバックアップ層データキューBiWのキュー長が閾値BWth以下である場合(ステップS151:No)、データ配置制御手段15は、図11のステップS121に戻る。
[5-3.Write処理のBackupデータ処理]
 次に、ステップS200BのBackupデータ処理について図14を参照(適宜図1、図5、図8参照)して説明する。図14は、図8のストレージ装置におけるBackupデータ処理の全体の流れを示すフローチャートである。
 前提として、バックアップ側の関係の識別記号を用いる。また、キャッシュ単位が複数の場合のBackupデータ処理(ステップS200B)では、i番目のキャッシュ単位のj番目のプライマリデータキューPijWのバックアップとして、k番目のキャッシュ単位のl番目のバックアップ層データキューBklWを指定する。このバックアップ層データキューBklWは、キャッシュメモリ30のバックアップ側に格納されており、m番目のディスク単位のn番目のデータディスクDmnに対する書込データである。
 Backupデータ処理(ステップS200B)では、図14に示すように、まず、システム管理手段10のキャッシュメモリ容量検出手段141は、キャッシュメモリ30のバックアップ側に格納されている、k番目のキャッシュ単位のうちl番目のバックアップ層データキューBklWを書き込むときには、k番目のキャッシュ単位(バックアップデータ)全体のキューBkWのメモリ容量を検出する(ステップS221)。
 以下、システム管理手段10が実行するステップS222~S225の各処理は、回転状態を検出する対象のデータディスクが異なる点を除いて、前記したステップS202~S205の各処理(図5(a)参照)と同様なので説明を適宜省略する。ここで、回転状態を検出する対象のデータディスクは、k番目のキャッシュ単位に対応する、m番目のディスク単位のn番目のデータディスクDmnである。
 システム管理手段10は、ステップS223において、データディスクDmnが回転中、かつ、バックアップ層データキューBkWのキュー長が閾値BWthよりも大きいという条件を満たす場合(ステップS223:Yes)、または、ステップS224においてデータディスクDmnが回転中である場合(ステップS224:Yes)、または、ステップS225の後に、ステップS230に進む。
<ステップS230のDBackup書込処理>
 ここで、ステップS230のDBackup書込処理について図15を参照(適宜図10参照)して説明する。図15に示すように、データ配置制御手段15は、まず、繰り返し回数をカウントする変数rの初期値を「1」とする(ステップS231)。変数rの現在値がキャッシュ単位を構成するノード数Ncu以下であるか否かを判別する(ステップS232)。変数rの現在値がノード数Ncu以下である場合(ステップS232:Yes)、データ配置制御手段15は、データディスクDmrが回転中であるか否かを判別する(ステップS233)。
 ステップS233において、データディスクDmrが回転中である場合(ステップS233:Yes)、データ配置制御手段15は、キャッシュメモリに格納されている、k番目のキャッシュ単位のr番目のバックアップ層データキューBkrWを、対応するデータディスクDmr(バックアップ層)に書き込む(ステップS234)。
 このとき、既に行ったprimary処理にて、例えば、図10(a)の左側に示すキャッシュメモリ30aでデータP1を、データディスク20aのプライマリデータ領域21aへ書き込んでいた場合、r=1とすると、キャッシュメモリ30bのバックアップデータ領域32bに格納された1番目のデータB1を、データディスク20bのバックアップデータ領域22bへ書き込むこととなる。
 続いて、データ配置制御手段15は、データディスクDmr(バックアップ層)に書き込まれたBkrWをキャッシュディスクDcacheへ書き込み(ステップS235)、k番目のキャッシュ単位のバックアップ層データキューBkWのバッファ(現在値)から、既にディスクに書き込んだr番目のバックアップ層データキューBkrWを削除する(ステップS236)。
 続いて、データ配置制御手段15は、このバックアップ層を書き込んだデータディスクDmrのプライマリ層データに対応するメモリキャッシュデータPuvW(u番目のキャッシュ単位のv番目のプライマリ層データキュー)を、このデータディスクDmr(プライマリ層)に書き込む(ステップS237)。例えば、図10(a)の右側に示すキャッシュメモリ30bから既にデータB1をデータディスク20bのバックアップデータ領域22bへ書き込んだ場合には、キャッシュメモリ30aのプライマリデータ領域31aに格納された2番目のデータP2を、データディスク20bのプライマリデータ領域21bへ書き込む。
 続いて、データ配置制御手段15は、データディスクDmr(プライマリ層)に書き込まれたPuvWをキャッシュディスクDcacheへ書き込み(ステップS238)、データディスクDmrのプライマリ層データに対応するキャッシュ単位のプライマリ層データキューPuWのバッファ(現在値)から、既にディスクに書き込んだv番目のプライマリ層データキューPuvWを削除する(ステップS239)。そして、データ配置制御手段15は、変数rの現在値に「1」を加算し(ステップS240)、ステップS232に戻る。
 前記したステップS233において、データディスクDmrが回転中ではない場合(ステップ233:No)、データ配置制御手段15は、前記したステップS234~ステップS239をスキップしてステップS240に進む。
 前記したステップS232において、変数rの現在値がノード数Ncuを超えた場合(ステップS232:No)、データ配置制御手段15は、ステップS250のDprimary\backup書込処理を実行し、その後、図14のステップS221に戻る。
<ステップS250のDprimary\backup書込処理>
 ここで、ステップS250のDprimary\backup書込処理について図16を参照(適宜図10および図14参照)して説明する。図16に示すように、データ配置制御手段15は、まず、このBackupデータ処理(S200B)で対象としているk番目のキャッシュ単位のプライマリ層データキューPkWのキュー長が、プライマリ層データキューにおけるキューサイズの閾値PWthよりも大きいか否かを判別する(ステップS251)。
 なお、ステップS251では、プライマリ側の関係を示す識別記号「i」の代わりに、識別記号kを用いる。また、ここで、プライマリ層データキューPkWは、具体的には、次のデータが相当する。例えば、ステップS250の処理の前に、図10(a)に示すキャッシュメモリ30bのバックアップデータ領域32bに格納されたデータB1をディスクに書き込む処理をした場合には、プライマリ層データキューPkWは、プライマリデータ領域31bのデータキューに相当する。
 ステップS251において、プライマリ層データキューPkWのキュー長が閾値PWthよりも大きい場合(ステップS251:Yes)、データ配置制御手段15は、繰り返し回数をカウントする変数rの初期値を「1」とする(ステップS252)。そして、データ配置制御手段15は、変数rの現在値がキャッシュ単位を構成するノード数Ncu以下であるか否かを判別する(ステップS253)。変数rの現在値がノード数Ncu以下である場合(ステップS253:Yes)、データ配置制御手段15は、k番目のキャッシュ単位のプライマリ層データに対応する、k番目のディスク単位のr番目のデータディスクDkrが回転中であるか否かを判別する(ステップS254)。
 なお、キャッシュ単位およびディスク単位のプライマリ側の関係においては、キャッシュ単位の識別記号とそれに対応したディスク単位の識別記号とは同じなので、ステップS254では、キャッシュ単位もディスク単位も共にk番目となる。また、例えば、プライマリ層データキューPkWが、図8に示すプライマリデータ領域31bのデータキューである場合、データディスクDkrは、r=1のときにデータディスク20cであり、r=2のときにデータディスク20dとなる。
 前記したステップS254において、データディスクDkrが回転中である場合(ステップS254:Yes)、データ配置制御手段15は、キャッシュメモリに格納されている、k番目のキャッシュ単位のr番目のプライマリ層データキューPkrWを、対応するデータディスクDkr(プライマリ層)に書き込む(ステップS255)。例えば、図8に示すプライマリデータ領域31bに格納されたデータP3を、データディスク20cのプライマリデータ領域21cに書き込む。
 続いて、データ配置制御手段15は、データディスクDkr(プライマリ層)に書き込まれたPkrWを、キャッシュディスクDcacheへ書き込む(ステップS256)。そして、データ配置制御手段15は、k番目のキャッシュ単位のプライマリ層データキューPkWのバッファ(現在値)から、既にディスクに書き込んだr番目のプライマリ層データキューPkrWを削除する(ステップS257)。
 次いで、データ配置制御手段15は、このプライマリ層を書き込んだデータディスクDkrのバックアップ層データに対応するメモリキャッシュデータBwvW(キャッシュ単位のv番目のバックアップ層データキュー)を、このデータディスクDkr(バックアップ層)に書き込む(ステップS258)。例えば、図8に示すプライマリデータ領域31bに格納されたデータP3を、データディスク20cのプライマリデータ領域21cに書き込む場合には、キャッシュメモリ30cのバックアップデータ領域32cのうちのデータ「B2」を、データディスク20cのバックアップデータ領域22cに書き込む。
 続いて、データ配置制御手段15は、データディスクDkr(バックアップ層)に書き込まれたBwvWを、キャッシュディスクDcacheへ書き込む(ステップS259)。そして、データ配置制御手段15は、データディスクDkrのバックアップ層データに対応するキャッシュ単位のバックアップ層データキューBwWのバッファ(現在値)から、既にディスクに書き込んだv番目のバックアップ層データキューBwvWを削除する(ステップS260)。そして、データ配置制御手段15は、変数rの現在値に「1」を加算し(ステップS261)、ステップS253に戻る。
 前記したステップS254において、データディスクDkrが回転中ではない場合(ステップ154:No)、データ配置制御手段15は、前記したステップS255~ステップS260をスキップしてステップS261に進む。
 前記したステップS253において変数rの現在値がノード数Ncuを超えた場合(ステップS253:No)、または、前記したステップS251においてプライマリ層データキューPkWのキュー長が閾値PWth以下である場合(ステップS251:No)、データ配置制御手段15は、図14のステップS221に戻る。
[5-4.Read処理]
 図8のストレージ装置のようにキャッシュ単位を複数としたストレージ装置においてRead処理の全体の流れを図18に示す。図18に示すように、システム管理手段10が実行するステップS401~S403、S410の各処理は、読み出し対象のデータをRijである点を除いて、前記したステップS301~S303、S310の各処理(図6参照)と同様なので説明を適宜省略する。
 ここで、読み出し対象のデータRijは、そのオリジナルデータが、i番目のキャッシュ単位に対応する、l番目のディスク単位のj番目のデータディスクDljに格納されていることを表している。例えば、図8に示す例において、i=1、j=1の場合、データRijがデータP1に相当する。
 したがって、キャッシュディスクDcacheに、読み出し対象のデータRijが無い場合(ステップS403:Yes)、システム管理手段10のデータ配置制御手段15は、各データディスク20を管理するための図示しないデータベースを参照して、ディスク単位も考慮して、図17に示すように、プライマリ側のデータディスクと、バックアップ側のデータディスクとを決定し(ステップS404)、ステップS411の判別処理に進む。
 図17に示す例では、データディスク20fのプライマリデータ領域21fに格納されたデータPに読み出し要求があった場合を示している。この場合、キャッシュメモリ30にもキャッシュディスク40にもデータPは存在しないため、ヒットミスが発生し、該当データをデータディスク20から読み出すこととなる。そして、プライマリ側のデータディスクは、データディスク20fとして決定され、バックアップ側のデータディスクは、データディスク20aとして決定される。その後の処理にて、データ配置制御手段15は、どちらか回転しているデータディスク20から該当データをキャッシュディスク40にコピーする。
 なお、キャッシュ単位が単数の場合、図6では省略したが、データ配置制御手段15は、ディスク単位を考慮せずに、図示しないデータベースを参照して、プライマリ側のデータディスクと、バックアップ側のデータディスクとを決定している。
 また、図18に示すように、システム管理手段10が実行するステップS411~S416の各処理は、前記したステップS311~S316の各処理(図6参照)と同様なので説明を省略する。
 ただし、システム管理手段10のデータ配置制御手段15は、各キャッシュメモリ30を管理するための図示しないデータベースを参照して、キャッシュ単位も考慮して、プライマリ側のキャッシュメモリと、バックアップ側のキャッシュメモリとを決定し(ステップS417)、前記したステップS321の判別処理(図7参照)に進む。
 なお、キャッシュ単位が単数の場合、図6では省略したが、データ配置制御手段15は、キャッシュ単位を考慮せずに、図示しないデータベースを参照して、プライマリ側のキャッシュメモリと、バックアップ側のキャッシュメモリとを決定している。
 前記1章~5章に詳述したように、本実施形態のストレージ装置1およびその制御方法によれば、所定データに関するプライマリ側およびバックアップ側のデータディスク20の一方の回転停止状態を長時間確保することができると共に、各データディスク20のスピンアップの開始回数および回転停止への切り換え回数を少なく抑えることができる。したがって、本実施形態のストレージ装置1は、多くのデータディスク20をなるべく回転停止状態としておくことで、その性能と信頼性を確保しつつ、省電力化することができる。
 以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、その趣旨を変えない範囲で様々に実施することができる。
[変形例1]
 本実施形態では、データディスク20の通常回転休止状態を回転停止状態であるものとして説明したが、回転停止状態の代わりに低速回転状態としてもよい。データディスク20の回転を完全に停めると、定常電力が消費されないという利点があるが、再び回転するときに、ディスクアイドル状態(通常回転数で回転しているがライトもリードもしていない状態)になるまでに遅れが生じ、スパイク電流が起こる。これに対して、データディスク20を低速回転状態にした場合には、低速回転状態からディスクアイドル状態になるまでの所要時間およびその消費電力が少なくなる。すなわち、ストレージ装置の性能や省電力の観点からは、低速回転状態の方がより好ましい。
 ここで、低速時の回転数は、省電力の観点からは通常回転数よりもできるだけ低い方がよいが、スピンアップ時の応答時間を短縮して性能の劣化を低減する観点からは過度に低くする必要はない。また、低速回転にすることによって得られる消費電力量と、アクセスが発生した場合に最高速回転(通常回転数)に戻るまでの時間損失とのトレードオフの関係がある。また、低速時の好適な回転数は、ディスクドライブに対するアクセス(read/write)頻度によっても影響を受ける。そのため、低速時の回転数は、消費電力量と通常回転数に戻るまでの時間との優先度の違いや、使用条件等の運用方法を考慮した上で、適宜設計変更することができる。
 一例として挙げると、通常回転数と低速時の回転数との関係は、ストレージの分野において従来公知のように、最高回転数と、低速時の回転数とを一対一に対応させて、低速時の回転数を最高回転数の約6割となるようにしてもよい。また、例えば、ストレージの分野において、従来、最高回転数を、アクセス頻度に応じて最高時の30~95%になるように多段速の回転数に切り替える手法も提案されており、このように、最高回転数と低速時の回転数とを一対多に対応させてもよい。
[変形例2]
 本実施形態では、キャッシュ単位が複数の場合に、例えば、前記したステップS122(図11参照)の処理でNo、かつ、データディスクDljが回転停止状態である場合に、i番目のキャッシュ単位のプライマリ層データキューのうちのj番目のデータキューPijWに対応した固定のデータディスクをスピンアップする(ステップS125)こととしたが、これに限定されるものではない。
 つまり、ステップS125においてスピンアップするデータディスクを固定とするのではなく、このPijWを含むデータキューPiWの中にある、Pi1~PiNcuまでのNcu個のメモリキャッシュデータのうちで、一番大きなキュー長をもつキャッシュデータに対応したデータディスクをスピンアップさせてもよい。この場合には、キャッシュメモリ30のデータキューを効果的に減らすることができる。
[変形例3]
 本実施形態では、キャッシュメモリ30を、1つのプライマリデータ領域と1つのバックアップデータ領域とに論理的に分割するものとして説明したが、1つのプライマリデータ領域と複数のバックアップデータ領域とに分割するように構成してもよい。一例として、ストレージ装置においてキャッシュ単位が単数であってキャッシュメモリが1つのプライマリデータに対して2つのバックアップデータを記憶する場合の模式図を図19に示す。なお、1つのプライマリデータ領域と3つ以上のバックアップデータ領域とに分割するように構成してもよいことはもちろんである。
 図19に示すキャッシュメモリ30aは、1つのプライマリデータ領域31と2つのバックアップデータ領域32とに分割されている。このキャッシュメモリ30aのプライマリデータ領域31には、データディスク20aにプライマリデータとして格納するためのメモリキャッシュデータとして、データCPiが格納されている。また、キャッシュメモリ30aの一方のバックアップデータ領域32には、データディスク20aにバックアップデータとして格納するためのメモリキャッシュデータとして、データCBi-1が格納されている。同様に、他方のバックアップデータ領域32には、データCBi-2が格納されている。このようにキャッシュメモリ30を構成することで、データを多重化して信頼性をより向上させることができる。
 また、この場合には、キャッシュメモリ30aのプライマリデータ領域31に格納されたデータCPiのバックアップデータ(データCBi)は、キャッシュメモリ30bのバックアップデータ領域32と、キャッシュメモリ30cのバックアップデータ領域32とに格納されている。したがって、例えば、Backupデータ処理(ステップS200)により、キャッシュメモリ30bのバックアップデータ領域32に格納されていたデータCBiを消去したとしても、キャッシュメモリ30cのバックアップデータ領域32に格納されているデータCBiを同時には消去せずに、しばらく残したままにすることが可能となる。
[変形例4]
 本実施形態では、ストレージ装置1は、1つのシステム管理手段10が複数のデータディスク20を制御するものとして説明したが、本発明は、これに限定されるものではない。例えば、システム管理手段をデータディスクごとに設けて自律ストレージ装置を個別に構成し、全体のストレージ装置を、複数の自律ストレージ装置を備える自律ストレージシステムとして構成してもよい。この場合には、予め定めた自律分散管理ルールに基づいて、各自律ストレージ装置が他の自律ストレージ装置と協調しながら、データの複製や移動を行うことができる。
[変形例5]
 本実施形態では、ストレージ装置1は、システム管理手段10と、データディスク20と、キャッシュメモリ30と、キャッシュディスク40とを備えるものとして説明したが、本発明は、これに限定されるものではない。例えば、リード処理の安定を重視しない場合には、キャッシュディスク40を除いて構成してもよい。また、例えば、ライト処理の安定を重視せずに、リード処理の安定だけを重視する場合には、キャッシュメモリ30を除いて構成してもよい。さらに、データディスク20とシステム管理手段とによる基本構成のみで簡易的に構成するようにしてもよい。
 例えば、システム管理手段10と、データディスク20と、キャッシュメモリ30とを備えるストレージ装置の場合には、前記したストレージ装置の動作において次のように処理を変更する。
 キャッシュ単位が単数の場合のストレージ装置の動作においては、Write処理のPrimaryデータ処理(ステップS100)にて、データ配置制御手段15は、ステップS113とステップS116とをスキップする。また、Backupデータ処理(ステップS200)にて、データ配置制御手段15は、ステップS213とステップS216とをスキップする。また、Read処理にて、データ配置制御手段15は、ステップS303、S314、S316、S324、S328およびS334をスキップする。
 また、キャッシュ単位が複数の場合のストレージ装置の動作においては、Write処理のPrimaryデータ処理(ステップS100B)にて、データ配置制御手段15は、ステップS135、S138、S156およびS159をスキップする。また、Backupデータ処理(ステップS200B)にて、データ配置制御手段15は、ステップS235、S238、S256およびS259をスキップする。また、Read処理にて、データ配置制御手段15は、ステップS414、S416、S324、S328およびS334をスキップする。このように、キャッシュディスク40を備えていないストレージ装置の場合には、処理を簡略化することができる。
 本発明による効果を確認するために、本発明のストレージ装置の性能を検証するコンピュータシミュレーションを行った。
(実験方法)
 実施例のストレージ装置は、システム管理手段と、データディスク20と、キャッシュメモリ30と、キャッシュディスク40とを備え、前記した制御方法により、なるべく多くのデータディスク20を停止させておく制御を行うこととした。この実施例のストレージ装置を、従来方式のストレージ装置と比較して消費電力の低減効果を見積もる実験を行った。ここで、従来方式のストレージ装置とは、キャッシュメモリ30と、キャッシュディスク40とを備えておらず、すべてのデータディスク20が常に回転中であり、実施例のような特別な制御を行わない装置である。以下に記載する数式中の記号の説明を表1にまとめて記す。
Figure JPOXMLDOC01-appb-T000001
(算出式)
 実施例のストレージ装置は、m台のデータディスク20と、n台のキャッシュディスク40とを備えることとした。この場合に、実施例のストレージ装置のm台のデータディスク20全体に係る消費電力PdataDiskを式(1)にて算出した。
Figure JPOXMLDOC01-appb-M000002
 式(1)において、frは読み出しアクセス頻度、fwは書き込みアクセス頻度をそれぞれ示す。これらfr,fwはそれぞれ0~1の割合で示す(0≦fr≦1、0≦fw≦1)。データディスク20へのアクセスは、読み出し事象、書き込み事象、その他の事象に分類できるが、仮にすべてのアクセスを読み出し事象または書き込み事象に対応付けた場合には、fr+fwは1となる。
 式(1)の右辺第1項は、書込時、読込時およびそれ以外のときに、データディスク20にアクセスが無い場合の消費電力に相当する項である。式(1)の右辺第2項は、読込時に、キャッシュメモリ30およびキャッシュディスク40の両方でキャッシュヒットミスした場合にデータディスク20から直接読み出すときの消費電力に相当する項である。式(1)の右辺第3項は、書込時に、キャッシュメモリ30のキュー長が閾値を超えていた場合にデータディスク20に直接書き込むときの消費電力に相当する項である。
 また、この場合に、実施例のストレージ装置のn台の常に回転しているキャッシュディスク40全体に係る消費電力PcacheDiskを式(2)にて算出した。
Figure JPOXMLDOC01-appb-M000003
 式(2)の右辺第1項は、キャッシュメモリ30にヒットした場合および読み出し処理自体が発生しなかった場合の消費電力に相当する項である。式(2)の右辺第2項は、キャッシュメモリ30がヒットミスした場合において、キャッシュディスク40ではヒットした場合の消費電力に相当する項である。式(2)の右辺第3項は、キャッシュディスク40でもヒットしなかった場合において、データディスク20からデータを読み出し、さらにそのデータをキャッシュディスク40に書き込むときの消費電力に相当する項である。式(2)の右辺第4項は、キャッシュメモリ30のメモリバッファをオーバーフローしてデータディスク20に書き込む際に、当該データをキャッシュディスク40に書き込む消費電力に相当する項である。
 また、前記式(1)で示す消費電力PdataDiskおよび式(2)で示す消費電力PcacheDiskを用いて、実施例のストレージ装置全体に係る消費電力Ptotalを式(3)にて算出した。
 
Figure JPOXMLDOC01-appb-M000004
 これら式(1)~式(3)は、読み出しアクセス頻度frと、書き込みアクセス頻度fwと、読み出しアクセスに対するキャッシュメモリのヒット率hcと、読み出しアクセスに対するキャッシュディスクのヒット率hdと、書き込みアクセスに対する書き込み可能率bwとを用いて、ヒットしたときにどこにデータがあるものを読むのかという点と、それぞれのその読みにいった場所に対する消費電力の使い方とを考慮して予め定めた関係式である。なお、前提としては、読み出し要求があったときに、読み出し対象データがキャッシュディスク40に無い場合にはデータディスク20からキャッシュディスク40側にコピーして、それを読み出す。また、書き込み要求があったときに、書き込みアクセスに対するキャッシュヒットがあれば、キャッシュメモリ30だけで対応しつつデータディスク20を停止させておき、キャッシュメモリ30にデータがある程度たまったときにだけデータディスク20をスピンアップして書き出す。
 また、比較例のストレージ装置は、m台のデータディスク20を備えることとして、その消費電力Pnormalを式(4)にて算出した。
Figure JPOXMLDOC01-appb-M000005
 なお、書き込みアクセス時には、書き込み直前に、比較例の場合には、データディスク20を回転させておくための消費電力を要しているが、実施例の場合には、通常は停止させており、キャッシュメモリ30にデータがある程度たまったときにだけデータディスク20をスピンアップして書き出す点が大きく異なる。
(計算条件)
 ここでは、データディスク20の台数mと、キャッシュディスク40の台数nとの合計値を100台とした(m+n=100)。数多くの実験を行ったが、ここでは、代表として3つの例を挙げる。
<実験A>内訳をm=90、n=10とした。
 シミュレーションでは、次のパラメータに関しては、以下の固定値とした。ここで、状態遷移時の消費電力Ptranは、読み込みまたは書き込み時のおよそ2倍の電力消費とした。
 Pstandby=0.8[W]、Pidle=9.3[W]、Ptran=24[W]、Pread=13[W]、
 Pwrite=13[W]、hd=0.95、bw=1.0、rd=0.2、f=0.7、f=0.2
 その上で、hcを70~95%の間で5%ずつ変化させたときの実施例のストレージ装置1の全電力消費量Ptotalを求めた。また、比較例の消費電力Pnormalを求め、消費電力削減率を算出した((Pnormal-Ptotal)/Pnormal)。
<実験B>内訳をm=80、n=20とし、全く同じ計算条件で消費電力削減率を算出した。
<実験C>内訳をm=70、n=30とし、f=0.3(f+f=1)に変更し、他のパラメータは、全く同じ計算条件で消費電力削減率を算出した。
(実験結果)
 実験A(m=90、n=10とした場合)の実験結果を表2に示す。
 実験B(m=80、n=20とした場合)の実験結果を表3に示す。
 実験C(m=70、n=30、f=0.3とした場合)の実験結果を表4に示す。
Figure JPOXMLDOC01-appb-T000006
Figure JPOXMLDOC01-appb-T000007
Figure JPOXMLDOC01-appb-T000008
 表2~表4に示すすべてのケースで、消費電力削減効果を認めることができた。なお、比較例は常に回転しており、実施例はディスクを停めては動かすという前提なので、回転の停止および再開を頻繁に繰り返すと、動かし続けるときよりもコストがかかる場合も当然生じる。このような場合には、消費電力削減率がマイナスになる。
 また、表2~表4に示すように、消費電力削減率は、読み出しアクセス頻度frや、書き込みアクセス頻度fwの比率によって、大きく変化する。例えば、表2と表3との結果を比較すると、n=10の場合の方が、n=20の場合よりも消費電力削減率が大きいが、読み出しアクセスに対するキャッシュメモリのヒット率hc、読み出しアクセスに対するキャッシュディスクのヒット率hdや、読み出しアクセス頻度frと書き込みアクセス頻度fwとの比率によって、大きく変化する。
 また、消費電力削減率は、キャッシュディスク40の台数nと、データディスク20の台数mとの比率によっても大きく変化する。表2と表3に示すように、実施例のストレージ装置において総ディスク数の10~20%をキャッシュディスク40とし、アクセスデータに強く局所性があり、読み出しアクセスに対するキャッシュメモリのヒット率hcが非常に高い状況では、表2のNo.A6に示すように、最大71.1[%]程度の省電力化が達成可能となる。
 また、表4に示すように、キャッシュディスク40の台数nを30とした場合でも、ケースによっては40[%]以上の省電力化が達成可能となる。なお、キャッシュディスク40の台数nが、データディスク20の台数m以上であると、キャッシュディスク40のコストが大きいので、本発明の効果が相対的に減る。
 また、ここでは、読み出しアクセスに対するキャッシュメモリのヒット率hcを70~95%の間で変化させたが、その最適値は、例えば、アプリケーション、データディスク20の格納データの種類等に依存する。例えば、データディスク20に、多くのユーザがアクセスするブログページを数多く格納し、アクセス頻度の少ないブログページを少数格納している場合には、hcが高くなるため、この場合には、本実施例の制御方法の適用が特に好ましい。
 なお、書き込み時には、キャッシュメモリ30のヒット率(書き込みアクセスに対する書き込み可能率bw)が高いので、キャッシュメモリ30の方で済ませられる処理が増え、その分だけデータディスク20にアクセスする必要がなくなり、データディスク20を長い間停めておけるので、コスト削減効果が大きい。そのため、読み出しアクセス頻度frや、書き込みアクセス頻度fwの比率を変えて、相対的に読み出しアクセス頻度frを減らすと、書き込み処理によるコスト削減効果が増加する。
 1   ストレージ装置
 2   ネットワーク
 10  システム管理手段
 11  通信送受信手段
 12  データ格納手段
 121 データ受信手段
 122 データ書込手段
 13  データ配信手段
 131 データ読出手段
 132 データ送信手段
 14  データ管理手段
 141 キャッシュメモリ容量検出手段
 142 ディスク回転状態検出手段
 143 ディスク回転状態制御手段
 15  データ配置制御手段
 20  データディスク
 20a~20f データディスク
 21  プライマリデータ
 21a~21f プライマリデータ領域
 22  バックアップデータ
 22a~22f バックアップデータ領域
 30  キャッシュメモリ
 30a~30e キャッシュメモリ
 31  プライマリデータ
 31a~31e プライマリデータ領域
 32  バックアップデータ
 32a~32e バックアップデータ領域
 40  キャッシュディスク
 41  プライマリデータ
 42  バックアップデータ

Claims (9)

  1.  ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、書込要求に応じて前記データディスクの1つに格納すべきデータを当該データディスクの前記プライマリデータ領域に格納すると共に、当該データを少なくとも1つの別の前記データディスクのバックアップデータ領域に格納する制御を行うシステム管理手段とを備えたストレージ装置において、
     前記システム管理手段は、
     前記データディスクの通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを検出するディスク回転状態検出手段と、
     前記データディスクの回転状態を前記通常回転状態または前記通常回転休止状態に切り替えるディスク回転状態制御手段と、
     書込要求または読込要求に応じて、前記複数台のデータディスクの中から選択したデータディスクの回転状態が前記通常回転休止状態である場合に前記ディスク回転状態制御手段によって回転状態を前記通常回転状態に切り替えさせる制御を行うと共に、当該データディスクが前記通常回転状態であるときに、書込対象とするデータを前記選択したデータディスクに移動させる処理、または、読込対象とするデータを前記選択したデータディスクから移動させる処理を行うデータ配置制御手段と、
    を備えることを特徴とするストレージ装置。
  2.  前記データ配置制御手段は、
     書込要求時において、書込対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクと、前記プライマリ側のデータディスクのバックアップとして対応付けられたバックアップデータ領域を有する1つまたは複数のバックアップ側のデータディスクとをそれぞれ選択し、プライマリ側またはバックアップ側のデータディスクが前記通常回転休止状態であることが検出された場合に、前記ディスク回転状態制御手段によって前記通常回転状態にまでスピンアップさせてから当該データディスクにアクセスし、当該データディスクが前記通常回転状態であるときに前記書込要求が対象とするデータを前記データディスクに移動させる処理をディスク毎に連続して行い、
     読込要求時において、選択した前記プライマリ側または前記バックアップ側のデータディスクが前記通常回転休止状態であることが検出された場合に、前記通常回転状態の側のデータディスクに優先してアクセスし、当該データディスクが前記通常回転状態であるときに前記読込要求が対象とするデータを前記データディスクから移動させる処理を行い、
     前記読込要求時において、選択した前記プライマリ側および前記バックアップ側のデータディスクが両方とも前記通常回転休止状態であることが検出された場合に、前記通常回転休止状態の時間が長い側のデータディスクを前記ディスク回転状態制御手段によって前記通常回転状態にまでスピンアップさせてから当該データディスクにアクセスし、当該データディスクが前記通常回転状態であるときに前記読込要求が対象とするデータを前記データディスクから移動させる処理を行うことを特徴とする請求項1に記載のストレージ装置。
  3.  請求項1または請求項2に記載のストレージ装置において、さらに、記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、
     前記キャッシュメモリにおける現在のキュー長を検出し、前記検出したキュー長と、メモリ容量の状態を分類するための予め定められた閾値とを比較することにより現在のメモリ容量の状態を検出するキャッシュメモリ容量検出手段とを備え、
     前記データ配置制御手段は、
     書込要求に応じて前記データディスクの1つに格納すべきデータを一時的に、当該データディスクに対応付けられた前記キャッシュメモリのプライマリデータ領域に格納すると共に、当該データを少なくとも1つの別の前記キャッシュメモリのバックアップデータ領域に格納し、
     前記キャッシュメモリのキュー長が、データをディスクに移動させるための閾値の範囲内のメモリ容量の状態であることが検出された場合に、当該キャッシュメモリに格納されているデータを当該データディスクに移動させることを特徴とするストレージ装置。
  4.  請求項1ないし請求項3のいずれか一項に記載のストレージ装置において、さらに、前記データディスクに格納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクを備え、
     前記データ配置制御手段は、
     前記データディスクに格納されているデータをコピーして前記キャッシュディスクに格納し、読込要求時には、前記データディスクよりも前記キャッシュディスクを優先して、当該読込要求が対象とするデータを読み出すことを特徴とするストレージ装置。
  5.  ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスクおよびキャッシュメモリにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、
     前記システム管理手段は、書込要求時において、
     書込要求が対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクに対して当該データをプライマリデータとして書き込むプライマリデータ処理と、
     当該データに対応付けられたバックアップデータ領域を有するバックアップ側のデータディスクに対して、当該データをバックアップデータとして書き込むバックアップデータ処理と、を含んで実行し、
     前記プライマリデータ処理は、
     前記書込要求が対象とするデータを一時的に、前記プライマリ側のデータディスクである第1のデータディスクに対応付けられた第1のキャッシュメモリのプライマリデータ領域に格納するステップと、
     前記第1のデータディスクの回転状態が通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを判別するステップと、
     前記第1のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、
     前記第1のデータディスクの回転状態が前記通常回転状態であるときに当該第1のデータディスクに対してデータの書込を行うプライマリ側の書込ステップとを含み、
     前記プライマリ側の書込ステップは、
     前記第1のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第1のデータディスクのプライマリデータ領域に格納するステップと、
     当該第1のデータディスクのバックアップデータ領域に対応付けられているデータが格納されている第2のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第1のデータディスクのバックアップデータ領域に格納するステップと、を含み、
     前記バックアップデータ処理は、
     前記書込要求が対象とするデータを一時的に、前記第1のキャッシュメモリのプライマリデータ領域に格納されているデータに対するバックアップとして、第3のキャッシュメモリのバックアップデータ領域に格納するステップと、
     前記第1のデータディスクのバックアップとして対応付けられた第2のデータディスクの回転状態が通常回転状態と前記通常回転休止状態とのいずれであるのかを判別するステップと、
     前記第2のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、
     前記第2のデータディスクの回転状態が前記通常回転状態であるときに当該第2のデータディスクに対してデータの書込を行うバックアップ側の書込ステップとを含み、
     前記バックアップ側の書込ステップは、
     前記第3のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第2のデータディスクのバックアップデータ領域に格納するステップと、
     当該第2のデータディスクのプライマリデータ領域に対応付けられているデータが格納されている第4のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第2のデータディスクのプライマリデータ領域に格納するステップと、
    を含むことを特徴とするストレージ装置の制御方法。
  6.  ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクに格納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスク、キャッシュメモリおよびキャッシュディスクにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、
     前記システム管理手段は、書込要求時において、
     書込要求が対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクに対して当該データをプライマリデータとして書き込むプライマリデータ処理と、
     当該データに対応付けられたバックアップデータ領域を有するバックアップ側のデータディスクに対して、当該データをバックアップデータとして書き込むバックアップデータ処理と、を含んで実行し、
     前記プライマリデータ処理は、
     前記書込要求が対象とするデータを一時的に、前記プライマリ側のデータディスクである第1のデータディスクに対応付けられた第1のキャッシュメモリのプライマリデータ領域に格納するステップと、
     前記第1のデータディスクの回転状態が通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを判別するステップと、
     前記第1のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、
     前記第1のデータディスクの回転状態が前記通常回転状態であるときに当該第1のデータディスクに対してデータの書込を行うプライマリ側の書込ステップとを含み、
     前記プライマリ側の書込ステップは、
     前記第1のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第1のデータディスクのプライマリデータ領域に格納するステップと、
     前記第1のデータディスクのプライマリデータデータ領域に格納されているデータのコピーを、前記キャッシュディスクに格納するステップと、
     当該第1のデータディスクのバックアップデータ領域に対応付けられているデータが格納されている第2のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第1のデータディスクのバックアップデータ領域に格納するステップと、
     前記第1のデータディスクのバックアップデータ領域に対応付けられているデータのコピーを、前記キャッシュディスクに格納するステップとを含み、
     前記バックアップデータ処理は、
     前記書込要求が対象とするデータを一時的に、前記第1のキャッシュメモリのプライマリデータ領域に格納されているデータに対するバックアップとして、第3のキャッシュメモリのバックアップデータ領域に格納するステップと、
     前記第1のデータディスクのバックアップとして対応付けられた第2のデータディスクの回転状態が通常回転状態と前記通常回転休止状態とのいずれであるのかを判別するステップと、
     前記第2のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、
     前記第2のデータディスクの回転状態が前記通常回転状態であるときに当該第2のデータディスクに対してデータの書込を行うバックアップ側の書込ステップとを含み、
     前記バックアップ側の書込ステップは、
     前記第3のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第2のデータディスクのバックアップデータ領域に格納するステップと、
     前記第2のデータディスクのバックアップデータ領域に格納されているデータのコピーを、前記キャッシュディスクに格納するステップと、
     当該第2のデータディスクのプライマリデータ領域に対応付けられているデータが格納されている第4のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第2のデータディスクのプライマリデータ領域に格納するステップと、
     前記第2のデータディスクのプライマリデータ領域に対応付けられているデータのコピーを、前記キャッシュディスクに格納するステップとを含むことを特徴とするストレージ装置の制御方法。
  7.  ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスクおよびキャッシュメモリにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、
     前記システム管理手段は、読込要求時において、
     読込要求が対象とするデータが、当該データに対応付けられた第5のキャッシュメモリにおけるプライマリデータ領域に無いか否かを判別するステップと、
     当該データが前記第5のキャッシュメモリにおけるプライマリデータ領域には無い場合、前記第5のキャッシュメモリのプライマリデータ領域に格納されるデータに対するバックアップとして、第6のキャッシュメモリのバックアップデータ領域に、当該データが無いか否かを判別するステップと、
     当該データが前記第6のキャッシュメモリにおけるバックアップデータ領域には無い場合、前記第5のキャッシュメモリにおけるプライマリデータ領域に格納されるデータに対応するプライマリ側のデータディスクと、前記第6のキャッシュメモリにおけるバックアップデータ領域に格納されるデータに対応するバックアップ側のデータディスクとが両方とも、予め定められた通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態であるか否かを判別するステップと、
     前記プライマリ側のデータディスクと、前記バックアップ側のデータディスクとが両方とも前記通常回転休止状態である場合に、前記通常回転休止状態の時間が長い側のデータディスクを前記通常回転数で回転している状態を示す通常回転状態にまでスピンアップして、当該データディスクから当該データを読み出すステップと、
     前記プライマリ側のデータディスクまたは前記バックアップ側のデータディスクが前記通常回転休止状態である場合に、前記通常回転状態の側から当該データを読み出すステップと、を含んで実行することを特徴とするストレージ装置の制御方法。
  8.  ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクに格納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスク、キャッシュメモリおよびキャッシュディスクにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、
     前記システム管理手段は、読込要求時において、
     読込要求が対象とするデータが、当該データに対応付けられた第5のキャッシュメモリにおけるプライマリデータ領域に無いか否かを判別するステップと、
     当該データが前記第5のキャッシュメモリにおけるプライマリデータ領域には無い場合、前記第5のキャッシュメモリのプライマリデータ領域に格納されるデータに対するバックアップとして、第6のキャッシュメモリのバックアップデータ領域に、当該データが無いか否かを判別するステップと、
     当該データが前記第6のキャッシュメモリにおけるバックアップデータ領域には無い場合、当該データが前記キャッシュディスクに無いか否かを判別するステップと、
     当該データが前記キャッシュディスクに無い場合、前記第5のキャッシュメモリにおけるプライマリデータ領域に格納されるデータに対応するプライマリ側のデータディスクと、前記第6のキャッシュメモリにおけるバックアップデータ領域に格納されるデータに対応するバックアップ側のデータディスクとが両方とも、予め定められた通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態であるか否かを判別するステップと、
     前記プライマリ側のデータディスクと、前記バックアップ側のデータディスクとが両方とも前記通常回転休止状態である場合に、前記通常回転休止状態の時間が長い側のデータディスクを前記通常回転数で回転している状態を示す通常回転状態にまでスピンアップして、当該データディスクから当該データを読み出すステップと、
     前記プライマリ側のデータディスクまたは前記バックアップ側のデータディスクが前記通常回転休止状態である場合に、前記通常回転状態の側から当該データを読み出すステップと、を含んで実行することを特徴とするストレージ装置の制御方法。
  9.  ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクを備え、書込要求に応じて前記データディスクの1つに格納すべきデータを当該データディスクの前記プライマリデータ領域に格納すると共に、当該データを少なくとも1つの別の前記データディスクのバックアップデータ領域に格納する制御を行うストレージ装置のコンピュータを、
     前記データディスクの通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを検出するディスク回転状態検出手段、
     前記データディスクの回転状態を前記通常回転状態または前記通常回転休止状態に切り替えるディスク回転状態制御手段、
     書込要求または読込要求に応じて、前記複数台のデータディスクの中から選択したデータディスクの回転状態が前記通常回転休止状態である場合に前記ディスク回転状態制御手段によって回転状態を前記通常回転状態に切り替えさせる制御を行うと共に、当該データディスクが前記通常回転状態であるときに、書込対象とするデータを前記選択したデータディスクに移動させる処理、または、読込対象とするデータを前記選択したデータディスクから移動させる処理を行うデータ配置制御手段、
    として機能させるためのシステム管理プログラム。
PCT/JP2011/053413 2010-02-19 2011-02-17 ストレージ装置、その制御方法およびシステム管理プログラム WO2011102429A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012500644A JP5808018B2 (ja) 2010-02-19 2011-02-17 ストレージ装置、その制御方法およびシステム管理プログラム
US13/579,974 US9086812B2 (en) 2010-02-19 2011-02-17 Storage device, control method for same and system management program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-034323 2010-02-19
JP2010034323 2010-02-19

Publications (1)

Publication Number Publication Date
WO2011102429A1 true WO2011102429A1 (ja) 2011-08-25

Family

ID=44483015

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/053413 WO2011102429A1 (ja) 2010-02-19 2011-02-17 ストレージ装置、その制御方法およびシステム管理プログラム

Country Status (3)

Country Link
US (1) US9086812B2 (ja)
JP (1) JP5808018B2 (ja)
WO (1) WO2011102429A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2674851B1 (en) * 2011-02-10 2018-01-17 Fujitsu Limited Storage control device, storage device, storage system, storage control method, and program for same
JP5790532B2 (ja) * 2012-02-13 2015-10-07 セイコーエプソン株式会社 電子機器、及びメモリー制御方法
CN103207841B (zh) * 2013-03-06 2016-01-20 青岛海信传媒网络技术有限公司 基于键值对缓存的数据读写方法及装置
US9430031B2 (en) 2013-07-29 2016-08-30 Western Digital Technologies, Inc. Power conservation based on caching
US9871882B1 (en) 2014-01-02 2018-01-16 Western Digital Technologies, Inc. Optimized N-stream sequential media playback caching method and system
JP6175566B2 (ja) * 2014-06-30 2017-08-02 株式会社日立製作所 ストレージシステム及び記憶制御方法
US9600205B1 (en) * 2014-09-22 2017-03-21 Western Digital Technologies, Inc. Power aware power safe write buffer
US10289326B2 (en) 2015-09-14 2019-05-14 HGST Netherlands, B.V. Optimized data layout for object store system
US10073625B2 (en) * 2016-01-06 2018-09-11 HGST Netherlands B.V. Variable-RPM hard disk drive control
US10671303B2 (en) 2017-09-13 2020-06-02 International Business Machines Corporation Controlling a storage system
CN112100005B (zh) * 2020-08-20 2022-11-25 紫光云(南京)数字技术有限公司 一种Redis副本集的实现方法及装置
US11874774B2 (en) * 2020-09-24 2024-01-16 Advanced Micro Devices, Inc. Mechanism to efficiently rinse memory-side cache of dirty data

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0667808A (ja) * 1992-08-20 1994-03-11 Fuji Xerox Co Ltd 多重化ディスク制御装置
JP2004334739A (ja) * 2003-05-12 2004-11-25 Tokyo Institute Of Technology データのバックアップ方法及びバックアップデータ復旧方法、並びに、ネットワーク蓄積装置及びネットワーク蓄積プログラム
JP2005539303A (ja) * 2002-09-12 2005-12-22 コパン システムズ, インコーポレイテッド 電力効率高容量なスケーラブルな記憶システムのための方法および装置
JP2007193440A (ja) * 2006-01-17 2007-08-02 Toshiba Corp 不揮発性キャッシュメモリを用いる記憶装置とその制御方法
JP2009080603A (ja) * 2007-09-26 2009-04-16 Hitachi Ltd ストレージ装置及びその省電力方法
JP2009187450A (ja) * 2008-02-08 2009-08-20 Nec Corp ディスクアレイシステム,ディスクアレイ制御方法及びディスクアレイ制御用プログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7111189B1 (en) * 2000-03-30 2006-09-19 Hewlett-Packard Development Company, L.P. Method for transaction log failover merging during asynchronous operations in a data storage network
US6961815B2 (en) * 2002-12-05 2005-11-01 International Business Machines Corporation Multiple disk data storage system for reducing power consumption
US7539821B2 (en) * 2004-12-28 2009-05-26 Sap Ag First in first out eviction implementation
US7437516B2 (en) * 2004-12-28 2008-10-14 Sap Ag Programming models for eviction policies
US7363451B2 (en) * 2005-10-11 2008-04-22 Lsi Logic Corporation Load balancing of disk drives
US7596670B2 (en) * 2005-11-30 2009-09-29 International Business Machines Corporation Restricting access to improve data availability
US7809884B1 (en) * 2006-09-29 2010-10-05 Emc Corporation Data storage system power management
JP2010113587A (ja) * 2008-11-07 2010-05-20 Hitachi Ltd ストレージシステムおよびストレージシステムによるファイルシステムの管理方法
US8478945B2 (en) * 2010-02-01 2013-07-02 International Business Machines Corporation Dynamic management of destage tasks in a storage controller

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0667808A (ja) * 1992-08-20 1994-03-11 Fuji Xerox Co Ltd 多重化ディスク制御装置
JP2005539303A (ja) * 2002-09-12 2005-12-22 コパン システムズ, インコーポレイテッド 電力効率高容量なスケーラブルな記憶システムのための方法および装置
JP2004334739A (ja) * 2003-05-12 2004-11-25 Tokyo Institute Of Technology データのバックアップ方法及びバックアップデータ復旧方法、並びに、ネットワーク蓄積装置及びネットワーク蓄積プログラム
JP2007193440A (ja) * 2006-01-17 2007-08-02 Toshiba Corp 不揮発性キャッシュメモリを用いる記憶装置とその制御方法
JP2009080603A (ja) * 2007-09-26 2009-04-16 Hitachi Ltd ストレージ装置及びその省電力方法
JP2009187450A (ja) * 2008-02-08 2009-08-20 Nec Corp ディスクアレイシステム,ディスクアレイ制御方法及びディスクアレイ制御用プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
COLARELLI, DENNIS ET AL.: "The Case for Massive Arrays of Idle Disks (MAID)", 7 January 2002 (2002-01-07), pages 3 - 4, Retrieved from the Internet <URL:http://www.usenix.org/events/fast02/wips/colarelli.pdf> [retrieved on 20110517] *

Also Published As

Publication number Publication date
US20120317354A1 (en) 2012-12-13
US9086812B2 (en) 2015-07-21
JP5808018B2 (ja) 2015-11-10
JPWO2011102429A1 (ja) 2013-06-17

Similar Documents

Publication Publication Date Title
JP5808018B2 (ja) ストレージ装置、その制御方法およびシステム管理プログラム
US8645347B2 (en) Assigning data for storage based on a frequency with which the data is accessed
US8225044B2 (en) Storage system which utilizes two kinds of memory devices as its cache memory and method of controlling the storage system
US8966143B2 (en) Method for controlling storages and storage control apparatus
US8712984B2 (en) Buffer pool extension for database server
US20130232310A1 (en) Energy efficiency in a distributed storage system
US20110167230A1 (en) Selecting Storage Locations For Storing Data Based on Storage Location Attributes and Data Usage Statistics
US20040205296A1 (en) Method of adaptive cache partitioning to increase host I/O performance
US6842824B2 (en) Cache control program and computer for performing cache processes utilizing cache blocks ranked according to their order of reuse
JP2002342125A (ja) イベント計測装置および方法並びにイベント計測プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体並びにプロセッサシステム
US20100037034A1 (en) Systems and Methods for Selectively Closing Pages in a Memory
US20120047330A1 (en) I/o efficiency of persistent caches in a storage system
US8037111B2 (en) Storage system and a file layer management method
US20050203863A1 (en) Pre-fetch computer system
WO2016029481A1 (zh) 一种隔离磁盘区域的方法和设备
An et al. Your read is our priority in flash storage
JP2005209055A (ja) ストレージの負荷分散方法
US20180088833A1 (en) Hybrid data storage device with performance mode data path
WO2014147840A1 (ja) アクセス制御プログラム、ディスク装置及びアクセス制御方法
US20170308302A1 (en) Storage management in hybrid drives
WO2012143980A1 (en) Storage system and its data processing method
KR101051504B1 (ko) 저전력과 입출력 성능 향상을 위한 n-블록 선반입 기반의 하이브리드 하드디스크 입출력 시스템
Lyons Jr A Study of Non-datapath Cache Replacement Algorithms
JP2014238771A (ja) ストレージ制御装置、アクセス制御方法、及び制御プログラム
CN118296264A (zh) 缓存数据的处理方法、系统、设备、介质及程序产品

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11744715

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2012500644

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13579974

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 11744715

Country of ref document: EP

Kind code of ref document: A1