[go: up one dir, main page]

WO2011070611A1 - Système de stockage et appareil de commande de stockage pourvus de groupe de mémoire cache comprenant des mémoires volatile et non volatile - Google Patents

Système de stockage et appareil de commande de stockage pourvus de groupe de mémoire cache comprenant des mémoires volatile et non volatile Download PDF

Info

Publication number
WO2011070611A1
WO2011070611A1 PCT/JP2009/006702 JP2009006702W WO2011070611A1 WO 2011070611 A1 WO2011070611 A1 WO 2011070611A1 JP 2009006702 W JP2009006702 W JP 2009006702W WO 2011070611 A1 WO2011070611 A1 WO 2011070611A1
Authority
WO
WIPO (PCT)
Prior art keywords
area
volatile
cache
memory
nonvolatile
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2009/006702
Other languages
English (en)
Inventor
Naoki Moritoki
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to PCT/JP2009/006702 priority Critical patent/WO2011070611A1/fr
Priority to US12/666,932 priority patent/US8327069B2/en
Publication of WO2011070611A1 publication Critical patent/WO2011070611A1/fr
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area

Definitions

  • the present invention generally relates to a storage system and a storage control apparatus provided with a cache memory.
  • PTL 1 discloses a disk control device provided with a shared memory.
  • a part of the shared memory is composed of a nonvolatile shared memory phase, thereby reducing difficulties in a circuit configuration and a cost.
  • An object of the present invention is to prevent the backup data from being lost even in the case in which a failure occurs in the nonvolatile memory after the backup is completed and to suppress a capacity of the secondary power source that supplies an electrical power to a volatile memory as substitute for a primary power source.
  • a storage system is provided with a plurality of physical storage devices and a storage control apparatus that is coupled to the plurality of physical storage devices.
  • the storage control apparatus is provided with a first cache memory group that includes a first volatile memory and a first nonvolatile memory and a second cache memory group that includes a second volatile memory and a second nonvolatile memory.
  • the storage control apparatus executes a double write for writing the write target data from a host device to the both of a first volatile memory and a second volatile memory. In the case in which the double write is completed, the storage control apparatus notifies the host device of a write completion.
  • the storage control apparatus backs up the data from the first volatile memory to the second volatile memory while an electrical power is supplied from a primary power source. In the case in which the power supply from the primary power source is stopped, the data is backed up from the second volatile memory to the second nonvolatile memory while an electrical power is supplied from a secondary power source to the second volatile memory.
  • the data since the data is backed up to both of the first nonvolatile memory and the second nonvolatile memory, the data can remain in one of the first nonvolatile memory and the second nonvolatile memory even in the case in which a failure occurs in the other of the first nonvolatile memory and the second nonvolatile memory after the backup is completed.
  • the data since the data is backed up to from the first volatile memory to the first nonvolatile memory during a power supply from a primary power source, it is unnecessary to back up the data from the first volatile memory in the case in which the power supply from the primary power source is stopped, whereby a capacity of the secondary power source can be suppressed as a whole.
  • Fig. 1 shows a configuration of a storage system in accordance with an embodiment 1 of the present invention.
  • Fig. 2 shows a configuration of a cache memory package (CMPK).
  • Fig. 3 shows a memory configuration of a CMPK 0 and a CMPK 1 in accordance with the embodiment 1.
  • Fig. 5 shows a flow of a double write and a backup in accordance with the embodiment 1.
  • Fig. 6 is a flowchart showing a double write to the CMPK 0 and the CMPK 1 and an asynchronous backup during a power distribution.
  • Fig. 1 shows a configuration of a storage system in accordance with an embodiment 1 of the present invention.
  • Fig. 2 shows a configuration of a cache memory package (CMPK).
  • Fig. 3 shows a memory configuration of
  • FIG. 7 is a flowchart showing a backup during a power stoppage in accordance with the embodiment 1.
  • Fig. 8 is a flowchart showing a restore during a power recovery in accordance with the embodiment 1.
  • Fig. 9 shows a memory configuration of a CMPK 0 and a CMPK 1 in accordance with an embodiment 2 of the present invention.
  • Fig. 10 shows a flow of a double write and a backup in accordance with the embodiment 2.
  • Fig. 11 shows a flow of a double write and a backup in accordance with an embodiment 3 of the present invention.
  • Fig. 12 shows a cache management table of a CMPK x.
  • Fig. 13 is a flowchart showing a backup during a power stoppage in accordance with the embodiment 3.
  • Fig. 14 is a flowchart showing a restore during a power recovery in accordance with the embodiment 3.
  • Fig. 1 shows a configuration of a storage system in accordance with an embodiment 1 of the present invention.
  • a storage system 103 is provided with a plurality of HDDs (Hard Disk Drives) 105, a storage control apparatus that is coupled to the plurality of HDDs 105, and a power supply unit 100.
  • HDDs Hard Disk Drives
  • a physical storage device of other kinds such as an SSD (Solid State Drive) can also be adopted.
  • the storage control apparatus is provided with a controller and a plurality of cache memory packages (CMPK) 119 that are coupled to the controller.
  • the controller is provided with a plurality of channel adapters (CHA) 111, a plurality of disk adapters (DKA) 113, a plurality of microprocessor packages (MPPK) 121, and a plurality of switches (SW) 117.
  • CHA channel adapters
  • DKA disk adapters
  • MPPK microprocessor packages
  • SW switches
  • the number of at least one of them is not restricted to two shown in the figure and can be larger or less than two.
  • the number of CMPKs 119 can also be larger than two.
  • the power supply unit 100 supplies an electrical power based on an electrical power from a commercial power source to each of packages 119, 111, 113, 121, and 117.
  • the CHA 111 is an interface device that is coupled to a host device (HOST) 101.
  • the CHA 111 receives an I/O command (a write command or a read command) provided with the I/O (Input/Output) destination information from the HOST 101, and transmits the received I/O command to any of the plurality of MPPKs 121.
  • the I/O destination information includes an ID of a logical storage device (for instance, a LUN (Logical Unit Number)) and an address of an area for the logical storage device (for instance, an LBA (Logical Block Address)).
  • the HOST 101 is a computer in general. However, the HOST 101 can also be another storage system as substitute for a computer.
  • the CHA 111 is provided with a protocol chip 112 and an LR (Local Router) 114.
  • the protocol chip 112 executes a protocol conversion for a communication with the HOST 101.
  • the LR 114 transmits the received I/O command to the MPPK 121 corresponded to an I/O destination that is specified by the I/O destination information that is included in the I/O command.
  • the DKA 113 is an interface device that is coupled to the HDD 105.
  • the DKA 113 reads data from the HDD 105, transmits the data to a DRAM (Dynamic Random Access Memory) of the CMPK 119, and writes data from the CMPK 119 to the HDD 105.
  • DRAM Dynamic Random Access Memory
  • the MPPK 121 is a device provided with one or a plurality of microprocessors (MP).
  • the MP processes an I/O command that is transmitted from the CHA 111.
  • a plurality of packages that are the CHA 111, the DKA 113, the CMPK 119, and the MPPK 121, are coupled to the SW 117.
  • the SW 117 controls a connection between packages (PK).
  • the CMPK 119 is an example of a cache memory group provided with a volatile memory and a nonvolatile memory.
  • the configuration of the CMPK 119 is shown in Fig. 2. More specifically, the CMPK 119 is provided with a CMA (cache memory adapter) 131, a DRAM (Dynamic Random Access Memory) 133, an SSD (Solid State Drive) 135, and a battery 137.
  • the CMA 131 is an interface device to the DRAM 133 and the SSD 135 (for instance, an LSI (Large Scale Integration)), and is coupled to two or more SW (redundant SW) 117.
  • the DRAM 133 is a kind of a volatile memory, to which an electrical power is supplied from the power supply unit 100.
  • the DRAM 133 is provided with an area that is used as a cache memory (hereafter referred to as a cache area).
  • the SSD 135 is a kind of a nonvolatile memory, to which data is backed up from the DRAM 133 during a power stoppage (in the case in which a power supply from the power supply unit 100 to the DRAM 133 and the CMA 131 is stopped) (in other words, in the case in which a power stoppage occurs, the occurrence of a power stoppage is detected, and data is backed up from the DRAM 133 to the SSD 135).
  • the battery 137 supplies an electrical power to the DRAM 133 and the CMA 131 during a power stoppage.
  • One of the two CMPKs 119 is referred to as a CMPK 0, and the other is referred to as a CMPK 1 in the following.
  • x is added to the name of the element.
  • the CMA is referred to as a CMA x.
  • the DRAM is referred to as a DRAM x.
  • the battery is referred to as a BAT. x.
  • Fig. 3 shows a memory configuration of a CMPK 0 and a CMPK 1 in accordance with the embodiment 1.
  • the DRAM x is configured by an area that is used as a buffer (hereafter referred to as a buffer area) and the cache area described above. More specifically, the DRAM x is provided with three kinds of areas x1, x2, and x3.
  • the area x1 is a buffer area.
  • the area x2 is a half of the cache area of the DRAM x.
  • the area x3 is the other half of the cache area of the DRAM x.
  • the SSD x is provided with two kinds of areas x4 and x5.
  • the area x4 is an area to which data is backed up from the area x1 during a power distribution (while an electrical power is supplied from the power supply unit 100 to the DRAM x and the CMA x).
  • the area x5 is an area to which data is backed up from the area x3 during a power stoppage. A capacity of the area x5 is equivalent to that of the area x3.
  • the SSD x is provided with a flash memory, and an I/O to the SSD x is executed based on the address management information that indicates a correspondence relationship between a logical address and a physical address. A wear leveling is executed for the SSD x as needed. Consequently, a physical address corresponded to a logical address may vary in some cases.
  • the DRAM x is provided with a buffer area x1 in addition to the cache area (areas x2 and x3).
  • a capacity of the SSD x is equivalent to that of the cache area. Consequently, a capacity of the SSD x can be less than that of the DRAM x (in other words, a capacity of the DRAM x is larger than that of the SSD x for a capacity of the buffer area).
  • Fig. 4 shows an example of an address range of a CMPK x and an address area relationship that is a relationship between areas x2 and x3.
  • CMPK 0 and CMPK 1 are executed.
  • Fig. 5 shows a flow of a double write and a backup in accordance with the embodiment 1.
  • Fig. 6 is a flowchart showing a double write to the CMPK 0 and the CMPK 1 and an asynchronous backup during a power distribution.
  • Fig. 7 is a flowchart showing a backup during a power stoppage in accordance with the embodiment 1. A flow of a double write and a backup will be described in the following by using Figs. 5 to 7 and the address area relationship shown in Fig. 4.
  • the CHA 111 receives a write command that includes the write destination information from the HOST 101.
  • the write destination information includes a LUN and an LBA for instance.
  • An LR 114 of the CHA111 transmits a write command to an MPPK 121 provided with an MP in charge of an LU (Logical Unit) that is identified by the LUN (hereafter referred to as a charged MP) (the LU is a logical storage device that is provided based on one or a plurality of HDDs 105 for instance).
  • the charged MP receives a write command.
  • the charged MP notifies a protocol chip 112 of the CHA 111 of a transmission source of a write command that a write command is received.
  • the protocol chip 112 responds to the notice, and returns a response to the HOST 101 of a transmit source of a write command.
  • the HOST 101 receives the response, and transmits the write target data (hereafter referred to as write data) according to the write command.
  • the protocol chip 112 of the CHA 111 receives the write data, and writes the write data to a storage resource (such as a memory) not shown in the CHA111.
  • the protocol chip 112 notifies the charged MP that writing of the write data has been completed.
  • the charged MP responds to the notice of the completion, decides a cache address for a double write, and activates a transmission. More specifically, the charged MP notifies the LR 114 in the CHA111 that has received the write command of two write destination addresses according to the cache address.
  • the two write destination addresses are an address of an area 02 and an address of an area 13, or an address of an area 03 and an address of an area 12.
  • 0008 is decided as a cache address, whereby the LR 114 is notified of an address of an area 02 and an address of an area 13.
  • the LR 114 By the activation of a transmission by the charged MP, the LR 114 transmits a packet that includes an address of an area 02 and the write data in the above storage resource to the CMA 0, and transmits a packet that includes an address of an area 13 and the same write data to the CMA 1. Subsequently, the processes of S63, S64, S65, and S66 of Fig. 6 will be executed. (S63 of Fig. 6) The CMA 0 analyzes an address in a packet from the LR 114.
  • the CMA 0 In the case in which the CMA 0 detects that the address is an address of an area 02, the CMA 0 writes the packet itself not to the area 02 but to the area 01, and returns a completion response to the LR 114.
  • the CMA 1 analyzes an address in a packet from the LR 114. In the case in which the CMA 1 detects that the address is an address of an area 13, the CMA 1 writes the write data in the packet to the area 13, and returns a completion response to the LR 114. (S65 of Fig. 6)
  • the LR 114 receives two completion responses (the completion response from the CMA 0 and the completion response from the CMA 1), and notifies the charged MP of a write completion. (S66 of Fig. 6)
  • the charged MP responds to the write completion notice, and transmits a write completion response to the HOST 101 via the CHA 111 of a transmission source of a write command.
  • the write data is stored into both of the area 01 of the DRAM 0 and the area 13 of the DRAM 1.
  • the write data that has been stored into the area 01 is transmitted to the SSD 0 during a power distribution (while an electrical power is supplied from the power supply unit 100).
  • the write data that has been stored into the area 13 is backed up to the area 15 during a power stoppage.
  • two types of backups that are a backup during a power distribution and a backup during a power stoppage are executed as described in detail in the following.
  • the backup during a power distribution is shown by S12 of Fig. 5 and S200 and S201 of Fig. 6. More specifically, a packet that has been stored into the area 01 is read, and the write data in the packet is written to an area of an address corresponded to an address in the packet (an address of the area 02) (an area in the area 04 of the SSD 0). The CMA 0 then releases an area of a read source of the packet (an area in the area 01). By this configuration, a new packet can be stored into the released area.
  • a transmission of the write data from the area 01 to the area 04 is executed in an asynchronous manner with the processing of a write command (for instance, a double write).
  • a write command for instance, a double write.
  • the transmission can also be executed in synchronization with the processing of a write command.
  • the write data is written to the area 01 and the area 13.
  • an address that has been decided by the charged MP is an address that is included in the lower half of the cache address range
  • an address of the area 03 and an address of the area 12 are specified for the double write. Consequently, the write data is written to the area 03, and the write data and a packet that includes an address of the area 12 are written to the area 11.
  • the write data in a packet that has been written to the area 11 is written to an area (an area in the area 14) of an address corresponded to an address in the packet (an address in the area 12) during a power distribution.
  • a plurality of addresses that are included in the area 02 and a plurality of addresses that are included in the area 04 can be corresponded to each other on a one-on-one basis in advance for the CMA 0.
  • a plurality of addresses that are included in the area 12 and a plurality of addresses that are included in the area 14 can be corresponded to each other on a one-on-one basis in advance for the CMA 1.
  • the write data that has been written to the area x3 is not backed up to the SSD x5 during a power distribution.
  • a sub area (an area in the area x3) into which the write data has been stored is managed by the MP as dirty (a sub area that includes the data that has been unwritten to the HDD 105).
  • the MP writes the data in the sub area of dirty for the area x3 to the HDD 105 according to the write destination that has been specified by a write command corresponded to the data in an asynchronous manner with the processing of the write command (in other words, a destage is executed).
  • a sub area that includes the data that has been written to the HDD 105 (an area in the area x3) is managed as clean (a sub area that includes the data that has been written to the HDD 105).
  • the MP judges whether a cache hit has been executed or not.
  • the data (the read data) according to the read command is read from not the HDD 105 but the CMPK 0 or the CMPK 1, and is transmitted to the HOST 101.
  • the "cache hit" means that the data (the read data) that has been stored into an area (an area in the LU) that is specified by the read source information that is included in the received read command (for instance, information that includes the LUN and the LBA) exists in the CMPK 0 or the CMPK 1.
  • one of the double write data exists in the SSD x, and the other exists in the DRAM x.
  • the I/O performance of the DRAM x is more excellent as compared with that of the SSD x. Consequently, in the present embodiment, to suppress the throughput degradation for the processing of the read command, the read data is read from the DRAM x in principle, and is read from the SSD x with the exception (in the case in which one of the CMPK 0 and the CMPK 1 is blocked for instance).
  • data that can be the read data is distributed to the DRAM 0 and the DRAM 1 (for instance, the area 03 and the area 13). Consequently, it can be expected that a concentration of read to one DRAM is prevented.
  • the write data is not written to the area x2. Consequently, at least one of the following (K1) to (K3) can be adopted for the area x2: (K1) It is possible that the area x2 is not included in the cache area x. (K2)
  • the area x2 can be used as an area that stores the data that does not require a backup (clean data more specifically) (hereafter referred to as a clean dedicated area).
  • the "clean data" is data that has been stored into the HDD 105.
  • the cache area includes a larger amount of clean data, whereby a probability of a cache hit is increased.
  • the area x2 can include both of an extended area of the buffer area x1 and the clean dedicated area.
  • the backup during a power stoppage is shown by S13 of Fig. 5 and Fig. 7. More specifically, an electrical power supply from the BAT.0 to the DRAM 0 and the CMA 0 is started in the case in which a power stoppage occurs. Similarly, an electrical power supply from the BAT.1 to the DRAM 1 and the CMA 1 is started. The CMA 0 backs up all data that has been stored into the area 03 to the area 05 based on the electrical power from the BAT.0 (S71 of Fig. 7). Similarly, the CMA 1 backs up all data that has been stored into the area 13 to the area 15 based on the electrical power from the BAT.1 (S72 of Fig. 7).
  • the CMA x backs up at least data of which a backup has not been completed among data that has been stored into the area x1 to the area x4 based on an electrical power supplied from the BAT.x during a power stoppage.
  • a plurality of addresses that are included in the area 03 and a plurality of addresses that are included in the area 05 can be corresponded to each other on a one-on-one basis in advance for the CMA 0.
  • a plurality of addresses that are included in the area 13 and a plurality of addresses that are included in the area 15 can be corresponded to each other on a one-on-one basis in advance for the CMA 1.
  • an area of a backup source and an area of a backup destination in a power stoppage can be corresponded to each other on a one-on-one basis.
  • two types of backups that are, a backup during a power distribution and a backup during a power stoppage are executed, whereby the dirty data for the DRAM 0 and the DRAM 1 can be stored. Even in the case in which a failure occurs for any one of the SSD 0 and the SSD 1 after a backup during a power stoppage is completed, data can remain in the other one of the SSD 0 and the SSD 1.
  • Fig. 8 is a flowchart showing a restore that is executed during a power recovery.
  • the CMA 0 restores all data that has been stored into the area 05 to the area 03 during a power recovery (when an electrical power supply from the power supply unit 100 to the DRAM x and the CMA x is restarted) (S81).
  • the CMA 1 restores all data that has been stored into the area 15 to the area 13.
  • the data in the area x1 is backed up to the area x4 during a power distribution. Consequently, only data in the area x3 of a part of the cache area x can be backed up (copied) to the area x5 during a power stoppage.
  • a capacity of the BAT.x can be suppressed as compared with a backup of all data in the DRAM to the SSD for instance.
  • data that is backed up during a power stoppage can be only dirty data of data in the area x3.
  • data that is restored during a power recovery can be only data that has been the dirty data in the area x3.
  • Fig. 9 shows a memory configuration of a CMPK 0 and a CMPK 1 in accordance with the embodiment 2.
  • an address range to which the area 13 is assigned (hereafter referred to as a first address range) and an address range to which the area 03 is assigned (hereafter referred to as a second address range) are arranged in alternate shifts. More specifically, the area 13 and the area 02 are corresponded to the first address range, and the area 03 and the area 12 are corresponded to the second address range. In other words, the areas of the same type (02 and 12, 03 and 13) for the cache areas 0 and 1 are not corresponded to one address range, and the areas of the different types (02 and 13, 03 and 12) for the cache areas 01 and 1 are corresponded to one address range.
  • One address range includes at least one address. In the present embodiment, since the number of addresses that are included in one address range is one, an address range and an address are synonymous. More specifically, an even address is a first address, and an odd address is a second address.
  • a time length that is required for a write of data in the case in which the area x1 is saturated is a time length that is required for writing data having a size equivalent to that of the write target data to the SSD x. This is because a free area in which the write target data can be written cannot be prepared in the area x1 in the case in which data having a size equivalent to that of the write target data is not transmitted from the area x1 to the SSD x.
  • the MP charged MP
  • the MP decides the continuous addresses 0 and 1 as a write destination.
  • a double write of S101 and a backup of S102 are executed for the address 0 of the continuous addresses
  • a double write of S103 and a backup of S104 are executed for the address 1.
  • the CMA 0 and the CMA 1 receive a packet that includes an address and the write data from the LR 114.
  • An address in a packet that is received by the CMA 0 is an address of the area 02 corresponded to the address 0. Since the CMA 0 detects that the address in the packet is an address of the area 02, the CMA 0 writes the packet to the area 01.
  • an address in a packet that is received by the CMA 1 is an address of the area 13 corresponded to the address 0. Since the CMA 1 detects that the address in the packet is an address of the area 13, the CMA 1 writes the write data in the packet to the area 13 that is indicated by the address in the packet.
  • the CMA 0 writes the write data in a packet in the area 01 to the area 04 that is indicated by an address corresponded to the address in the packet (an address of the area 02).
  • the CMA 0 and the CMA 1 also receive a packet that includes an address and the write data from the LR 114.
  • An address in a packet that is received by the CMA 0 is an address of the area 13 corresponded to the address 1. Since the CMA 0 detects that the address in the packet is an address of the area 03, the CMA 0 writes the write data in the packet to the area 03 that is indicated by the address in the packet.
  • an address in a packet that is received by the CMA 1 is an address of the area 12 corresponded to the address 1. Since the CMA 1 detects that the address in the packet is an address of the area 12, the CMA 1 writes the packet to the area 11.
  • the CMA 1 writes the write data in a packet in the area 11 to the area 14 that is indicated by an address corresponded to the address in the packet (an address of the area 12).
  • the CMA 0 backs up the write data in the area 03, which has been stored in S103, to the area 05 corresponded to the area 03 during a power stoppage.
  • the CMA 1 backs up the write data in the area 13, which has been stored in S101, to the area 15 corresponded to the area 13.
  • a timing in which a backup is started by the CMA 0 during a power distribution and a timing in which a backup is started by the CMA 1 during a power distribution can be equivalent or can be different (this is similar for the embodiment 1 and an embodiment 3 described later).
  • a flow of processing that is executed in the case in which a write command is received, a flow of a backup that is executed in normal times, a flow of a backup that is executed during a power stoppage, and a flow of a restore that is executed during a power recovery for the embodiment 2 are substantially equivalent to those for the embodiment 1.
  • a first address range and a second address range are arranged in alternate shifts for the cache address range (a common address range).
  • the address ranges are arranged in alternate shifts.
  • at least one of the first address range and the second address range should be distributed for the cache address range.
  • the first address range can be disposed between the second address ranges, and/or the second address range can be included in the first address range.
  • the capacities of areas (areas in cache areas) that are corresponded to address ranges can be equivalent to or different from each other.
  • the capacities of areas x2, x3, x4, and x5 are equivalent to each other, and are the unit size (for instance, 528 bytes) of data that is transmitted or received in the storage control apparatus (between packages).
  • Fig. 11 shows a flow of a double write and a backup in accordance with an embodiment 3 of the present invention.
  • the cache area x does not include the areas x2 and x3 unlike the embodiments 1 and2, whereby the SSD x does not include the areas x4 and x5.
  • a flow of a double write of the embodiment 3 is equivalent to that of the embodiment 1.
  • an address of the SSD x is specified in the case in which the write data is written to the area x1.
  • the cache address range includes the first address range and the second address range.
  • the charged MP decides an address that is included in the first address range
  • the charged MP specifies an address of the SSD 0 and an address of a cache area of the DRAM 1 to the LR 114.
  • the charged MP specifies an address of the SSD 1 and an address of a cache area of the DRAM 0 to the LR 114.
  • a correspondence relationship between each address for a cache area of the DRAM x and each address for the SSD x is defined to the CMA x in advance.
  • a sub area (an area in a cache area) of a backup source and a restore destination and a sub area (an area in the SSD x) of a backup destination and a restore source are corresponded to each other on a one-on-one basis for the CMA x.
  • the LR114 transmits a packet that includes an address of the SSD 0 and the write data to the CMA 0, and transmits a packet that includes an address of a cache are of the DRAM 1 and the write data to the CMA 1.
  • the CMA 0 detects that an address in a packet from the LR 114 is an address of the SSD 0
  • the CMA 0 writes the packet to the area 01.
  • the CMA 1 detects that an address in a packet from the LR 114 is an address a cache are of the DRAM 1
  • the CMA 1 writes the write data in the packet to a sub area that is indicated by the address in the packet (an area in a cache area of the DRAM 1).
  • (S112) A backup during a power distribution is executed.
  • the CMA 0 writes the write data in the packet in the area 01 to a sub area that is indicated by the address in the packet (an area in the SSD 0).
  • (S113) A backup during a power stoppage is executed.
  • the CMA 0 backs up only the dirty data of data in a cache area of the DRAM 0 to a sub area (an area in the SSD 0) corresponded to a sub area that stores the dirty data (an area in a cache area of the DRAM 0).
  • the CMA 1 backs up only the dirty data of data in a cache area of the DRAM 1 to a sub area (an area in the SSD 1) corresponded to a sub area that stores the dirty data (an area in a cache area of the DRAM 1).
  • data that is backed up from the DRAM x to the SSD x for a backup during a power stoppage is only the dirty data of data that has been stored into the DRAM x.
  • data that is restored from the SSD x to the DRAM x for a restore during a power recovery is only the dirty data that has been backed up from the DRAM x among data that has been stored into the SSD x.
  • a cache management table that indicates an attribute for every address (for every sub area) of the DRAM x and the SSD x for every CMPK x is managed (the information that is included in the cache management table can also be managed by a data structure other than a table structure).
  • Fig. 12 shows a cache management table of a CMPK x.
  • a cache management table 1201 includes a device type, an address, a host address, and an attribute for every sub area.
  • the device type indicates whether a memory that includes a sub area is the DRAM or the SSD.
  • the address is an address of a sub area (an address of the DRAM x or the SRAM x).
  • the host address is an address of an area that stores data that has been stored into a sub area. More specifically, the host address indicates to which area (LBA) of the LU and from which HOST 101 the data that has been stored into the sub area is stored for instance. In the case in which the data that has been stored into the sub area is the read data, the host address corresponds to an address of a read source area of the read data (for instance, an area in the LU).
  • the attribute is an attribute of a sub area.
  • dirty (D), clean (D), and free (D) As an attribute of a sub area of the DRAM, there can be mentioned for instance dirty, clean, and free (hereafter referred to as dirty (D), clean (D), and free (D)).
  • dirty (S), clean (S), and free (S) As an attribute of a sub area of the SSD, there can be mentioned for instance dirty, clean, and free (hereafter referred to as dirty (S), clean (S), and free (S)).
  • the dirty (D) is an attribute that means a sub area that has stored the data (dirty data) that has not yet been written to the HDD 105.
  • the clean (D) is an attribute that means a sub area that has stored the data (clean data) that has been written to the HDD 105.
  • the free (D) is an attribute that means a free sub area.
  • the dirty (S) is an attribute that means a sub area that has stored the data that has been backed up from the buffer area x1.
  • the clean (S) is an attribute that means a sub area that has stored the clean data. Moreover, the clean data that has been stored into the sub area x the clean (S) can be data that is not included in the DRAM x. In this case, a probability of that a cache hit is decided in a cache hit judgment that is executed in the case in which the MP receives a read command is increased for instance. This is because the read target clean data is included in the SSD x even in the case in which the read target clean data is not included in the DRAM x.
  • the free (S) is an attribute that means a free sub area.
  • a sub area of an attribute (dirty, clean, and free) (D) or (S) is indicated by a combination of a name of an attribute and a sub area (D) or (S) in the following. For instance, a dirty sub area (D) and a dirty sub area (S) may be indicated in some cases.
  • an address that indicates the sub area may be indicated by a combination of a name of an attribute and a sub area (D) or (S). For instance, a dirty address (D) and a dirty address (S) may be indicated in some cases.
  • Whether a sub area and an address are of the DRAM or the SSD can be distinguished by the indication of [(D)] (DRAM) and [(S)] (SSD).
  • the cache management table x can be stored into any storage resource in the storage system 103.
  • the cache management table x is stored into the DRAM x. More specifically, for instance, the cache management table x is stored into one area in a cache area of the DRAM x (for instance, an area that is corresponded to the prescribed area of the SSD x on a one-on-one basis).
  • the cache management table x is updated as needed according to a write to the DRAM x and the SSD x and a destage from the DRAM x to HDD 105.
  • the cache management table x is updated according to a backup during a power stoppage, and the cache management table x that has been updated is backed up from the DRAM x to the prescribed area of the SSD x (for instance, a leading end area).
  • a plurality of sub areas that configure a cache area of the DRAM x and a plurality of sub areas that configure the SSD x are corresponded to each other on a one-on-one basis.
  • the correspondence relationship can be fixed and specified to the CMA x in advance, or can be modified dynamically and managed by the MP or the like.
  • the MP does not specify an address x (S) corresponded to a dirty address x (D) among a plurality of addresses x (S), and specifies an address x (S) corresponded to a clean address x (D) or a free address x (D).
  • an address of the SSD 0 in S111 of Fig. 11 is an address 0 (S) corresponded to a clean address 0 (D) or a free address 0 (D).
  • the MP does not specify a free address x (S) (and a clean address x (D)) corresponded to a dirty address x (S) among a plurality of free addresses x (S) (and clean addresses x (D)), and specifies a free address x (D) (and a clean address x (D)) corresponded to a free address x (S) (or a clean address x (D)).
  • an address of the DRAM 1 in S111 of Fig. 11 is a free address 0 (D) or a clean address 0 (D) corresponded to a free address 1 (S).
  • the total amount of a dirty sub area x (D) for a cache area x is controlled to be up to half of the cache area x. This is to back up all dirty data (dirty data in the DRAM 0 and the DRAM 1) to both of the SSD 0 and the SSD 1 after a backup during a power stoppage is completed. Consequently, in S111 of Fig. 11 for instance, the MP judges whether or not the total amount of a dirty sub area 1 (D) is up to half of a capacity of the cache area even in the case in which the write data is written to the DRAM 1 based on the cache management table 1 (a dirty write judgment). In the case in which the result of the dirty write judgment is positive, the MP executes a double write.
  • the MP can stop a double write as an error for instance, or can reduce the total amount of a dirty sub area 1 (D) by executing destage of the dirty data in the DRAM 1 and then execute the dirty write judgment again.
  • D dirty sub area 1
  • the cache management table x is updated as described in the following for instance: * In the case in which the write data is written to a sub area of the cache area x, the MP updates an attribute of the sub area to dirty (D). * In the case in which the write data is newly written after the cache area x is filled and in the case in which an attribute of the sub area (the sub area in the cache area) to be opened is dirty, the MP x executes a destage to the HDD 105 and updates the attribute of the sub area to be free. In the case in which an attribute of the sub area (the sub area in the cache area) to be opened is clean, the MP x updates the attribute of the sub area to be free without executing a destage of data in the sub area.
  • the MP or the CMA x updates an attribute of the sub area from dirty (D) to clean (D).
  • the MP or the CMA x updates an attribute of the sub area x from free (S) to dirty (S).
  • Fig. 13 is a flowchart showing a backup during a power stoppage in accordance with the embodiment 3.
  • the CMA 0 backs up the dirty data in all the dirty sub areas 0 (D) that are specified by the cache management table 0 to a sub area in the SSD 0 corresponded to the dirty sub area 0 (D) (S1401).
  • the CMA 0 then writes the cache management table 0 to a prescribed area of the SSD 0 (S1402).
  • the CMA 1 backs up the dirty data in all the dirty sub areas 1 (D) that are specified by the cache management table 1 to a sub area in the SSD 1 corresponded to the dirty sub area 1 (D) (S1403).
  • the CMA 1 then writes the cache management table 1 to a prescribed area of the SSD 1 (S1404).
  • the data of which a backup from the buffer area x1 to the SSD x has not been completed exists in the buffer area x1 during a power stoppage.
  • the CMA x backs up at least data of which a backup has not been completed among data that has been stored into the buffer area x1 to the SSD x (the free sub area x (S) or a clean sub area x (S)) based on an electrical power supplied from the BAT.x during a power stoppage.
  • the CMA x or the MP x updates an attribute of the sub area x (S) of the data backup destination (an attribute that has been recorded in the cache management table x) to be dirty (S).
  • the table x after the update is backed up to the SSD x in the S1402 or the S1404.
  • Fig. 14 is a flowchart showing a restore during a power recovery in accordance with the embodiment 3.
  • the CMA 0 restores the cache management table 0 from a prescribed area of the SSD 0 to the DRAM 0 (S1501).
  • the CMA 0 then restores data (S1502). More specifically, the CMA 0 specifies a dirty sub area 0 (D) from the cache management table 0 that has been restored, and restores the dirty data from the sub area in the SSD 0 that is corresponded to the dirty sub area 0 (D) that has been specified to a dirty sub area 0 (D).
  • the CMA 0 specifies a dirty sub area 0 (S) from the cache management table 0 that has been restored, and restores the dirty data from the dirty sub area 0 (S) that has been specified to the sub area 0 (D) that is corresponded to the dirty sub area 0 (S).
  • the sub area in the cache area x and the sub area in the SSD x are corresponded to each other on a one-on-one basis in advance.
  • the CMA 1 restores the cache management table 1 from a prescribed area of the SSD 1 to the DRAM 1 (S1503).
  • the CMA 1 then restores data (S1502). More specifically, the CMA 1 specifies a dirty sub area 1 (D) from the cache management table 1 that has been restored, and restores the dirty data from the sub area in the SSD 1 that is corresponded to the dirty sub area 1 (D) that has been specified to a dirty sub area 1 (D). Moreover, the CMA 1 specifies a dirty sub area 1 (S) from the cache management table 1 that has been restored, and restores the dirty data from the dirty sub area 1 (S) that has been specified to the sub area 1 (D) that is corresponded to the dirty sub area 1 (S).
  • data that is backed up for a backup during a power stoppage and data that is restored for a restore during a power recovery are only dirty data.
  • an address of the SSD x can also be specified as substitute for an address of the area x2 in a double write.
  • areas can be arranged in the order of the area 02 and the area 03 for the DRAM 0, and areas can be arranged in the order of the area 12 and the area 13 for the DRAM 1.

Landscapes

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

Abstract

L'invention porte sur un système de stockage qui est pourvu d'une pluralité de dispositifs de stockage physiques et d'un appareil de commande de stockage qui est couplé à la pluralité de dispositifs de stockage physiques. L'appareil de commande de stockage est pourvu d'un premier groupe de mémoire cache qui est pourvu d'une première mémoire volatile et d'une première mémoire non volatile et d'un second groupe de mémoire cache qui est pourvu d'une seconde mémoire volatile et d'une seconde mémoire non volatile. L'appareil de commande de stockage exécute une double écriture pour écrire les données cibles d'écriture provenant du dispositif hôte à la fois dans la première mémoire volatile et dans la seconde mémoire volatile, et notifie au dispositif hôte l'achèvement d'écriture dans le cas dans lequel la double écriture est achevée. L'appareil de commande de stockage sauvegarde les données de la première mémoire volatile dans la première mémoire non volatile pendant que de l'énergie électrique est fournie par l'alimentation primaire. L'appareil de commande de stockage sauvegarde les données de la seconde mémoire volatile dans la seconde mémoire non volatile pendant que de l'énergie électrique est fournie par l'alimentation secondaire à la seconde mémoire volatile dans le cas dans lequel la fourniture d'énergie électrique par l'alimentation primaire est stoppée.
PCT/JP2009/006702 2009-12-08 2009-12-08 Système de stockage et appareil de commande de stockage pourvus de groupe de mémoire cache comprenant des mémoires volatile et non volatile Ceased WO2011070611A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2009/006702 WO2011070611A1 (fr) 2009-12-08 2009-12-08 Système de stockage et appareil de commande de stockage pourvus de groupe de mémoire cache comprenant des mémoires volatile et non volatile
US12/666,932 US8327069B2 (en) 2009-12-08 2009-12-08 Storage system and storage control apparatus provided with cache memory group including volatile memory and nonvolatile memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/006702 WO2011070611A1 (fr) 2009-12-08 2009-12-08 Système de stockage et appareil de commande de stockage pourvus de groupe de mémoire cache comprenant des mémoires volatile et non volatile

Publications (1)

Publication Number Publication Date
WO2011070611A1 true WO2011070611A1 (fr) 2011-06-16

Family

ID=42370929

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/006702 Ceased WO2011070611A1 (fr) 2009-12-08 2009-12-08 Système de stockage et appareil de commande de stockage pourvus de groupe de mémoire cache comprenant des mémoires volatile et non volatile

Country Status (2)

Country Link
US (1) US8327069B2 (fr)
WO (1) WO2011070611A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013186807A1 (fr) * 2012-06-11 2013-12-19 Hitachi, Ltd. Sous-système de disque et procédé de restauration de données correspondant

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120137093A1 (en) * 2010-11-30 2012-05-31 Micron Technology, Inc. Reliable write for non-volatile memory
JP5742362B2 (ja) * 2011-03-28 2015-07-01 富士通株式会社 退避処理装置
US9063862B2 (en) * 2011-05-17 2015-06-23 Sandisk Technologies Inc. Expandable data cache
US20130111104A1 (en) * 2011-10-31 2013-05-02 Moon J. Kim Asynchronous data shift and backup between asymmetric data sources
JP5835040B2 (ja) * 2012-03-19 2015-12-24 富士通株式会社 情報処理システムおよびデータ記録制御方法
JP5991211B2 (ja) * 2012-05-25 2016-09-14 富士通株式会社 シミュレーション方法、およびシミュレーションプログラム
US11037625B2 (en) * 2012-11-20 2021-06-15 Thstyme Bermuda Limited Solid state drive architectures
WO2014081719A1 (fr) * 2012-11-20 2014-05-30 Peddle Charles I Architectures de disque électronique
US20150339058A1 (en) * 2013-03-26 2015-11-26 Hitachi, Ltd. Storage system and control method
JP6021759B2 (ja) * 2013-08-07 2016-11-09 株式会社東芝 メモリシステムおよび情報処理装置
JP6166796B2 (ja) 2013-12-02 2017-07-19 華為技術有限公司Huawei Technologies Co.,Ltd. データ処理デバイス及びデータ処理方法
KR20150087744A (ko) * 2014-01-22 2015-07-30 한양대학교 산학협력단 전자 장치의 동작 상태를 변경하는 방법 및 장치
US10318205B2 (en) 2014-01-30 2019-06-11 Hewlett Packard Enterprise Development Lp Managing data using a number of non-volatile memory arrays
US20160350231A1 (en) * 2015-06-01 2016-12-01 Kabushiki Kaisha Toshiba Magnetic disk device and method for executing synchronize command
JP6294569B2 (ja) * 2015-06-19 2018-03-14 株式会社日立製作所 ストレージシステム及びキャッシュ制御方法
US9910619B2 (en) * 2015-12-21 2018-03-06 Toshiba Memory Corporation Dual buffer solid state drive
EP3321767B1 (fr) 2015-12-30 2020-04-15 Huawei Technologies Co., Ltd. Procédé pour réduire la consommation d'énergie d'une mémoire et d'un dispositif informatique
US9996291B1 (en) * 2016-07-29 2018-06-12 EMC IP Holding Company LLC Storage system with solid-state storage device having enhanced write bandwidth operating mode
US10528264B2 (en) * 2016-11-04 2020-01-07 Samsung Electronics Co., Ltd. Storage device and data processing system including the same
CN109298832A (zh) * 2017-07-24 2019-02-01 武汉海康存储技术有限公司 一种硬盘数据访问方法及装置
CN111858401A (zh) * 2019-04-28 2020-10-30 北京忆恒创源科技有限公司 提供异构命名空间的存储设备及其在数据库中的应用
FR3096364B1 (fr) 2019-05-23 2021-10-29 Savoye Procédé de traitement d’une liste de commandes dans un système de préparation de commandes, et poste de préparation correspondant.
CN112445413A (zh) * 2019-08-29 2021-03-05 华为技术有限公司 一种数据存储的方法、装置及相关设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5640530A (en) * 1992-12-17 1997-06-17 International Business Machines Corporation Use of configuration registers to control access to multiple caches and nonvolatile stores
JP2001290608A (ja) 2000-04-10 2001-10-19 Hitachi Ltd ディスク制御装置
EP2040168A2 (fr) * 2007-08-22 2009-03-25 Hitachi, Ltd. Système de stockage doté d'une fonction de sauvegarde de données dans une mémoire cache

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3239669B2 (ja) * 1995-02-20 2001-12-17 株式会社日立製作所 記憶制御装置及びその制御方法
JP2005115857A (ja) * 2003-10-10 2005-04-28 Sony Corp ファイル記憶装置
US7243190B2 (en) * 2004-02-13 2007-07-10 International Business Machines Corporation Apparatus and method to rebuild an NVS image using cache data
JP2006031630A (ja) * 2004-07-21 2006-02-02 Hitachi Ltd ストレージ装置及びストレージ装置の消費電力制御方法
JP4819369B2 (ja) * 2005-02-15 2011-11-24 株式会社日立製作所 ストレージシステム
JP4437489B2 (ja) * 2006-10-25 2010-03-24 株式会社日立製作所 揮発性キャッシュメモリと不揮発性メモリとを備えたストレージシステム
CN101689130A (zh) * 2006-12-06 2010-03-31 弗森多系统公司(dba弗森-艾奥) 采用渐进raid存储数据的装置、系统和方法
US8706968B2 (en) * 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
JP5026102B2 (ja) * 2007-02-07 2012-09-12 株式会社日立製作所 ストレージ制御装置及びデータ管理方法
US8117391B2 (en) * 2008-10-08 2012-02-14 Hitachi, Ltd. Storage system and data management method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5640530A (en) * 1992-12-17 1997-06-17 International Business Machines Corporation Use of configuration registers to control access to multiple caches and nonvolatile stores
JP2001290608A (ja) 2000-04-10 2001-10-19 Hitachi Ltd ディスク制御装置
EP2040168A2 (fr) * 2007-08-22 2009-03-25 Hitachi, Ltd. Système de stockage doté d'une fonction de sauvegarde de données dans une mémoire cache

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013186807A1 (fr) * 2012-06-11 2013-12-19 Hitachi, Ltd. Sous-système de disque et procédé de restauration de données correspondant
US8972660B2 (en) 2012-06-11 2015-03-03 Hitachi, Ltd. Disk subsystem and data restoration method

Also Published As

Publication number Publication date
US8327069B2 (en) 2012-12-04
US20120017033A1 (en) 2012-01-19

Similar Documents

Publication Publication Date Title
US8327069B2 (en) Storage system and storage control apparatus provided with cache memory group including volatile memory and nonvolatile memory
US8261032B2 (en) Storage system to backup dirty data elements using a cache memory
US9569130B2 (en) Storage system having a plurality of flash packages
US7028154B2 (en) Procedure to reduce copy time for data backup from short-term to long-term memory
EP2350839B1 (fr) Système de mémoire de masse utilisant une mémoire à semi-conducteurs et une mémoire non intégrée
US9946655B2 (en) Storage system and storage control method
US7917805B2 (en) Storage system for restoring data stored in failed storage device
US6654831B1 (en) Using multiple controllers together to create data spans
US8412892B2 (en) Storage system and ownership control method for storage system
US20090100237A1 (en) Storage system that dynamically allocates real area to virtual area in virtual volume
US6438647B1 (en) Method and apparatus for providing battery-backed immediate write back cache for an array of disk drives in a computer system
US8639898B2 (en) Storage apparatus and data copy method
US20090077302A1 (en) Storage apparatus and control method thereof
EP0727745A1 (fr) Dispositif de commande de mémoire et procédé de commande
US7984260B2 (en) Storage system provided with a plurality of controller modules
US8489918B2 (en) Storage system and ownership control method for storage system
JP7060789B2 (ja) 電子システム、情報処理装置および制御方法
US20110093742A1 (en) Storage apparatus and control method for storage apparatus
JP2008269142A (ja) ディスクアレイ装置
US11789613B2 (en) Storage system and data processing method
US9047232B2 (en) Storage apparatus and controlling method for data transmission based on control information
US20110191551A1 (en) Storage apparatus and storage management method
JP2006114064A (ja) 記憶サブシステム
JP2020077248A (ja) ストレージシステム、データ管理方法、及びデータ管理プログラム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 12666932

Country of ref document: US

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

Ref document number: 09802040

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

Country of ref document: EP

Kind code of ref document: A1