WO2016092610A1 - ストレージ装置及びそのデータバックアップ方法 - Google Patents

ストレージ装置及びそのデータバックアップ方法 Download PDF

Info

Publication number
WO2016092610A1
WO2016092610A1 PCT/JP2014/082395 JP2014082395W WO2016092610A1 WO 2016092610 A1 WO2016092610 A1 WO 2016092610A1 JP 2014082395 W JP2014082395 W JP 2014082395W WO 2016092610 A1 WO2016092610 A1 WO 2016092610A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
storage
cache memory
read
write
Prior art date
Application number
PCT/JP2014/082395
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 PCT/JP2014/082395 priority Critical patent/WO2016092610A1/ja
Publication of WO2016092610A1 publication Critical patent/WO2016092610A1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents

Definitions

  • the present invention relates to a storage apparatus and a data backup method thereof.
  • Storage devices generally include a cache memory to improve system performance.
  • the cache memory is generally composed of a high-speed volatile memory such as SDRAM (Synchronous Dynamic Random Access Memory).
  • SDRAM Serial Dynamic Random Access Memory
  • a large-scale storage device equipped with a storage device such as a large-capacity HDD (Hard Disk Drive) has a large-capacity cache memory of several hundred GB (Giga Byte) or more. While the storage device is in operation, data is temporarily stored in the cache memory and responding to I / O access requests to the host computer.
  • One object of the present invention is to provide a storage apparatus that can shorten the data backup time and reduce the battery capacity.
  • an MPR for processing write data from a host by providing an area for managing dirty / clean attribute information in a spare area of a check code of a volatile memory entry
  • the MP or disk controller updates the dirty attribute of the data in the volatile memory from the clean attribute to the clean attribute at the time of destage.
  • the data saving microcontroller uses the volatile memory address as the save data save destination and the save destination nonvolatile Create an information management table that correlates addresses in memory and store data It nonvolatile be saved in the memory.
  • the data backup time when the external power supply is shut off can be shortened.
  • FIG. 1 is a hardware configuration diagram of a storage system.
  • FIG. 2 is a diagram illustrating a configuration of a data block.
  • FIG. 3 is a diagram illustrating a correspondence relationship between data and a CM (cache memory) data management table.
  • FIG. 4 is a diagram showing the correspondence between the backup data management table configuration and the data on the CM.
  • FIG. 5 is a flowchart showing the operation of write access processing from the host computer.
  • FIG. 6 is a flowchart for determining the type of destage processing to be executed when the destage instruction is issued.
  • FIG. 7 is a flowchart showing a destage process in which the clean update process is not performed.
  • FIG. 1 is a hardware configuration diagram of a storage system.
  • FIG. 2 is a diagram illustrating a configuration of a data block.
  • FIG. 3 is a diagram illustrating a correspondence relationship between data and a CM (cache memory) data management table.
  • FIG. 4 is a diagram showing the correspondence
  • FIG. 8 is a flowchart showing a destage process in which the clean update process is performed by an MP (Micro Processor).
  • FIG. 9 is a flowchart showing a destage process in which the clean update process is performed by BEPK (Back-End Package).
  • FIG. 10 is a flowchart showing a first data backup operation when power interruption is detected.
  • FIG. 11 is a flowchart showing a second data backup operation when power interruption is detected.
  • FIG. 12 is a flowchart showing the first data restoration operation at the time of power recovery.
  • FIG. 13 is a flowchart showing a second data restore operation at the time of power recovery.
  • FIG. 14 is a flowchart showing an update operation of the Write number counter and the Read number counter periodically executed by the MP.
  • management table various types of information may be described using an expression such as “management table”, but the various types of information may be expressed using a data structure other than a table. Further, the “management table” can be referred to as “management information” to indicate that it does not depend on the data structure.
  • the program is executed by a processor, for example, an MP or a CPU (Central Processing Unit), and performs a predetermined process. Since the processor performs processing while appropriately using storage resources (for example, a memory) and a communication interface device (for example, a communication port), the subject of the processing may be a processor.
  • the processor may have dedicated hardware in addition to the CPU.
  • the computer program may be installed on each computer from a program source.
  • the program source may be provided by, for example, a program distribution server or a storage medium.
  • each element for example, the controller can be identified by a number or the like, but other types of identification information such as a name may be used as long as the information can identify each element.
  • identification information such as a name may be used as long as the information can identify each element.
  • the same reference numerals are given to the same parts.
  • the present invention is not limited to the present embodiment, and any application examples that meet the idea of the present invention can be applied. Included in the scope. Further, unless specifically limited, each component may be plural or singular.
  • FIG. 1 is a hardware configuration diagram of a storage system.
  • the storage system includes a storage device 1 and a host computer 2 (hereinafter referred to as a host 2), and is connected via a network 3 to read / write data.
  • the storage apparatus 1 includes a disk control 11 (hereinafter referred to as DKC 11), a disk unit 12 (hereinafter referred to as DKU 12) including various nonvolatile storage devices 15 such as a SAS type HDD 15a, a SATA type HDD 15b, and an SSD 15c. It has a data backup SSD 13a / 13b (when power supply is cut off). Note that the data backup SSD 13a / 13b may be collectively referred to as the data backup SSD 13, and the other symbols are also the same.
  • the DKC 11 includes a plurality of control units 14 (hereinafter referred to as CTLs 14).
  • the CTL 14 stores an MP 141 that controls the entire CTL 14, a cache memory 142 (hereinafter referred to as CM 142) that is a volatile memory for temporarily storing user data, and device control information shared by the MP 141 and each controller.
  • CM 142 cache memory 142
  • SM143 Shared memory 143
  • FEPK Front-End Package
  • BEPK 145 which is a disk controller for performing data storage
  • microcontroller 146 for saving data stored in the CM 142 and SM 143 to the data backup SSD 13 when the power supply from the outside is cut off (power interruption) Ma Icon 146).
  • the data backup SSD 13 is a non-volatile storage device that can continue to store data without power supply. This data backup SSD 13 is not used when the storage apparatus 1 is normally operating, and the contents of the internal data blocks are erased and the data can be stored immediately. In addition, the data backed up at the time of power interruption is erased when the data is written back (restored) to the CM 142 when power is restored (resumption of external power supply), and the data is stored immediately. Return to the ready state.
  • the CM 142 is connected to the MP 141, the FEPK 144, the BEPK 145, and the microcomputer 146, and reads / writes data from the host 2 via the FEPK 144. Similarly, the CM 142 reads / writes data in the storage device 15 of the DKU 12 via the BEPK 145. In addition, the CM 142 performs data backup and restoration with the data backup SSD 13 by the microcomputer 146.
  • FIG. 2 is a diagram illustrating a configuration of a data block.
  • the conventional data block 29 (hereinafter referred to as data 29) includes user data 21 (USER DATA, eg, data length is 512 bytes) from the host 2, check code 22 (Check Code, eg, 8 bytes).
  • the check code 22 further includes a CRC (Cyclic Redundancy Check) that stores an LBA (Logical Block Address) 23, which is a storage start address in the storage device, and a code for detecting an error in the user data 21. 24) and a reserved area (reserved area) 25.
  • the check code 22 is given to the user data 21 written from the host 2 by the FEPK 144.
  • determination information in the reserved area (reserved area) 25 that is, D / C determination information 26 (dirty for determining whether or not it is a backup target).
  • D / C determination information 26 determines whether or not it is a backup target.
  • D / clean (C) 26 for example, a dirty (D) state “1” and a clean (C) state “0”) are provided to the reserved area 25.
  • the data length of the determination information 26 may be 1 bit.
  • dirty (D) data means data that is not stored in the storage device and needs to be backed up when the external power supply is cut off.
  • Clean (C) data means The backup stored in the storage device means unnecessary data.
  • the timing for adding the determination information 26 to the data is the time when the FEPK 144 receives the write data (user data 21) from the host 2 and adds the check code 22.
  • the write data from the host 2 is not immediately stored in the storage device 15, but is first stored in the CM 142, so that it is in a dirty (D) state. Therefore, the FEPK 144 sets “1” representing dirty (D) in the determination information 26. In this way, since the FEPK 144 simply gives the check code 22 the determination information 26 having a data length of 1 bit, there is no influence on the write access performance.
  • FIG. 3 is a diagram illustrating a correspondence relationship between data and a CM (cache memory) data management table.
  • a CM data management table 30 for managing data on the CM 142 is stored on the SM 143.
  • the CM data management table 30 includes a CM address 31 and D / C determination information 32 for determining dirty (D) / clean (C).
  • D dirty
  • C clean
  • One column of the CM data management table 30 corresponds to one data stored in the CM 142.
  • information for determining whether the data is valid or invalid may be stored.
  • the data 201 on the CM memory 142 whose CM address 31 is “0x001” corresponds.
  • the D / C determination information 26 of the data 201 and the D / C determination information 32 of the CM data management table 30 are the same “D (dirty)”.
  • the data 202 on the CM 142 whose CM address 31 is “0x008” corresponds.
  • the D / C determination information 26 of the data 202 is “D (dirty)”, but the D / C determination information 32 of the CM data management table 30 is also the same “C (clean)”.
  • the data 202 is often written by the host 2 and destaged by the BEPK 145 (operation for storing the data of the CM 142 in the nonvolatile device 15), and is likely to be updated immediately. Therefore, in the storage apparatus 1, useless processing increases when the D / C determination information 26 is updated each time it is updated, so that the access performance to the CM 142 is prevented from being reduced without updating.
  • the present embodiment has one feature in that the write number counter 33 and the read number counter 34 are provided in the SM 143.
  • the write number counter 33 stores a write counter value as a result of counting the number of write accesses from the host 2 that has occurred during a certain period.
  • the Read number counter 34 stores a read counter value as a result of counting the number of read accesses from the CM 142 by the BEPK 145 generated during a certain period.
  • the MP 141 When the MP 141 writes one data 20 to the CM 142, the stored value of the Write number counter 33 is incremented by 1, and the incremented counter value is stored.
  • the MP 141 increments the stored value of the Read number counter 34 by one and stores the incremented counter value.
  • the D / C determination information 26 and CM data at the time of destaging are based on the ratio of the number of writes as the stored value of the write number counter 33, the number of reads as the stored value of the read number counter 34, and the number of writes and the number of reads.
  • the update method of each of the management table 30, the write number counter 33, and the read number counter 34 is changed to speed up the destage processing. Details will be described later.
  • FIG. 4 is a diagram showing the correspondence between the backup data management table configuration and the data on the CM.
  • the backup data management table 40 associates the storage destination (save destination) address (SSD address 41) of the data to be backed up in the data backup SSD 13 with the storage destination (save source) address (CM address 31) on the CM 142. It is a table to be managed.
  • the backup data management table 40 includes an SSD address 41 that is an SSD address storage entry and a CM address 42 that is a CM address storage entry, and the CM address 31 of the CM data management table 30 is stored in the CM address 42.
  • CM address 31 is “0x001” in the second backup data 201
  • “0x001” is stored in the entry of the CM address 31 whose SSD address 41 is “0x001”.
  • CM address 31 is “0x008” in the sixth data 202 to be backed up
  • “0x008” is stored in the entry of the CM address 31 whose SSD address 41 is “0x005”.
  • FIG. 5 is a flowchart showing the operation of write access processing from the host computer.
  • the host 2 issues a write command including write data length information to the storage apparatus 1.
  • the issued Write command is received by the FEPK 144 of the storage apparatus 1.
  • the FEPK 144 transfers the received Write command to the MP 141.
  • the MP 141 that has received the transferred Write command secures a data storage area having a capacity necessary for the CM 142 based on the write data length information of the Write command. In other words, if there is a free data storage area of a necessary capacity on the CM 142, that area is secured, and if it does not exist, destaging is executed to secure a free data storage area.
  • the MP 141 transmits a Ready notification to the FEPK 144.
  • the FEPK 144 that has received the Ready notification transmits the Ready notification to the host 2.
  • the host 2 that has received the Ready notification from the storage apparatus 1 issues a Write Data command to the storage apparatus 1.
  • the Write Data command includes USER DATA21.
  • the FEPK 144 that has received the issued Write Data command adds the check code 22 including the D / C determination information 26 to the USER DATA 21, and generates data 20.
  • the FEPK 144 writes the generated data 20 to the CM 141.
  • the FEPK 144 transfers the command part excluding the USER DATA 21 from the received Write Data command to the MP 141.
  • the MP 141 that has received the Write Data command in S509 acquires the CM data management table 30 from the SM 143 and updates it with the data storage information in the CM 142.
  • the MP 141 acquires the stored value of the write counter 33 from the SM 143. Then, 1 is added to the acquired stored value, and the updated value is stored in the write counter 33. When a plurality of Write commands are issued successively, the value for the number of times is added to the acquired stored value.
  • step S512 the MP 141 transmits a write data storage completion notification to the FEPK 144.
  • step S ⁇ b> 513 the FEPK 144 transmits the received write data storage completion notification to the host 2. This completes the write process.
  • FIG. 6 is a flowchart for determining the type of destage processing to be executed when the destage instruction is issued. This process is periodically executed by the MP 141 by a scheduler or the like.
  • step S601 the MP 141 recognizes that the time for performing the destage has been reached by the scheduler, and prepares to issue a destage instruction to the BEPK 145.
  • step S ⁇ b> 602 the MP 141 acquires the write number from the write number counter 33 and the read number from the read number counter 34 from the SM 143.
  • step S603 the MP 141 determines whether the acquired number of writes is greater than the write number threshold. Similarly, the MP 141 determines whether the acquired Read number is larger than the Read number threshold.
  • the MP 141 executes S701 of the destage processing (A), and when neither or both are not larger (S603: No), S604 is executed.
  • the write number threshold is an index for determining the load of the MP 141
  • the read number threshold is an index for determining the load of the BEPK 145.
  • step S604 the MP 141 determines whether the value of the number of writes / the number of reads is smaller than the W / R ratio threshold value. When it is smaller (S604: Yes), the MP 141 executes S801 of the destage process (B), and when not smaller (S604: No), the MP 141 executes S901 of the destage process (C).
  • the write number threshold, the read number threshold, and the W / R ratio threshold are stored in advance in the SM 143 as control information of the storage device 1. These threshold values are set so as to improve the efficiency of the destage processing, are determined according to the operation status of the storage apparatus 1, and may be changed sequentially. Further, the W / R ratio threshold may be simply 1, or may be a ratio of the path bandwidth between the MP 141 and the CM 142 in the write processing and the path bandwidth between the BEPK 145 and the CM 142 in the read processing, or the MP 141 and the BEPK 145. It may be a processing performance ratio.
  • FIG. 7 is a flowchart showing the destage process (A) in which the clean update process is not performed. This process is executed when the contents of the CM 142 are frequently updated and both the MP 141 and the BEPK 145 are under heavy load. The judgment information 26 is updated as a wasteful process (from dirty (D) to clean (C). Change), the destaging processing time is shortened and the efficiency is improved.
  • the MP 141 transmits a destage instruction to the BEPK 145.
  • step S ⁇ b> 702 the BEPK 145 that has received the destage instruction reads the data 71 from the CM 142.
  • the BEPK 145 writes the read data 71 to the storage device 15 (HDD or SSD). At this time, the BEPK 145 does not execute the update process of the D / C determination information 26 of the read data 71.
  • the BEPK 145 transmits a destage completion notification to the MP 141.
  • the MP 141 acquires the CM data management table 30 from the SM 143 after receiving the destage completion notification.
  • the MP 141 updates the D / C determination information 32 of the CM data management table 30 corresponding to the destaged data from dirty (D) to clean (C). Then, the MP 141 stores the updated CM data management table 30 in the SM 143.
  • the MP 141 acquires the value of the Read number counter 34 from the SM 143.
  • the MP 141 increments and updates the value of the acquired Read number counter 34 by the number of destaged data.
  • the MP 141 stores the updated value of the Read number counter 34 in the SM 143.
  • FIG. 8 is a flowchart showing a destage process (B) in which the clean update process is performed by the MP. Since the processing from S801 to S806 is the same as the processing from S701 to S706, description thereof is omitted.
  • the MP 141 updates the D / C determination information 26 of the data 81 read from the CM 142 in S802 from dirty (D) to clean (C).
  • the D / C determination information 26 of the data 81 is updated from the “dirty (D)” state to the “clean (C)” state like the data 82, and the updated data 82 is written in the same address as the address read from the CM 142.
  • the MP 141 and other controllers simply read the data of the CM 142 and determine the D / C determination information 26 to determine whether the read data is in the “dirty (D)” state or “clean (C)”. You can quickly determine whether it is in the “state”.
  • the difference between the process (A) in FIG. 7 and the process (B) in FIG. 8 is whether or not to perform a clean update (from dirty (D) to clean (C)) of the D / C determination information 26 of the data on the CM 142. It is.
  • the process (A) in FIG. 7 omits the clean update process of the D / C determination information 26 because the update degree of the CM 142 is high.
  • the update frequency of the CM 142 is not high, but the read frequency by the BEPK 145 is higher than the write frequency by the MP 141 and the BEPK 145 has a high load. This is executed by the MP 141.
  • FIG. 9 is a flowchart showing a destaging process (C) in which the clean update process is performed by BEPK (Back-End Package). Since the processing from S901 to S906 is the same as the processing from S701 to S706 and the processing from S801 to S806, description thereof will be omitted.
  • the BEPK 145 updates the D / C determination information 26 of the data 91 read from the CM 142 in S902 from dirty (D) to clean (C). As shown in the figure, the D / C determination information 26 of the data 91 is updated from the “dirty (D)” state to the “clean (C)” state like the data 92, and the updated data 92 is written into the same address as the address read from the CM 142.
  • the difference between the process (B) in FIG. 8 and the process (C) in FIG. 9 is whether the clean update process of the D / C determination information 26 is executed by the MP 141 or the BEPK 145.
  • the MP 141 since the BEPK 145 has a high load, the MP 141 performs the clean update process for the D / C determination information 26.
  • the BEPK 145 executes the clean update process of the D / C determination information 26. In this way, by executing the clean update process of the D / C determination information 26 by a lightly loaded processor or controller, it is possible to reduce the processing time and increase the efficiency of the entire destage process.
  • FIG. 10 is a flowchart showing a first data backup operation when power interruption is detected.
  • the microcomputer 146 monitors power supply from the outside. Further, the data backup SSD 13 is in a state where data in all the internal blocks are erased and data can be stored immediately.
  • step S ⁇ b> 1001 the microcomputer 146 detects a state where the external power supply is stopped, that is, a power interruption (power interruption).
  • the microcomputer 146 reads the CM data management table 30 from the SM 143 and stores it in the data backup SSD 13.
  • step S ⁇ b> 1003 the microcomputer 146 sequentially reads the data of the CM 142 in order to store the backup target data in the data backup SSD 13, and determines whether it is in the “dirty (D)” state based on the setting value of the D / C determination information 26.
  • the microcomputer 146 stores only the data in the “dirty (D)” state in the data backup SSD 13.
  • the microcomputer 146 creates the backup data management table 40 based on the determination result of the D / C determination information 26 in S1003.
  • the microcomputer 146 stores the created backup data management table 40 in the data backup SSD 13.
  • FIG. 11 is a flowchart showing a second data backup operation when power interruption is detected.
  • the difference from the first data backup operation of FIG. 10 is that the backup data management table 40 for storing the information of the data to be backed up is not created, and the data on the CM 142 to be backed up and the data backup are stored in the data backup SSD 13. This is because the address in the SSD 13 is made to coincide with the 1: 1 correspondence. For example, if the address of the CM 142 is “0x000”, the address of the data backup SSD 13 is also “0x000”, and if the address of the CM 142 is “0x008”, the address of the data backup SSD 13 is also “0x008”.
  • step S ⁇ b> 1103 the microcomputer 146 sequentially reads the data of the CM 142 in order to store the backup target data in the data backup SSD 13, and determines whether the state is “dirty (D)” based on the setting value of the D / C determination information 26.
  • the microcomputer 146 stores only the data in the “dirty (D)” state in the data backup SSD 13 with the address on the CM 142 and the address in the data backup SSD 13 matched.
  • the backup time is shortened and the cost of the storage device 1 is reduced and the weight and size are reduced by reducing the battery capacity. be able to.
  • FIG. 12 is a flowchart showing the first data restoration operation at the time of power recovery.
  • the first data restoration operation at the time of power recovery is an operation of returning the data backed up by the first data backup operation at the time of detecting power interruption in FIG. 10 to the CM 142 at the time of power recovery. This operation is started when the external power supply is resumed.
  • step S1201 the microcomputer 146 detects that external power supply has been resumed, that is, power has been restored.
  • the microcomputer 146 reads out the CM data management table 30 stored in the data backup SSD 13 and backed up. Then, the microcomputer 146 stores the acquired CM data management table 30 in the SM 143.
  • the microcomputer 146 reads the backup data management table 40 stored and backed up in the data backup SSD 13.
  • the microcomputer 146 writes back (restores) the data stored and backed up in the data backup SSD 13 to the CM 142 based on the management information of the acquired backup data management table 40.
  • the microcomputer 146 reads the data 20 at the address “0x002” of the data backup SSD 13 and stores the read data 20 at the address “0x003” of the CM 142.
  • the microcomputer 146 executes restoration by this R / W operation for all addresses of the CM 142 stored in the backup data management table 40.
  • data dirty (D) data
  • the microcomputer 146 erases the data in all the blocks in the data backup SSD 13 and immediately returns to a state where the data can be stored.
  • FIG. 13 is a flowchart showing a second data restore operation at the time of power recovery.
  • the second data restoration operation at the time of power recovery is an operation of returning the data backed up by the second data backup operation at the time of detecting power interruption in FIG. 11 to the CM 142 at the time of power recovery. Since the processing of S1301 and S1302 is the same as the processing of S1201 and S1202, description thereof will be omitted.
  • the microcomputer 146 confirms the D / C determination information 32 in the CM data management table 30, and reads the data 20 at the address that is dirty (D) from the data backup SSD 13. Then, the read data is stored in the area of the CM 142 that rises to the address stored in the CM address 31.
  • the microcomputer 146 performs restoration by the R / W operation on all the data 20 in which the D / C determination information 32 is dirty (D), and stores data not stored in the storage device 15 which is a nonvolatile memory in the CM 142. return.
  • the data stored at the head address of the data backup SSD 13 has D / C determination information 26 of “Dirty (D)”, but the D / C determination information 32 of the CM data management table 30 has “clean ( C) ”, the restoration to the CM 142 is not performed.
  • the microcomputer 146 may simply restore all data (including data that is meaningless to be restored to the CM 142) from the first address to the last address of the data backup SSD 13. Is possible.
  • the valid / invalid information may be set as “invalid” as described above. What is necessary is just to make the data valid (change the valid / invalid determination information to “valid”) when the write data from the host 2 or the write data from the BEPK 145 is stored.
  • FIG. 14 is a flowchart showing an update operation of the Write number counter and the Read number counter periodically executed by the MP.
  • the update processing of the write number counter 31 and the read number counter 32 for determining the subject (MP 141 to BEPK 145) for updating the dirty (D) / clean (C) attribute on the CM 142 is performed by the MP 141 at a certain period (for example, in the figure). So every 10 seconds).
  • Update the number of writes and the number of reads at the timing of each destage process by multiplying and reducing the value of each counter by a predetermined coefficient in the update process in each cycle, for example, multiplying by 0.9 and reducing by 10%
  • the speed can be obtained. That is, since the load status can be grasped at the update rate of the number of Writes and the number of Reads obtained at each time, it is appropriate to determine the subject (MP141 to BEPK145) whose dirty (D) / clean (C) attribute is updated. You can choose a destage process.
  • the predetermined coefficient may be set separately for each counter, or may be set commonly for the counter.
  • CM 142 volatile memory
  • the performance is inferior, data can be saved by the microcomputer 146 with low power consumption and low cost. Therefore, the data backup time can be shortened as compared with the conventional case, and the power consumption and the battery capacity can be reduced, so that a small battery can be adopted. Therefore, the cost of the storage device 1 can be reduced, and the effect of reducing the size and weight of the storage device and reducing the noise of the cooling fan by reducing the heat generation can be expected.
  • this invention is not limited to the above-mentioned Example, Various modifications are included.
  • the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described. Further, a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment. Further, it is possible to add, delete, and replace other configurations for a part of the configuration of each embodiment.
  • Each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
  • Each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor.
  • Information such as programs, tables, and files for realizing each function may be stored in a memory, a recording device such as a hard disk or SSD, or a recording medium such as an IC card, SD card, or DVD.
  • a recording device such as a hard disk or SSD
  • a recording medium such as an IC card, SD card, or DVD.
  • control lines and information lines indicate what is considered necessary for the explanation, and not all the control lines and information lines on the product are necessarily shown. Actually, it may be considered that almost all the components are connected to each other.

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

 データバックアップ時間を短縮しバッテリ容量を低減できるストレージ装置を提供する。そのため、揮発性メモリのエントリのチェックコードの予備領域にダーティ/クリーン属性情報管理用の領域を設け、 ホストからライトデータを処理するMPによるWrite数及び記憶デバイスへのアクセスを制御するディスクコントローラでのRead数に基づく負荷に応じて、デステージ時に揮発性メモリ上のデータのダーティ属性からクリーン属性への更新を、MPないしディスクコントローラが実行するかを選択し、電断検出時に揮発性メモリのデータを不揮発性メモリへ退避する際、データ退避用マイコンが退避データの退避元である揮発性メモリ上アドレスと退避先である不揮発性メモリ上アドレスを対応付けた情報管理テーブルを作成し、データを不揮発性メモリに退避する。

Description

ストレージ装置及びそのデータバックアップ方法
 本発明は、ストレージ装置及びそのデータバックアップ方法に関する。
 ストレージ装置は、一般に、システム性能を向上させるため、キャッシュメモリを備えている。キャッシュメモリは、一般的にはSDRAM(Synchronous Dynamic Random Access Memory)等の高速な揮発性メモリから構成されている。大容量のHDD(Hard Disk Drive)などの記憶デバイスを搭載した大規模なストレージ装置は、数百GB(Giga Byte)以上の大容量のキャッシュメモリを実装している。ストレージ装置が稼働中は、このキャッシュメモリにデータを一時的に格納し、ホスト計算機に対するI/Oアクセス要求に応答している。
 このストレージ装置では、外部からの電力供給遮断によりキャッシュメモリに格納したデータが消失することを防止するため、充放電可能な2次電池であるバッテリを搭載して、このバッテリから電力を一時的に供給して装置の一部を稼働状態に保ち、その稼働状態の間にキャッシュメモリのデータを不揮発性デバイスであるHDDやSSD(Solid State Drive)にデステージング(バックアップ)していた。これらに関連する技術として、特許文献1または特許文献2記載の技術が開示されている。
米国特許出願公開第2008/0104344号明細書 米国特許出願公開第2008/0276040号明細書
 キャッシュメモリなどの揮発性メモリにおけるデータバックアップにおいて、不揮発性デバイスに格納済であるデータ、つまりクリーン属性のデータを退避させるのは無駄であり、従来の技術では不必要なデータのバックアップを行っている。また、データバックアップ用不揮発性メモリもキャッシュメモリとして使用しているため、全データブロックを消去した後でなければデータを書き込むことができない。そのため、近年の揮発性メモリ容量の増大に比例してバックアップ時間も長くなり、バックアップに必要なバッテリ容量が急増しているため、ストレージ装置の重量増加や原価上昇等の影響が発生する。本発明の一つの目的は、データバックアップ時間を短縮し、バッテリ容量を低減できるストレージ装置を提供することにある。
 上記課題を解決するために、代表的な本発明のストレージ装置では、揮発性メモリのエントリのチェックコードの予備領域にダーティ/クリーン属性情報管理用の領域を設け、ホストからライトデータを処理するMPによるWrite数及び記憶デバイスへのアクセスを制御するディスクコントローラでのRead数に基づく負荷に応じて、デステージ時に揮発性メモリ上のデータのダーティ属性からクリーン属性への更新を、MPないしディスクコントローラが実行するかを選択し、電断検出時に揮発性メモリのデータを不揮発性メモリへ退避する際、データ退避用マイクロコントローラが退避データの退避元である揮発性メモリ上アドレスと退避先である不揮発性メモリ上アドレスを対応付けた情報管理テーブルを作成し、データを不揮発性メモリに退避する。
 本発明の一形態のストレージ装置では、外部電源の遮断時でのデータバックアップ時間を短縮できる。前述以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
図1は、ストレージシステムのハードウェア構成図である。 図2は、データブロックの構成を示す図である。 図3は、データとCM(キャッシュメモリ)データ管理テーブルとの対応関係を示す図である。 図4は、バックアップデータ管理テーブル構成とCM上のデータとの対応関係を示す図である。 図5は、ホストコンピュータからのライトアクセス処理の動作を示すフロー図である。 図6は、デステージ指示発行時に実行するデステージ処理の種別を判定するフロー図である。 図7は、クリーン更新処理を行わないデステージ処理を示すフロー図である。 図8は、クリーン更新処理をMP(Micro Processor)で行うデステージ処理を示すフロー図である。 図9は、クリーン更新処理をBEPK(Back-End Package)で行うデステージ処理を示すフロー図である。 図10は、電断検出時の第1のデータバックアップ動作を示すフロー図である。 図11は、電断検出時の第2のデータバックアップ動作を示すフロー図である。 図12は、復電時の第1のデータリストア動作を示すフロー図である。 図13は、復電時の第2のデータリストア動作を示すフロー図である。 図14は、定期的にMPで実行するWrite数カウンタ及びRead数カウンタの更新動作を示すフロー図である。
 以下、図面を参照しながら実施の形態を説明する。なお、以下の説明では、「管理テーブル」等の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。また、データ構造に依存しないことを示すために「管理テーブル」を「管理情報」と呼ぶことができる。
 また、「プログラム」を主語として処理を説明する場合がある。そのプログラムは、プロセッサ、例えば、MPやCPU(Central Processing Unit)によって実行されるもので、定められた処理をするものである。なお、プロセッサは、適宜に記憶資源(例えばメモリ)及び通信インターフェース装置(例えば、通信ポート)を用いながら処理を行うため、処理の主語がプロセッサとされてもよい。プロセッサは、CPUの他に専用ハードウェアを有していても良い。コンピュータプログラムは、プログラムソースから各コンピュータにインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアなどで提供されるものであっても良い。
 また、各要素、例えば、コントローラは番号などで識別可能であるが、各要素を識別可能な情報であれば、名前など他種の識別情報が用いられても良い。本実施例の図及び説明において同一部分には同一符号を付与しているが、本発明が本実施例に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。また、特に限定しない限り、各構成要素は複数でも単数でも構わない。
 <ストレージシステム>
 図1は、ストレージシステムのハードウェア構成図である。ストレージシステムは、ストレージ装置1とホストコンピュータ2(以下、ホスト2)とを備え、ネットワーク3を介し接続されて、データのリード・ライトを行う。ストレージ装置1は、ディスクコントロール11(以下、DKC11)と、SASタイプHDD15a、SATAタイプHDD15b、SSD15cなど各種の不揮発性記憶デバイス15を備えるディスクユニット12(以下、DKU12)、電断時(外部からの電力供給の遮断時)のデータバックアップ用SSD13a/13bを有する。なお、データバックアップ用SSD13a/13bをデータバックアップ用SSD13と総称することがあり、他の符号も同様である。
 DKC11は、複数のコントロール部14(以下、CTL14)を備える。CTL14は、CTL14全体を制御するMP141、ユーザデータを一時的に格納するための揮発性メモリであるキャッシュメモリ142(以下、CM142)、MP141や各コントローラで共有する装置制御情報等を格納するための揮発性メモリである共有メモリ143(以下、SM143)、ホスト2との通信(ホストインタフェース)を行うためのコントローラであるFEPK(Front-End Package)144、DKU12の記憶デバイス15との通信(ディスクインタフェース)を行うためのディスクコントローラであるBEPK145、外部から電力供給が遮断された場合(電断)にCM142やSM143の格納データをデータバックアップ用SSD13に退避してバックアップさせるためのマイクロコントローラ146(以下、マイコン146)を備える。
 データバックアップ用SSD13は、電力供給が無くともデータを記憶し続けることができる不揮発性記憶デバイスである。このデータバックアップ用SSD13は、ストレージ装置1が通常稼働している状態では使用されず、内部のデータブロックの内容が消去され、直ぐにデータを格納できる状態に保っている。また、電断時にバックアップしたデータを、復電時(外部からの電力供給の再開)にCM142への書き戻し(リストア)が完了した時点で内部のデータブロックの内容が消去され、直ぐにデータを格納できる状態に復帰させる。
 CM142は、MP141、FEPK144、BEPK145、マイコン146と接続しており、FEPK144を介してホスト2のデータのリード・ライトを行う。同じく、CM142は、BEPK145を介してDKU12の記憶デバイス15のデータのリード・ライトを行う。また、CM142は、マイコン146によりデータバックアップ用SSD13との間でデータのバックアップ及びリストアを行う。
 <データブロックの構成>
 図2は、データブロックの構成を示す図である。従来のデータブロック29(以下、データ29)は、図2(1)で示すように、ホスト2からのユーザデータ21(USER DATA、例えばデータ長が512byte)、チェックコード22(Check Code、例えば8byteのデータ長)から構成し、更にチェックコード22は、記憶デバイスへの格納開始アドレスであるLBA(Logical Block Address)23、ユーザデータ21の誤りを検出するための符号を格納するCRC(Cyclic Redundancy Check)24、予備領域(reserved領域)25から構成される。チェックコード22はFEPK144により、ホスト2からライトされたユーザデータ21に付与される。
 本実施形態でのデータブロック20(以下、データ20)では、予備領域(reserved領域)25に判定情報、すなわち、「バックアップ対象であるかどうか」を判断するためのD/C判定情報26(ダーティ(D)/クリーン(C)26、例えば、ダーティ(D)状態を“1”、クリーン(C)状態を“0”)をreserved領域25に付与して設ける。この判定情報26のデータ長は1bitでよい。ここで、ダーティ(D)なデータとは、記憶デバイスに格納されていないデータで外部からの電力供給が遮断された場合にバックアップが必要なデータを意味し、クリーン(C)なデータとは、記憶デバイスに格納されているデータでバックアップは不必要なデータを意味する。
 判定情報26をデータへ付与するタイミングは、前述のホスト2からのライトデータ(ユーザデータ21)をFEPK144が受信してチェックコード22を付与する時点である。ちなみに、ホスト2からのライトデータは、直ぐに記憶デバイス15へ格納されず、まず、CM142に格納されるため、ダーティ(D)状態である。そのため、FEPK144は、判定情報26にダーティ(D)を表す“1”を設定する。このように、FEPK144が、チェックコード22にデータ長が1bitである判定情報26を単純に付与するだけなので、ライトアクセス性能への影響はない。
 <CM上のデータと管理情報との対応関係>
 図3は、データとCM(キャッシュメモリ)データ管理テーブルとの対応関係を示す図である。SM143上には、CM142上のデータを管理するCMデータ管理テーブル30が格納されている。このCMデータ管理テーブル30は、CMアドレス31とダーティ(D)/クリーン(C)を判定するD/C判定情報32を有する。CM142に格納された1データにCMデータ管理テーブル30の1カラムが対応している。なお、図示はしていないが、データが有効であるか無効であるかを判別する情報(有効/無効判定情報)を格納してもよい。
 例えば、CMアドレス31が“0x001”であるCMメモリ142上のデータ201が対応している。このデータ201のD/C判定情報26もCMデータ管理テーブル30のD/C判定情報32も同じ“D(ダーティ)”である。また、CMアドレス31が“0x008”であるCM142上のデータ202が対応している。このデータ202のD/C判定情報26は“D(ダーティ)”であるが、CMデータ管理テーブル30のD/C判定情報32も同じ“C(クリーン)”である。このデータ202は、ホスト2のライト及びBEPK145によるデステージ(CM142のデータを不揮発性デバイス15に格納する動作)が多く、すぐ更新される可能性が高い。そのため、ストレージ装置1では、更新する度にD/C判定情報26を更新すると無駄な処理が増えるため、更新を行わずCM142へのアクセス性能低下を防止している。
 また、本実施形態では、SM143にWrite数カウンタ33及びRead数カウンタ34を設ける点を1つの特徴としている。Write数カウンタ33は、一定期間に発生したホスト2からのライトアクセス数をカウントした結果のライトカウンタ値を格納するものである。Read数カウンタ34は、一定期間に発生したBEPK145によるCM142からリードアクセス数をカウントした結果のリードカウンタ値を格納するものである。
 MP141が1つのデータ20をCM142にライトすると、Write数カウンタ33の格納値を1つ増加させて、その増加させたカウンタ値を格納する。また、BEPK145が1つのデータ20をCM142からリードすると、MP141がRead数カウンタ34の格納値を1つ増加させて、その増加させたカウンタ値を格納する。このWrite数カウンタ33の格納値であるライト数と、Read数カウンタ34の格納値であるリード数と、ライト数とリード数との比率で、デステージ時のD/C判定情報26、CMデータ管理テーブル30、Write数カウンタ33、Read数カウンタ34それぞれの更新方法を変えてデステージ処理の高速化を図る。詳細な説明については、後述する。
 <バックアップデータ管理テーブル>
 図4は、バックアップデータ管理テーブル構成とCM上のデータとの対応関係を示す図である。バックアップデータ管理テーブル40は、バックアップするデータのデータバックアップ用SSD13での格納先(退避先)アドレス(SSDアドレス41)と、CM142上の格納先(退避元)アドレス(CMアドレス31)とを対応付け管理するテーブルである。バックアップデータ管理テーブル40は、SSDアドレス格納エントリであるSSDアドレス41と、CMアドレス格納エントリであるCMアドレス42を備え、CMアドレス42にCMデータ管理テーブル30のCMアドレス31が格納される。
 例えば、2番目のバックアップするデータ201は、CMアドレス31が“0x001”であるので、SSDアドレス41が“0x001”であるCMアドレス31のエントリに“0x001”を格納する。同様に、6番目のバックアップするデータ202は、CMアドレス31が“0x008”であるので、SSDアドレス41が“0x005”であるCMアドレス31のエントリに“0x008”を格納する。
 <ライトアクセス処理>
 図5は、ホスト計算機からのライトアクセス処理の動作を示すフロー図である。
 S501で、ホスト2はストレージ装置1にライトデータ長の情報を含むWriteコマンドを発行する。発行されたWriteコマンドは、ストレージ装置1のFEPK144が受信する。
 S502で、FEPK144は、受信したWriteコマンドをMP141に転送する。
 S503で、転送されたWriteコマンドを受信したMP141は、Writeコマンドのライトデータ長の情報に基づいて、CM142に必要な容量のデータ格納領域を確保する。つまり、CM142上に必要な容量の空きデータ格納領域が存在すれば、その領域を確保し、存在しなければデステージを実行し空きデータ格納領域を確保する。
 S504で、CM142に必要な容量のデータ格納領域を確保した後、MP141はReady通知をFEPK144に送信する。
 S505で、Ready通知を受信したFEPK144は、ホスト2にReady通知を送信する。
 S506で、ストレージ装置1からのReady通知を受信したホスト2は、Write Dataコマンドをストレージ装置1に発行する。なお、Write DataコマンドにはUSER DATA21を含む。
 S507で、発行されたWrite Dataコマンドを受信したFEPK144は、USER DATA21にD/C判定情報26を含むチェックコード22を付与し、データ20を生成する。
 S508で、FEPK144は、生成したデータ20をCM141に書き込む。
 S509で、FEPK144は、受信したWrite Dataコマンドの内、USER DATA21を除いたコマンド部分をMP141に転送する。
 S510で、S509でのWrite Dataコマンドを受信したMP141は、CMデータ管理テーブル30をSM143から取得し、CM142へのデータ格納情報で更新する。
 S511で、MP141は、Writeカウンタ33の格納値をSM143から取得する。そして、取得した格納値に1を加算して、更新した値をWriteカウンタ33に格納する。なお、複数回のWriteコマンドが連続して発行された場合は、その回数分の値を取得した格納値に加算する。
 S512で、MP141は、FEPK144へWrite Data格納完了通知を送信する。
 S513で、FEPK144は、受信したWrite Data格納完了通知をホスト2に送信する。以上でライト処理を終了する。
 <デステージ処理の種別判定>
 図6は、デステージ指示発行時に実行するデステージ処理の種別を判定するフロー図である。本処理は、スケジューラ等により定期的にMP141が実行するものである。
 S601で、MP141は、スケジューラによりデステージを行う時刻に到達したことを認識し、デステージ指示をBEPK145に行う準備をする。
 S602で、MP141は、SM143からWrite数カウンタ33からWrite数及びRead数カウンタ34からRead数を取得する。
 S603で、MP141は、取得したWrite数がWrite数閾値より大きいかを判断する。同じく、MP141は、取得したRead数がRead数閾値より大きいかを判断する。Write数及びRead数の方が大きい場合(S603:Yes)、MP141はデステージ処理(A)のS701を実行し、どちらかないし両方とも大きくない場合(S603:No)、S604を実行する。Write数閾値はMP141の負荷を判断するための指標であり、Read数閾値はBEPK145の負荷を判断するための指標である。
 S604で、MP141は、Write数/Read数の値がW/R比率閾値より小さいかを判断する。小さい場合(S604:Yes)、MP141はデステージ処理(B)のS801を実行し、小さくない場合(S604:No)、デステージ処理(C)のS901を実行する。
 Write数閾値、Read数閾値、W/R比率閾値は予めストレージ装置1の制御情報としてSM143などに格納されるものである。これら閾値は、デステージ処理の効率を向上できるよう設定され、ストレージ装置1の稼働状況により決定され、逐次変更されることもある。また、W/R比率閾値は単純に1でもよいし、Write処理でのMP141とCM142間のパス帯域と、Read処理でのBEPK145とCM142間のパス帯域との比でもよいし、MP141とBEPK145の処理性能比でもよい。
 <デステージ処理(A)>
 図7は、クリーン更新処理を行わないデステージ処理(A)を示すフロー図である。本処理はCM142の内容が頻繁に更新され、MP141もBEPK145も高負荷である場合に実行される処理で、無駄な処理となる判定情報26の更新(ダーティ(D)からクリーン(C)への変更)を省いて、デステージ処理時間の短縮と効率を向上させるものである。
 S701で、MP141は、BEPK145にデステージ指示を送信する。
 S702で、デステージ指示を受信したBEPK145は、CM142からデータ71を読み出す。
 S703で、BEPK145は、読み出したデータ71を記憶デバイス15(HDDないしSSD)に書き込む。この時、BEPK145は読み出したデータ71のD/C判定情報26の更新処理を実行しない。
 S704で、BEPK145は、デステージ完了通知をMP141に送信する。
 S705で、MP141は、デステージ完了通知の受信後、CMデータ管理テーブル30をSM143から取得する。MP141は、デステージしたデータに対応するCMデータ管理テーブル30のD/C判定情報32をダーティ(D)からクリーン(C)に更新する。そして、MP141は、更新したCMデータ管理テーブル30をSM143に格納する。
 S706で、MP141は、Read数カウンタ34の値をSM143から取得する。MP141は、取得したRead数カウンタ34の値をデステージしたデータ数分、増価させ更新する。そして、MP141は、更新したRead数カウンタ34の値をSM143に格納する。
 <デステージ処理(B)>
 図8は、クリーン更新処理をMPで行うデステージ処理(B)を示すフロー図である。 S801からS806までの処理は、S701からS706までの処理と同じであるので説明を省略する。
 S807で、MP141は、S802でCM142から読み出したデータ81のD/C判定情報26をダーティ(D)からクリーン(C)に更新する。図のように、データ81のD/C判定情報26が“ダーティ(D)”状態からデータ82のようにD/C判定情報26を“クリーン(C)”状態に更新し、この更新したデータ82をCM142から読み出したアドレスと同一アドレスに書き込む。なお、この処理で、MP141や他のコントローラは、CM142のデータを読み出して、そのD/C判定情報26を判別するだけで、読み出しデータが“ダーティ(D)”状態か、“クリーン(C)”状態かを迅速に判断できる。
 図7の処理(A)と図8の処理(B)との相違は、CM142上のデータのD/C判定情報26のクリーン更新(ダーティ(D)からクリーン(C))を実行するか否かである。図7の処理(A)は、CM142の更新度が高いためD/C判定情報26のクリーン更新処理を省く。図8の処理(B)は、CM142の更新度が高くないがBEPK145によるRead頻度がMP141によるWrite頻度より高く、BEPK145が高負荷となっているので、D/C判定情報26のクリーン更新処理をMP141で実行するものである。
 <デステージ処理(C)>
 図9は、クリーン更新処理をBEPK(Back-End Package)で行うデステージ処理(C)を示すフロー図である。S901からS906までの処理は、S701からS706までの処理及びS801からS806までの処理と同じであるので説明を省略する。
 S907で、BEPK145は、S902でCM142から読み出したデータ91のD/C判定情報26をダーティ(D)からクリーン(C)に更新する。図のように、データ91のD/C判定情報26が“ダーティ(D)”状態からデータ92のようにD/C判定情報26を“クリーン(C)”状態に更新し、この更新したデータ92をCM142から読み出したアドレスと同一アドレスに書き込む。
 図8の処理(B)と図9の処理(C)との相違は、D/C判定情報26のクリーン更新処理をMP141で実行するか、BEPK145で実行するかである。図8の処理(B)では、BEPK145が高負荷なので、D/C判定情報26のクリーン更新処理をMP141で実行していた。図9の処理(C)では、逆にMP141が高負荷であるのでD/C判定情報26のクリーン更新処理をBEPK145で実行する。このように、D/C判定情報26のクリーン更新処理を負荷の軽いプロセッサやコントローラが実行することで、デステージ処理全体の処理時間の短縮と効率化が図れる。
 <データバックアップ動作1>
 図10は、電断検出時の第1のデータバックアップ動作を示すフロー図である。マイコン146は、外部からの電力供給を監視している。また、データバックアップ用SSD13は、内部の全ブロックのデータが消去され、直ぐにデータを格納できる状態となっている。
 S1001で、マイコン146は、外部からの電力供給が停止状態、つまり、電源遮断(電断)を検出する。
 S1002で、マイコン146は、SM143からCMデータ管理テーブル30を読み出し、データバックアップ用SSD13に格納する。
 S1003で、マイコン146は、バックアップ対象データをデータバックアップ用SSD13に格納するため、CM142のデータを順次読み出し、D/C判定情報26の設定値で“ダーティ(D)”状態かを判断する。マイコン146は、“ダーティ(D)”状態のデータのみをデータバックアップ用SSD13に格納する。
 S1004で、マイコン146は、S1003のD/C判定情報26の判断結果に基づき、バックアップデータ管理テーブル40を作成する。
 S1005で、マイコン146は、作成したバックアップデータ管理テーブル40をデータバックアップ用SSD13に格納する。
 図10の第1のデータバックアップ動作では、バックアップデータ管理テーブル40を作成することで、CM142の全領域の記憶容量と同じ容量のデータバックアップ用SSD13を用意する必要がなくなるので、ストレージ装置1の原価低減と軽量化・小型化を図ることができる。
 <データバックアップ動作2>
 図11は、電断検出時の第2のデータバックアップ動作を示すフロー図である。図10の第1のデータバックアップ動作との相違は、バックアップするデータの情報を格納するバックアップデータ管理テーブル40を作成せず、データバックアップ用SSD13に格納する際、バックアップするCM142上のアドレスとデータバックアップ用SSD13でのアドレスとを1:1対応で一致させる点にある。例えば、CM142のアドレスが“0x000”であればデータバックアップ用SSD13のアドレスも“0x000”となり、CM142のアドレスが“0x008”であればデータバックアップ用SSD13のアドレスも“0x008”となる。
 S1101及びS1102の処理は、S1001及びS1002の処理と同じであるので説明を省略する。
 S1103で、マイコン146は、バックアップ対象データをデータバックアップ用SSD13に格納するため、CM142のデータを順次読み出し、D/C判定情報26の設定値で“ダーティ(D)”状態かを判断する。マイコン146は、“ダーティ(D)”状態のデータのみをデータバックアップ用SSD13に、CM142上のアドレスとデータバックアップ用SSD13でのアドレスを一致させて格納する。
 図11の第2のデータバックアップ動作では、バックアップデータ管理テーブル40を作成することが不要となるので、バックアップ時間の短縮と、バッテリ容量低減によるストレージ装置1の原価低減と軽量化・小型化を図ることができる。
 <データリストア動作1>
 図12は、復電時の第1のデータリストア動作を示すフロー図である。復電時の第1のデータリストア動作は、図10の電断検出時の第1のデータバックアップ動作でバックアップしたデータを復電時にCM142に戻す動作である。外部からの電力供給が再開された場合、本動作が開始される。
 S1201で、マイコン146は、外部からの電力供給が再開されたこと、すなわち復電したことを検出する。
 S1202で、マイコン146は、データバックアップ用SSD13に格納しバックアップしていたCMデータ管理テーブル30を読み出す。そして、マイコン146は、取得したCMデータ管理テーブル30をSM143に格納する。
 S1203で、マイコン146は、データバックアップ用SSD13に格納しバックアップしていたバックアップデータ管理テーブル40を読み出す。次に、マイコン146は、取得したバックアップデータ管理テーブル40の管理情報に基づいて、データバックアップ用SSD13に格納しバックアップしていたデータをCM142に書き戻し(リストア)する。
 例えば、バックアップデータ管理テーブル40からデータバックアップ用SSD13のアドレス“0x002”に格納していたデータ20は、CM142のアドレス“0x003”の領域に格納する必要がある。そこで、マイコン146は、データバックアップ用SSD13のアドレス“0x002”のデータ20を読み出し、読み出したデータ20をCM142のアドレス“0x003”に格納する。マイコン146は、このR/W動作によるリストアをバックアップデータ管理テーブル40に格納されたCM142の全てのアドレスについて実行する。これにより、不揮発性メモリである記憶デバイス15に格納されていないデータ(ダーティ(D)なデータ)をCM142に戻すことができる。
 データバックアップ用SSD13からCM142へのデータリストアが完了すると、マイコン146は、データバックアップ用SSD13内部の全ブロックのデータを消去し、直ぐにデータを格納できる状態に戻す。
 <データリストア動作2>
 図13は、復電時の第2のデータリストア動作を示すフロー図である。復電時の第2のデータリストア動作は、図11の電断検出時の第2のデータバックアップ動作でバックアップしたデータを復電時にCM142へ戻す動作である。S1301及びS1302の処理は、S1201及びS1202の処理と同じであるので説明を省略する。
 S1303で、マイコン146は、CMデータ管理テーブル30のD/C判定情報32を確認し、ダーティ(D)となっているアドレスのデータ20をデータバックアップ用SSD13から読み出す。そして、CMアドレス31に格納されているアドレスに台頭するCM142の領域に読み出したデータを格納する。マイコン146は、このR/W動作によるリストアをD/C判定情報32がダーティ(D)となっているデータ20全てに行い、不揮発性メモリである記憶デバイス15に格納されていないデータをCM142に戻す。
 なお、データバックアップ用SSD13の先頭アドレスに格納されているデータは、D/C判定情報26は“ダーティ(D)”であるが、CMデータ管理テーブル30のD/C判定情報32が“クリーン(C)”であるので、CM142へのリストアは行わない。なお、CMデータ管理テーブル30を使用せず、マイコン146がデータバックアップ用SSD13の先頭アドレスから最終アドレスまで全てのデータ(CM142にリストアすることが無意味なデータを含む)を単純にリストアすることも可能である。その時は、無意味なデータは、前述のように有効/無効情報を“無効”であると設定すればよい。ホスト2からライトデータないしBEPK145からのライトデータが格納された時点で有効なデータ(有効/無効判定情報を“有効”に変更)とすればよい。
 <カウンタの定期更新>
 図14は、定期的にMPで実行するWrite数カウンタ及びRead数カウンタの更新動作を示すフロー図である。CM142上のダーティ(D)/クリーン(C)属性の更新する主体(MP141ないしBEPK145)を判定するためのWrite数カウンタ31及びRead数カウンタ32の更新処理を、MP141が一定周期(例えば、図のように10秒毎)で行う。
 各周期での更新処理で各カウンタの値に所定係数を乗算して減らすこと、例えば0.9を乗算して10%分減らすことにより、各デステージ処理のタイミングでWrite数およびRead数の更新速度を求めることが可能となる。つまり、各時刻で求めたWrite数およびRead数の更新速度で負荷の状況を把握できるので、ダーティ(D)/クリーン(C)属性の更新する主体(MP141ないしBEPK145)を決定することで、適切なデステージ処理を選択できる。なお、所定係数は、カウンタ毎に別々に設定してもよいし、カウンタ共通で設定してもよい。
 以上説明したように、本実施形態では、電断時に揮発性メモリ(CM142)上の全データをデータバックアップ用に格納することは不必要となり、バックアップの必要があるデータだけを選択しMP141等に比べ性能は劣るが低消費電力で安価なマイコン146でデータ退避が可能となる。そのため、従来に比べデータバックアップ時間を短縮できると共に、消費電力の削減とバッテリ容量の低減もできるので小型バッテリを採用できる。そのため、ストレージ装置1の原価を低減できると共に、小型化・軽量化、発熱量減少による冷却ファンの静音化等の効果も望める。
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。
 各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置いてもよい。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
 1:ストレージ装置、2:ホスト計算機、11:DKC、13:バックアップ用SSD、14:CTL、26:ダーティ/クリーン判定情報、30:CMデータ管理テーブル、31:Write数カウンタ、32:Read数カウンタ、40:バックアップ管理テーブル、141:MP、142:キャッシュメモリ(CM)、143:共有メモリ(SM)、144:FEPK、145:BEPK、146:マイコン

Claims (14)

  1.  ホスト計算機と接続するストレージ装置であって、
     前記ホスト計算機からのデータを格納する不揮発性の記憶デバイスを複数備えるディスクドライブ部と、
     前記ディスクドライブ部を制御するディスクコントローラ部と、
    を備え、
     前記ディスクコントローラ部は、
     前記ホスト計算機からの入出力要求を受け付けるホストインターフェースコントローラと、
     前記ディスクドライブ部に接続してデータ送受信を行うディスクインタフェースコントローラと、
     前記ストレージ装置全体を制御するマイクロプロセッサと、
     前記ホスト計算機及び前記記憶デバイスからのデータを一時的に格納する揮発性メモリを含むキャッシュメモリと、
     装置の制御情報を格納する揮発性メモリを含む共有メモリと、
     外部電力供給遮断時に前記キャッシュメモリのデータを退避して格納するデータバックアップ用不揮発性デバイスと、
     前記データバックアップ用不揮発性デバイスとのデータ送受信を行うマイクロコントローラと、を備え、
     前記ホストインターフェースコントローラが、
     前記前記ホスト計算機からのデータに前記記憶デバイスへの格納状態を表す格納判定情報を未格納状態として付加し、
     付加した前記格納判定情報と前記データとを合わせて前記キャッシュメモリに格納し、
     前記格納判定情報の未格納状態から格納状態への更新処理を、前記マイクロプロセッサ及び前記ディスクインタフェースコントローラの負荷に応じて、当該マイクロプロセッサと当該ディスクインタフェースコントローラとを切り替えて実行する
     ことを特徴とするストレージ装置。
  2.  請求項1記載のストレージ装置であって、
     前記キャッシュメモリへのライトアクセス回数を管理するライトカウンタ情報と、リードアクセス回数を管理するリードカウンタ情報と、
     前記キャッシュメモリへのデータ格納アドレスと前記記憶デバイスへの格納状態を示す第2の格納判定情報とを有するキャッシュメモリ管理テーブルとを、
     前記共有メモリに格納する
     ことを特徴とするストレージ装置。
  3.  請求項2記載のストレージ装置であって、予めライト数閾値及びリード数閾値が格納され、
     前記ライトアクセス回数が前記ライト数閾値より大きく、かつ前記リードアクセス回数が前記リード数閾値より大きい場合には、前記格納判定情報の更新処理を行わない
     ことを特徴とするストレージ装置。
  4.  請求項3記載のストレージ装置であって、予めライト・リード比率閾値が格納され、
     前記ライトアクセス回数が前記ライト数閾値以下か、または前記リードアクセス回数が前記リード数閾値以下である場合、
     前記ライトアクセス回数を前記リードアクセス回数で除算した値がライト・リード比率閾値未満では前記格納判定情報の更新処理を前記マイクロプロセッサが実行し、
     ライト・リード比率閾値以上では前記ディスクインタフェースコントローラが実行する
     ことを特徴とするストレージ装置。
  5.  請求項4記載のストレージ装置であって、外部電力供給の遮断を検出した場合、
     前記マイクロコントローラが、
     退避元である前記キャッシュメモリ上のアドレスと、退避先である前記データバックアップ用不揮発性デバイス上のアドレスとを対応付けるバックアップデータ管理テーブルを生成する
     ことを特徴とするストレージ装置。
  6.  請求項5記載のストレージ装置であって、外部電力供給の遮断を検出した場合、
     前記マイクロコントローラが、
     前記キャッシュメモリ管理テーブルを前記データバックアップ用不揮発性デバイスに格納し、
     前記キャッシュメモリ管理テーブルの格納判定情報が未格納状態である前記キャッシュメモリのデータを前記データバックアップ用不揮発性デバイスの先頭アドレスから順番に格納してバックアップし、
     前記格納判定情報が格納状態である前記キャッシュメモリのデータは、前記データバックアップ用不揮発性デバイスに格納せず、
     前記バックアップデータ管理テーブルを格納したデータの前記キャッシュメモリでのアドレスで更新し、
     更新が完了したバックアップデータ管理テーブルを前記データバックアップ用不揮発性デバイスに格納する
     ことを特徴とするストレージ装置。
  7.  請求項6記載のストレージ装置であって、外部電力供給の再開を検出した場合、
     前記マイクロコントローラが、
     前記バックアップデータ管理テーブルを前記データバックアップ用不揮発性デバイスから読み出し、
     前記バックアップデータ管理テーブルの第2の格納判定情報が未格納状態であるデータを前記バックアップ用不揮発性デバイスから読み出して前記キャッシュメモリにリストアし、
     前記第2の格納判定情報が格納状態であるデータは前記キャッシュメモリにリストアしない
     ことを特徴とするストレージ装置。
  8.  請求項4記載のストレージ装置であって、外部電力供給遮断を検出した場合、
     前記マイクロコントローラが、
     前記キャッシュメモリ管理テーブルを前記データバックアップ用不揮発性デバイスに格納し、
     前記キャッシュメモリでのアドレスに一致する前記データバックアップ用不揮発性デバイスへのアドレスに、第2の格納判定情報が未格納状態であるデータを格納してバックアップし、格納状態であるデータは格納しない
     ことを特徴とするストレージ装置。
  9.  請求項8記載のストレージ装置であって、外部電力供給の再開を検出した場合、
     前記マイクロコントローラが、
     前記キャッシュメモリ管理テーブルを前記データバックアップ用不揮発性デバイスから読み出し、
     前記第2の格納判定情報が未格納状態であるデータを前記データバックアップ用不揮発性デバイスから前記キャッシュメモリにリストアし、格納状態であるデータはリストアしない
     ことを特徴とするストレージ装置。
  10.  請求項4記載のストレージ装置であって、予めライトカウンタ情報またはリードカウンタ情報を更新する係数が格納され、
     前記マイクロプロセッサは、一定周期毎に前記ライトカウンタ情報のライトアクセス回数または前記リードカウンタ情報のリードアクセス回数に前記係数を乗算する
     ことを特徴とするストレージ装置。
  11.  ホスト計算機と接続するストレージ装置のデータバックアップ方法であって、
     前記ホスト計算機からのデータを格納する不揮発性の記憶デバイスを複数備えるディスクドライブ部と、
     前記ディスクドライブ部を制御するディスクコントローラ部と、
    を備え、
     前記ディスクコントローラ部は、
     前記ホスト計算機からの入出力要求を受け付けるホストインターフェースコントローラと、
     前記ディスクドライブ部に接続してデータ送受信を行うディスクインタフェースコントローラと、
     前記ストレージ装置全体を制御するマイクロプロセッサと、
     前記ホスト計算機及び前記記憶デバイスからのデータを一時的に格納する揮発性メモリを含むキャッシュメモリと、
     装置の制御情報を格納する揮発性メモリを含む共有メモリと、
     外部電力供給遮断時に前記キャッシュメモリのデータを退避して格納するデータバックアップ用不揮発性デバイスと、
     前記データバックアップ用不揮発性デバイスとのデータ送受信を行うマイクロコントローラと、を備え、
     前記共有メモリに、前記キャッシュメモリへのライトアクセス回数を管理するライトカウンタ情報と、リードアクセス回数を管理するリードカウンタ情報と、前記キャッシュメモリへのデータ格納アドレスと前記記憶デバイスへの格納状態を示す第2の格納判定情報とを有するキャッシュメモリ管理テーブルとを格納するステップと、
     前記前記ホスト計算機からのデータに前記記憶デバイスへの格納状態を表す格納判定情報を未格納状態として付加するステップと、
     付加した前記格納判定情報と前記データとを合わせて前記キャッシュメモリに格納するステップと、
     前記格納判定情報の未格納状態から格納状態への更新処理を、前記マイクロプロセッサ及び前記ディスクインタフェースコントローラの負荷に応じて、当該マイクロプロセッサと当該ディスクインタフェースコントローラとを切り替えて実行するステップとを有する
     ことを特徴とするストレージ装置のデータバックアップ方法。
  12.  請求項11記載のストレージ装置のデータバックアップ方法であって、前記ストレージ装置に予めライト数閾値とリード数閾値とライト・リード比率閾値とが格納され、
     前記ライトカウンタ情報のライトアクセス回数とライト数閾値とを比較する第1の比較ステップと、
     前記リードカウンタ情報のリードアクセス回数とリード数閾値とを比較する第2の比較ステップと、
     前記ライトアクセス回数を前記リードアクセス回数で除算するステップと、
     前記除算結果をライト・リード比率閾値と比較する第3の比較ステップと、
     前記第1の比較ステップでライトアクセス回数が大きくて、前記第2の比較ステップでリードアクセス回数が大きい場合に前記格納判定情報の更新処理を抑止するステップと、
     前記格納判定情報の更新処理が抑止されない場合、第3の比較ステップで前記除算結果が小さい場合は前記格納判定情報の更新処理を前記マイクロプロセッサが行い、小さくない場合は前記ディスクインタフェースコントローラが行うステップと、を有する
     ことを特徴とするストレージ装置のデータバックアップ方法。
  13.  請求項12記載のストレージ装置のデータバックアップ方法であって、
     外部電力供給遮断を検出するステップと、
     退避元である前記キャッシュメモリ上のアドレスと、退避先である前記データバックアップ用不揮発性デバイス上のアドレスとを対応付けるバックアップデータ管理テーブルを生成するステップと、
     前記キャッシュメモリ管理テーブルを前記データバックアップ用不揮発性デバイスに格納するステップと、
     前記格納判定情報が未格納状態である前記キャッシュメモリのデータを前記データバックアップ用不揮発性デバイスの先頭アドレスから順番に格納してバックアップするステップと、
     前記バックアップデータ管理テーブルを格納したデータの前記キャッシュメモリでのアドレスで更新するステップと、
     更新が完了したバックアップデータ管理テーブルを前記データバックアップ用不揮発性デバイスに格納するステップと、を有する
     ことを特徴とするストレージ装置のデータバックアップ方法。
  14.  請求項12記載のストレージ装置のデータバックアップ方法であって、
     外部電力供給遮断を検出するステップと、
     前記キャッシュメモリ管理テーブルを前記データバックアップ用不揮発性デバイスに格納するステップと、
     前記キャッシュメモリでのアドレスに一致する前記データバックアップ用不揮発性デバイスへのアドレスに、第2の格納判定情報が未格納状態であるデータを格納してバックアップするステップと、を有する
     ことを特徴とするストレージ装置のデータバックアップ方法。

     
PCT/JP2014/082395 2014-12-08 2014-12-08 ストレージ装置及びそのデータバックアップ方法 WO2016092610A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/082395 WO2016092610A1 (ja) 2014-12-08 2014-12-08 ストレージ装置及びそのデータバックアップ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/082395 WO2016092610A1 (ja) 2014-12-08 2014-12-08 ストレージ装置及びそのデータバックアップ方法

Publications (1)

Publication Number Publication Date
WO2016092610A1 true WO2016092610A1 (ja) 2016-06-16

Family

ID=56106864

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/082395 WO2016092610A1 (ja) 2014-12-08 2014-12-08 ストレージ装置及びそのデータバックアップ方法

Country Status (1)

Country Link
WO (1) WO2016092610A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113360082A (zh) * 2020-03-04 2021-09-07 株式会社日立制作所 存储系统及其控制方法
CN113360082B (zh) * 2020-03-04 2024-06-04 株式会社日立制作所 存储系统及其控制方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09160889A (ja) * 1995-12-11 1997-06-20 Hitachi Ltd マルチプロセッサシステムの制御方法
WO2010064280A1 (en) * 2008-12-04 2010-06-10 Hitachi, Ltd. Storage system having volatile memory and non-volatile memory
US20120079207A1 (en) * 2010-09-27 2012-03-29 Infinidat Ltd. Mass storage system and method of operating thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09160889A (ja) * 1995-12-11 1997-06-20 Hitachi Ltd マルチプロセッサシステムの制御方法
WO2010064280A1 (en) * 2008-12-04 2010-06-10 Hitachi, Ltd. Storage system having volatile memory and non-volatile memory
US20120079207A1 (en) * 2010-09-27 2012-03-29 Infinidat Ltd. Mass storage system and method of operating thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113360082A (zh) * 2020-03-04 2021-09-07 株式会社日立制作所 存储系统及其控制方法
CN113360082B (zh) * 2020-03-04 2024-06-04 株式会社日立制作所 存储系统及其控制方法

Similar Documents

Publication Publication Date Title
US8271718B2 (en) Storage system and control method for the same, and program
US10540296B2 (en) Thresholding task control blocks for staging and destaging
JP6062060B2 (ja) ストレージ装置、ストレージシステム、及びストレージ装置制御方法
TW201619971A (zh) 耦合至主機dram之綠能與非固態硬碟(nand ssd)驅動器、gnsd應用程式及其操作方法和電腦系統主機、增加非揮發快閃記憶儲存器耐久性之方法
WO2016046911A1 (ja) ストレージシステム及びストレージシステムの管理方法
JP2007156597A (ja) ストレージ装置
US11422860B2 (en) Optimizing save operations for OS/hypervisor-based persistent memory
US20160196085A1 (en) Storage control apparatus and storage apparatus
US20160253107A1 (en) Management of destage tasks with large number of ranks
TW201533657A (zh) 資訊處理系統及記憶體系統
CN105404468B (zh) 绿能与非固态硬盘应用及其驱动器
WO2015186243A1 (ja) ストレージ装置
JP5594647B2 (ja) ストレージ装置及びその制御方法
US20110264848A1 (en) Data recording device
US20200233805A1 (en) Method and apparatus for performing pipeline-based accessing management in a storage server
US9280485B2 (en) Efficient cache volume sit scans
US10528275B2 (en) Storage system, storage control device, and method of controlling a storage system
US8850087B2 (en) Storage device and method for controlling the same
WO2016092610A1 (ja) ストレージ装置及びそのデータバックアップ方法
US9990155B2 (en) Storage control device, storage system and method of controlling a storage device
KR102088193B1 (ko) 저장장치, 이를 포함하는 컴퓨터 시스템 및 이의 동작 방법
JP5807942B2 (ja) ディスクアレイ装置及びその制御方法
JPWO2016139774A1 (ja) 情報処理装置、情報処理システム
JP2011221638A (ja) ストレージ装置及びその制御方法
JP2011018237A (ja) ディスクアレイ装置及びその制御方法

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: 14907673

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14907673

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP