WO2016194979A1 - Storage system, storage control device, storage control method, and program - Google Patents

Storage system, storage control device, storage control method, and program Download PDF

Info

Publication number
WO2016194979A1
WO2016194979A1 PCT/JP2016/066285 JP2016066285W WO2016194979A1 WO 2016194979 A1 WO2016194979 A1 WO 2016194979A1 JP 2016066285 W JP2016066285 W JP 2016066285W WO 2016194979 A1 WO2016194979 A1 WO 2016194979A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage
buffer
write
area
data
Prior art date
Application number
PCT/JP2016/066285
Other languages
French (fr)
Japanese (ja)
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 日本電気株式会社
Publication of WO2016194979A1 publication Critical patent/WO2016194979A1/en

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

Definitions

  • the present invention is based on the priority claim of Japanese patent application: Japanese Patent Application No. 2015-112114 (filed on June 2, 2015), the entire contents of which are incorporated herein by reference. Shall.
  • the present invention relates to a storage system, a storage control device, a storage control method, and a program.
  • the present invention relates to a storage system including a storage apparatus composed of a plurality of storage media, a storage control apparatus, a storage control method, and a program.
  • an SSD Solid State Drive
  • HDD Hard Disk Disk Drive
  • write amplification by random writing with a small data size for SSD may cause a decrease in reliability due to the lifespan of SSD.
  • the NAND flash memory constituting the SSD increases the occurrence rate of bit errors with respect to stored data by repeatedly updating data. For this reason, it is necessary to suppress the number of updates so that errors in the NAND flash memory are within a correctable range, and this is normally treated as the lifetime of the NAND flash memory.
  • the lifetime of the NAND flash memory has been shortened due to the miniaturization of the manufacturing process and the increase in the amount of information stored in the memory cells.
  • the reduction of the write data amount for the NAND flash memory incorporated in the SSD is an important factor in improving the reliability of the SSD. That is, from the viewpoint of ensuring reliability by improving the performance of the SSD and extending its life, it is required to reduce random writing with a small data size for the SSD.
  • a buffer or a cache is often used to reduce a writing process with a small data size to the SSD.
  • write data for the SSD or NAND flash memory constituting the SSD is temporarily stored in the buffer.
  • data writing is performed on the SSD when data having consecutive addresses is accumulated, thereby avoiding random writing with a small data size. Yes.
  • the buffer for the SSD serves to conceal the occurrence of a response delay in the SSD and prevent the write performance from being degraded. That is, many SSDs use garbage collection (GC) for management of a storage area configured by an internal NAND flash memory. Garbage collection involves saving and re-storing stored data in the NAND flash memory, and can cause a delay in processing access requests from the outside. However, even in such a case, the SSD can avoid the write request when the response delay occurs in the SSD by temporarily storing the write data in the buffer and responding to the access request source.
  • GC garbage collection
  • Non-Patent Document 2 discloses that a NAND flash memory having a short lifetime is used by using a NAND flash memory having superior performance and lifetime as a storage element of a buffer compared to a NAND flash memory having a short lifetime within an SSD. A technique for avoiding frequent updates to the memory (update by random write) is disclosed.
  • Non-Patent Document 3 discloses a technique for using an HDD as a write-once buffer for an SSD.
  • the buffer is required to improve performance and capacity in accordance with the quantity of SSDs.
  • improvement in the performance and capacity of the buffer leads to an increase in the number of storage media constituting the buffer, which causes an increase in cost (hardware cost).
  • RAID-5 and RAID-6 are widely used because both striping and data protection can be achieved.
  • redundancy is maintained by updating the parity corresponding to the update data simultaneously with the data update.
  • a large-capacity buffer is required to prevent an increase in the amount of write data for the SSD, and the hardware cost is reduced. To increase.
  • a buffer in order to avoid data loss due to a failure in which the power supply to the storage device stops, it is necessary to configure a buffer using a non-volatile storage element or storage medium.
  • a high-performance and non-volatile storage element such as a MRAM (Magnetroresistive Random Access Memory) or the like is usually more expensive than a DRAM, leading to a large cost increase.
  • a buffer (particularly a non-volatile buffer with sufficient performance and capacity) necessary to prevent random writing with a small data size that affects the performance and life of the SSD is provided at low cost. It is difficult.
  • a buffer having sufficient performance and capacity as described above cannot be used (there is no buffer corresponding to the SDD)
  • the performance deteriorates due to the bottleneck of the buffer and the increase in random write with a small data size for the SSD.
  • the problem is that lifetime consumption occurs.
  • the buffer is not nonvolatile and the power supply to the buffer is stopped due to a failure, there is a problem that data stored in the buffer is lost.
  • an object of the present invention is to provide a storage system, a storage control device, a storage control method, and a program that contribute to improving the performance of a storage composed of a plurality of storage media.
  • a storage apparatus having at least two or more storage media and a storage area of each of the two or more storage media are defined by being divided into a first storage area and a second storage area.
  • a storage control device that manages the first storage area as a buffer area and the second storage area as a storage area that is provided to a host, wherein the storage control apparatus includes the first and second storage areas.
  • An access execution unit that controls access to the storage area of the host, and write data to the buffer based on at least one of a data size of the write data from the host and a response status of the storage medium designated to write the write data from the host
  • a determination unit that determines whether or not to store in a region.
  • a storage device having at least two or more storage media is controlled, and each storage area of the two or more storage media is divided into a first storage area and a second storage area.
  • a storage control device for managing the first storage area as a buffer area and managing the second storage area as a storage area for providing to a host, wherein the first and second storage areas are accessed. And whether to store the write data in the buffer area based on at least one of the data size of the write data from the host and the response status of the storage medium designated to write the write data from the host.
  • a storage control device is provided.
  • a storage device including at least two or more storage media is included, and each storage area of the two or more storage media is divided into a first storage area and a second storage area. And controlling access to the first and second storage areas in a storage system managed as a buffer area and the second storage area as a storage area provided to a host. Determining whether to store the write data in the buffer area based on at least one of a write data size from the host and a response status of the storage medium designated to write the write data from the host A storage control method is provided.
  • a storage device having at least two or more storage media is controlled, and each storage area of the two or more storage media is divided into a first storage area and a second storage area.
  • the first storage area is managed as a buffer area
  • the second storage area is managed as a storage area provided to a host, and is executed by a computer installed in a storage control device, Write data based on at least one of a process for controlling access to the first and second storage areas, a data size of the write data from the host, and a response status of the storage medium designated to write the write data from the host.
  • a process for determining whether or not to store in the buffer area can be recorded on a computer-readable storage medium.
  • the storage medium may be non-transient such as a semiconductor memory, a hard disk, a magnetic recording medium, an optical recording medium, or the like.
  • the present invention can also be embodied as a computer program product.
  • a storage system a storage control device, a storage control method, and a program that contribute to improving the performance of storage composed of a plurality of storage media.
  • FIG. 2 is a diagram illustrating an example of an internal configuration of a host and a storage apparatus according to the first embodiment.
  • FIG. It is a figure which shows an example of a storage execution management table. It is a figure which shows an example of a storage medium state management table. It is a figure which shows an example of a mapping management table. It is a figure which shows an example of a buffer area management table.
  • 3 is a flowchart illustrating an example of the operation of the storage system according to the first embodiment. 3 is a flowchart illustrating an example of the operation of the storage system according to the first embodiment.
  • 3 is a flowchart illustrating an example of the operation of the storage system according to the first embodiment.
  • 3 is a flowchart illustrating an example of the operation of the storage system according to the first embodiment.
  • 3 is a flowchart illustrating an example of the operation of the storage system according to the first embodiment.
  • the storage system includes a storage device 201 having at least two or more storage media, and a storage control device 202.
  • the storage control device 202 divides and defines the storage areas of the two or more storage media into a first storage area and a second storage area, and defines the first storage area as a buffer area and a second storage area. As a storage area to be provided to the host.
  • the storage control device 202 includes an access execution unit 211 that controls access to the first and second storage areas, the data size of the write data from the host, and the storage medium designated to write the write data from the host.
  • a determination unit 212 that determines whether to store write data in the buffer area based on at least one of the response statuses.
  • the storage control device 202 has a case where a random write with a small write data size and poor access efficiency occurs, or when the storage medium designated as the write data write destination is in a response delay state.
  • the performance of the storage apparatus 201 is improved by storing the write data in a buffer area prepared as a shared buffer in a plurality of storage media.
  • the storage control device 202 is sufficient to create a buffer necessary for preventing random writing with a small data size that affects the performance and life of the storage medium from a part of the storage medium constituting the storage device 201.
  • a buffer having high performance and capacity can be provided at low cost.
  • FIG. 2 is a diagram illustrating an example of a storage system configuration according to the first embodiment.
  • the system includes one or more hosts 1, a storage device 2 composed of at least two storage media, and a network 3 connecting the host 1 and the storage device 2.
  • the system configuration shown in FIG. 2 is an example, and is not intended to limit the system configuration.
  • the host 1 and the storage device 2 may be directly connected without going through the network 3, or the host 1 may be configured by a plurality of devices or systems connected by the network 3.
  • the host 1 connected to the network 3 accesses the data held by the storage apparatus 2.
  • the storage device 2 includes, for example, two or more storage media such as an SSD configured with a NAND flash memory.
  • each storage medium included in the storage device 2 includes a virtual medium 21 (corresponding to the second storage area described above) as a virtual storage medium.
  • a virtual buffer 22 (corresponding to the first storage area) is defined in advance. That is, each storage area of the storage medium included in the storage device 2 is divided and defined as a storage area forming a virtual buffer and a storage area provided to the host as a storage area used by the host. The storage control device manages these areas (virtual buffers and virtual areas).
  • An OS excluding software (operating system) that operates on the host 1 and functions (modules) for accessing data held by the storage device 2 is defined on each storage medium included in the storage device 2
  • Each of the recorded virtual media 21 is handled as one (single) storage medium. That is, the virtual medium 21 is provided to the host as an original storage medium.
  • FIG. 3 is a diagram illustrating an example of an internal configuration of the host 1 and the storage apparatus 2 according to the first embodiment.
  • the host 1 includes an access execution unit 101, a work memory 102, a buffer target determination unit 103, a buffer storage destination determination unit 104, a response delay determination unit 105, and a buffer data movement instruction unit 106.
  • the host 1 includes a module that requests the storage device 2 to read / write data, a module that processes a request from the module and controls the storage device 2 (a module corresponding to the storage control device). , Is included.
  • FIG. 3 shows a module for controlling the storage apparatus 2 and does not show a module for requesting data read / write. That is, the internal configuration of the host 1 shown in FIG. 3 is substantially the internal configuration of the storage control device.
  • the virtual medium 21 defined in the storage medium 2A is defined as the virtual medium 21A and the storage medium 2B.
  • the virtual medium is represented as a virtual medium 21B
  • the virtual medium defined as the storage medium 2C is represented as a virtual medium 21C.
  • the virtual buffer 22 defined in the storage medium 2A is a virtual buffer 22A
  • the virtual buffer 22 defined in the storage medium 2B is a virtual buffer 22B
  • the virtual buffer 22 defined in the storage medium 2C is a virtual buffer 22C. write.
  • FIG. 3 illustrations of modules included in the storage device 2 and controlling each storage medium are omitted.
  • the access execution unit 101 included in the host 1 illustrated in FIG. 3 receives an access request to the storage apparatus 2 from software (application program or the like) operating on the host 1 or the OS, and performs necessary access processing on the storage apparatus 2. Do. That is, the access execution unit 101 controls access to the storage area (the virtual medium 21 and the virtual buffer 22) of the storage medium that forms the storage device 2.
  • the access execution unit 101 refers to the mapping management table 109 when the acquired access request is a read request (read request). When it is determined by referring to the mapping management table 109 that the data requested to be read exists in the virtual buffer 22, the access execution unit 101 stores the storage medium that stores the data and the data. Get address information. Thereafter, the access execution unit 101 reads the data to be read stored in the virtual medium 21 or the virtual buffer 22 from the target storage medium, and returns the result to the requesting software or OS.
  • the access execution unit 101 When the access execution unit 101 issues a read request to the storage device 2, the access execution unit 101 defines the address specified for the virtual medium 21 or the virtual buffer 22, and defines the virtual medium 21 and the virtual buffer 22 in the storage device 2. Considering this, it is converted in advance into an address in each storage medium included in the storage device 2.
  • Data read from the storage device 2 is not a direct request to the storage device 2, but a copy of data to be read is stored in the working memory 102 or a cache memory (not shown) corresponding to the storage device 2. If there is, the access execution unit 101 may read the copy and substitute it without requesting the storage apparatus 2 to read it.
  • the access execution unit 101 registers the details of the write access to each storage medium included in the storage apparatus 2 in the storage execution management table 107. Further, the access execution unit 101 instructs the buffer target determination unit 103 to determine the storage destination of the data related to the write request with respect to the received write request, and obtains the storage medium and address as the storage destination from the buffer target determination unit 103 To do.
  • the buffer target determining unit 103 determines whether the data related to the write request should be stored in the original write address (write destination address) on the virtual medium 21 or stored in the virtual buffer 22, and the determination result To the access execution unit 101.
  • the access execution unit 101 assigns the addresses specified for the virtual medium 21 or the virtual buffer 22 to the virtual medium 21 and the virtual buffer 22 in the storage apparatus 2. In consideration of the definition, it is converted in advance to an address in each storage medium included in the storage apparatus 2.
  • the access execution unit 101 issues a write request to the determined storage medium and address.
  • the access execution unit 101 stores the corresponding data in the mapping management table 109 and the buffer area management table 110 when the write data storage destination is the virtual buffer 22. Update.
  • the access execution unit 101 sets the corresponding entry in the buffer area management table 110 to a state in which invalid data is stored. Update. Further, when the updated data is stored in the virtual medium 21, the access execution unit 101 deletes the corresponding entry in the mapping management table 109. Finally, the access execution unit 101 deletes the completed write access information from the storage execution management table 107 and notifies the requesting software or OS of the completion of data writing.
  • the work memory 102 temporarily stores software operating on the host 1 and write data accompanying a write request from the OS.
  • the write data stored in the work memory 102 is stored until a write request to the storage apparatus 2 by the access execution unit 101 is completed, and is deleted at an arbitrary time (timing) after the write request is completed.
  • the working memory 102 may be a non-volatile memory device such as an MRAM, in addition to the DRAM often used as the memory of the host 1. Further, the working memory 102 may be realized by a cache memory (not shown) for the storage apparatus 2 or a device shared with a memory used by the software of the host 1, the OS, or the like.
  • the buffer target determination unit 103 determines whether to store write data in the virtual buffer 22 for the write request received from the software, OS, or the like by the access execution unit 101. Specifically, when the write data is a write request that greatly affects performance degradation and life consumption in the storage medium included in the storage device 2, the buffer target determination unit 103 determines whether the write data of the write request is related to the write request.
  • the storage destination is determined (determined) as the virtual buffer 22. For example, when the storage medium has an SSD as a storage medium, a write having a data size equal to or smaller than a predetermined threshold (predetermined standard) that is considered to increase write amplification in the NAND flash memory inside the SSD.
  • the write request related to the data is determined as a storage target for the virtual buffer 22. That is, the buffer target determination unit 103 determines whether or not to store the write data in the virtual buffer 22 (buffer area) based on the data size of the write data.
  • the buffer target determination unit 103 refers to the storage medium state management table 108 and confirms whether a response delay has occurred in the storage medium that is the storage destination of the write data. At this time, when the occurrence of a response delay is confirmed in the storage medium, the buffer target determining unit 103 determines that the storage location of the write data related to the write request from the host or the like is the virtual buffer 22 regardless of the content of the write request. To do. That is, the buffer target determination unit 103 stores the write data in the virtual buffer 22 (buffer area) based on the response status (whether response delay has occurred) of the storage medium designated to write the write data. It is determined whether or not.
  • the buffer target determination unit 103 determines whether to store the write data in the virtual buffer 22 based on at least one of the data size of the write data and the response status of the storage medium designated as the write destination of the write data. Determine.
  • the in-buffer storage destination determination unit 104 determines a storage medium having the virtual buffer 22 that is the storage destination for the write data that has been subjected to the storage determination by the buffer target determination unit 103 as the storage destination. Specifically, the buffer storage location determination unit 104 refers to the storage medium state management table 108 and extracts a storage medium that is not in a response delay state. That is, when the buffer target determining unit 103 determines that the write data is stored in the virtual buffer 22, the in-buffer storage destination determining unit 104 defines the storage medium that provides the virtual buffer 22 as any storage medium. The determination as to whether the virtual buffer 22 is the write data storage destination is made based on the response status of each storage medium in which the virtual buffer 22 is defined.
  • the buffer storage location determination unit 104 refers to the buffer area management table 110, and from among a plurality of storage media, a storage medium that has a sufficient storage area for storing write data (a sufficient free space exists).
  • One of the storage media having the virtual buffer 22 to be selected that is, when there are a plurality of storage media that are not in the response delay state, the storage medium that provides the virtual buffer 22 is related to which storage medium the virtual buffer 22 defined in is set as the storage destination of the write data. The determination is made based on the free capacity of each virtual buffer 22 (size of an area in which invalid data is stored).
  • the storage medium determining unit 104 in the buffer selects the storage medium having sufficient free space by, for example, selecting a storage medium having the largest free space from storage media that are not in a response delay state. Just do it.
  • the buffer storage destination determination unit 104 determines a storage destination address (address in the virtual buffer 22) in the storage medium serving as a storage destination with reference to the buffer area management table 110. For example, when storing new write data in the write-once format in the storage medium area constituting the virtual buffer 22, the in-buffer storage location determination unit 104 stores in advance the address at which the last write data was stored, The address next to the address where the write data is stored last is set as the storage address of the new write data.
  • the response delay determination unit 105 acquires the issue time from the storage execution management table 107 for the write access issued from the access execution unit 101 to each storage medium included in the storage device 2 at an arbitrary cycle (timing), The write access execution time is calculated by comparing with the current time. When the calculated execution time exceeds a predetermined reference time, the response delay determination unit 105 determines that the storage medium of the storage apparatus 2 is in a response delay state. That is, the response delay determination unit 105 performs threshold processing on the execution time of the write access performed for each storage medium, and determines whether the storage medium is in a response delay state according to the result of the threshold processing. Determine. When the storage medium is in a response delay state, the response delay determination unit 105 updates the state of the storage medium in the storage medium state management table 108 to the response delay state.
  • the response delay determination unit 105 checks the storage execution management table 107 for the write access being executed by the storage medium in the response delay state, and if a storage location change request has not been made, the buffer storage location determination unit 104 is instructed to re-determine the storage medium and address so that the virtual buffer 22 becomes the storage destination. That is, when the response delay determination unit 105 determines that the storage medium that is executing write access is in the response delay state, the response delay determination unit 105 executes the storage medium in the response delay state to the buffer storage location determination unit 104. The virtual buffer 22 is instructed to store the write data corresponding to the current write access.
  • the buffer data movement instructing unit 106 refers to the buffer area management table 110 at an arbitrary cycle (timing) and confirms the free capacity of the storage area constituting the virtual buffer 22 of each storage medium.
  • the buffer data movement instruction unit 106 issues an instruction to secure free space in the storage area below the reference to the access execution unit. 101. Specifically, the buffer data movement instruction unit 106 reads the write data stored in the storage area constituting the virtual buffer 22 of each storage medium from the virtual buffer 22 to the work memory 102 to the access execution unit 101. The write data is instructed to be written in the original storage address of the write data in the virtual medium 21. That is, the buffer data movement instruction unit 106 determines whether or not the free capacity of each virtual buffer 22 is greater than or equal to a predetermined reference value (greater than or equal to the reference capacity), and determines that the free capacity is less than the predetermined reference value. The data stored in the virtual buffer 22 is moved to the virtual medium 21 of the storage medium designated as the writing destination from the OS or the like.
  • writing to the original storage destination address of the virtual medium 21 is a part of the process of moving data from the virtual buffer 22 to the virtual medium 21, and therefore the storage target determination by the buffer target determination unit 103 is not performed ( (Unconditionally, the virtual medium 21 is a data storage destination).
  • the buffer data movement instruction unit 106 updates the mapping management table 109 and the buffer area management table 110 when the write process to the virtual medium 21 is completed.
  • the above-described access execution unit 101, buffer target determination unit 103, in-buffer storage destination determination unit 104, response delay determination unit 105, and buffer data movement instruction unit 106 function as a control module that controls the storage apparatus 2.
  • the control module can also be realized by a computer program that causes a computer mounted on the host 1 (storage control device) to execute processing, which will be described in detail later, using the hardware.
  • the storage execution management table 107 stores and manages information related to write access that is being issued from the access execution unit 101 to each storage medium. More specifically, the storage execution management table 107 is stored in the write access issuance time, write access issuance destination storage medium, write data issuance destination address, write data size, and work memory 102 by the access execution unit 101. Stores and manages pointer information of write data.
  • the storage execution management table 107 stores and manages a storage medium and an address indicating the original storage destination of the write data related to the write access when the write access to be managed stores data in the virtual buffer 22.
  • the storage execution management table 107 may exist on the same device as the working memory 102, for example, a cache memory (not shown) for the storage apparatus 2 or a memory used by the host 1 software, OS, or the like. good.
  • FIG. 4 is a diagram illustrating an example of information relating to write access included in the storage execution management table 107.
  • the storage execution management table 107 includes an issue time 1071, an issue destination storage medium 1072, an issue destination address 1073, an issue size 1074, a storage data pointer 1075, a request for each write access issued by the access execution unit 101.
  • a storage medium 1076, a request address 1077, a storage location change flag 1078, and a storage location change prohibition flag 1079 are managed.
  • the stored data pointer 1075 indicates the storage destination address of the write data stored in the work memory 102.
  • the request storage medium 1076 indicates the storage medium where the access execution unit 101 operates on the host 1 and the write data requested by the OS, and the request address 1077 indicates the storage destination address in the storage medium. .
  • the issue destination storage medium 1072 and the issue destination address 1073 indicate the storage medium actually accessed by the access execution unit 101 and the address on the storage medium
  • the request storage medium 1076 and the request An address 1077 indicates an access destination (storage medium, address) received by the access execution unit 101 from the OS or the like.
  • the access execution unit 101 is requested to write data to the address 0x00100000 (request address 1077) of the storage medium 2C (request storage medium 1076). This indicates that data write is instructed to address 0x00000020 (issue destination address 1073) of storage medium 2A.
  • the storage destination change flag 1078 is displayed when the storage destination determination unit 104 in the buffer has already changed the write data storage destination in response to the occurrence of a response delay in the storage medium indicated by the issue destination storage medium 1072.
  • the flag is “1”.
  • the storage location change prohibition flag 1079 is a flag that is set to “1” in the case of a write corresponding to data movement processing from the virtual buffer 22 to the virtual medium 21 by the buffer data movement instruction unit 106.
  • the format of the data included in the storage execution management table 107 is not limited to the format shown in FIG. 4.
  • the storage destination is changed from the virtual medium 21 to the virtual buffer 22 by the buffer storage destination determination unit 104. You may provide the flag which shows this explicitly.
  • FIG. 5 is a diagram illustrating an example of information regarding the state of the storage medium included in the storage medium state management table 108.
  • the storage medium state management table 108 stores and manages information indicating the response delay state of each storage medium determined by the response delay determination unit 105.
  • the storage medium state management table 108 manages a storage medium identifier 1081 such as an ID (Identifier) for identifying each storage medium, and a response delay flag 1082 that becomes 1 when each storage medium is in a response delay state.
  • a storage medium identifier 1081 such as an ID (Identifier) for identifying each storage medium
  • a response delay flag 1082 that becomes 1 when each storage medium is in a response delay state.
  • the format of the data included in the storage medium state management table 108 is not limited to the format shown in FIG. 5, and instead of the response delay flag 1082 for each storage medium, for example, a detailed load is added in addition to the response delay state.
  • a data structure represented by a numerical value may be used.
  • FIG. 6 is information included in the mapping management table 109, which is data requested to be stored in the virtual medium 21 and stored in the virtual buffer 22, and the storage location of the write data in the virtual buffer 22 It is a figure which shows an example of the information showing.
  • the mapping management table 109 is a memory that indicates whether data requested to be stored in the virtual medium 21 by software or an OS operating on the host 1 is stored in the virtual buffer 22 and the storage location of the write data in the virtual buffer 22. Stores and manages information on the medium and the address on the storage medium. Specifically, the mapping management table 109 stores and manages a virtual medium identifier 1091, a virtual medium address 1092, a virtual buffer identifier 1093, and a virtual buffer address 1094.
  • the virtual medium identifier 1091 is an identifier corresponding to the storage area of the virtual medium 21 defined for each storage medium, and the virtual medium address 1092 is the address.
  • the virtual buffer identifier 1093 is an identifier representing the virtual buffer 22 (storage area) in which data corresponding to the virtual medium identifier 1091 and the virtual medium address 1092 is stored, and the virtual buffer address 1094 is the address.
  • the data to be stored at the address 0x00000001 (virtual medium address 1092) of the virtual medium 21A is actually stored at the address 0x00000002 (virtual buffer address 1094) of the virtual buffer 22B.
  • the corresponding virtual buffer identifier 1093 and virtual buffer address 1094 are set to invalid values such as 0xFFFFFF (hexadecimal notation) (see the first line in FIG. 6).
  • the mapping management table 109 is not limited to the format shown in FIG. 6. For example, a flag indicating that data corresponding to the virtual medium identifier 1091 and the virtual medium address 1092 is not stored in the virtual buffer 22 is separately provided. It may be provided.
  • mapping management table 109 does not have the table format shown in FIG. 6.
  • the virtual medium identifier 1091 and the virtual medium address 1092 are used as keys, and the corresponding virtual buffer identifier 1093 and virtual buffer address 1094 are used as values.
  • It may be a data structure (tree structure) like a tree to be extracted. In this case, the capacity of the mapping management table 109 can be reduced by omitting entries in which no data is stored in the virtual buffer 22.
  • FIG. 7 shows information included in the buffer area management table 110. Whether or not write data is stored for each storage area used in the virtual buffer 22 defined in each storage medium, and the free space in the virtual buffer 22 in each storage medium. It is a figure which shows the information showing a capacity
  • the buffer area management table 110 stores information on whether write data has been stored or write data can be newly stored for each storage area used in the virtual buffer 22 defined in each storage medium. And manage.
  • the buffer area management table 110 stores and manages the free capacity for each storage area of the virtual buffer 22 defined in each storage medium.
  • the buffer area management table 110 is configured for each storage medium, and the virtual buffer address 1101 representing the storage area of the virtual buffer 22 for each storage medium and the write data stored in the storage area should be originally stored.
  • a virtual medium identifier 1102 representing a storage area of the virtual medium 21 and its virtual medium address 1103 are stored and managed.
  • the buffer area management table 110 manages the free capacity 1104 for each storage area of the virtual buffer 22 divided for each storage medium.
  • write data can be newly stored in the storage area of the virtual buffer 22 represented by the virtual buffer address 1101, for example, an invalid value such as 0xFFFFFF (hexadecimal notation) is stored to newly write data.
  • the entry in the first row of the table for the storage medium 2A in FIG. 7 indicates that no data is stored at the address 0x00000000 of the virtual buffer 22A, and the entry in the second row is at the address 0x00000001 of the virtual buffer 22A. This indicates that data to be stored at the address 0x00000000 of the virtual medium 21C is stored.
  • the buffer area management table 110 is not limited to the format shown in FIG. 7. For example, when entries corresponding to the virtual buffer address 1101 exist in order from the beginning to the end of the storage area of the virtual buffer 22, the virtual buffer The address 1101 can be omitted.
  • the host 1 has a storage unit (not shown) in which various tables such as the storage execution management table 107, the storage medium state management table 108, the mapping management table 109, and the buffer area management table 110 are constructed.
  • the access execution unit 101 refers to the mapping management table 109 when receiving a read request from the software operating on the host 1 and the OS.
  • the access execution unit 101 confirms whether or not the virtual buffer identifier 1093 and the virtual buffer address 1094 corresponding to the read access (the virtual medium identifier 1091 and the virtual medium address obtained from the read access) are registered in the table. Whether or not the read-requested data is stored in the virtual buffer 22 is confirmed (depending on whether or not the acquisition result regarding the virtual buffer address 1094 from the mapping management table 109 is a valid address).
  • the access execution unit 101 stores the virtual buffer address 1094 acquired in step S11, and the address of the storage medium indicated by the virtual buffer identifier 1093 And a read request for the converted address is made to the storage medium (step S13).
  • the access is executed.
  • the unit 101 converts the acquired address into a real address of the storage medium 2B in consideration of the definitions of the virtual medium 21 and the virtual buffer 22, and makes a read request for the converted address. Thereafter, the access execution unit 101 executes the processing after step S15.
  • the access execution unit 101 sets the address for the read request destination virtual medium 21 to the address in the read request destination storage medium. Convert to Then, the access execution unit 101 uses the converted address to make a read request to the read request destination storage medium (step S14). For example, referring to the mapping management table 109 shown in FIG. 6, when 0xFFFFFFFF is obtained as the virtual buffer address 1094 corresponding to the address related to read access from the OS or the like (entry in the first row of the table in FIG. 6), The access execution unit 101 converts the address 0x00000000 of the virtual medium 21A into the real address of the storage medium 2A in consideration of the definitions of the virtual medium 21 and the virtual buffer 22, and makes a read request for the converted address.
  • the access execution unit 101 responds with the read data (read data) to the software and OS operating on the requesting host 1 as a result, The process related to the read request is terminated (step S15).
  • the access execution unit 101 performs the processing from the above steps S11 to S15, receives the read request from the software running on the host 1 and the OS, and completes the operation of responding to the result.
  • the access execution unit 101 receives a write request from software or OS running on the host 1, and stores it in a storage medium included in the storage apparatus 2. A procedure for completing the issue of the write request will be described.
  • the access execution unit 101 stores the write data in the work memory 102 when receiving the write request from the software operating on the host 1 and the OS. Thereafter, the access execution unit 101 registers the write request in the storage execution management table 107 and sets the storage data pointer 1075, the request storage medium 1076, the request address 1077, and the issue size 1074 (see FIG. 4). The access execution unit 101 also sets the write request storage destination information for the issue destination storage medium 1072 and the issue destination address 1073. Further, the access execution unit 101 sets the storage location change flag 1078 and the storage location change prohibition flag 1079 corresponding to the write request in the storage execution management table 107 to “0”. (Step S201)
  • the buffer target determination unit 103 acquires a determination instruction regarding whether to store the write request in either the virtual medium 21 or the virtual buffer 22 from the access execution unit 101, and the size of the write data is It is determined whether it is below a predetermined reference value (step S202).
  • step S203 When the size of the write data is equal to or smaller than a predetermined reference value (Yes determination in step S203), the buffer target determination unit 103 determines that the write data related to the write request is stored in the virtual buffer 22, The process after step S207 is executed.
  • the buffer target determination unit 103 refers to the storage medium state management table 108 shown in FIG. 5 and stores data related to the write request. It is confirmed whether or not the storage medium including the virtual medium 21 is in a response delay state (step S204).
  • the buffer target determination unit 103 determines to store the write data related to the write request in the virtual buffer 22, and the process from step S207 onward Execute the process.
  • the buffer target determination unit 103 sends the original (original) write data related to the write request to the access execution unit 101.
  • the virtual medium 21 that is the storage destination and the address for the virtual medium 21 are notified as the storage destination, the buffer target determination process is completed, and the processes after step S211 are executed (step S206).
  • step S207 the buffer target determination unit 103 instructs the in-buffer storage location determination unit 104 to change the storage location of the write data related to the write request.
  • the buffer storage location determination unit 104 When receiving the instruction regarding the change of the storage location of the write data related to the write request, the buffer storage location determination unit 104 refers to the storage medium status management table 108 shown in FIG. 5 and extracts a storage medium that is not in the response delay state ( Step S208).
  • the in-buffer storage location determination unit 104 refers to the buffer area management table 110 shown in FIG. 7, and determines the free capacity 1104 of the virtual buffer 22 included in each storage medium that is not in the response delay state, extracted in step S208. Check. Thereafter, the in-buffer storage destination determination unit 104 determines, for example, the virtual buffer 22 having the largest free capacity 1104 as the storage destination (step S209).
  • the in-buffer storage destination determination unit 104 refers to the buffer area management table 110 to determine the address of the area where the write data is stored in the virtual buffer 22 determined as the storage destination in step S209, and the buffer area management table 110 update the virtual medium identifier 1102 and virtual medium address 1103 corresponding to the virtual buffer address 1101 corresponding to the determined address of 110 with the storage destination virtual medium and address before the change of the write data (virtual buffer address and virtual medium identifier) Update the fields related to).
  • the in-buffer storage location determination unit 104 updates the free space 1104 of the buffer area management table 110 with a value obtained by subtracting the capacity of the area used for storing write data, and stores information on the storage destination virtual buffer 22.
  • the access execution unit 101 is notified (step S210).
  • step S206 or step S210 the access execution unit 101 executes the processing after step S211.
  • the access execution unit 101 converts the storage destination address notified from the buffer target determination unit 103 or the in-buffer storage destination determination unit 104 into an address corresponding to the storage medium (step S211). That is, the access execution unit 101 converts the notified address of the virtual medium 21 or the virtual buffer 22 into the address of the storage medium in consideration of the definitions of the virtual medium 21 and the virtual buffer 22.
  • the access execution unit 101 issues a write command to the address of the storage medium including the virtual medium 21 or the virtual buffer 22 determined as the storage destination and converted in step S211 (step S212).
  • the access execution unit 101 updates the issue time 1071, the issue destination storage medium 1072, and the issue destination address 1073 of the storage execution management table 107 corresponding to the write command issued in step S212, and ends the processing (step S213).
  • the execution order of the steps to be executed is not limited to the description order.
  • the size of the write data is verified in steps S202 and S203, and the response status of the storage medium designated as the storage destination is verified according to the result (steps S204 and S205).
  • the order of the two verification operations may be reversed. More specifically, when the write destination storage medium is in a response delay state, the buffer target determining unit 103 may set the write data storage destination as the virtual buffer 22 regardless of the size of the write data ( Step S207 and subsequent steps may be executed).
  • the access execution unit 101 When it is determined that the write data is to be stored in the virtual buffer 22 due to the data size of the write data, the access execution unit 101 writes the write data to the virtual buffer 22 in a write-once format. Issue a write command. In other words, when it is determined that the write data is stored in the virtual buffer 22 according to the response status of the storage medium to which it is written, regardless of the size of the write data, the write data is not necessarily in the write-once format. Thus, it may not be written to the virtual buffer 22 (a predetermined area of the virtual buffer 22 may be updated).
  • the access execution unit 101 receives a write request from the software and OS operating on the host 1, and completes issuing the write request to the storage medium included in the storage device 2. Is completed.
  • the access execution unit 101 When the access execution unit 101 detects the completion of writing in the storage medium, the access execution unit 101 refers to the storage execution management table 107, and refers to the storage location change flag 1078 and the storage location change prohibition flag 1079 from the corresponding write request information (step S31). ).
  • step S31 When any of the storage location change flag 1078 and the storage location change prohibition flag 1079 referred to in step S31 is “1” (Yes in step S32), the access execution unit 101 receives the software and OS operating on the host 1. Since the write operation does not correspond to the write request, the processing from step S35 is executed.
  • step S31 When both the storage destination change flag 1078 and the storage destination change prohibition flag 1079 referred to in step S31 are “0” (No determination in step S32), the access execution unit 101 stores the storage execution management table 107 shown in FIG.
  • the issue destination storage medium 1072 By referring to the issue destination storage medium 1072, the issue destination address 1073, the request storage medium 1076, and the request address 1077, the virtual buffer identifier 1093 and the virtual buffer address 1094 corresponding to the virtual medium identifier 1091 and the virtual medium address 1092 of the mapping management table 109 are obtained. Is updated (step S33).
  • the access execution unit 101 refers to the request storage medium 1076 and the request address 1077 of the storage execution management table 107, identifies the write request from the software and OS operating on the host 1, and returns a write request completion response (step S34).
  • the access execution unit 101 refers to the storage medium state management table 108, acquires the response delay flag 1082 of the storage medium identifier 1081 that matches the storage medium for which writing has been completed, and determines whether the storage medium is in the response delay state. (Check whether the response delay flag 1082 is “1”; step S35).
  • the access execution unit 101 executes the processing after step S38.
  • the access execution unit 101 responds to the storage medium for which writing has been completed with a response delay flag 1082 in the storage medium state management table 108. Is set to “0” (the state of the storage medium is updated to a state that is not a response delay; step S37).
  • the access execution unit 101 deletes the entry corresponding to the completed write and the write data stored in the work memory 102 from the storage execution management table 107, and ends the process (step S38).
  • the access execution unit 101 detects the response delay state in each storage medium and writes to the storage medium being issued A procedure for changing the storage destination to the virtual buffer 22 so that the write data is stored in a storage medium different from the storage medium regarding the request will be described.
  • the response delay determination unit 105 refers to the issuance time 1071 in each entry of the storage execution management table 107, and determines that the storage medium in which the elapsed time from the write request issuance based on the current time is in a response delay state. It is confirmed whether it is within the time to perform (step S41).
  • the response delay determination unit 105 executes the processing after step S47.
  • the response delay determination unit 105 determines that the storage medium issuing the write request is in the response delay state, and stores execution management
  • the issue destination storage medium 1072 is identified with reference to the issue destination storage medium 1072 of the table 107. Further, the response delay determination unit 105 updates the response delay flag 1082 corresponding to the storage medium identifier 1081 corresponding to the storage medium in the storage medium state management table 108 to “1”, that is, the response delay state (step S43). ).
  • the response delay determination unit 105 refers to the storage location change flag 1078 and the storage location change prohibition flag 1079 of the entry referred to in step S41 in the storage execution management table 107, and has already performed storage location change processing for write access. Whether the storage location is prohibited from being changed (step S44).
  • step S44 when the storage destination has been changed or the change of the storage destination is prohibited (Yes determination in step S45), the response delay determination unit 105 executes the processing from step S47.
  • the response delay determination unit 105 notifies the in-buffer storage destination determination unit 104 of the response delay state.
  • the storage medium and address corresponding to the virtual buffer 22 serving as the storage destination for write access are instructed (instruction for re-determining the storage location of the write data corresponding to the entry of interest; step S46).
  • the response delay determination unit 105 changes the entry of interest in the storage execution management table 107 to the next entry (determines the response delay of the write request related to the next entry). If the last entry is referenced in step S41, the response delay determination unit 105 sets the target entry as the first entry. The response delay determination unit 105 re-executes the processing from step S41 after changing the entry of interest (step S47).
  • the processing from the above steps S41 to S47 is performed, and the response delay determination unit 105 detects the response delay state in each storage medium, and changes the storage destination in the virtual buffer 22 regarding the write request issued to the storage medium. (Operation of storing data in the virtual buffer 22 so that the write data is stored in a storage medium different from the storage medium in the response delay state).
  • the in-buffer storage destination determination unit 104 and the access execution unit 101 which are instructed to re-determine the write data storage destination in step S46, re-store the write data in the virtual buffer 22 in accordance with the processing from step S208 shown in FIG. Determine the destination and complete the issue of the write request after changing the storage destination.
  • the response delay determination process may be performed at an appropriate frequency by pausing the process for an arbitrary time.
  • the buffer data movement instructing unit 106 acquires the free capacity 1104 corresponding to the storage medium in question in the buffer area management table 110, and the free capacity of each virtual buffer 22 is insufficient. It is confirmed whether or not the capacity exceeds the reference capacity for determining (step S51).
  • the buffer data movement instruction unit 106 changes the storage medium of interest. Specifically, when a storage medium is identified by a number, the buffer data movement instruction unit 106 focuses on the next storage medium. If the number of the target storage medium is the end, the buffer data movement instructing unit 106 re-executes the processing from step S51 after changing the focus to the storage medium with the first number (step S53). .
  • the buffer data movement instruction unit 106 refers to the buffer area management table 110, stores the write data, and Then, one entry for moving the write data to the virtual medium 21 is selected from any entries whose data has not been moved to the virtual medium 21 (step S54).
  • the buffer data movement instruction unit 106 instructs the access execution unit 101 to read out the write data selected in step S54 from the virtual buffer 22 and store it in the work memory 102.
  • the access execution unit 101 reads the write data from the storage medium using the procedure in steps S11 to S14 in FIG. 8 and stores it in the work memory 102 (step S55).
  • the buffer data movement instruction unit 106 refers to the buffer area management table 110, and acquires the virtual medium identifier 1102 and the virtual medium address 1103 representing the storage location of the write data for the write data stored in the work memory 102 in step S55. . Then, the buffer data movement instruction unit 106 sets the storage destination address of the write data on the work memory 102 in the storage execution management table 107, the storage data pointer 1075, and the write data size in the issue size 1074. Further, the buffer data movement instruction unit 106 sets the storage medium and address information of the write data in the previously acquired virtual medium identifier 1102 and virtual medium address 1103. Further, the buffer data movement instruction unit 106 sets the storage destination change prohibition flag 1079 corresponding to the write request in the storage execution management table 107 to “1” (step S56).
  • the buffer data movement instruction unit 106 instructs the access execution unit 101 to execute a write request related to the write data stored in the work memory 102 registered in the storage execution management table 107 in step S56 (step S57).
  • the buffer data movement instruction unit 106 refers to the virtual medium identifier 1102 and the virtual medium address 1103 from the entry in the buffer area management table 110 selected in step S54. Then, for the entries corresponding to the virtual medium identifier 1102 and the virtual medium address 1103 in the mapping management table 109, the setting values of the virtual buffer identifier 1093 and the virtual buffer address 1094 are changed to a value (for example, 0xFFFFFFFF) indicating that the entry is invalid. Update (step S58).
  • the buffer data movement instructing unit 106 updates the entry in the buffer area management table 110 selected in step S54 to a state in which valid write data is not stored, that is, a state in which data can be newly stored. Further, the buffer data movement instruction unit 106 uses the value of the free capacity 1104 in the buffer area management table 110 corresponding to the virtual buffer 22 in which the free capacity is insufficient as the capacity of the write data that has been moved to the virtual medium 21. After adding the minutes, the process is re-executed from step S51 (step S59).
  • the access execution unit 101 instructed to execute the write request in step S57 stores a write request for storing the data stored in the work memory 102 in the virtual medium 21 in accordance with the processing from step S202 shown in FIG. Execute processing to be issued to the medium.
  • the buffer data movement instruction unit 106 re-executes the process from step S51 after the process of step S53, for example, the process for determining and securing the lack of free space at an appropriate frequency by pausing the process for an arbitrary time, for example. May be performed.
  • a part of the storage area of a storage medium (for example, SSD) is used as a buffer.
  • a response delay occurs in a storage medium having a storage area constituting the buffer, it is necessary to avoid that the data storage destination for the buffer becomes a storage medium in the response delay state. Therefore, in addition to the randomness of the write request that affects the performance and life of the storage medium, the response delay related to the storage medium including the original storage destination storage area of the write data and the storage medium having the storage area as the storage destination in the buffer Whether to store the write data in the buffer is determined in consideration of the occurrence of this.
  • writing to the storage medium in the response delay state is avoided by selecting the storage area for the write data in the buffer from the storage areas included in the storage medium that is not in the response delay state. Further, since the storage medium constituting the buffer is included in the storage medium itself, it is necessary to avoid the influence when a response delay occurs in the storage medium that is executing the write. Therefore, when occurrence of a response delay is detected in the storage medium that is executing the write, the storage medium that is not in the response delay state is selected and executed for the data stored by the write that is being executed.
  • the host 1 (storage control device) has a buffer target determination function (buffer target determination unit 103), a buffer storage destination determination function (buffer storage destination determination unit 104), a response delay determination.
  • Function response delay determination unit 105
  • buffer data movement instruction function buffer data movement instruction unit 106
  • storage execution management function management of storage execution management table 107
  • storage medium state management function storage medium state management table 108
  • mapping management function management of the mapping management table 109
  • a buffer area management function management of the buffer area management table 110.
  • the buffer target determination function stores the data requested to be written by the host in a buffer secured on the storage medium. Make a decision.
  • the buffer target determination function determines whether write data should be temporarily stored in the buffer for each write request to the storage medium constituting the storage apparatus.
  • the buffer target determination function buffers the write data when the storage medium, which is the original storage destination for each write request, is in a response delay state, or when it is determined that the performance of the storage medium is reduced and the life is consumed. (Temporary buffer; virtual buffer).
  • the storage medium is an SSD
  • the write determination of a write that leads to write degradation in the NAND flash in the SSD causes a write amplification. Judgment can be made according to the size.
  • the buffer storage location determination function determines the storage medium and address to be stored in the buffer.
  • the storage destination determination function in the buffer determines a storage medium that is a storage destination and a storage destination address in the storage medium for the write data that is determined to be stored in the buffer in the buffer target determination function.
  • the storage destination determination function in the buffer is the response delay state of each storage medium acquired from the storage medium state management function and the storage medium acquired from the buffer area management function for the storage medium and address that is the storage destination in the write data buffer. This is determined using the usage status of the buffer storage area.
  • the response delay determination function determines the state of response delay in each storage medium, and when a response delay occurs, determines that the storage destination is another storage medium for the write access being executed and makes a write request again. .
  • the response delay determination function determines whether or not each storage medium is in a response delay state from the execution time of the write command for each storage medium managed by the storage execution management function.
  • the response delay determination function notifies the storage medium state management function of the determination result.
  • the response delay determination function for a write access being executed in a response-delayed storage medium, regardless of whether or not the write access is storing data in the buffer, Is instructed to write again.
  • the buffer data movement instruction function secures the free space of the buffer by storing the write data in the buffer at the address of the original storage medium when the buffer capacity is insufficient.
  • the buffer data movement instruction function reads the write data stored in the buffer and the address of the original storage medium and the address when the free space in which the write data can be stored in the buffer storage area of each storage medium decreases. Is written in the area pointed to, and free space is secured by making the data re-storable in the area where the write data is stored on the buffer.
  • the storage execution management function manages the write request being executed for each storage medium.
  • the storage execution management function manages the write access start time, the write data storage destination address, and the data stored by the write access for the write access being executed for each storage medium.
  • the storage execution management function also manages the storage medium and the address where the data stored by the write access is supposed to be stored if the write access to be managed stores data in the buffer. To do.
  • the storage medium state management function manages the response delay state of each storage medium determined by the response delay determination function.
  • the storage medium state management function receives and manages response delay state information regarding each storage medium determined by the response delay determination function.
  • the mapping management function manages the storage medium and storage destination address information that are the original storage destinations for each data stored in the buffer.
  • the mapping management function manages whether or not the write data corresponding to the address of each storage medium is stored with respect to the buffer configured by the storage area for the buffer secured on each storage medium.
  • the mapping management function stores the storage medium and address information on the buffer, and the storage medium that is the original storage destination for each stored write data. Manages storage address information.
  • the buffer area management function manages the usage status of the storage areas secured on each storage medium constituting the buffer.
  • the buffer area management function has already stored buffered write data for each address in the storage area for the buffer storage area secured on each storage medium, or can write new write data. Manage whether there is.
  • the system according to the first embodiment can realize, for example, a buffer having performance, capacity, and non-volatility corresponding to the number of SSDs used in a storage that uses SSDs as storage media at low cost.
  • a part of the SSD storage area is secured as a buffer area, and by combining the buffer areas secured by a plurality of SSDs, the SSD is included in the storage apparatus (connected).
  • Configure a shared buffer Since the number of areas constituting the shared buffer is at most equal to the number of SSDs connected to the system, a buffer capacity proportional to the number of SSDs can be obtained.
  • the performance of the SSD can be improved and the life can be extended by reducing the random write as in the conventional buffer. That is, write data for which a random write request has been made to each storage medium is written continuously to a shared buffer in each storage medium (that is, for data addition rather than data update).
  • the fragmentation of effective write data for example, the amount of effective write data movement associated with erasure in units of blocks, which is a cause of write amplification that occurs when SSD is used as a storage medium. Can be reduced, and the performance improvement and life extension of the SSD can be realized.
  • buffer performance proportional to the number of SSDs can be obtained. Further, by providing redundancy for the data stored in the buffer using RAID or the like between the buffer areas of each SSD, it is possible to avoid data loss due to a failure in the SSD and to protect the data stored in the buffer. .
  • a non-volatile, sufficient performance and capacity buffer for the SSD as a storage medium is provided at a lower cost than when the method according to the first embodiment is not applied. It is possible to reduce random data with a small data size, improve performance, and extend the service life. In addition, since the performance and capacity in proportion to the number of SSDs that are storage media for the buffer are realized, it is possible to prevent the buffer from becoming a bottleneck for write access to the SSD.
  • [Form 1] This is the same as the storage system according to the first aspect described above.
  • [Form 2] The access execution unit The storage system according to mode 1, wherein when the determination unit determines to store write data in the buffer area based on the data size of the write data from the host, the write data from the host is added to the buffer area.
  • [Form 3] The storage control device When the determination unit determines to store the write data in the buffer area, Of the storage media forming the buffer area, the determination as to which storage medium the first storage area defined as the storage destination of the write data is made for each storage medium in which the first storage area is defined.
  • the storage system according to mode 1 or 2, further comprising a storage destination determination unit that performs based on the response status.
  • the storage location determination unit The storage medium forming the buffer area is determined based on the free capacity of each of the first storage areas, with respect to which storage medium the first storage area defined as the storage destination of the write data is set.
  • the storage control device It is determined whether or not the free space of each of the first storage areas is greater than or equal to a predetermined reference value, and the data stored in the first storage area that has been determined that the free capacity is less than the predetermined reference value
  • the storage system according to any one of aspects 1 to 5, further comprising a data moving unit that moves the data to the second storage area of the storage medium designated as the write destination from the host.
  • [Form 7] The storage according to any one of forms 1 to 6, wherein the storage control device manages the first storage area defined in each of the two or more storage media as a shared buffer for the two or more storage media. system.
  • [Form 8] The storage control apparatus according to the second aspect described above.
  • [Form 9] This is the same as the storage control method according to the third aspect described above.
  • [Mode 10] It is as the program which concerns on the above-mentioned 4th viewpoint. Forms 8 to 10 can be developed into forms 2 to 7, as with form 1.

Abstract

The present invention provides a storage system that contributes to improved performance of a storage comprising multiple storage media. The storage system includes: a storage device having at least two storage media; and a storage control device. The storage control device divides each of the two or more storage media to define a first storage area and a second storage area therein, and manages the first storage area as a buffer area and the second storage area as a storage area to be offered to a host. Furthermore, the storage control device is equipped with: an access execution unit for controlling access to the first and second storage areas; and a determination unit for determining, on the basis of the data size of write data from the host and/or on the basis of a response state of a storage medium that is specified by the host as a write destination of the write data, whether or not write data should be stored in the buffer area.

Description

ストレージシステム、ストレージ制御装置、ストレージ制御方法及びプログラムStorage system, storage control device, storage control method and program
 (関連出願についての記載)
 本発明は、日本国特許出願:特願2015-112114号(2015年6月2日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
 本発明は、ストレージシステム、ストレージ制御装置、ストレージ制御方法及びプログラムに関する。特に、複数の記憶媒体からなるストレージ装置を含むストレージシステム、ストレージ制御装置、ストレージ制御方法及びプログラムに関する。
(Description of related applications)
The present invention is based on the priority claim of Japanese patent application: Japanese Patent Application No. 2015-112114 (filed on June 2, 2015), the entire contents of which are incorporated herein by reference. Shall.
The present invention relates to a storage system, a storage control device, a storage control method, and a program. In particular, the present invention relates to a storage system including a storage apparatus composed of a plurality of storage media, a storage control apparatus, a storage control method, and a program.
 近年、情報システムにおける記憶媒体として、記憶素子にNAND型フラッシュメモリを用いたSSD(Solid State Drive)が広く用いられている。SSDは、記憶媒体として用いられてきたHDD(Hard Disk Drive)に比べ、特にランダムアクセスに対して高い性能を有する。 Recently, an SSD (Solid State Drive) using a NAND flash memory as a storage element is widely used as a storage medium in an information system. The SSD has a higher performance especially for random access than an HDD (Hard Disk Disk Drive) that has been used as a storage medium.
 一方で、SSDに対する小さいデータサイズによるランダムライトの繰り返しは、性能低下の原因となることが知られている。ここで、SSDに用いられるNAND型フラッシュメモリは、記憶データの更新時に既に格納済のデータ(古いデータ)の消去(Erase)を必要とする。また、データの消去はブロックと呼ばれる単位にて行われる。ブロックは、読み出し(Read)及び書き込み(Write)の最小単位であるページを複数含んで構成される。従って、小さいデータサイズのランダムライトによってブロックの一部を更新する必要が生じた場合には、更新対象外のページに格納されたデータに対する退避及び再格納の制御が必要となる。 On the other hand, it is known that repeated random writing with a small data size for an SSD causes performance degradation. Here, the NAND flash memory used for the SSD needs to erase already stored data (old data) when updating the stored data. Data is erased in units called blocks. The block includes a plurality of pages which are the minimum units of reading (Read) and writing (Write). Therefore, when it is necessary to update a part of a block by random writing with a small data size, it is necessary to control saving and re-storing of data stored in a page not to be updated.
 SSDでは、上記の退避、再格納を内部処理として行う。そのため、SSDに対するライト要求(ライトリクエスト)のデータ量に比べ、実際にSSDの内部にてNAND型フラッシュメモリに書き込まれるデータ量が増加する現象(ライトアンプリフィケーション;Write Amplification)が発生する。 In SSD, the above save and re-store are performed as internal processing. Therefore, a phenomenon (write amplification) in which the amount of data actually written in the NAND flash memory inside the SSD increases as compared with the data amount of the write request (write request) to the SSD.
 さらに、SSDに対する小さいデータサイズのランダムライトによるライトアンプリフィケーションは、SSDの寿命消費による信頼性低下を引き起こす可能性がある。具体的には、SSDを構成するNAND型フラッシュメモリは、データの更新を繰り返すことで、格納データに対するビットエラーの発生率が増加する。そのため、NAND型フラッシュメモリのエラーが訂正可能な範囲に収まるように更新回数を抑える必要があり、通常、これがNAND型フラッシュメモリの寿命として扱われる。さらにまた、近年、NAND型フラッシュメモリの大容量化を目的として、製造プロセスの微細化と、メモリセルに格納される情報量の増加と、によりNAND型フラッシュメモリの短寿命化が進んでいる。 Furthermore, write amplification by random writing with a small data size for SSD may cause a decrease in reliability due to the lifespan of SSD. Specifically, the NAND flash memory constituting the SSD increases the occurrence rate of bit errors with respect to stored data by repeatedly updating data. For this reason, it is necessary to suppress the number of updates so that errors in the NAND flash memory are within a correctable range, and this is normally treated as the lifetime of the NAND flash memory. Furthermore, in recent years, for the purpose of increasing the capacity of the NAND flash memory, the lifetime of the NAND flash memory has been shortened due to the miniaturization of the manufacturing process and the increase in the amount of information stored in the memory cells.
 以上のような状況の下、SSDの内部に組み込まれたNAND型フラッシュメモリに対するライトデータ量の削減は、SSDの信頼性向上の面でも重要な要因となる。即ち、SSDの性能向上及び長寿命化による信頼性確保の観点から、SSDに対する小さなデータサイズのランダムライトを削減することが求められる。 Under the circumstances as described above, the reduction of the write data amount for the NAND flash memory incorporated in the SSD is an important factor in improving the reliability of the SSD. That is, from the viewpoint of ensuring reliability by improving the performance of the SSD and extending its life, it is required to reduce random writing with a small data size for the SSD.
 このような要望に応じて、SSDに対する小さなデータサイズの書き込み処理を削減するため、バッファ又はキャッシュが用いられることが多い。例えば、バッファを用いる場合を例に取ると、SSD又はSSDを構成するNAND型フラッシュメモリに対するライトデータは一時的にバッファに保存される。その後、例えば、特許文献1、非特許文献1に示されるようにアドレスの連続したデータが蓄積した時点でSSDにデータの書き込み(Write)を行うことで、小さなデータサイズのランダムライトを回避している。 In response to such a request, a buffer or a cache is often used to reduce a writing process with a small data size to the SSD. For example, taking the case of using a buffer as an example, write data for the SSD or NAND flash memory constituting the SSD is temporarily stored in the buffer. After that, for example, as shown in Patent Document 1 and Non-Patent Document 1, data writing (Write) is performed on the SSD when data having consecutive addresses is accumulated, thereby avoiding random writing with a small data size. Yes.
 また、SSDに対するバッファは、SSDにおける応答の遅延発生を隠蔽し、書き込み性能の低下を防ぐ役割を果たす。即ち、多くのSSDでは、内部のNAND型フラッシュメモリにより構成された記憶領域の管理にガベージコレクション(GC;Garbage Collection)を用いている。ガベージコレクションは、NAND型フラッシュメモリに対する格納データの退避、再格納を伴い、外部からのアクセス要求の処理を遅延させる原因となり得る。しかし、このような場合であっても、SSDは、ライトデータをバッファに一時的に格納し、アクセス要求元に応答することで、SSDにおける応答遅延発生時の書き込み要求を回避できる。 Also, the buffer for the SSD serves to conceal the occurrence of a response delay in the SSD and prevent the write performance from being degraded. That is, many SSDs use garbage collection (GC) for management of a storage area configured by an internal NAND flash memory. Garbage collection involves saving and re-storing stored data in the NAND flash memory, and can cause a delay in processing access requests from the outside. However, even in such a case, the SSD can avoid the write request when the response delay occurs in the SSD by temporarily storing the write data in the buffer and responding to the access request source.
 なお、SSD又はNAND型フラッシュメモリに対するバッファとして用いられる記憶媒体は、DRAM(Dynamic Random Access Memory)等が用いられることが多いが、他の記憶媒体が用いられることもある。例えば、非特許文献2には、SSD内部の寿命の短いNAND型フラッシュメモリと比較して性能と寿命に優れたNAND型フラッシュメモリをバッファの記憶素子に使用することで、寿命の短いNAND型フラッシュメモリに対する頻繁な更新(ランダムライトによる更新)を回避する技術が開示されている。 A storage medium used as a buffer for the SSD or NAND flash memory is often a DRAM (Dynamic Random Access Memory) or the like, but other storage media may be used. For example, Non-Patent Document 2 discloses that a NAND flash memory having a short lifetime is used by using a NAND flash memory having superior performance and lifetime as a storage element of a buffer compared to a NAND flash memory having a short lifetime within an SSD. A technique for avoiding frequent updates to the memory (update by random write) is disclosed.
 また、非特許文献3には、SSDに対してHDDを追記形式のバッファとして使用する技術が開示されている。 Further, Non-Patent Document 3 discloses a technique for using an HDD as a write-once buffer for an SSD.
特開2010-009548号公報JP 2010-009548 A
 なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。 It should be noted that the disclosures of the above prior art documents are incorporated herein by reference. The following analysis was made by the present inventors.
 上述のように、近年では、情報システムの扱うデータ量が増加し、データを格納、保存するストレージ(ストレージ装置)に対する性能向上、容量増加に対する要求が高まっている。その結果、ストレージに向けられる性能及び容量に関する要件を満たすために必要なSSDの数量が増加する傾向にある。 As described above, in recent years, the amount of data handled by information systems has increased, and there has been an increasing demand for improved performance and increased capacity for storage (storage devices) for storing and storing data. As a result, the number of SSDs required to meet the performance and capacity requirements for storage tends to increase.
 一方で、SSDの数量が増加することによって、ランダムライトを削減するためのバッファに求められる性能、容量もまた増加する。このように、バッファには、SSDの数量に応じた性能、容量の向上が求められる。しかしながら、バッファの性能、容量の向上は、バッファを構成する記憶媒体数の増加に繋がり、コスト(ハードウェアコスト)が増加する原因となる。 On the other hand, as the number of SSDs increases, the performance and capacity required for a buffer for reducing random writes also increase. Thus, the buffer is required to improve performance and capacity in accordance with the quantity of SSDs. However, improvement in the performance and capacity of the buffer leads to an increase in the number of storage media constituting the buffer, which causes an increase in cost (hardware cost).
 また、多数の記憶媒体により構成される大容量のストレージでは、RAID(Redundant Array of Inexpensive Disks)等を用いたストライピング又はSSD間の冗長化が行われる。とりわけ、RAID-5、RAID-6は、ストライピングとデータ保護の両立が可能なため広く用いられている。RAID-5、RAID-6のデータ形式では、データの更新と同時に更新データに対応するパリティを更新することで冗長性を維持する。つまり、上記のようなRAID構成では、更新されるデータのサイズによらず常にパリティの更新が行われるため、SSDに対するライトデータ量の増加を防ぐために大容量のバッファが必要となり、ハードウェアコストが増加する。 Further, in a large-capacity storage constituted by a large number of storage media, striping using RAID (Redundant Array of Inexpensive Disks) or the like, or redundancy between SSDs is performed. In particular, RAID-5 and RAID-6 are widely used because both striping and data protection can be achieved. In the RAID-5 and RAID-6 data formats, redundancy is maintained by updating the parity corresponding to the update data simultaneously with the data update. In other words, in the RAID configuration as described above, since the parity is always updated regardless of the size of the updated data, a large-capacity buffer is required to prevent an increase in the amount of write data for the SSD, and the hardware cost is reduced. To increase.
 加えて、バッファが大容量化することに伴い、障害が発生したことにより消失データ(バッファのみに格納されたデータ)量が増加することから、格納データの保護が要望される。まず、バッファを構成する記憶媒体(例えば、DRAM等)の障害によるデータ消失を回避するために、複数のSSD間におけるデータの冗長化が必要である。そのために、パリティなどの冗長なデータを格納するための容量が新たに必要となることから、バッファを構成する記憶媒体のハードウェアコストが増加する。 In addition, as the capacity of the buffer increases, the amount of lost data (data stored only in the buffer) increases due to the occurrence of a failure. Therefore, protection of stored data is desired. First, in order to avoid data loss due to a failure of a storage medium (such as a DRAM) constituting a buffer, it is necessary to make data redundant among a plurality of SSDs. For this reason, a capacity for storing redundant data such as parity is newly required, and the hardware cost of the storage medium constituting the buffer increases.
 さらに加えて、ストレージ装置に対する電源供給が停止する障害によるデータ消失を回避するために、不揮発性を持つ記憶素子、記憶媒体を用いてバッファを構成する必要がある。しかし、例えば、MRAM(Magnetroresistive Random Access Memory)等のNAND型フラッシュメモリよりも高性能かつ不揮発の記憶素子は、通常、DRAMよりも高価であるため、大きなコスト増加につながる。 In addition, in order to avoid data loss due to a failure in which the power supply to the storage device stops, it is necessary to configure a buffer using a non-volatile storage element or storage medium. However, for example, a high-performance and non-volatile storage element such as a MRAM (Magnetroresistive Random Access Memory) or the like is usually more expensive than a DRAM, leading to a large cost increase.
 この他に、DRAMに常時電源を供給するバッテリーを追加することでバッファの不揮発性を実現することも考えられるが、このような場合であっても、バッテリーが新たに必要になることからハードウェアコストの増加を回避することは困難である。 In addition to this, it is conceivable to add a battery that constantly supplies power to the DRAM to realize the non-volatility of the buffer. However, even in such a case, a new battery is required. It is difficult to avoid an increase in cost.
 以上のように、SSDに対して性能、寿命に影響を及ぼす小さなデータサイズのランダムライトを防ぐために必要となるバッファ(特に、不揮発かつ十分な性能、容量を持つバッファ)を低コストで提供することは困難である。また、上記のような十分な性能、容量を持つバッファを使用できない(SDDに対応したバッファが存在しない)場合には、バッファのボトルネック化、SSDに対する小さなデータサイズのランダムライトの増加による性能低下、寿命消費が発生する点が問題となる。さらに、バッファが不揮発性ではなく、障害によりバッファに対する電源供給が停止した場合に、当該バッファに格納されたデータが失われると言う問題がある。 As described above, a buffer (particularly a non-volatile buffer with sufficient performance and capacity) necessary to prevent random writing with a small data size that affects the performance and life of the SSD is provided at low cost. It is difficult. In addition, when a buffer having sufficient performance and capacity as described above cannot be used (there is no buffer corresponding to the SDD), the performance deteriorates due to the bottleneck of the buffer and the increase in random write with a small data size for the SSD. The problem is that lifetime consumption occurs. Furthermore, when the buffer is not nonvolatile and the power supply to the buffer is stopped due to a failure, there is a problem that data stored in the buffer is lost.
 以上の状況を鑑み、本発明は、複数の記憶媒体からなるストレージの性能向上に寄与するストレージシステム、ストレージ制御装置、ストレージ制御方法及びプログラムを提供することを目的とする。 In view of the above situation, an object of the present invention is to provide a storage system, a storage control device, a storage control method, and a program that contribute to improving the performance of a storage composed of a plurality of storage media.
 本発明の第1の視点によれば、少なくとも2以上の記憶媒体を有するストレージ装置と、前記2以上の記憶媒体それぞれの記憶領域を第1の記憶領域と第2の記憶領域に分割して定義すると共に、前記第1の記憶領域をバッファ領域、前記第2の記憶領域をホストに提供する記憶領域として管理する、ストレージ制御装置と、を含み、前記ストレージ制御装置は、前記第1及び第2の記憶領域に対するアクセスを制御するアクセス実行部と、前記ホストからのライトデータのデータサイズ及び前記ホストからライトデータの書き込みを指定された記憶媒体の応答状況の少なくとも一方に基づき、ライトデータを前記バッファ領域に格納するか否かを判定する判定部と、を備える、ストレージシステムが提供される。 According to a first aspect of the present invention, a storage apparatus having at least two or more storage media and a storage area of each of the two or more storage media are defined by being divided into a first storage area and a second storage area. And a storage control device that manages the first storage area as a buffer area and the second storage area as a storage area that is provided to a host, wherein the storage control apparatus includes the first and second storage areas. An access execution unit that controls access to the storage area of the host, and write data to the buffer based on at least one of a data size of the write data from the host and a response status of the storage medium designated to write the write data from the host And a determination unit that determines whether or not to store in a region.
 本発明の第2の視点によれば、少なくとも2以上の記憶媒体を有するストレージ装置を制御し、前記2以上の記憶媒体それぞれの記憶領域を第1の記憶領域と第2の記憶領域に分割して定義すると共に、前記第1の記憶領域をバッファ領域、前記第2の記憶領域をホストに提供する記憶領域として管理する、ストレージ制御装置であって、前記第1及び第2の記憶領域に対するアクセスを制御するアクセス実行部と、前記ホストからのライトデータのデータサイズ及び前記ホストからライトデータの書き込みを指定された記憶媒体の応答状況の少なくとも一方に基づき、ライトデータを前記バッファ領域に格納するか否かを判定する判定部と、を備える、ストレージ制御装置が提供される。 According to a second aspect of the present invention, a storage device having at least two or more storage media is controlled, and each storage area of the two or more storage media is divided into a first storage area and a second storage area. A storage control device for managing the first storage area as a buffer area and managing the second storage area as a storage area for providing to a host, wherein the first and second storage areas are accessed. And whether to store the write data in the buffer area based on at least one of the data size of the write data from the host and the response status of the storage medium designated to write the write data from the host. A storage control device is provided.
 本発明の第3の視点によれば、少なくとも2以上の記憶媒体を有するストレージ装置を含み、前記2以上の記憶媒体それぞれの記憶領域は第1の記憶領域と第2の記憶領域に分割して定義されると共に、前記第1の記憶領域をバッファ領域、前記第2の記憶領域をホストに提供する記憶領域として管理された、ストレージシステムにおいて、前記第1及び第2の記憶領域に対するアクセスを制御するステップと、前記ホストからのライトデータのデータサイズ及び前記ホストからライトデータの書き込みを指定された記憶媒体の応答状況の少なくとも一方に基づき、ライトデータを前記バッファ領域に格納するか否かを判定するステップと、を含む、ストレージ制御方法が提供される。 According to a third aspect of the present invention, a storage device including at least two or more storage media is included, and each storage area of the two or more storage media is divided into a first storage area and a second storage area. And controlling access to the first and second storage areas in a storage system managed as a buffer area and the second storage area as a storage area provided to a host. Determining whether to store the write data in the buffer area based on at least one of a write data size from the host and a response status of the storage medium designated to write the write data from the host A storage control method is provided.
 本発明の第4の視点によれば、少なくとも2以上の記憶媒体を有するストレージ装置を制御し、前記2以上の記憶媒体それぞれの記憶領域を第1の記憶領域と第2の記憶領域に分割して定義すると共に、前記第1の記憶領域をバッファ領域、前記第2の記憶領域をホストに提供する記憶領域として管理する、ストレージ制御装置に搭載されたコンピュータに実行させるプログラムであって、前記第1及び第2の記憶領域に対するアクセスを制御する処理と、前記ホストからのライトデータのデータサイズ及び前記ホストからライトデータの書き込みを指定された記憶媒体の応答状況の少なくとも一方に基づき、ライトデータを前記バッファ領域に格納するか否かを判定する処理と、を実行させるプログラムが提供される。
 なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
According to a fourth aspect of the present invention, a storage device having at least two or more storage media is controlled, and each storage area of the two or more storage media is divided into a first storage area and a second storage area. The first storage area is managed as a buffer area, and the second storage area is managed as a storage area provided to a host, and is executed by a computer installed in a storage control device, Write data based on at least one of a process for controlling access to the first and second storage areas, a data size of the write data from the host, and a response status of the storage medium designated to write the write data from the host. And a process for determining whether or not to store in the buffer area.
This program can be recorded on a computer-readable storage medium. The storage medium may be non-transient such as a semiconductor memory, a hard disk, a magnetic recording medium, an optical recording medium, or the like. The present invention can also be embodied as a computer program product.
 本発明の各視点によれば、複数の記憶媒体からなるストレージの性能向上に寄与するストレージシステム、ストレージ制御装置、ストレージ制御方法及びプログラムが、提供される。 According to each aspect of the present invention, there are provided a storage system, a storage control device, a storage control method, and a program that contribute to improving the performance of storage composed of a plurality of storage media.
一実施形態の概要を説明するための図である。It is a figure for demonstrating the outline | summary of one Embodiment. 第1の実施形態に係るストレージシステム構成の一例を示す図である。It is a figure which shows an example of the storage system structure which concerns on 1st Embodiment. 第1の実施形態に係るホスト及びストレージ装置の内部構成の一例を示す図である。2 is a diagram illustrating an example of an internal configuration of a host and a storage apparatus according to the first embodiment. FIG. 格納実行管理テーブルの一例を示す図である。It is a figure which shows an example of a storage execution management table. 記憶媒体状態管理テーブルの一例を示す図である。It is a figure which shows an example of a storage medium state management table. マッピング管理テーブルの一例を示す図である。It is a figure which shows an example of a mapping management table. バッファ領域管理テーブルの一例を示す図である。It is a figure which shows an example of a buffer area management table. 第1の実施形態に係るストレージシステムの動作の一例を示すフローチャートである。3 is a flowchart illustrating an example of the operation of the storage system according to the first embodiment. 第1の実施形態に係るストレージシステムの動作の一例を示すフローチャートである。3 is a flowchart illustrating an example of the operation of the storage system according to the first embodiment. 第1の実施形態に係るストレージシステムの動作の一例を示すフローチャートである。3 is a flowchart illustrating an example of the operation of the storage system according to the first embodiment. 第1の実施形態に係るストレージシステムの動作の一例を示すフローチャートである。3 is a flowchart illustrating an example of the operation of the storage system according to the first embodiment. 第1の実施形態に係るストレージシステムの動作の一例を示すフローチャートである。3 is a flowchart illustrating an example of the operation of the storage system according to the first embodiment.
 初めに、一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。 First, an outline of one embodiment will be described. Note that the reference numerals of the drawings attached to the outline are attached to the respective elements for convenience as an example for facilitating understanding, and the description of the outline is not intended to be any limitation.
 一実施形態に係るストレージシステムは、少なくとも2以上の記憶媒体を有するストレージ装置201と、ストレージ制御装置202と、を含む。ストレージ制御装置202は、上記2以上の記憶媒体それぞれの記憶領域を第1の記憶領域と第2の記憶領域に分割して定義すると共に、第1の記憶領域をバッファ領域、第2の記憶領域をホストに提供する記憶領域として管理する。さらに、ストレージ制御装置202は、第1及び第2の記憶領域に対するアクセスを制御するアクセス実行部211と、ホストからのライトデータのデータサイズ及び前記ホストからライトデータの書き込みを指定された記憶媒体の応答状況の少なくとも一方に基づき、ライトデータをバッファ領域に格納するか否かを判定する判定部212と、を備える。 The storage system according to an embodiment includes a storage device 201 having at least two or more storage media, and a storage control device 202. The storage control device 202 divides and defines the storage areas of the two or more storage media into a first storage area and a second storage area, and defines the first storage area as a buffer area and a second storage area. As a storage area to be provided to the host. Further, the storage control device 202 includes an access execution unit 211 that controls access to the first and second storage areas, the data size of the write data from the host, and the storage medium designated to write the write data from the host. A determination unit 212 that determines whether to store write data in the buffer area based on at least one of the response statuses.
 上記ストレージシステムでは、ストレージ装置201が複数の記憶媒体を有する場合に、当該記憶媒体の一部領域がバッファとして確保される。その上で、ストレージ制御装置202は、ライトデータのサイズが小さくアクセス効率の悪いランダムライトが発生するような場合や、ライトデータの書き込み先に指定された記憶媒体が応答遅延状態にある場合に、当該ライトデータを複数の記憶媒体に共有のバッファとして用意したバッファ領域に格納することで、ストレージ装置201の性能を向上させる。また、ストレージ制御装置202は、記憶媒体の性能、寿命に影響を及ぼす小さなデータサイズのランダムライトを防ぐために必要となるバッファを、ストレージ装置201をなす記憶媒体の一部から創出することで、十分な性能且つ容量を持つバッファを低コストにて提供することができる。 In the above storage system, when the storage apparatus 201 has a plurality of storage media, a partial area of the storage medium is secured as a buffer. In addition, the storage control device 202 has a case where a random write with a small write data size and poor access efficiency occurs, or when the storage medium designated as the write data write destination is in a response delay state. The performance of the storage apparatus 201 is improved by storing the write data in a buffer area prepared as a shared buffer in a plurality of storage media. In addition, the storage control device 202 is sufficient to create a buffer necessary for preventing random writing with a small data size that affects the performance and life of the storage medium from a part of the storage medium constituting the storage device 201. A buffer having high performance and capacity can be provided at low cost.
 以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。なお、各実施形態において同一構成要素には同一の符号を付し、その説明を省略する。 Hereinafter, specific embodiments will be described in more detail with reference to the drawings. In addition, in each embodiment, the same code | symbol is attached | subjected to the same component and the description is abbreviate | omitted.
[第1の実施形態]
 第1の実施形態について、図面を用いてより詳細に説明する。
[First Embodiment]
The first embodiment will be described in more detail with reference to the drawings.
 図2は、第1の実施形態に係るストレージシステム構成の一例を示す図である。図2を参照すると、第1の実施形態においてシステムは、1台以上のホスト1と、少なくとも2以上の記憶媒体からなるストレージ装置2と、ホスト1及びストレージ装置2を接続するネットワーク3と、を含む。なお、図2に示すシステム構成は例示であって、システム構成を限定する趣旨ではない。例えば、ネットワーク3を介さずにホスト1とストレージ装置2が直接接続される構成であってもよいし、ホスト1はネットワーク3により接続された複数の装置又はシステムにより構成されていてもよい。 FIG. 2 is a diagram illustrating an example of a storage system configuration according to the first embodiment. Referring to FIG. 2, in the first embodiment, the system includes one or more hosts 1, a storage device 2 composed of at least two storage media, and a network 3 connecting the host 1 and the storage device 2. Including. Note that the system configuration shown in FIG. 2 is an example, and is not intended to limit the system configuration. For example, the host 1 and the storage device 2 may be directly connected without going through the network 3, or the host 1 may be configured by a plurality of devices or systems connected by the network 3.
 第1の実施形態に係るシステムでは、ネットワーク3に接続されたホスト1が、ストレージ装置2が保持するデータにアクセスする。ストレージ装置2は、例えば、NAND型フラッシュメモリで構成されたSSDのような記憶媒体を2以上含んで構成される。 In the system according to the first embodiment, the host 1 connected to the network 3 accesses the data held by the storage apparatus 2. The storage device 2 includes, for example, two or more storage media such as an SSD configured with a NAND flash memory.
 第1の実施形態では、ストレージ装置2に含まれる各記憶媒体の一部(記憶媒体の記憶領域内)に、仮想的な記憶媒体として仮想媒体21(上記の第2の記憶領域に相当)と仮想バッファ22(上記の第1の記憶領域に相当)を予め定義する。つまり、ストレージ装置2に含まれる記憶媒体それぞれの記憶領域は、仮想バッファをなす記憶領域と、ホストが利用する記憶領域としてホストに提供される記憶領域と、に分割されて定義され、ホスト1(ストレージ制御装置)はこれらの領域(仮想バッファ、仮想領域)を管理する。 In the first embodiment, a part of each storage medium included in the storage device 2 (within the storage area of the storage medium) includes a virtual medium 21 (corresponding to the second storage area described above) as a virtual storage medium. A virtual buffer 22 (corresponding to the first storage area) is defined in advance. That is, each storage area of the storage medium included in the storage device 2 is divided and defined as a storage area forming a virtual buffer and a storage area provided to the host as a storage area used by the host. The storage control device manages these areas (virtual buffers and virtual areas).
 ホスト1上で動作するソフトウェアや、ストレージ装置2が保持するデータにアクセスするための動作を行う機能(モジュール)を除いたOS(Operating System)は、ストレージ装置2に含まれる各記憶媒体上に定義された仮想媒体21のそれぞれを1つの(単一の)記憶媒体として扱う。つまり、仮想媒体21が本来の記憶媒体として、ホストに提供される。 An OS (Operating System) excluding software (operating system) that operates on the host 1 and functions (modules) for accessing data held by the storage device 2 is defined on each storage medium included in the storage device 2 Each of the recorded virtual media 21 is handled as one (single) storage medium. That is, the virtual medium 21 is provided to the host as an original storage medium.
 図3は、第1の実施形態に係るホスト1及びストレージ装置2の内部構成の一例を示す図である。図3を参照すると、ホスト1は、アクセス実行部101と、作業メモリ102と、バッファ対象判定部103と、バッファ内格納先決定部104と、応答遅延判定部105と、バッファデータ移動指示部106と、格納実行管理テーブル107と、記憶媒体状態管理テーブル108と、マッピング管理テーブル109と、バッファ領域管理テーブル110と、を備える。 FIG. 3 is a diagram illustrating an example of an internal configuration of the host 1 and the storage apparatus 2 according to the first embodiment. Referring to FIG. 3, the host 1 includes an access execution unit 101, a work memory 102, a buffer target determination unit 103, a buffer storage destination determination unit 104, a response delay determination unit 105, and a buffer data movement instruction unit 106. A storage execution management table 107, a storage medium state management table 108, a mapping management table 109, and a buffer area management table 110.
 なお、ホスト1には、ストレージ装置2に対してデータのリード/ライトを要求するモジュールと、当該モジュールからの要求を処理し、ストレージ装置2を制御するモジュール(ストレージ制御装置に相当するモジュール)と、が含まれる。図3にはストレージ装置2を制御するモジュールが図示され、データのリード/ライトを要求するモジュールの図示を省略している。即ち、図3に示すホスト1の内部構成は、実質的にはストレージ制御装置の内部構成である。 The host 1 includes a module that requests the storage device 2 to read / write data, a module that processes a request from the module and controls the storage device 2 (a module corresponding to the storage control device). , Is included. FIG. 3 shows a module for controlling the storage apparatus 2 and does not show a module for requesting data read / write. That is, the internal configuration of the host 1 shown in FIG. 3 is substantially the internal configuration of the storage control device.
 以降の説明では、ストレージ装置2に含まれる複数の記憶媒体のうち3つの記憶媒体2A~2Cを図示し、記憶媒体2Aに定義された仮想媒体21を仮想媒体21A、記憶媒体2Bに定義された仮想媒体を仮想媒体21B、記憶媒体2Cに定義された仮想媒体を仮想媒体21C、とそれぞれ表記する。同様に、記憶媒体2Aに定義された仮想バッファ22を仮想バッファ22A、記憶媒体2Bに定義された仮想バッファ22を仮想バッファ22B、記憶媒体2Cに定義された仮想バッファ22を仮想バッファ22C、とそれぞれ表記する。 In the following description, three storage media 2A to 2C among the plurality of storage media included in the storage device 2 are illustrated, and the virtual medium 21 defined in the storage medium 2A is defined as the virtual medium 21A and the storage medium 2B. The virtual medium is represented as a virtual medium 21B, and the virtual medium defined as the storage medium 2C is represented as a virtual medium 21C. Similarly, the virtual buffer 22 defined in the storage medium 2A is a virtual buffer 22A, the virtual buffer 22 defined in the storage medium 2B is a virtual buffer 22B, and the virtual buffer 22 defined in the storage medium 2C is a virtual buffer 22C. write.
 なお、図3において、ストレージ装置2に含まれ、各記憶媒体を制御するモジュール等の図示は省略している。 In FIG. 3, illustrations of modules included in the storage device 2 and controlling each storage medium are omitted.
 図3に示すホスト1に含まれるアクセス実行部101は、ホスト1で動作するソフトウェア(アプリケーションプログラム等)やOSからのストレージ装置2に対するアクセス要求を受け取り、ストレージ装置2に対して必要なアクセス処理を行う。つまり、アクセス実行部101は、ストレージ装置2をなす記憶媒体の記憶領域(仮想媒体21、仮想バッファ22)に対するアクセスを制御する。 The access execution unit 101 included in the host 1 illustrated in FIG. 3 receives an access request to the storage apparatus 2 from software (application program or the like) operating on the host 1 or the OS, and performs necessary access processing on the storage apparatus 2. Do. That is, the access execution unit 101 controls access to the storage area (the virtual medium 21 and the virtual buffer 22) of the storage medium that forms the storage device 2.
 アクセス実行部101は、取得したアクセス要求が読み出し要求(リード要求)である場合、マッピング管理テーブル109を参照する。マッピング管理テーブル109を参照することで、読み出しを要求されたデータが仮想バッファ22に存在すると判明した場合には、アクセス実行部101は、データの格納先である記憶媒体とそのデータが格納されたアドレスの情報を取得する。その後、アクセス実行部101は、仮想媒体21又は仮想バッファ22に格納された読み出し対象のデータを対象の記憶媒体から読み出し、その結果を要求元のソフトウェアやOSに返答する。 The access execution unit 101 refers to the mapping management table 109 when the acquired access request is a read request (read request). When it is determined by referring to the mapping management table 109 that the data requested to be read exists in the virtual buffer 22, the access execution unit 101 stores the storage medium that stores the data and the data. Get address information. Thereafter, the access execution unit 101 reads the data to be read stored in the virtual medium 21 or the virtual buffer 22 from the target storage medium, and returns the result to the requesting software or OS.
 アクセス実行部101は、ストレージ装置2に対してリード要求を発行する際に、仮想媒体21又は仮想バッファ22に対して指定されたアドレスを、ストレージ装置2における仮想媒体21及び仮想バッファ22の定義を考慮し、ストレージ装置2に含まれる各記憶媒体におけるアドレスに事前に変換する。 When the access execution unit 101 issues a read request to the storage device 2, the access execution unit 101 defines the address specified for the virtual medium 21 or the virtual buffer 22, and defines the virtual medium 21 and the virtual buffer 22 in the storage device 2. Considering this, it is converted in advance into an address in each storage medium included in the storage device 2.
 なお、ストレージ装置2からのデータ読み出しは、ストレージ装置2に対して直接要求を行う以外に、作業メモリ102又はストレージ装置2に対応する不図示のキャッシュメモリに読み出し対象のデータのコピーが格納されている場合は、アクセス実行部101は、ストレージ装置2に読み出しを要求せずに当該コピーを読み出して代用してもよい。 Data read from the storage device 2 is not a direct request to the storage device 2, but a copy of data to be read is stored in the working memory 102 or a cache memory (not shown) corresponding to the storage device 2. If there is, the access execution unit 101 may read the copy and substitute it without requesting the storage apparatus 2 to read it.
 受け取ったアクセス要求が書き込み(ライト要求)である場合、アクセス実行部101は、ストレージ装置2に含まれる各記憶媒体に対するライトアクセスの詳細を格納実行管理テーブル107に登録する。また、アクセス実行部101は、受け取ったライト要求に関し、ライト要求に係るデータの格納先の決定をバッファ対象判定部103に指示し、バッファ対象判定部103から格納先となる記憶媒体とアドレスを取得する。 When the received access request is a write (write request), the access execution unit 101 registers the details of the write access to each storage medium included in the storage apparatus 2 in the storage execution management table 107. Further, the access execution unit 101 instructs the buffer target determination unit 103 to determine the storage destination of the data related to the write request with respect to the received write request, and obtains the storage medium and address as the storage destination from the buffer target determination unit 103 To do.
 指示を受けたバッファ対象判定部103は、ライト要求に係るデータを仮想媒体21上の本来のライトアドレス(書き込み先アドレス)に格納すべきか、又は、仮想バッファ22に格納すべきか判定し、判定結果をアクセス実行部101に応答する。 Upon receiving the instruction, the buffer target determining unit 103 determines whether the data related to the write request should be stored in the original write address (write destination address) on the virtual medium 21 or stored in the virtual buffer 22, and the determination result To the access execution unit 101.
 アクセス実行部101は、ストレージ装置2に対してリード要求を発行する場合と同様に、仮想媒体21又は仮想バッファ22に対して指定されたアドレスを、ストレージ装置2における仮想媒体21及び仮想バッファ22の定義を考慮して、ストレージ装置2に含まれる各記憶媒体におけるアドレスに事前に変換する。 As in the case of issuing a read request to the storage apparatus 2, the access execution unit 101 assigns the addresses specified for the virtual medium 21 or the virtual buffer 22 to the virtual medium 21 and the virtual buffer 22 in the storage apparatus 2. In consideration of the definition, it is converted in advance to an address in each storage medium included in the storage apparatus 2.
 アクセス実行部101は、決定された記憶媒体とアドレスに対してライト要求を発行する。ストレージ装置2に対して発行したライト要求が完了すると、アクセス実行部101は、ライトデータの格納先が仮想バッファ22であった場合は、マッピング管理テーブル109及びバッファ領域管理テーブル110の該当するデータを更新する。 The access execution unit 101 issues a write request to the determined storage medium and address. When the write request issued to the storage apparatus 2 is completed, the access execution unit 101 stores the corresponding data in the mapping management table 109 and the buffer area management table 110 when the write data storage destination is the virtual buffer 22. Update.
 また、アクセス実行部101は、完了したライトアクセスにより更新される前のデータが仮想バッファ22に格納されていた場合、該当するバッファ領域管理テーブル110のエントリを無効なデータが格納されている状態に更新する。さらに、更新後のデータが仮想媒体21に格納された場合は、アクセス実行部101は、マッピング管理テーブル109の該当するエントリを削除する。最後に、アクセス実行部101は、格納実行管理テーブル107から完了したライトアクセスの情報を削除し、要求元のソフトウェアやOSに対してデータ書き込みの完了を通知する。 Further, when the data before being updated by the completed write access is stored in the virtual buffer 22, the access execution unit 101 sets the corresponding entry in the buffer area management table 110 to a state in which invalid data is stored. Update. Further, when the updated data is stored in the virtual medium 21, the access execution unit 101 deletes the corresponding entry in the mapping management table 109. Finally, the access execution unit 101 deletes the completed write access information from the storage execution management table 107 and notifies the requesting software or OS of the completion of data writing.
 作業メモリ102は、ホスト1で動作するソフトウェア、OSからのライト要求に伴うライトデータを一時的に格納する。作業メモリ102に格納されたライトデータは、アクセス実行部101によるストレージ装置2に対するライト要求が完了するまで保存され、当該ライト要求が完了した後の任意の時期(タイミング)に削除される。 The work memory 102 temporarily stores software operating on the host 1 and write data accompanying a write request from the OS. The write data stored in the work memory 102 is stored until a write request to the storage apparatus 2 by the access execution unit 101 is completed, and is deleted at an arbitrary time (timing) after the write request is completed.
 作業メモリ102は、ホスト1のメモリとして多く用いられるDRAM以外に、例えばMRAMなどの不揮発性を持つメモリデバイスなどでもよい。また、作業メモリ102は、ストレージ装置2に対する不図示のキャッシュメモリ、或いは、ホスト1のソフトウェア、OSなどが利用するメモリと共通のデバイスにより実現してもよい。 The working memory 102 may be a non-volatile memory device such as an MRAM, in addition to the DRAM often used as the memory of the host 1. Further, the working memory 102 may be realized by a cache memory (not shown) for the storage apparatus 2 or a device shared with a memory used by the software of the host 1, the OS, or the like.
 バッファ対象判定部103は、アクセス実行部101がソフトウェア、OS等から受け取ったライト要求について、ライトデータを仮想バッファ22に格納するか否かを判断する。具体的には、バッファ対象判定部103は、ライトデータがストレージ装置2に含まれる記憶媒体における性能低下、寿命消費に影響を大きく与えるライト要求である場合には、当該ライト要求に係るライトデータの格納先を仮想バッファ22と判定(決定)する。例えば、記憶媒体がSSDを記憶媒体として有する場合には、SSD内部のNAND型フラッシュメモリにおけるライトアンプリフィケーションが大きくなると考えられる予め定めた閾値(事前に定めた基準)以下のデータサイズを持つライトデータに係るライト要求を、仮想バッファ22に対する格納対象と判定する。即ち、バッファ対象判定部103は、ライトデータのデータサイズに基づき、当該ライトデータを仮想バッファ22(バッファ領域)に格納するか否かを判定する。 The buffer target determination unit 103 determines whether to store write data in the virtual buffer 22 for the write request received from the software, OS, or the like by the access execution unit 101. Specifically, when the write data is a write request that greatly affects performance degradation and life consumption in the storage medium included in the storage device 2, the buffer target determination unit 103 determines whether the write data of the write request is related to the write request. The storage destination is determined (determined) as the virtual buffer 22. For example, when the storage medium has an SSD as a storage medium, a write having a data size equal to or smaller than a predetermined threshold (predetermined standard) that is considered to increase write amplification in the NAND flash memory inside the SSD. The write request related to the data is determined as a storage target for the virtual buffer 22. That is, the buffer target determination unit 103 determines whether or not to store the write data in the virtual buffer 22 (buffer area) based on the data size of the write data.
 また、バッファ対象判定部103は、記憶媒体状態管理テーブル108を参照し、ライトデータの格納先となる記憶媒体において応答遅延が発生しているか確認する。その際、バッファ対象判定部103は、記憶媒体において応答遅延の発生を確認した場合には、ライト要求の内容によらずホスト等からのライト要求に関するライトデータの格納先を、仮想バッファ22と判定する。即ち、バッファ対象判定部103は、ライトデータの書き込みを指定された記憶媒体の応答状況(応答遅延が発生しているか否か)に基づき、当該ライトデータを仮想バッファ22(バッファ領域)に格納するか否かを判定する。 Also, the buffer target determination unit 103 refers to the storage medium state management table 108 and confirms whether a response delay has occurred in the storage medium that is the storage destination of the write data. At this time, when the occurrence of a response delay is confirmed in the storage medium, the buffer target determining unit 103 determines that the storage location of the write data related to the write request from the host or the like is the virtual buffer 22 regardless of the content of the write request. To do. That is, the buffer target determination unit 103 stores the write data in the virtual buffer 22 (buffer area) based on the response status (whether response delay has occurred) of the storage medium designated to write the write data. It is determined whether or not.
 このように、バッファ対象判定部103は、ライトデータのデータサイズ及びライトデータの書き込み先に指定された記憶媒体の応答状況の少なくとも一方に基づき、当該ライトデータを仮想バッファ22に格納するか否かを判定する。 In this way, the buffer target determination unit 103 determines whether to store the write data in the virtual buffer 22 based on at least one of the data size of the write data and the response status of the storage medium designated as the write destination of the write data. Determine.
 バッファ内格納先決定部104は、バッファ対象判定部103において仮想バッファ22を格納先とする格納判定を受けたライトデータに対し、格納先となる仮想バッファ22を有する記憶媒体を決定する。具体的には、バッファ内格納先決定部104は、記憶媒体状態管理テーブル108を参照し、応答遅延の状態にない記憶媒体を抽出する。即ち、バッファ対象判定部103によりライトデータを仮想バッファ22に格納すると判定した場合、バッファ内格納先決定部104は、仮想バッファ22を提供している記憶媒体のうち、いずれの記憶媒体に定義した仮想バッファ22をライトデータの格納先とするかに関する決定を、仮想バッファ22が定義された各記憶媒体それぞれの応答状況に基づき行う。 The in-buffer storage destination determination unit 104 determines a storage medium having the virtual buffer 22 that is the storage destination for the write data that has been subjected to the storage determination by the buffer target determination unit 103 as the storage destination. Specifically, the buffer storage location determination unit 104 refers to the storage medium state management table 108 and extracts a storage medium that is not in a response delay state. That is, when the buffer target determining unit 103 determines that the write data is stored in the virtual buffer 22, the in-buffer storage destination determining unit 104 defines the storage medium that provides the virtual buffer 22 as any storage medium. The determination as to whether the virtual buffer 22 is the write data storage destination is made based on the response status of each storage medium in which the virtual buffer 22 is defined.
 さらに、バッファ内格納先決定部104は、バッファ領域管理テーブル110を参照し、複数の記憶媒体の中から、ライトデータを格納可能な記憶領域が十分に存在する記憶媒体(空き容量が十分に存在する仮想バッファ22を有する記憶媒体)の一つを選択する。即ち、応答遅延状態にない記憶媒体が複数存在する場合には、仮想バッファ22を提供している記憶媒体のうち、いずれの記憶媒体に定義した仮想バッファ22をライトデータの格納先とするかに関する決定が、仮想バッファ22それぞれの空き容量(有効ではないデータが格納された領域のサイズ)に基づき行われる。なお、バッファ内格納先決定部104による上記空き容量が十分に存在する記憶媒体の選択は、例えば、応答遅延の状態ではない記憶媒体の中から空き容量が最大の記憶媒体を選択することで行えばよい。 Furthermore, the buffer storage location determination unit 104 refers to the buffer area management table 110, and from among a plurality of storage media, a storage medium that has a sufficient storage area for storing write data (a sufficient free space exists). One of the storage media having the virtual buffer 22 to be selected). That is, when there are a plurality of storage media that are not in the response delay state, the storage medium that provides the virtual buffer 22 is related to which storage medium the virtual buffer 22 defined in is set as the storage destination of the write data. The determination is made based on the free capacity of each virtual buffer 22 (size of an area in which invalid data is stored). The storage medium determining unit 104 in the buffer selects the storage medium having sufficient free space by, for example, selecting a storage medium having the largest free space from storage media that are not in a response delay state. Just do it.
 続いて、バッファ内格納先決定部104は、格納先となる記憶媒体における格納先アドレス(仮想バッファ22内のアドレス)を、バッファ領域管理テーブル110を参照して決定する。例えば、バッファ内格納先決定部104は、仮想バッファ22を構成する記憶媒体の領域に新規なライトデータを追記形式で格納する場合、最後にライトデータを格納したアドレスを予め記憶しておき、当該最後にライトデータを格納したアドレスの次のアドレスを新規ライトデータの格納先アドレスとする。 Subsequently, the buffer storage destination determination unit 104 determines a storage destination address (address in the virtual buffer 22) in the storage medium serving as a storage destination with reference to the buffer area management table 110. For example, when storing new write data in the write-once format in the storage medium area constituting the virtual buffer 22, the in-buffer storage location determination unit 104 stores in advance the address at which the last write data was stored, The address next to the address where the write data is stored last is set as the storage address of the new write data.
 応答遅延判定部105は、任意の周期(タイミング)でアクセス実行部101からストレージ装置2に含まれる各記憶媒体に対して発行されたライトアクセスについて、格納実行管理テーブル107から発行時刻を取得し、現在の時刻と比較することでライトアクセスの実行時間を計算する。当該計算された実行時間が事前に定めた基準の時間を上回った場合に、応答遅延判定部105は、ストレージ装置2の記憶媒体が応答遅延の状態にあると判定する。即ち、応答遅延判定部105は、記憶媒体それぞれに対して行われたライトアクセスの実行時間に対して閾値処理を行い、当該閾値処理の結果に応じて記憶媒体が応答遅延状態であるか否かを判定する。また、応答遅延判定部105は、記憶媒体が応答遅延の状態にある場合には、記憶媒体状態管理テーブル108における当該記憶媒体の状態を応答遅延状態に更新する。 The response delay determination unit 105 acquires the issue time from the storage execution management table 107 for the write access issued from the access execution unit 101 to each storage medium included in the storage device 2 at an arbitrary cycle (timing), The write access execution time is calculated by comparing with the current time. When the calculated execution time exceeds a predetermined reference time, the response delay determination unit 105 determines that the storage medium of the storage apparatus 2 is in a response delay state. That is, the response delay determination unit 105 performs threshold processing on the execution time of the write access performed for each storage medium, and determines whether the storage medium is in a response delay state according to the result of the threshold processing. Determine. When the storage medium is in a response delay state, the response delay determination unit 105 updates the state of the storage medium in the storage medium state management table 108 to the response delay state.
 応答遅延判定部105は、応答遅延状態となった記憶媒体が実行中のライトアクセスについて、格納実行管理テーブル107を確認して格納先変更要求が行われていない場合は、バッファ内格納先決定部104に対し仮想バッファ22が格納先となるように記憶媒体及びアドレスの再決定を指示する。つまり、応答遅延判定部105は、ライトアクセスを実行中の記憶媒体が応答遅延状態にあると判断した場合に、バッファ内格納先決定部104に対し、応答遅延状態にある記憶媒体が実行しているライトアクセスに対応するライトデータを仮想バッファ22に格納するように指示をする。 The response delay determination unit 105 checks the storage execution management table 107 for the write access being executed by the storage medium in the response delay state, and if a storage location change request has not been made, the buffer storage location determination unit 104 is instructed to re-determine the storage medium and address so that the virtual buffer 22 becomes the storage destination. That is, when the response delay determination unit 105 determines that the storage medium that is executing write access is in the response delay state, the response delay determination unit 105 executes the storage medium in the response delay state to the buffer storage location determination unit 104. The virtual buffer 22 is instructed to store the write data corresponding to the current write access.
 バッファデータ移動指示部106は、任意の周期(タイミング)でバッファ領域管理テーブル110を参照し、各記憶媒体の仮想バッファ22を構成する記憶領域の空き容量を確認する。 The buffer data movement instructing unit 106 refers to the buffer area management table 110 at an arbitrary cycle (timing) and confirms the free capacity of the storage area constituting the virtual buffer 22 of each storage medium.
 仮想バッファ22に対応する記憶領域の空き容量が事前に定めた基準の容量を下回る場合は、バッファデータ移動指示部106は、当該基準を下回る記憶領域における空き容量を確保する指示を、アクセス実行部101に行う。具体的には、バッファデータ移動指示部106は、アクセス実行部101に対し、各記憶媒体の仮想バッファ22を構成する記憶領域に格納されたライトデータを、仮想バッファ22から作業メモリ102へ読み出すと共に、当該ライトデータを仮想媒体21におけるライトデータ本来の格納先アドレスに書き込むように指示する。即ち、バッファデータ移動指示部106は、仮想バッファ22それぞれの空き容量が所定の基準値以上(基準の容量以上)であるか否かを判定し、空き容量が前記所定の基準値を下回ると判定された仮想バッファ22に格納されたデータを、OS等から書き込み先として指定された記憶媒体の仮想媒体21に移動させる。 When the free space in the storage area corresponding to the virtual buffer 22 is below a predetermined reference capacity, the buffer data movement instruction unit 106 issues an instruction to secure free space in the storage area below the reference to the access execution unit. 101. Specifically, the buffer data movement instruction unit 106 reads the write data stored in the storage area constituting the virtual buffer 22 of each storage medium from the virtual buffer 22 to the work memory 102 to the access execution unit 101. The write data is instructed to be written in the original storage address of the write data in the virtual medium 21. That is, the buffer data movement instruction unit 106 determines whether or not the free capacity of each virtual buffer 22 is greater than or equal to a predetermined reference value (greater than or equal to the reference capacity), and determines that the free capacity is less than the predetermined reference value. The data stored in the virtual buffer 22 is moved to the virtual medium 21 of the storage medium designated as the writing destination from the OS or the like.
 なお、仮想媒体21の本来の格納先アドレスへの書き込みは、仮想バッファ22から仮想媒体21へのデータの移動処理の一部であるため、バッファ対象判定部103による格納先判定は行われない(無条件で、仮想媒体21がデータの格納先となる)。 Note that writing to the original storage destination address of the virtual medium 21 is a part of the process of moving data from the virtual buffer 22 to the virtual medium 21, and therefore the storage target determination by the buffer target determination unit 103 is not performed ( (Unconditionally, the virtual medium 21 is a data storage destination).
 バッファデータ移動指示部106は、仮想媒体21へのライト処理が完了するとマッピング管理テーブル109及びバッファ領域管理テーブル110を更新する。 The buffer data movement instruction unit 106 updates the mapping management table 109 and the buffer area management table 110 when the write process to the virtual medium 21 is completed.
 上記のアクセス実行部101、バッファ対象判定部103、バッファ内格納先決定部104、応答遅延判定部105、バッファデータ移動指示部106の各部は、ストレージ装置2を制御する制御モジュールとして機能する。当該制御モジュールは、ホスト1(ストレージ制御装置)に搭載されたコンピュータに、そのハードウェアを用いて、後に詳述する処理を実行させるコンピュータプログラムにより実現することもできる。 The above-described access execution unit 101, buffer target determination unit 103, in-buffer storage destination determination unit 104, response delay determination unit 105, and buffer data movement instruction unit 106 function as a control module that controls the storage apparatus 2. The control module can also be realized by a computer program that causes a computer mounted on the host 1 (storage control device) to execute processing, which will be described in detail later, using the hardware.
 格納実行管理テーブル107は、アクセス実行部101から各記憶媒体に対して発行中のライトアクセスに関する情報を記憶し、管理する。具体的には、格納実行管理テーブル107は、アクセス実行部101によるライトアクセスの発行時刻、ライトアクセス発行先の記憶媒体、ライトデータの発行先アドレス、ライトデータのサイズ、及び作業メモリ102に格納されたライトデータのポインタ情報等の記憶、管理を行う。 The storage execution management table 107 stores and manages information related to write access that is being issued from the access execution unit 101 to each storage medium. More specifically, the storage execution management table 107 is stored in the write access issuance time, write access issuance destination storage medium, write data issuance destination address, write data size, and work memory 102 by the access execution unit 101. Stores and manages pointer information of write data.
 格納実行管理テーブル107は、管理対象のライトアクセスが仮想バッファ22に対するデータ格納を行うものである場合、当該ライトアクセスに係るライトデータ本来の格納先を指し示す記憶媒体及びアドレスについても記憶し、管理する。なお、格納実行管理テーブル107は、作業メモリ102と同様に、例えば、ストレージ装置2に対する不図示のキャッシュメモリ、又はホスト1のソフトウェア、OS等が利用するメモリと共通のデバイス上に存在しても良い。 The storage execution management table 107 stores and manages a storage medium and an address indicating the original storage destination of the write data related to the write access when the write access to be managed stores data in the virtual buffer 22. . It should be noted that the storage execution management table 107 may exist on the same device as the working memory 102, for example, a cache memory (not shown) for the storage apparatus 2 or a memory used by the host 1 software, OS, or the like. good.
 図4は、格納実行管理テーブル107に含まれるライトアクセスに関する情報の一例を示す図である。格納実行管理テーブル107は、アクセス実行部101により発行された各ライトアクセスについて、発行時刻1071と、発行先記憶媒体1072と、発行先アドレス1073と、発行サイズ1074と、格納データポインタ1075と、要求記憶媒体1076と、要求アドレス1077と、格納先変更フラグ1078と、格納先変更禁止フラグ1079と、を管理する。 FIG. 4 is a diagram illustrating an example of information relating to write access included in the storage execution management table 107. The storage execution management table 107 includes an issue time 1071, an issue destination storage medium 1072, an issue destination address 1073, an issue size 1074, a storage data pointer 1075, a request for each write access issued by the access execution unit 101. A storage medium 1076, a request address 1077, a storage location change flag 1078, and a storage location change prohibition flag 1079 are managed.
 格納データポインタ1075は、作業メモリ102に格納されたライトデータの格納先アドレスを示す。要求記憶媒体1076は、アクセス実行部101がホスト1で動作するソフトウェア、OSから要求されたライトデータの格納先となる記憶媒体を示し、要求アドレス1077は、当該記憶媒体での格納先アドレスを示す。 The stored data pointer 1075 indicates the storage destination address of the write data stored in the work memory 102. The request storage medium 1076 indicates the storage medium where the access execution unit 101 operates on the host 1 and the write data requested by the OS, and the request address 1077 indicates the storage destination address in the storage medium. .
 格納実行管理テーブル107に含まれる情報のうち、発行先記憶媒体1072及び発行先アドレス1073は、アクセス実行部101が実際にアクセスする記憶媒体及び記憶媒体上のアドレスを示し、要求記憶媒体1076及び要求アドレス1077は、アクセス実行部101がOS等から受け取ったアクセス先(記憶媒体、アドレス)を示す。例えば、図4の1行目のエントリは、アクセス実行部101が、記憶媒体2C(要求記憶媒体1076)のアドレス0x00100000(要求アドレス1077)へデータ書き込みを依頼され、発行時刻1071の時刻にて、記憶媒体2Aのアドレス0x00000020(発行先アドレス1073)にデータ書き込みを指示したことを示す。 Of the information included in the storage execution management table 107, the issue destination storage medium 1072 and the issue destination address 1073 indicate the storage medium actually accessed by the access execution unit 101 and the address on the storage medium, and the request storage medium 1076 and the request An address 1077 indicates an access destination (storage medium, address) received by the access execution unit 101 from the OS or the like. For example, in the entry on the first line in FIG. 4, the access execution unit 101 is requested to write data to the address 0x00100000 (request address 1077) of the storage medium 2C (request storage medium 1076). This indicates that data write is instructed to address 0x00000020 (issue destination address 1073) of storage medium 2A.
 また、格納先変更フラグ1078は、発行先記憶媒体1072が指し示す記憶媒体における応答遅延の発生に伴い、既にバッファ内格納先決定部104によってライトデータの格納先の変更処理が行われた場合に「1」となるフラグである。 The storage destination change flag 1078 is displayed when the storage destination determination unit 104 in the buffer has already changed the write data storage destination in response to the occurrence of a response delay in the storage medium indicated by the issue destination storage medium 1072. The flag is “1”.
 格納先変更禁止フラグ1079は、バッファデータ移動指示部106による仮想バッファ22から仮想媒体21へのデータ移動処理に対応するライトである場合に「1」に設定されるフラグである。 The storage location change prohibition flag 1079 is a flag that is set to “1” in the case of a write corresponding to data movement processing from the virtual buffer 22 to the virtual medium 21 by the buffer data movement instruction unit 106.
 なお、格納実行管理テーブル107に含まれるデータの形式は、図4に示した形式に限定されず、例えば、バッファ内格納先決定部104によって格納先が仮想媒体21から仮想バッファ22に変更されたことを明示的に示すフラグを別個に設けてもよい。 The format of the data included in the storage execution management table 107 is not limited to the format shown in FIG. 4. For example, the storage destination is changed from the virtual medium 21 to the virtual buffer 22 by the buffer storage destination determination unit 104. You may provide the flag which shows this explicitly.
 図5は、記憶媒体状態管理テーブル108に含まれる記憶媒体の状態に関する情報の一例を示す図である。記憶媒体状態管理テーブル108は、応答遅延判定部105によって判定された、各記憶媒体の応答遅延状態を表す情報を記憶し、管理する。 FIG. 5 is a diagram illustrating an example of information regarding the state of the storage medium included in the storage medium state management table 108. The storage medium state management table 108 stores and manages information indicating the response delay state of each storage medium determined by the response delay determination unit 105.
 記憶媒体状態管理テーブル108は、各記憶媒体を識別するID(Identifier)などの記憶媒体識別子1081と、各記憶媒体が応答遅延状態にある場合に1となる応答遅延フラグ1082と、を管理する。なお、記憶媒体状態管理テーブル108に含まれるデータの形式は、図5に示した形式に限定されず、各記憶媒体について応答遅延フラグ1082に代わり、例えば、応答遅延状態に加えて詳細な負荷を数値で表現するようなデータ構造を用いてもよい。 The storage medium state management table 108 manages a storage medium identifier 1081 such as an ID (Identifier) for identifying each storage medium, and a response delay flag 1082 that becomes 1 when each storage medium is in a response delay state. Note that the format of the data included in the storage medium state management table 108 is not limited to the format shown in FIG. 5, and instead of the response delay flag 1082 for each storage medium, for example, a detailed load is added in addition to the response delay state. A data structure represented by a numerical value may be used.
 図6は、マッピング管理テーブル109に含まれる情報であって、仮想媒体21に格納を要求されたデータであって仮想バッファ22に格納されたデータの有無と、ライトデータの仮想バッファ22における格納先を表す情報の一例を示す図である。 FIG. 6 is information included in the mapping management table 109, which is data requested to be stored in the virtual medium 21 and stored in the virtual buffer 22, and the storage location of the write data in the virtual buffer 22 It is a figure which shows an example of the information showing.
 マッピング管理テーブル109は、ホスト1で動作するソフトウェアやOS等から仮想媒体21へ格納を要求されたデータに関する、仮想バッファ22への格納の有無、及びライトデータの仮想バッファ22における格納先を表す記憶媒体とその記憶媒体上のアドレスの情報を記憶し、管理する。具体的には、マッピング管理テーブル109は、仮想媒体識別子1091と、仮想媒体アドレス1092と、仮想バッファ識別子1093と、仮想バッファアドレス1094と、を記憶し、管理する。 The mapping management table 109 is a memory that indicates whether data requested to be stored in the virtual medium 21 by software or an OS operating on the host 1 is stored in the virtual buffer 22 and the storage location of the write data in the virtual buffer 22. Stores and manages information on the medium and the address on the storage medium. Specifically, the mapping management table 109 stores and manages a virtual medium identifier 1091, a virtual medium address 1092, a virtual buffer identifier 1093, and a virtual buffer address 1094.
 仮想媒体識別子1091は、各記憶媒体に定義された仮想媒体21の記憶領域に対応する識別子であり、仮想媒体アドレス1092はそのアドレスである。 The virtual medium identifier 1091 is an identifier corresponding to the storage area of the virtual medium 21 defined for each storage medium, and the virtual medium address 1092 is the address.
 仮想バッファ識別子1093は、仮想媒体識別子1091と仮想媒体アドレス1092に対応するデータが格納された、仮想バッファ22(記憶領域)を表す識別子であり、仮想バッファアドレス1094はそのアドレスである。例えば、図6の2行目のエントリは、仮想媒体21Aのアドレス0x00000001(仮想媒体アドレス1092)に格納されるべきデータは、実際には、仮想バッファ22Bのアドレス0x00000002(仮想バッファアドレス1094)に格納されていることを示す。 The virtual buffer identifier 1093 is an identifier representing the virtual buffer 22 (storage area) in which data corresponding to the virtual medium identifier 1091 and the virtual medium address 1092 is stored, and the virtual buffer address 1094 is the address. For example, in the entry in the second row in FIG. 6, the data to be stored at the address 0x00000001 (virtual medium address 1092) of the virtual medium 21A is actually stored at the address 0x00000002 (virtual buffer address 1094) of the virtual buffer 22B. Indicates that
 ここで、仮想媒体21の仮想媒体識別子1091と仮想媒体アドレス1092によって表される記憶領域のデータが、仮想バッファ22に存在しない場合が考えられる。このような場合には、対応する仮想バッファ識別子1093及び仮想バッファアドレス1094は、例えば、0xFFFFFFFF (16進数表記)などの無効な値が設定される(図6の1行目等参照)。 Here, there may be a case where the data in the storage area represented by the virtual medium identifier 1091 and the virtual medium address 1092 of the virtual medium 21 does not exist in the virtual buffer 22. In such a case, the corresponding virtual buffer identifier 1093 and virtual buffer address 1094 are set to invalid values such as 0xFFFFFFFF (hexadecimal notation) (see the first line in FIG. 6).
 なお、マッピング管理テーブル109は、図6に示した形式に限定されず、例えば、仮想媒体識別子1091と仮想媒体アドレス1092に対応するデータが仮想バッファ22に格納されていないことを示すフラグを別個に設けてもよい。 The mapping management table 109 is not limited to the format shown in FIG. 6. For example, a flag indicating that data corresponding to the virtual medium identifier 1091 and the virtual medium address 1092 is not stored in the virtual buffer 22 is separately provided. It may be provided.
 また、マッピング管理テーブル109は、図6に示したようなテーブルの形式ではなく、例えば、仮想媒体識別子1091と仮想媒体アドレス1092をキーとして、対応する仮想バッファ識別子1093及び仮想バッファアドレス1094を値として取り出す木のようなデータ構造(木構造)であってもよい。この場合、仮想バッファ22にデータが格納されていないエントリを省略することでマッピング管理テーブル109の容量が削減できる。 Further, the mapping management table 109 does not have the table format shown in FIG. 6. For example, the virtual medium identifier 1091 and the virtual medium address 1092 are used as keys, and the corresponding virtual buffer identifier 1093 and virtual buffer address 1094 are used as values. It may be a data structure (tree structure) like a tree to be extracted. In this case, the capacity of the mapping management table 109 can be reduced by omitting entries in which no data is stored in the virtual buffer 22.
 図7は、バッファ領域管理テーブル110に含まれる情報であって、各記憶媒体に定義された仮想バッファ22で使用する記憶領域毎のライトデータの格納有無と、各記憶媒体における仮想バッファ22の空き容量を表す情報と、の一例を示す図である。バッファ領域管理テーブル110は、各記憶媒体に定義された仮想バッファ22で使用する記憶領域毎に、ライトデータを格納済であるか、新規にライトデータを格納可能な状態であるかに関する情報を記憶し、管理する。 FIG. 7 shows information included in the buffer area management table 110. Whether or not write data is stored for each storage area used in the virtual buffer 22 defined in each storage medium, and the free space in the virtual buffer 22 in each storage medium. It is a figure which shows the information showing a capacity | capacitance, and an example. The buffer area management table 110 stores information on whether write data has been stored or write data can be newly stored for each storage area used in the virtual buffer 22 defined in each storage medium. And manage.
 バッファ領域管理テーブル110は、各記憶媒体に定義された仮想バッファ22の記憶領域毎の空き容量を記憶し、管理する。バッファ領域管理テーブル110は、記憶媒体毎に構成されており、記憶媒体毎の仮想バッファ22の記憶領域を表す仮想バッファアドレス1101と、当該記憶領域に格納されたライトデータが本来格納されるはずの仮想媒体21の記憶領域を表す仮想媒体識別子1102及びその仮想媒体アドレス1103と、を記憶し、管理する。また、バッファ領域管理テーブル110は、記憶媒体毎に分かれるそれぞれの仮想バッファ22の記憶領域について、空き容量1104を管理する。 The buffer area management table 110 stores and manages the free capacity for each storage area of the virtual buffer 22 defined in each storage medium. The buffer area management table 110 is configured for each storage medium, and the virtual buffer address 1101 representing the storage area of the virtual buffer 22 for each storage medium and the write data stored in the storage area should be originally stored. A virtual medium identifier 1102 representing a storage area of the virtual medium 21 and its virtual medium address 1103 are stored and managed. The buffer area management table 110 manages the free capacity 1104 for each storage area of the virtual buffer 22 divided for each storage medium.
 仮想バッファアドレス1101により表される仮想バッファ22の記憶領域に新規にライトデータを格納可能である場合には、例えば、0xFFFFFFFF(16進数表記)などの無効な値を格納することで、新規にライトデータを格納可能である旨を表す。例えば、図7の記憶媒体2A用のテーブルの1行目のエントリは、仮想バッファ22Aのアドレス0x00000000にデータが格納されていないことを示し、2行目のエントリは、仮想バッファ22Aのアドレス0x00000001に仮想媒体21Cのアドレス0x00000000に記憶されるべきデータが格納されていることを示す。 When write data can be newly stored in the storage area of the virtual buffer 22 represented by the virtual buffer address 1101, for example, an invalid value such as 0xFFFFFFFF (hexadecimal notation) is stored to newly write data. Indicates that data can be stored. For example, the entry in the first row of the table for the storage medium 2A in FIG. 7 indicates that no data is stored at the address 0x00000000 of the virtual buffer 22A, and the entry in the second row is at the address 0x00000001 of the virtual buffer 22A. This indicates that data to be stored at the address 0x00000000 of the virtual medium 21C is stored.
 なお、バッファ領域管理テーブル110は、図7に示した形式に限定されず、例えば、仮想バッファアドレス1101に対応するエントリが仮想バッファ22の記憶領域の先頭から末尾まで順番に存在する場合、仮想バッファアドレス1101を省略可能となる。 The buffer area management table 110 is not limited to the format shown in FIG. 7. For example, when entries corresponding to the virtual buffer address 1101 exist in order from the beginning to the end of the storage area of the virtual buffer 22, the virtual buffer The address 1101 can be omitted.
 ホスト1は、上記の格納実行管理テーブル107、記憶媒体状態管理テーブル108、マッピング管理テーブル109及びバッファ領域管理テーブル110の各種テーブルが構築された記憶部(図示せず)を有する。 The host 1 has a storage unit (not shown) in which various tables such as the storage execution management table 107, the storage medium state management table 108, the mapping management table 109, and the buffer area management table 110 are constructed.
 次に、第1の実施形態に係るシステムの動作を、図面を参照しつつ説明する。 Next, the operation of the system according to the first embodiment will be described with reference to the drawings.
[リード時の動作]
 図2、図3、図6及び図8を参照しつつ、アクセス実行部101がホスト1で動作するソフトウェアやOSからリード要求を受け取り、当該リード要求に対する結果を応答する手順を説明する。
[Operation when reading]
A procedure in which the access execution unit 101 receives a read request from software or OS running on the host 1 and responds to the result of the read request will be described with reference to FIGS.
 図8のステップS11において、アクセス実行部101は、ホスト1で動作するソフトウェア、OSからのリード要求を受け取ると、マッピング管理テーブル109を参照する。アクセス実行部101は、リードアクセス(リードアクセスより得られる仮想媒体識別子1091、仮想媒体アドレス)に対応する仮想バッファ識別子1093及び仮想バッファアドレス1094が当該テーブルに登録されているか否かを確認することで(マッピング管理テーブル109からの仮想バッファアドレス1094に関する取得結果が有効なアドレスであるか否かによって)、リード要求されたデータが仮想バッファ22に格納されているか否かを確認する。 8, the access execution unit 101 refers to the mapping management table 109 when receiving a read request from the software operating on the host 1 and the OS. The access execution unit 101 confirms whether or not the virtual buffer identifier 1093 and the virtual buffer address 1094 corresponding to the read access (the virtual medium identifier 1091 and the virtual medium address obtained from the read access) are registered in the table. Whether or not the read-requested data is stored in the virtual buffer 22 is confirmed (depending on whether or not the acquisition result regarding the virtual buffer address 1094 from the mapping management table 109 is a valid address).
 リード要求されたデータが仮想バッファ22に格納されている場合(ステップS12のYes判定)、アクセス実行部101は、ステップS11で取得した仮想バッファアドレス1094を、仮想バッファ識別子1093が指し示す記憶媒体のアドレスに変換し、記憶媒体に対して当該変換されたアドレスに対するリード要求を行う(ステップS13)。例えば、図6に示すマッピング管理テーブル109を参照すると、OS等からのリードアクセスに対応する仮想バッファアドレス1094として0x00000002が得られた場合(図6のテーブル2行目のエントリ)には、アクセス実行部101は、仮想媒体21及び仮想バッファ22の定義を考慮して、上記取得したアドレスを記憶媒体2Bの実アドレスに変換し、当該変換したアドレスに対するリード要求を行う。その後、アクセス実行部101は、ステップS15以降の処理を実行する。 When the data requested to be read is stored in the virtual buffer 22 (Yes in step S12), the access execution unit 101 stores the virtual buffer address 1094 acquired in step S11, and the address of the storage medium indicated by the virtual buffer identifier 1093 And a read request for the converted address is made to the storage medium (step S13). For example, referring to the mapping management table 109 shown in FIG. 6, when 0x00000002 is obtained as the virtual buffer address 1094 corresponding to read access from the OS or the like (entry in the second row of the table in FIG. 6), the access is executed. The unit 101 converts the acquired address into a real address of the storage medium 2B in consideration of the definitions of the virtual medium 21 and the virtual buffer 22, and makes a read request for the converted address. Thereafter, the access execution unit 101 executes the processing after step S15.
 一方、リード要求されたデータが仮想バッファ22に格納されていない場合(ステップS12のNo判定)、アクセス実行部101は、リード要求先の仮想媒体21に対するアドレスを、リード要求先の記憶媒体におけるアドレスに変換する。そして、アクセス実行部101は、変換した当該アドレスを用いてリード要求先の記憶媒体に対してリード要求を行う(ステップS14)。例えば、図6に示すマッピング管理テーブル109を参照すると、OS等からリードアクセスに係るアドレスに対応する仮想バッファアドレス1094として0xFFFFFFFFが得られた場合(図6のテーブル1行目のエントリ)には、アクセス実行部101は、仮想媒体21及び仮想バッファ22の定義を考慮して、仮想媒体21Aのアドレス0x00000000を記憶媒体2Aの実アドレスに変換し、当該変換したアドレスに対するリード要求を行う。 On the other hand, if the read requested data is not stored in the virtual buffer 22 (No determination in step S12), the access execution unit 101 sets the address for the read request destination virtual medium 21 to the address in the read request destination storage medium. Convert to Then, the access execution unit 101 uses the converted address to make a read request to the read request destination storage medium (step S14). For example, referring to the mapping management table 109 shown in FIG. 6, when 0xFFFFFFFF is obtained as the virtual buffer address 1094 corresponding to the address related to read access from the OS or the like (entry in the first row of the table in FIG. 6), The access execution unit 101 converts the address 0x00000000 of the virtual medium 21A into the real address of the storage medium 2A in consideration of the definitions of the virtual medium 21 and the virtual buffer 22, and makes a read request for the converted address.
 アクセス実行部101は、ストレージ装置2に含まれる記憶媒体に対するリード要求に係る動作が完了すると、読み出したデータ(リードデータ)を要求元であるホスト1で動作するソフトウェア、OSに結果として応答し、リード要求に係る処理を終了する(ステップS15)。 When the operation related to the read request for the storage medium included in the storage device 2 is completed, the access execution unit 101 responds with the read data (read data) to the software and OS operating on the requesting host 1 as a result, The process related to the read request is terminated (step S15).
 アクセス実行部101は、上記ステップS11~S15までの処理を行い、ホスト1で動作するソフトウェアやOSからリード要求を受け取り、その結果を応答する動作が完了する。 The access execution unit 101 performs the processing from the above steps S11 to S15, receives the read request from the software running on the host 1 and the OS, and completes the operation of responding to the result.
[ライト時の動作]
 図2、図3、図4、図5、図7及び図9を参照しつつ、アクセス実行部101がホスト1で動作するソフトウェアやOSからライト要求を受け取り、ストレージ装置2に含まれる記憶媒体に対してライト要求の発行を完了するまでの手順を説明する。
[Operation when writing]
2, 3, 4, 5, 7, and 9, the access execution unit 101 receives a write request from software or OS running on the host 1, and stores it in a storage medium included in the storage apparatus 2. A procedure for completing the issue of the write request will be described.
 図9を参照すると、アクセス実行部101は、ホスト1で動作するソフトウェア、OSからのライト要求を受け取ると、ライトデータを作業メモリ102に格納する。その後、アクセス実行部101は、格納実行管理テーブル107に当該ライト要求を登録し、格納データポインタ1075、要求記憶媒体1076、要求アドレス1077及び発行サイズ1074の各値を設定する(図4参照)。また、アクセス実行部101は、ライト要求の格納先の情報を発行先記憶媒体1072、発行先アドレス1073に対しても設定する。さらに、アクセス実行部101は、格納実行管理テーブル107のライト要求に対応する格納先変更フラグ1078及び格納先変更禁止フラグ1079を「0」に設定する。(ステップS201) Referring to FIG. 9, the access execution unit 101 stores the write data in the work memory 102 when receiving the write request from the software operating on the host 1 and the OS. Thereafter, the access execution unit 101 registers the write request in the storage execution management table 107 and sets the storage data pointer 1075, the request storage medium 1076, the request address 1077, and the issue size 1074 (see FIG. 4). The access execution unit 101 also sets the write request storage destination information for the issue destination storage medium 1072 and the issue destination address 1073. Further, the access execution unit 101 sets the storage location change flag 1078 and the storage location change prohibition flag 1079 corresponding to the write request in the storage execution management table 107 to “0”. (Step S201)
 次に、バッファ対象判定部103は、上記ライト要求に関し、当該ライト要求を仮想媒体21及び仮想バッファ22のいずれかに格納するかに関する判定指示をアクセス実行部101から取得し、ライトデータのサイズが事前に定めた基準値以下か否かを判定する(ステップS202)。 Next, regarding the write request, the buffer target determination unit 103 acquires a determination instruction regarding whether to store the write request in either the virtual medium 21 or the virtual buffer 22 from the access execution unit 101, and the size of the write data is It is determined whether it is below a predetermined reference value (step S202).
 ライトデータのサイズが事前に定めた基準値以下であった場合(ステップS203のYes判定)、バッファ対象判定部103は、当該ライト要求に係るライトデータを仮想バッファ22に格納するものと判定し、ステップS207以降の処理を実行する。 When the size of the write data is equal to or smaller than a predetermined reference value (Yes determination in step S203), the buffer target determination unit 103 determines that the write data related to the write request is stored in the virtual buffer 22, The process after step S207 is executed.
 ライトデータのサイズが事前に定めた基準値より大きい場合(ステップS203のNo判定)、バッファ対象判定部103は、図5に示す記憶媒体状態管理テーブル108を参照し、ライト要求に係るデータの格納先となる仮想媒体21を含む記憶媒体が応答遅延の状態か否かを確認する(ステップS204)。 When the size of the write data is larger than the predetermined reference value (No determination in step S203), the buffer target determination unit 103 refers to the storage medium state management table 108 shown in FIG. 5 and stores data related to the write request. It is confirmed whether or not the storage medium including the virtual medium 21 is in a response delay state (step S204).
 仮想媒体21を含む記憶媒体が応答遅延の状態であった場合(ステップS205のYes判定)、バッファ対象判定部103は、ライト要求に係るライトデータを仮想バッファ22に格納すると判定してステップS207以降の処理を実行する。 When the storage medium including the virtual medium 21 is in a response delay state (Yes determination in step S205), the buffer target determination unit 103 determines to store the write data related to the write request in the virtual buffer 22, and the process from step S207 onward Execute the process.
 仮想媒体21を含む記憶媒体が応答遅延の状態ではない場合(ステップS205のNo判定)、バッファ対象判定部103は、アクセス実行部101に対してライト要求に係るライトデータの元の(本来の)格納先である仮想媒体21と当該仮想媒体21に対するアドレスを格納先として通知してバッファ対象の判定処理を完了し、ステップS211以降の処理を実行する(ステップS206)。 When the storage medium including the virtual medium 21 is not in a response delay state (No determination in step S205), the buffer target determination unit 103 sends the original (original) write data related to the write request to the access execution unit 101. The virtual medium 21 that is the storage destination and the address for the virtual medium 21 are notified as the storage destination, the buffer target determination process is completed, and the processes after step S211 are executed (step S206).
 ステップS207において、バッファ対象判定部103は、ライト要求に係るライトデータの格納先を変更するように、バッファ内格納先決定部104に対して指示する。 In step S207, the buffer target determination unit 103 instructs the in-buffer storage location determination unit 104 to change the storage location of the write data related to the write request.
 バッファ内格納先決定部104は、ライト要求に係るライトデータの格納先変更に関する指示を受け取ると、図5に示す記憶媒体状態管理テーブル108を参照して応答遅延状態ではない記憶媒体を抽出する(ステップS208)。 When receiving the instruction regarding the change of the storage location of the write data related to the write request, the buffer storage location determination unit 104 refers to the storage medium status management table 108 shown in FIG. 5 and extracts a storage medium that is not in the response delay state ( Step S208).
 続いて、バッファ内格納先決定部104は、図7に示すバッファ領域管理テーブル110を参照し、ステップS208で抽出した、応答遅延状態ではない各記憶媒体に含まれる仮想バッファ22の空き容量1104を確認する。その後、バッファ内格納先決定部104は、例えば、空き容量1104が最も多い仮想バッファ22を格納先として決定する(ステップS209)。 Subsequently, the in-buffer storage location determination unit 104 refers to the buffer area management table 110 shown in FIG. 7, and determines the free capacity 1104 of the virtual buffer 22 included in each storage medium that is not in the response delay state, extracted in step S208. Check. Thereafter, the in-buffer storage destination determination unit 104 determines, for example, the virtual buffer 22 having the largest free capacity 1104 as the storage destination (step S209).
 バッファ内格納先決定部104は、バッファ領域管理テーブル110を参照して、ステップS209において格納先として決定した仮想バッファ22における、ライトデータの格納先となる領域のアドレスを決定し、バッファ領域管理テーブル110の当該決定したアドレスに一致する仮想バッファアドレス1101に対応する仮想媒体識別子1102及び仮想媒体アドレス1103をライトデータの変更前の格納先仮想媒体、及びアドレスで更新する(仮想バッファアドレス及び仮想媒体識別子に係るフィールドを更新する)。その際、バッファ内格納先決定部104は、バッファ領域管理テーブル110の空き容量1104について、ライトデータの格納に使用される領域の容量を引いた値で更新し、格納先の仮想バッファ22の情報と共にアクセス実行部101に通知する(ステップS210)。 The in-buffer storage destination determination unit 104 refers to the buffer area management table 110 to determine the address of the area where the write data is stored in the virtual buffer 22 determined as the storage destination in step S209, and the buffer area management table 110 update the virtual medium identifier 1102 and virtual medium address 1103 corresponding to the virtual buffer address 1101 corresponding to the determined address of 110 with the storage destination virtual medium and address before the change of the write data (virtual buffer address and virtual medium identifier) Update the fields related to). At this time, the in-buffer storage location determination unit 104 updates the free space 1104 of the buffer area management table 110 with a value obtained by subtracting the capacity of the area used for storing write data, and stores information on the storage destination virtual buffer 22. In addition, the access execution unit 101 is notified (step S210).
 ステップS206又はステップS210が終了すると、アクセス実行部101は、ステップS211以降の処理を実行する。 When step S206 or step S210 is completed, the access execution unit 101 executes the processing after step S211.
 アクセス実行部101は、バッファ対象判定部103又はバッファ内格納先決定部104から通知された格納先のアドレスを記憶媒体に対応するアドレスに変換する(ステップS211)。即ち、アクセス実行部101は、仮想媒体21、仮想バッファ22の定義を考慮して、通知された仮想媒体21又は仮想バッファ22のアドレスを記憶媒体のアドレスに変換する。 The access execution unit 101 converts the storage destination address notified from the buffer target determination unit 103 or the in-buffer storage destination determination unit 104 into an address corresponding to the storage medium (step S211). That is, the access execution unit 101 converts the notified address of the virtual medium 21 or the virtual buffer 22 into the address of the storage medium in consideration of the definitions of the virtual medium 21 and the virtual buffer 22.
 アクセス実行部101は、格納先として決定された仮想媒体21又は仮想バッファ22を含む記憶媒体のアドレスであって、ステップS211で変換したアドレスに対してライトコマンドを発行する(ステップS212)。 The access execution unit 101 issues a write command to the address of the storage medium including the virtual medium 21 or the virtual buffer 22 determined as the storage destination and converted in step S211 (step S212).
 アクセス実行部101は、ステップS212で発行したライトコマンドに対応する格納実行管理テーブル107の発行時刻1071、発行先記憶媒体1072、発行先アドレス1073を更新し、処理を終了する(ステップS213)。 The access execution unit 101 updates the issue time 1071, the issue destination storage medium 1072, and the issue destination address 1073 of the storage execution management table 107 corresponding to the write command issued in step S212, and ends the processing (step S213).
 なお、図9に示すフローチャートでは、複数の工程(処理)が順番に記載されているが、実行される工程の実行順序は、その記載の順番に制限されない。例えば、図9に示すフローチャートでは、ステップS202、S203においてライトデータのサイズを検証し、その結果に応じて格納先として指示された記憶媒体の応答状況を検証(ステップS204、S205)しているが、2つの検証動作の順序は逆であってもよい。より具体的には、バッファ対象判定部103は、書き込み先の記憶媒体が応答遅延状態にある場合には、ライトデータのサイズに関わらず、当該ライトデータの格納先を仮想バッファ22としてもよい(ステップS207以降を実行してもよい)。 In the flowchart shown in FIG. 9, a plurality of steps (processes) are described in order, but the execution order of the steps to be executed is not limited to the description order. For example, in the flowchart shown in FIG. 9, the size of the write data is verified in steps S202 and S203, and the response status of the storage medium designated as the storage destination is verified according to the result (steps S204 and S205). The order of the two verification operations may be reversed. More specifically, when the write destination storage medium is in a response delay state, the buffer target determining unit 103 may set the write data storage destination as the virtual buffer 22 regardless of the size of the write data ( Step S207 and subsequent steps may be executed).
 なお、ライトデータのデータサイズに起因して、ライトデータを仮想バッファ22に格納すると決定された場合には、アクセス実行部101は、当該ライトデータが仮想バッファ22に追記形式にて書き込まれるようにライトコマンドを発行する。換言するならば、ライトデータのサイズに起因せず、書き込み先の記憶媒体の応答状況に応じて、ライトデータを仮想バッファ22に格納すると決定された場合には、当該ライトデータは必ずしも追記形式にて仮想バッファ22に書き込まれなくともよい(仮想バッファ22の所定領域を更新してもよい)。 When it is determined that the write data is to be stored in the virtual buffer 22 due to the data size of the write data, the access execution unit 101 writes the write data to the virtual buffer 22 in a write-once format. Issue a write command. In other words, when it is determined that the write data is stored in the virtual buffer 22 according to the response status of the storage medium to which it is written, regardless of the size of the write data, the write data is not necessarily in the write-once format. Thus, it may not be written to the virtual buffer 22 (a predetermined area of the virtual buffer 22 may be updated).
 以上のステップS201~S213までの処理により、アクセス実行部101が、ホスト1で動作するソフトウェア、OSからライト要求を受け取り、ストレージ装置2に含まれる記憶媒体に対してライト要求の発行を完了するまでの動作が完了する。 By the processing from step S201 to step S213, the access execution unit 101 receives a write request from the software and OS operating on the host 1, and completes issuing the write request to the storage medium included in the storage device 2. Is completed.
[ライト完了の応答動作]
 次に、図2、図3、図4、図5、図6及び図10を参照して、記憶媒体に発行したライト要求が完了し、ホスト1で動作するソフトウェア、OSからのライト要求に対し、完了の応答を行う手順を説明する。
[Write completion response action]
Next, referring to FIG. 2, FIG. 3, FIG. 4, FIG. 5, FIG. 6 and FIG. 10, the write request issued to the storage medium is completed, The procedure for sending a completion response will be described.
 アクセス実行部101は、記憶媒体におけるライトの完了を検出すると、格納実行管理テーブル107を参照し、対応するライト要求の情報から格納先変更フラグ1078及び格納先変更禁止フラグ1079を参照する(ステップS31)。 When the access execution unit 101 detects the completion of writing in the storage medium, the access execution unit 101 refers to the storage execution management table 107, and refers to the storage location change flag 1078 and the storage location change prohibition flag 1079 from the corresponding write request information (step S31). ).
 ステップS31で参照した格納先変更フラグ1078及び格納先変更禁止フラグ1079のいずれかが「1」である場合(ステップS32のYes判定)、アクセス実行部101は、ホスト1で動作するソフトウェア、OSからのライト要求に対応しないライト動作であるためステップS35以降の処理を実行する。 When any of the storage location change flag 1078 and the storage location change prohibition flag 1079 referred to in step S31 is “1” (Yes in step S32), the access execution unit 101 receives the software and OS operating on the host 1. Since the write operation does not correspond to the write request, the processing from step S35 is executed.
 ステップS31で参照した格納先変更フラグ1078及び格納先変更禁止フラグ1079のいずれも「0」である場合(ステップS32のNo判定)、アクセス実行部101は、図4に示す格納実行管理テーブル107の発行先記憶媒体1072、発行先アドレス1073、要求記憶媒体1076及び要求アドレス1077を参照し、マッピング管理テーブル109の仮想媒体識別子1091と仮想媒体アドレス1092に対応する、仮想バッファ識別子1093及び仮想バッファアドレス1094を更新する(ステップS33)。 When both the storage destination change flag 1078 and the storage destination change prohibition flag 1079 referred to in step S31 are “0” (No determination in step S32), the access execution unit 101 stores the storage execution management table 107 shown in FIG. By referring to the issue destination storage medium 1072, the issue destination address 1073, the request storage medium 1076, and the request address 1077, the virtual buffer identifier 1093 and the virtual buffer address 1094 corresponding to the virtual medium identifier 1091 and the virtual medium address 1092 of the mapping management table 109 are obtained. Is updated (step S33).
 アクセス実行部101は、格納実行管理テーブル107の要求記憶媒体1076及び要求アドレス1077を参照して、ホスト1で動作するソフトウェア、OSからのライト要求を特定し、ライト要求完了の応答を返す(ステップS34)。 The access execution unit 101 refers to the request storage medium 1076 and the request address 1077 of the storage execution management table 107, identifies the write request from the software and OS operating on the host 1, and returns a write request completion response (step S34).
 アクセス実行部101は、記憶媒体状態管理テーブル108を参照して、ライトが完了した記憶媒体に一致する記憶媒体識別子1081の応答遅延フラグ1082を取得し、記憶媒体が応答遅延状態であるか否かを確認する(応答遅延フラグ1082が「1」であるか否かを確認する;ステップS35)。 The access execution unit 101 refers to the storage medium state management table 108, acquires the response delay flag 1082 of the storage medium identifier 1081 that matches the storage medium for which writing has been completed, and determines whether the storage medium is in the response delay state. (Check whether the response delay flag 1082 is “1”; step S35).
 ライトが完了した記憶媒体が応答遅延状態となっていなかった場合(ステップS36のNo判定)、アクセス実行部101は、ステップS38以降の処理を実行する。 When the storage medium for which writing has been completed is not in the response delay state (No determination at step S36), the access execution unit 101 executes the processing after step S38.
 ライトが完了した記憶媒体が応答遅延状態とされている場合(ステップS36のYes判定)、アクセス実行部101は、ライトが完了した記憶媒体に対応する、記憶媒体状態管理テーブル108における応答遅延フラグ1082を「0」に設定する(当該記憶媒体の状態を応答遅延ではない状態に更新する;ステップS37)。 When the storage medium for which writing has been completed is in the response delay state (Yes determination in step S36), the access execution unit 101 responds to the storage medium for which writing has been completed with a response delay flag 1082 in the storage medium state management table 108. Is set to “0” (the state of the storage medium is updated to a state that is not a response delay; step S37).
 アクセス実行部101は、格納実行管理テーブル107から完了したライトに対応するエントリ及び作業メモリ102に格納されたライトデータを削除し、処理を終了する(ステップS38)。 The access execution unit 101 deletes the entry corresponding to the completed write and the write data stored in the work memory 102 from the storage execution management table 107, and ends the process (step S38).
 以上のステップS31~S38までの処理を行い、記憶媒体に発行したライト要求に関する動作が完了し、ホスト1で動作するソフトウェア、OSからの対応するライト要求に対する応答を行う動作が完了する。 By performing the above steps S31 to S38, the operation relating to the write request issued to the storage medium is completed, and the operation for responding to the corresponding write request from the software operating on the host 1 and the OS is completed.
[仮想バッファへの格納先変更]
 次に、図2、図3、図4、図5、図9及び図11を参照して、アクセス実行部101が、各記憶媒体における応答遅延状態を検出し、当該記憶媒体に発行中のライト要求について当該記憶媒体と異なる記憶媒体にライトデータが格納されるように仮想バッファ22へ格納先を変更する手順を説明する。
[Change storage location to virtual buffer]
Next, referring to FIG. 2, FIG. 3, FIG. 4, FIG. 5, FIG. 9 and FIG. 11, the access execution unit 101 detects the response delay state in each storage medium and writes to the storage medium being issued A procedure for changing the storage destination to the virtual buffer 22 so that the write data is stored in a storage medium different from the storage medium regarding the request will be described.
 応答遅延判定部105は、格納実行管理テーブル107の各エントリにおける発行時刻1071を参照し、現在時刻をもとにライト要求発行からの経過時間が、事前に定めた記憶媒体が応答遅延状態と判断する時間以内であるか否かを確認する(ステップS41)。 The response delay determination unit 105 refers to the issuance time 1071 in each entry of the storage execution management table 107, and determines that the storage medium in which the elapsed time from the write request issuance based on the current time is in a response delay state. It is confirmed whether it is within the time to perform (step S41).
 発行からの経過時間が一定以内である場合(ステップS42のYes判定)、応答遅延判定部105は、ステップS47以降の処理を実行する。 When the elapsed time from issuance is within a certain range (Yes determination in step S42), the response delay determination unit 105 executes the processing after step S47.
 発行からの経過時間が一定時間を経過している場合(ステップS42のNo判定)、応答遅延判定部105は、ライト要求を発行中の記憶媒体が応答遅延状態であると判断し、格納実行管理テーブル107の発行先記憶媒体1072を参照して発行先の記憶媒体を特定する。さらに、応答遅延判定部105は、記憶媒体状態管理テーブル108において当該記憶媒体と一致する記憶媒体識別子1081に対応した応答遅延フラグ1082を「1」、即ち、応答遅延の状態に更新する(ステップS43)。 When the elapsed time from the issue has passed a certain time (No determination in step S42), the response delay determination unit 105 determines that the storage medium issuing the write request is in the response delay state, and stores execution management The issue destination storage medium 1072 is identified with reference to the issue destination storage medium 1072 of the table 107. Further, the response delay determination unit 105 updates the response delay flag 1082 corresponding to the storage medium identifier 1081 corresponding to the storage medium in the storage medium state management table 108 to “1”, that is, the response delay state (step S43). ).
 応答遅延判定部105は、格納実行管理テーブル107におけるステップS41で参照したエントリの格納先変更フラグ1078及び格納先変更禁止フラグ1079を参照し、既にライトアクセスに対して格納先の変更処理を行っているか否か、又は、格納先が変更禁止であるか否か、を確認する(ステップS44)。 The response delay determination unit 105 refers to the storage location change flag 1078 and the storage location change prohibition flag 1079 of the entry referred to in step S41 in the storage execution management table 107, and has already performed storage location change processing for write access. Whether the storage location is prohibited from being changed (step S44).
 ステップS44における確認の結果、格納先を変更済み、又は、格納先の変更が禁止の場合(ステップS45のYes判定)、応答遅延判定部105は、ステップS47以降の処理を実行する。 As a result of the confirmation in step S44, when the storage destination has been changed or the change of the storage destination is prohibited (Yes determination in step S45), the response delay determination unit 105 executes the processing from step S47.
 ステップS44における確認の結果、格納先を未変更かつ格納先の変更が可能である場合(ステップS45のNo判定)、応答遅延判定部105は、バッファ内格納先決定部104に、応答遅延状態のライトアクセスに対する格納先となる仮想バッファ22に対応する記憶媒体及びアドレスの再決定を指示する(着目エントリに対応するライトデータの格納先再決定を指示する;ステップS46)。 As a result of the confirmation in step S44, when the storage destination has not been changed and the storage destination can be changed (No determination in step S45), the response delay determination unit 105 notifies the in-buffer storage destination determination unit 104 of the response delay state. The storage medium and address corresponding to the virtual buffer 22 serving as the storage destination for write access are instructed (instruction for re-determining the storage location of the write data corresponding to the entry of interest; step S46).
 応答遅延判定部105は、格納実行管理テーブル107の着目するエントリを、次のエントリに変更する(次のエントリに係るライト要求の応答遅延を判定する)。なお、ステップS41において、末尾のエントリを参照していた場合は、応答遅延判定部105は、着目するエントリを先頭のエントリとする。応答遅延判定部105は、着目するエントリを変更した後に、ステップS41からの処理を再実行する(ステップS47)。 The response delay determination unit 105 changes the entry of interest in the storage execution management table 107 to the next entry (determines the response delay of the write request related to the next entry). If the last entry is referenced in step S41, the response delay determination unit 105 sets the target entry as the first entry. The response delay determination unit 105 re-executes the processing from step S41 after changing the entry of interest (step S47).
 以上のステップS41~S47までの処理を行い、応答遅延判定部105は、各記憶媒体における応答遅延状態を検出し、記憶媒体に発行中のライト要求に関し、仮想バッファ22に格納先を変更する動作(応答遅延状態の記憶媒体と異なる記憶媒体にライトデータが格納されるように仮想バッファ22にデータを格納する動作)を行う。 The processing from the above steps S41 to S47 is performed, and the response delay determination unit 105 detects the response delay state in each storage medium, and changes the storage destination in the virtual buffer 22 regarding the write request issued to the storage medium. (Operation of storing data in the virtual buffer 22 so that the write data is stored in a storage medium different from the storage medium in the response delay state).
 なお、ステップS46においてライトデータの格納先の再決定を指示されたバッファ内格納先決定部104及びアクセス実行部101は、図9に示すステップS208以降の処理に従って仮想バッファ22におけるライトデータの再格納先を決定し、格納先変更後のライト要求の発行を完了する。 The in-buffer storage destination determination unit 104 and the access execution unit 101, which are instructed to re-determine the write data storage destination in step S46, re-store the write data in the virtual buffer 22 in accordance with the processing from step S208 shown in FIG. Determine the destination and complete the issue of the write request after changing the storage destination.
 また、ステップS47の処理後にステップS41からの処理を再実行する場合、例えば、任意の時間処理を休止することで適切な頻度で応答遅延の判定処理を行うようにしてもよい。 Further, when the process from step S41 is re-executed after the process of step S47, for example, the response delay determination process may be performed at an appropriate frequency by pausing the process for an arbitrary time.
[仮想バッファの容量確保]
 次に、図2、図3、図4、図6、図7、図8及び図12を参照して、仮想バッファ22を構成する各記憶媒体の記憶領域の空き容量が不足した場合に、仮想バッファ22から仮想媒体21にライトデータを移動して空き容量を確保する手順を説明する。
[Secure virtual buffer capacity]
Next, referring to FIGS. 2, 3, 4, 6, 7, 8, and 12, when the free space of each storage medium constituting the virtual buffer 22 is insufficient, the virtual A procedure for moving write data from the buffer 22 to the virtual medium 21 to secure free space will be described.
 図12を参照すると、バッファデータ移動指示部106は、バッファ領域管理テーブル110において、着目中の記憶媒体に対応する空き容量1104を取得し、各仮想バッファ22の空き容量が事前に定めた容量不足を判断するための基準の容量以上であるか否かを確認する(ステップS51)。 Referring to FIG. 12, the buffer data movement instructing unit 106 acquires the free capacity 1104 corresponding to the storage medium in question in the buffer area management table 110, and the free capacity of each virtual buffer 22 is insufficient. It is confirmed whether or not the capacity exceeds the reference capacity for determining (step S51).
 空き容量が容量不足を判断するための基準の容量以上である場合(ステップS52のYes判定)、バッファデータ移動指示部106は着目する記憶媒体を変更する。具体的には、記憶媒体を番号で識別する場合、バッファデータ移動指示部106は次の番号の記憶媒体に着目する。なお、着目する記憶媒体の番号が末尾である場合、バッファデータ移動指示部106は、先頭の番号の記憶媒体に着目するように変更した後に、ステップS51からの処理を再実行する(ステップS53)。 When the free capacity is equal to or larger than the reference capacity for determining the lack of capacity (Yes determination in step S52), the buffer data movement instruction unit 106 changes the storage medium of interest. Specifically, when a storage medium is identified by a number, the buffer data movement instruction unit 106 focuses on the next storage medium. If the number of the target storage medium is the end, the buffer data movement instructing unit 106 re-executes the processing from step S51 after changing the focus to the storage medium with the first number (step S53). .
 空き容量が容量不足を判断するための基準の容量を下回る場合(ステップS52のNo判定)、バッファデータ移動指示部106は、バッファ領域管理テーブル110を参照し、ライトデータが格納されており、且つ、仮想媒体21にデータが移動済でない任意のエントリから、ライトデータを仮想媒体21に移動させるエントリを1つ選択する(ステップS54)。 When the free capacity is less than the standard capacity for determining the shortage of capacity (No in step S52), the buffer data movement instruction unit 106 refers to the buffer area management table 110, stores the write data, and Then, one entry for moving the write data to the virtual medium 21 is selected from any entries whose data has not been moved to the virtual medium 21 (step S54).
 バッファデータ移動指示部106は、アクセス実行部101に対して、ステップS54で選択したライトデータを仮想バッファ22から読み出して作業メモリ102に格納することを指示する。なお、アクセス実行部101は、図8のステップS11~ステップS14による手順を用いてライトデータを記憶媒体から読み出し、作業メモリ102に格納する(ステップS55)。 The buffer data movement instruction unit 106 instructs the access execution unit 101 to read out the write data selected in step S54 from the virtual buffer 22 and store it in the work memory 102. The access execution unit 101 reads the write data from the storage medium using the procedure in steps S11 to S14 in FIG. 8 and stores it in the work memory 102 (step S55).
 バッファデータ移動指示部106は、バッファ領域管理テーブル110を参照し、ステップS55で作業メモリ102に格納したライトデータについて、当該ライトデータの格納先を表す仮想媒体識別子1102及び仮想媒体アドレス1103を取得する。そして、バッファデータ移動指示部106は、格納実行管理テーブル107に、作業メモリ102上のライトデータの格納先アドレスを格納データポインタ1075に、ライトデータのサイズを発行サイズ1074に設定する。また、バッファデータ移動指示部106は、ライトデータの格納先記憶媒体及びアドレスの情報を、先に取得した仮想媒体識別子1102及び仮想媒体アドレス1103に設定する。さらに、バッファデータ移動指示部106は、格納実行管理テーブル107のライト要求に対応する格納先変更禁止フラグ1079を「1」に設定する(ステップS56)。 The buffer data movement instruction unit 106 refers to the buffer area management table 110, and acquires the virtual medium identifier 1102 and the virtual medium address 1103 representing the storage location of the write data for the write data stored in the work memory 102 in step S55. . Then, the buffer data movement instruction unit 106 sets the storage destination address of the write data on the work memory 102 in the storage execution management table 107, the storage data pointer 1075, and the write data size in the issue size 1074. Further, the buffer data movement instruction unit 106 sets the storage medium and address information of the write data in the previously acquired virtual medium identifier 1102 and virtual medium address 1103. Further, the buffer data movement instruction unit 106 sets the storage destination change prohibition flag 1079 corresponding to the write request in the storage execution management table 107 to “1” (step S56).
 バッファデータ移動指示部106は、アクセス実行部101に対し、ステップS56で格納実行管理テーブル107に登録した、作業メモリ102に格納されたライトデータに関するライト要求の実行を指示する(ステップS57)。 The buffer data movement instruction unit 106 instructs the access execution unit 101 to execute a write request related to the write data stored in the work memory 102 registered in the storage execution management table 107 in step S56 (step S57).
 バッファデータ移動指示部106は、ステップS57で指示したアクセス実行部101によるライト要求の実行が完了すると、ステップS54で選択したバッファ領域管理テーブル110のエントリから仮想媒体識別子1102、仮想媒体アドレス1103を参照し、マッピング管理テーブル109における仮想媒体識別子1102及び仮想媒体アドレス1103に対応するエントリについて、仮想バッファ識別子1093及び仮想バッファアドレス1094の設定値をエントリが無効であることを表す値(例えば、0xFFFFFFFF)に更新する(ステップS58)。 When the access execution unit 101 instructed in step S57 completes execution of the write request, the buffer data movement instruction unit 106 refers to the virtual medium identifier 1102 and the virtual medium address 1103 from the entry in the buffer area management table 110 selected in step S54. Then, for the entries corresponding to the virtual medium identifier 1102 and the virtual medium address 1103 in the mapping management table 109, the setting values of the virtual buffer identifier 1093 and the virtual buffer address 1094 are changed to a value (for example, 0xFFFFFFFF) indicating that the entry is invalid. Update (step S58).
 バッファデータ移動指示部106は、ステップS54で選択したバッファ領域管理テーブル110のエントリについて有効なライトデータが格納されていない状態、即ち、新規にデータが格納可能な状態に更新する。また、バッファデータ移動指示部106は、空き容量が不足していた仮想バッファ22に対応する、バッファ領域管理テーブル110の空き容量1104の値を、仮想媒体21への移動が完了したライトデータの容量分加算した後に、ステップS51から処理を再実行する(ステップS59)。 The buffer data movement instructing unit 106 updates the entry in the buffer area management table 110 selected in step S54 to a state in which valid write data is not stored, that is, a state in which data can be newly stored. Further, the buffer data movement instruction unit 106 uses the value of the free capacity 1104 in the buffer area management table 110 corresponding to the virtual buffer 22 in which the free capacity is insufficient as the capacity of the write data that has been moved to the virtual medium 21. After adding the minutes, the process is re-executed from step S51 (step S59).
 以上のステップS51~S59までの処理を行い、仮想バッファ22を構成する各記憶媒体の記憶領域の空き容量が不足した場合に、仮想バッファ22から仮想媒体21にライトデータを移動して空き容量を確保する動作が完了する。 When the processing from the above steps S51 to S59 is performed and the free space of the storage area of each storage medium constituting the virtual buffer 22 is insufficient, the write data is moved from the virtual buffer 22 to the virtual medium 21 to free up the free space. The securing operation is completed.
 なお、ステップS57においてライト要求の実行を指示されたアクセス実行部101は、図9に示すステップS202以降の処理に従って作業メモリ102に格納されたデータを仮想媒体21に格納するためのライト要求を記憶媒体に発行する処理を実行する。 The access execution unit 101 instructed to execute the write request in step S57 stores a write request for storing the data stored in the work memory 102 in the virtual medium 21 in accordance with the processing from step S202 shown in FIG. Execute processing to be issued to the medium.
 また、バッファデータ移動指示部106は、ステップS53の処理後にステップS51からの処理を再実行する場合、例えば、任意の時間処理を休止することで適切な頻度で空き容量不足の判定、確保の処理を行うようにしてもよい。 Further, when the buffer data movement instruction unit 106 re-executes the process from step S51 after the process of step S53, for example, the process for determining and securing the lack of free space at an appropriate frequency by pausing the process for an arbitrary time, for example. May be performed.
 以上のように、第1の実施形態に係るシステムでは、記憶媒体(例えば、SSD)の記憶領域の一部をバッファとして利用する。その際、バッファを構成する記憶領域を持つ記憶媒体において応答遅延が発生した場合に、バッファに対するデータの格納先が応答遅延状態の記憶媒体となることを避ける必要がある。そこで、記憶媒体の性能、寿命に影響を与えるライト要求のランダム性に加えて、ライトデータの本来の格納先記憶領域を含む記憶媒体及びバッファにおける格納先となる記憶領域を持つ記憶媒体に関する応答遅延の発生有無を考慮し、ライトデータをバッファに格納するか決定する。 As described above, in the system according to the first embodiment, a part of the storage area of a storage medium (for example, SSD) is used as a buffer. At this time, when a response delay occurs in a storage medium having a storage area constituting the buffer, it is necessary to avoid that the data storage destination for the buffer becomes a storage medium in the response delay state. Therefore, in addition to the randomness of the write request that affects the performance and life of the storage medium, the response delay related to the storage medium including the original storage destination storage area of the write data and the storage medium having the storage area as the storage destination in the buffer Whether to store the write data in the buffer is determined in consideration of the occurrence of this.
 また、バッファにおけるライトデータの格納先記憶領域を、応答遅延状態ではない記憶媒体に含まれる記憶領域から選択することで、応答遅延状態の記憶媒体に対するライトを回避している。さらに、バッファを構成する記憶領域が記憶媒体自身に含まれることから、ライトを実行中の記憶媒体における応答遅延発生時の影響回避が必要である。そこで、ライトを実行中の記憶媒体において応答遅延の発生を検出すると、上記実行中のライトで格納するデータについて、応答遅延状態ではない記憶媒体を選択してライトを実行している。 Also, writing to the storage medium in the response delay state is avoided by selecting the storage area for the write data in the buffer from the storage areas included in the storage medium that is not in the response delay state. Further, since the storage medium constituting the buffer is included in the storage medium itself, it is necessary to avoid the influence when a response delay occurs in the storage medium that is executing the write. Therefore, when occurrence of a response delay is detected in the storage medium that is executing the write, the storage medium that is not in the response delay state is selected and executed for the data stored by the write that is being executed.
 上記のように、第1の実施形態では、SSDなどのストレージを構成する各記憶媒体に含まれる記憶領域の一部を記憶媒体に対する共有のバッファ領域として利用する。当該バッファ領域の共有を実現するため、ホスト1(ストレージ制御装置)は、バッファ対象判定機能(バッファ対象判定部103)、バッファ内格納先決定機能(バッファ内格納先決定部104)、応答遅延判定機能(応答遅延判定部105)、バッファデータ移動指示機能(バッファデータ移動指示部106)、格納実行管理機能(格納実行管理テーブル107の管理)、記憶媒体状態管理機能(記憶媒体状態管理テーブル108の管理)、マッピング管理機能(マッピング管理テーブル109の管理)、バッファ領域管理機能(バッファ領域管理テーブル110の管理)をそれぞれ含む。 As described above, in the first embodiment, a part of the storage area included in each storage medium constituting the storage such as SSD is used as a shared buffer area for the storage medium. In order to realize the sharing of the buffer area, the host 1 (storage control device) has a buffer target determination function (buffer target determination unit 103), a buffer storage destination determination function (buffer storage destination determination unit 104), a response delay determination. Function (response delay determination unit 105), buffer data movement instruction function (buffer data movement instruction unit 106), storage execution management function (management of storage execution management table 107), storage medium state management function (storage medium state management table 108) Management), a mapping management function (management of the mapping management table 109), and a buffer area management function (management of the buffer area management table 110).
 バッファ対象判定機能は、記憶媒体の数量に応じた性能、容量、及び不揮発性を持つバッファを実現するために、ホストからライトを要求されたデータについて記憶媒体上に確保されたバッファに格納するか判定を行う。バッファ対象判定機能は、ストレージ装置を構成する記憶媒体に対する各ライト要求について、ライトデータをバッファに一時格納するべきか判定する。バッファ対象判定機能は、各ライト要求について本来の格納先である記憶媒体が応答遅延状態にある場合、又は記憶媒体に対する性能低下、寿命消費につながると判定された場合に、ライトデータをバッファ(共有のバッファ;仮想バッファ)に一時格納する判定を行う。記憶媒体に対する性能低下、寿命消費につながるライトの判定は、例えば記憶媒体がSSDである場合、小さいデータサイズのランダムライトはSSD内部のNAND型フラッシュにおいてライトアンプリフィケーションの原因となるため、ライトデータのサイズによって判定が可能である。 In order to realize a buffer with performance, capacity, and non-volatility according to the number of storage media, the buffer target determination function stores the data requested to be written by the host in a buffer secured on the storage medium. Make a decision. The buffer target determination function determines whether write data should be temporarily stored in the buffer for each write request to the storage medium constituting the storage apparatus. The buffer target determination function buffers the write data when the storage medium, which is the original storage destination for each write request, is in a response delay state, or when it is determined that the performance of the storage medium is reduced and the life is consumed. (Temporary buffer; virtual buffer). For example, when the storage medium is an SSD, the write determination of a write that leads to write degradation in the NAND flash in the SSD causes a write amplification. Judgment can be made according to the size.
 バッファ内格納先決定機能は、バッファにおいて格納先となる記憶媒体、アドレスを決定する。バッファ内格納先決定機能は、上記のバッファ対象判定機能においてバッファへの格納が必要と判断されたライトデータについて、格納先となる記憶媒体及び当該記憶媒体における格納先アドレスを決定する。バッファ内格納先決定機能は、ライトデータのバッファにおける格納先となる記憶媒体及びアドレスについて、記憶媒体状態管理機能から取得した各記憶媒体の応答遅延状態、バッファ領域管理機能から取得した各記憶媒体におけるバッファ用の記憶領域の利用状況を用いて決定する。 The buffer storage location determination function determines the storage medium and address to be stored in the buffer. The storage destination determination function in the buffer determines a storage medium that is a storage destination and a storage destination address in the storage medium for the write data that is determined to be stored in the buffer in the buffer target determination function. The storage destination determination function in the buffer is the response delay state of each storage medium acquired from the storage medium state management function and the storage medium acquired from the buffer area management function for the storage medium and address that is the storage destination in the write data buffer. This is determined using the usage status of the buffer storage area.
 応答遅延判定機能は、各記憶媒体における応答遅延の状態を判定し、応答遅延が発生した場合に実行中のライトアクセスについて格納先が他の記憶媒体になるように決定して再度ライト要求を行う。応答遅延判定機能は、各記憶媒体が応答遅延状態であるか否かについて、格納実行管理機能によって管理される各記憶媒体に対するライトコマンドの実行時間から判定する。応答遅延判定機能は、上記判定結果を記憶媒体状態管理機能に通知する。また、応答遅延判定機能は、応答遅延状態の記憶媒体において実行中のライトアクセスについて、当該ライトアクセスがバッファに対するデータの格納であるか否かによらず、バッファにおいて格納先となる記憶媒体、アドレスを再決定して再度ライトを行うように指示する。 The response delay determination function determines the state of response delay in each storage medium, and when a response delay occurs, determines that the storage destination is another storage medium for the write access being executed and makes a write request again. . The response delay determination function determines whether or not each storage medium is in a response delay state from the execution time of the write command for each storage medium managed by the storage execution management function. The response delay determination function notifies the storage medium state management function of the determination result. In addition, the response delay determination function, for a write access being executed in a response-delayed storage medium, regardless of whether or not the write access is storing data in the buffer, Is instructed to write again.
 バッファデータ移動指示機能は、バッファの容量が不足した場合にバッファ内のライトデータを本来の格納先となる記憶媒体のアドレスに格納することでバッファの空き容量を確保する。バッファデータ移動指示機能は、各記憶媒体のバッファ用の記憶領域においてライトデータを格納可能な空き容量が少なくなった場合に、バッファに格納されたライトデータを本来の格納先である記憶媒体とアドレスの指し示す領域にライトして、バッファ上の当該ライトデータを格納していた領域にデータを再格納可能な状態とすることで空き容量を確保する。 The buffer data movement instruction function secures the free space of the buffer by storing the write data in the buffer at the address of the original storage medium when the buffer capacity is insufficient. The buffer data movement instruction function reads the write data stored in the buffer and the address of the original storage medium and the address when the free space in which the write data can be stored in the buffer storage area of each storage medium decreases. Is written in the area pointed to, and free space is secured by making the data re-storable in the area where the write data is stored on the buffer.
 格納実行管理機能は、各記憶媒体に対して実行中のライト要求を管理する。格納実行管理機能は、各記憶媒体に対して実行中のライトアクセスについて、ライトアクセスの開始時刻、ライトデータの格納先アドレス、及びライトアクセスによって格納されるデータを管理する。また、格納実行管理機能は、管理対象のライトアクセスがバッファに対するデータ格納を行うものである場合、当該ライトアクセスによって格納されるデータが、本来格納されるはずである記憶媒体、及びアドレスについても管理する。 The storage execution management function manages the write request being executed for each storage medium. The storage execution management function manages the write access start time, the write data storage destination address, and the data stored by the write access for the write access being executed for each storage medium. The storage execution management function also manages the storage medium and the address where the data stored by the write access is supposed to be stored if the write access to be managed stores data in the buffer. To do.
 記憶媒体状態管理機能は、応答遅延判定機能によって判定された各記憶媒体の応答遅延状態を管理する。記憶媒体状態管理機能は、応答遅延判定機能によって判定された各記憶媒体に関する応答遅延状態の情報を受け取り、管理する。 The storage medium state management function manages the response delay state of each storage medium determined by the response delay determination function. The storage medium state management function receives and manages response delay state information regarding each storage medium determined by the response delay determination function.
 マッピング管理機能は、バッファに格納された各データに関する本来の格納先である記憶媒体と格納先アドレスの情報を管理する。マッピング管理機能は、各記憶媒体上に確保されたバッファ用の記憶領域から構成されるバッファに関して各記憶媒体のアドレスに対応するライトデータの格納の有無を管理する。また、マッピング管理機能は、ライトデータがバッファに格納されている場合はバッファ上の格納先である記憶媒体とアドレスの情報、及び格納された各ライトデータについて、本来の格納先である記憶媒体と格納先アドレスの情報を管理する。 The mapping management function manages the storage medium and storage destination address information that are the original storage destinations for each data stored in the buffer. The mapping management function manages whether or not the write data corresponding to the address of each storage medium is stored with respect to the buffer configured by the storage area for the buffer secured on each storage medium. In addition, when the write data is stored in the buffer, the mapping management function stores the storage medium and address information on the buffer, and the storage medium that is the original storage destination for each stored write data. Manages storage address information.
 バッファ領域管理機能は、バッファを構成する各記憶媒体上に確保された記憶領域に関する利用状況を管理する。バッファ領域管理機能は、各記憶媒体上に確保されたバッファ用の記憶領域について、記憶領域内の各アドレスに対して既にバッファしたライトデータを格納済か、新規にライトデータを格納可能な状態であるか管理する。 The buffer area management function manages the usage status of the storage areas secured on each storage medium constituting the buffer. The buffer area management function has already stored buffered write data for each address in the storage area for the buffer storage area secured on each storage medium, or can write new write data. Manage whether there is.
 第1の実施形態に係るシステムは、例えば、SSDを記憶媒体として使用するストレージにおいて使用するSSDの数量に応じた性能、容量、及び不揮発性を持つバッファを、低コストで実現することができる。具体的には、SSDの記憶領域の一部をバッファ用の領域として確保し、複数のSSDで確保された当該バッファ用の領域を組み合わせることで、ストレージ装置に含まれる(接続された)SSDに対する共有のバッファを構成する。上記共有のバッファを構成する領域数は、最大でシステムを接続するSSDの数量に等しいため、SSDの数量に比例したバッファ容量を得ることができる。 The system according to the first embodiment can realize, for example, a buffer having performance, capacity, and non-volatility corresponding to the number of SSDs used in a storage that uses SSDs as storage media at low cost. Specifically, a part of the SSD storage area is secured as a buffer area, and by combining the buffer areas secured by a plurality of SSDs, the SSD is included in the storage apparatus (connected). Configure a shared buffer. Since the number of areas constituting the shared buffer is at most equal to the number of SSDs connected to the system, a buffer capacity proportional to the number of SSDs can be obtained.
 また、不揮発記憶媒体であるSSDの一部をバッファとして使用するため、電源の障害によるデータ消失を回避できると同時に、追加の記憶媒体を必要とせず、実装コストを削減できる。そして、各SSDに対して小さいデータサイズのランダムライトが行われることを防ぐために、バッファ用の領域として確保された各SSD上の記憶領域(仮想バッファ)に対して追記形式でデータを格納する。 Also, since a part of the SSD, which is a non-volatile storage medium, is used as a buffer, data loss due to a power failure can be avoided, and at the same time, no additional storage medium is required and the mounting cost can be reduced. Then, in order to prevent random writing with a small data size for each SSD, data is stored in a write-once format in a storage area (virtual buffer) on each SSD secured as a buffer area.
 SSDに対する小さいデータサイズのランダムライトはバッファ用の領域、つまりSSDに対する連続書き込みに変換されるため、従来のバッファと同様にランダムライトの減少によるSSDの性能向上、長寿命化が実現できる。即ち、各記憶媒体にランダムライトの要求がなされたライトデータは、各記憶媒体に共有のバッファに連続して書き込まれるため(即ち、データの更新ではなくデータの追記のため)、SSD上での有効なライトデータの断片化が抑えられることで、例えば、SSDを記憶媒体に用いた場合に生じるライトアンプリフィケーションの発生要因であるブロック単位の消去(Erase)に伴う有効なライトデータの移動量が削減され、SSDの性能向上、長寿命化が実現できる。 Since the random write with a small data size for the SSD is converted into a buffer area, that is, continuous writing to the SSD, the performance of the SSD can be improved and the life can be extended by reducing the random write as in the conventional buffer. That is, write data for which a random write request has been made to each storage medium is written continuously to a shared buffer in each storage medium (that is, for data addition rather than data update). By suppressing the fragmentation of effective write data, for example, the amount of effective write data movement associated with erasure in units of blocks, which is a cause of write amplification that occurs when SSD is used as a storage medium. Can be reduced, and the performance improvement and life extension of the SSD can be realized.
 加えて、複数SSDのバッファ用の領域に対してストライピングを行うことで、SSDの数量に比例したバッファ性能が得られる。さらに、各SSDのバッファ用の領域間でRAIDなどを用いてバッファに格納されたデータについて冗長性を持たせることで、SSDにおける障害によるデータ消失を回避し、バッファの格納データに対する保護が実現できる。 In addition, by performing striping on the buffer area for a plurality of SSDs, buffer performance proportional to the number of SSDs can be obtained. Further, by providing redundancy for the data stored in the buffer using RAID or the like between the buffer areas of each SSD, it is possible to avoid data loss due to a failure in the SSD and to protect the data stored in the buffer. .
 以上、第1の実施形態に係るストレージシステムでは、第1の実施形態による方法を適用しない場合に比べて、記憶媒体であるSSDに対する不揮発かつ十分な性能、容量を持つバッファを低コストで提供し、小さなデータサイズのランダムライトを削減し、性能向上、長寿命化を実現することができる。また、バッファについて記憶媒体であるSSDの数量に比例した性能、容量を実現するため、バッファがSSDに対するライトアクセスのボトルネックになることが防止できる。 As described above, in the storage system according to the first embodiment, a non-volatile, sufficient performance and capacity buffer for the SSD as a storage medium is provided at a lower cost than when the method according to the first embodiment is not applied. It is possible to reduce random data with a small data size, improve performance, and extend the service life. In addition, since the performance and capacity in proportion to the number of SSDs that are storage media for the buffer are realized, it is possible to prevent the buffer from becoming a bottleneck for write access to the SSD.
 上記の実施形態の一部又は全部は、以下のようにも記載され得るが、以下には限られない。
[形態1]
 上述の第1の視点に係るストレージシステムのとおりである。
[形態2]
 前記アクセス実行部は、
 前記判定部が、前記ホストからのライトデータのデータサイズに基づきライトデータを前記バッファ領域に格納すると判定した場合に、前記ホストからのライトデータを前記バッファ領域に追記する、形態1のストレージシステム。
[形態3]
 前記ストレージ制御装置は、
 前記判定部が、ライトデータを前記バッファ領域に格納すると判定した場合に、
 前記バッファ領域をなす記憶媒体のうち、いずれの記憶媒体に定義した前記第1の記憶領域をライトデータの格納先とするかに関する決定を、前記第1の記憶領域が定義された記憶媒体それぞれの応答状況に基づき行う、格納先決定部をさらに備える、形態1又は2のストレージシステム。
[形態4]
 前記格納先決定部は、
 前記バッファ領域をなす記憶媒体のうち、いずれの記憶媒体に定義した前記第1の記憶領域をライトデータの格納先とするかに関する決定を、前記第1の記憶領域それぞれの空き容量に基づき行う、形態3のストレージシステム。
[形態5]
 前記ストレージ制御装置は、
 前記記憶媒体それぞれに対して行われたライトアクセスの実行時間に対して閾値処理を行い、前記閾値処理の結果に応じて前記記憶媒体が応答遅延状態であるか否かを判定すると共に、
 ライトアクセスを実行中の前記記憶媒体が前記応答遅延状態にあると判断した場合に、前記格納先決定部に対し、前記応答遅延状態にある記憶媒体が実行しているライトアクセスに対応するライトデータを前記バッファ領域に格納するように指示する、遅延判定部をさらに備える、形態3又は4のストレージシステム。
[形態6]
 前記ストレージ制御装置は、
 前記第1の記憶領域それぞれの空き容量が所定の基準値以上であるか否かを判定し、空き容量が前記所定の基準値を下回ると判定された前記第1の記憶領域に格納されたデータを、前記ホストから書き込み先として指定された記憶媒体の前記第2の記憶領域に移動させる、データ移動部をさらに備える、形態1乃至5のいずれか一に記載のストレージシステム。
[形態7]
 前記ストレージ制御装置は、前記2以上の記憶媒体それぞれに定義した前記第1の記憶領域を、前記2以上の記憶媒体に対する共有のバッファとして管理する、形態1乃至6のいずれか一に記載のストレージシステム。
[形態8]
 上述の第2の視点に係るストレージ制御装置のとおりである。
[形態9]
 上述の第3の視点に係るストレージ制御方法のとおりである。
[形態10]
 上述の第4の視点に係るプログラムのとおりである。
 なお、形態8~形態10は、形態1と同様に、形態2~形態7に展開することが可能である。
A part or all of the above embodiments can be described as follows, but is not limited to the following.
[Form 1]
This is the same as the storage system according to the first aspect described above.
[Form 2]
The access execution unit
The storage system according to mode 1, wherein when the determination unit determines to store write data in the buffer area based on the data size of the write data from the host, the write data from the host is added to the buffer area.
[Form 3]
The storage control device
When the determination unit determines to store the write data in the buffer area,
Of the storage media forming the buffer area, the determination as to which storage medium the first storage area defined as the storage destination of the write data is made for each storage medium in which the first storage area is defined. The storage system according to mode 1 or 2, further comprising a storage destination determination unit that performs based on the response status.
[Form 4]
The storage location determination unit
The storage medium forming the buffer area is determined based on the free capacity of each of the first storage areas, with respect to which storage medium the first storage area defined as the storage destination of the write data is set. The storage system of form 3.
[Form 5]
The storage control device
Performing threshold processing on the execution time of the write access performed for each of the storage media, determining whether or not the storage media is in a response delay state according to the result of the threshold processing;
When it is determined that the storage medium that is executing write access is in the response delay state, the write data corresponding to the write access that is being executed by the storage medium that is in the response delay state is sent to the storage destination determination unit. The storage system according to mode 3 or 4, further comprising a delay determination unit that instructs to store the data in the buffer area.
[Form 6]
The storage control device
It is determined whether or not the free space of each of the first storage areas is greater than or equal to a predetermined reference value, and the data stored in the first storage area that has been determined that the free capacity is less than the predetermined reference value The storage system according to any one of aspects 1 to 5, further comprising a data moving unit that moves the data to the second storage area of the storage medium designated as the write destination from the host.
[Form 7]
The storage according to any one of forms 1 to 6, wherein the storage control device manages the first storage area defined in each of the two or more storage media as a shared buffer for the two or more storage media. system.
[Form 8]
The storage control apparatus according to the second aspect described above.
[Form 9]
This is the same as the storage control method according to the third aspect described above.
[Mode 10]
It is as the program which concerns on the above-mentioned 4th viewpoint.
Forms 8 to 10 can be developed into forms 2 to 7, as with form 1.
 なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。 In addition, each disclosure of the above cited patent documents, etc. shall be incorporated by reference into this document. Within the scope of the entire disclosure (including claims) of the present invention, the embodiments and examples can be changed and adjusted based on the basic technical concept. In addition, various combinations or selections of various disclosed elements (including each element in each claim, each element in each embodiment or example, each element in each drawing, etc.) within the scope of the entire disclosure of the present invention. Is possible. That is, the present invention of course includes various variations and modifications that could be made by those skilled in the art according to the entire disclosure including the claims and the technical idea. In particular, with respect to the numerical ranges described in this document, any numerical value or small range included in the range should be construed as being specifically described even if there is no specific description.
1 ホスト
2、201 ストレージ装置
2A~2C 記憶媒体
3 ネットワーク
21 仮想媒体
22 仮想バッファ
101、211 アクセス実行部
102 作業メモリ
103 バッファ対象判定部
104 バッファ内格納先決定部
105 応答遅延判定部
106 バッファデータ移動指示部
107 格納実行管理テーブル
108 記憶媒体状態管理テーブル
109 マッピング管理テーブル
110 バッファ領域管理テーブル
202 ストレージ制御装置
212 判定部
1071 発行時刻
1072 発行先記憶媒体
1073 発行先アドレス
1074 発行サイズ
1075 格納データポインタ
1076 要求記憶媒体
1077 要求アドレス
1078 格納先変更フラグ
1079 格納先変更禁止フラグ
1081 記憶媒体識別子
1082 応答遅延フラグ
1091 仮想媒体識別子
1092 仮想媒体アドレス
1093 仮想バッファ識別子
1094 仮想バッファアドレス
1101 仮想バッファアドレス
1102 仮想媒体識別子
1103 仮想媒体アドレス
1104 空き容量
DESCRIPTION OF SYMBOLS 1 Host 2, 201 Storage apparatus 2A-2C Storage medium 3 Network 21 Virtual medium 22 Virtual buffer 101, 211 Access execution part 102 Work memory 103 Buffer object judgment part 104 In-buffer storage destination decision part 105 Response delay judgment part 106 Buffer data movement Instructing unit 107 Storage execution management table 108 Storage medium state management table 109 Mapping management table 110 Buffer area management table 202 Storage controller 212 Judgment unit 1071 Issue time 1072 Issue destination storage medium 1073 Issue destination address 1074 Issue size 1075 Stored data pointer 1076 Request Storage medium 1077 Request address 1078 Storage location change flag 1079 Storage location change prohibition flag 1081 Storage media identifier 1082 Response delay flag 1091 Virtual media information Child 1092 virtual media address 1093 virtual buffer identifier 1094 virtual buffer address 1101 virtual buffer address 1102 virtual media identifier 1103 virtual media address 1104 space

Claims (10)

  1.  少なくとも2以上の記憶媒体を有するストレージ装置と、
     前記2以上の記憶媒体それぞれの記憶領域を第1の記憶領域と第2の記憶領域に分割して定義すると共に、前記第1の記憶領域をバッファ領域、前記第2の記憶領域をホストに提供する記憶領域として管理する、ストレージ制御装置と、
     を含み、
     前記ストレージ制御装置は、
     前記第1及び第2の記憶領域に対するアクセスを制御するアクセス実行部と、
     前記ホストからのライトデータのデータサイズ及び前記ホストからライトデータの書き込みを指定された記憶媒体の応答状況の少なくとも一方に基づき、ライトデータを前記バッファ領域に格納するか否かを判定する判定部と、
     を備える、ストレージシステム。
    A storage device having at least two or more storage media;
    The storage area of each of the two or more storage media is defined by being divided into a first storage area and a second storage area, and the first storage area is provided as a buffer area and the second storage area is provided to a host. A storage control device that manages the storage area
    Including
    The storage control device
    An access execution unit for controlling access to the first and second storage areas;
    A determination unit that determines whether to store the write data in the buffer area based on at least one of a data size of the write data from the host and a response status of the storage medium designated to write the write data from the host; ,
    A storage system.
  2.  前記アクセス実行部は、
     前記判定部が、前記ホストからのライトデータのデータサイズに基づきライトデータを前記バッファ領域に格納すると判定した場合に、前記ホストからのライトデータを前記バッファ領域に追記する、請求項1のストレージシステム。
    The access execution unit
    The storage system according to claim 1, wherein when the determination unit determines to store write data in the buffer area based on a data size of write data from the host, the write data from the host is added to the buffer area. .
  3.  前記ストレージ制御装置は、
     前記判定部が、ライトデータを前記バッファ領域に格納すると判定した場合に、
     前記バッファ領域をなす記憶媒体のうち、いずれの記憶媒体に定義した前記第1の記憶領域をライトデータの格納先とするかに関する決定を、前記第1の記憶領域が定義された記憶媒体それぞれの応答状況に基づき行う、格納先決定部をさらに備える、請求項1又は2のストレージシステム。
    The storage control device
    When the determination unit determines to store the write data in the buffer area,
    Of the storage media forming the buffer area, the determination as to which storage medium the first storage area defined as the storage destination of the write data is made for each storage medium in which the first storage area is defined. The storage system according to claim 1, further comprising a storage destination determination unit that performs based on a response status.
  4.  前記格納先決定部は、
     前記バッファ領域をなす記憶媒体のうち、いずれの記憶媒体に定義した前記第1の記憶領域をライトデータの格納先とするかに関する決定を、前記第1の記憶領域それぞれの空き容量に基づき行う、請求項3のストレージシステム。
    The storage location determination unit
    The storage medium forming the buffer area is determined based on the free capacity of each of the first storage areas, with respect to which storage medium the first storage area defined as the storage destination of the write data is set. The storage system according to claim 3.
  5.  前記ストレージ制御装置は、
     前記記憶媒体それぞれに対して行われたライトアクセスの実行時間に対して閾値処理を行い、前記閾値処理の結果に応じて前記記憶媒体が応答遅延状態であるか否かを判定すると共に、
     ライトアクセスを実行中の前記記憶媒体が前記応答遅延状態にあると判断した場合に、前記格納先決定部に対し、前記応答遅延状態にある記憶媒体が実行しているライトアクセスに対応するライトデータを前記バッファ領域に格納するように指示する、遅延判定部をさらに備える、請求項3又は4のストレージシステム。
    The storage control device
    Performing threshold processing on the execution time of the write access performed for each of the storage media, determining whether or not the storage media is in a response delay state according to the result of the threshold processing;
    When it is determined that the storage medium that is executing write access is in the response delay state, the write data corresponding to the write access that is being executed by the storage medium that is in the response delay state is sent to the storage destination determination unit. The storage system according to claim 3, further comprising a delay determination unit that instructs to store the data in the buffer area.
  6.  前記ストレージ制御装置は、
     前記第1の記憶領域それぞれの空き容量が所定の基準値以上であるか否かを判定し、空き容量が前記所定の基準値を下回ると判定された前記第1の記憶領域に格納されたデータを、前記ホストから書き込み先として指定された記憶媒体の前記第2の記憶領域に移動させる、データ移動部をさらに備える、請求項1乃至5のいずれか一項に記載のストレージシステム。
    The storage control device
    It is determined whether or not the free space of each of the first storage areas is greater than or equal to a predetermined reference value, and the data stored in the first storage area that has been determined that the free capacity is less than the predetermined reference value The storage system according to any one of claims 1 to 5, further comprising a data moving unit that moves the data from the host to the second storage area of the storage medium designated as a writing destination.
  7.  前記ストレージ制御装置は、前記2以上の記憶媒体それぞれに定義した前記第1の記憶領域を、前記2以上の記憶媒体に対する共有のバッファとして管理する、請求項1乃至6のいずれか一項に記載のストレージシステム。 7. The storage control device according to claim 1, wherein the storage control device manages the first storage area defined in each of the two or more storage media as a shared buffer for the two or more storage media. 8. Storage system.
  8.  少なくとも2以上の記憶媒体を有するストレージ装置を制御し、
     前記2以上の記憶媒体それぞれの記憶領域を第1の記憶領域と第2の記憶領域に分割して定義すると共に、前記第1の記憶領域をバッファ領域、前記第2の記憶領域をホストに提供する記憶領域として管理する、ストレージ制御装置であって、
     前記第1及び第2の記憶領域に対するアクセスを制御するアクセス実行部と、
     前記ホストからのライトデータのデータサイズ及び前記ホストからライトデータの書き込みを指定された記憶媒体の応答状況の少なくとも一方に基づき、ライトデータを前記バッファ領域に格納するか否かを判定する判定部と、
     を備える、ストレージ制御装置。
    Controlling a storage device having at least two or more storage media;
    The storage area of each of the two or more storage media is defined by being divided into a first storage area and a second storage area, and the first storage area is provided as a buffer area and the second storage area is provided to a host. A storage control device that manages as a storage area,
    An access execution unit for controlling access to the first and second storage areas;
    A determination unit that determines whether to store the write data in the buffer area based on at least one of a data size of the write data from the host and a response status of the storage medium designated to write the write data from the host; ,
    A storage control device.
  9.  少なくとも2以上の記憶媒体を有するストレージ装置を含み、
     前記2以上の記憶媒体それぞれの記憶領域は第1の記憶領域と第2の記憶領域に分割して定義されると共に、前記第1の記憶領域をバッファ領域、前記第2の記憶領域をホストに提供する記憶領域として管理された、ストレージシステムにおいて、
     前記第1及び第2の記憶領域に対するアクセスを制御するステップと、
     前記ホストからのライトデータのデータサイズ及び前記ホストからライトデータの書き込みを指定された記憶媒体の応答状況の少なくとも一方に基づき、ライトデータを前記バッファ領域に格納するか否かを判定するステップと、
     を含む、ストレージ制御方法。
    Including a storage device having at least two or more storage media;
    The storage areas of each of the two or more storage media are defined by being divided into a first storage area and a second storage area, the first storage area is a buffer area, and the second storage area is a host. In a storage system managed as a storage area to be provided,
    Controlling access to the first and second storage areas;
    Determining whether to store the write data in the buffer area based on at least one of the data size of the write data from the host and the response status of the storage medium designated to write the write data from the host;
    Including a storage control method.
  10.  少なくとも2以上の記憶媒体を有するストレージ装置を制御し、
     前記2以上の記憶媒体それぞれの記憶領域を第1の記憶領域と第2の記憶領域に分割して定義すると共に、前記第1の記憶領域をバッファ領域、前記第2の記憶領域をホストに提供する記憶領域として管理する、ストレージ制御装置に搭載されたコンピュータに実行させるプログラムであって、
     前記第1及び第2の記憶領域に対するアクセスを制御する処理と、
     前記ホストからのライトデータのデータサイズ及び前記ホストからライトデータの書き込みを指定された記憶媒体の応答状況の少なくとも一方に基づき、ライトデータを前記バッファ領域に格納するか否かを判定する処理と、
     を実行させるプログラム。
    Controlling a storage device having at least two or more storage media;
    The storage area of each of the two or more storage media is defined by being divided into a first storage area and a second storage area, and the first storage area is provided as a buffer area and the second storage area is provided to a host. A storage area management program that is executed by a computer installed in a storage control device,
    Processing for controlling access to the first and second storage areas;
    A process of determining whether to store write data in the buffer area based on at least one of a data size of write data from the host and a response status of a storage medium designated to write the write data from the host;
    A program that executes
PCT/JP2016/066285 2015-06-02 2016-06-01 Storage system, storage control device, storage control method, and program WO2016194979A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015-112114 2015-06-02
JP2015112114 2015-06-02

Publications (1)

Publication Number Publication Date
WO2016194979A1 true WO2016194979A1 (en) 2016-12-08

Family

ID=57440632

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/066285 WO2016194979A1 (en) 2015-06-02 2016-06-01 Storage system, storage control device, storage control method, and program

Country Status (1)

Country Link
WO (1) WO2016194979A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019244656A1 (en) * 2018-06-22 2019-12-26 日本電気株式会社 Storage device
CN111949203A (en) * 2019-05-17 2020-11-17 北京兆易创新科技股份有限公司 Memory and control method and control device thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009181314A (en) * 2008-01-30 2009-08-13 Toshiba Corp Information recording device and control method thereof
JP2012123551A (en) * 2010-12-07 2012-06-28 Fujitsu Ltd Information recording device
JP2012252414A (en) * 2011-05-31 2012-12-20 Hitachi Solutions Ltd Information terminal used for optional tour, optional tour information processing server, optional tour information processing system, and optional tour information processing method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009181314A (en) * 2008-01-30 2009-08-13 Toshiba Corp Information recording device and control method thereof
JP2012123551A (en) * 2010-12-07 2012-06-28 Fujitsu Ltd Information recording device
JP2012252414A (en) * 2011-05-31 2012-12-20 Hitachi Solutions Ltd Information terminal used for optional tour, optional tour information processing server, optional tour information processing system, and optional tour information processing method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019244656A1 (en) * 2018-06-22 2019-12-26 日本電気株式会社 Storage device
JPWO2019244656A1 (en) * 2018-06-22 2021-06-10 日本電気株式会社 Storage device
JP7075067B2 (en) 2018-06-22 2022-05-25 日本電気株式会社 Storage device
CN111949203A (en) * 2019-05-17 2020-11-17 北京兆易创新科技股份有限公司 Memory and control method and control device thereof
CN111949203B (en) * 2019-05-17 2024-03-01 兆易创新科技集团股份有限公司 Memory, control method and control device thereof

Similar Documents

Publication Publication Date Title
USRE49162E1 (en) Host-controlled garbage collection
TWI700586B (en) Computer system and control method of storage device
JP6007329B2 (en) Storage controller, storage device, storage system
JP5593577B2 (en) Storage system and control method thereof
US9026734B2 (en) Memory system and data deleting method
JP6007332B2 (en) Storage system and data write method
KR100923990B1 (en) Computing system based on characteristcs of flash storage
US20150331624A1 (en) Host-controlled flash translation layer snapshot
WO2016175028A1 (en) Information processing system, storage control device, storage control method, and storage control program
JP2020035300A (en) Information processing apparatus and control method
JP2013242908A (en) Solid state memory, computer system including the same, and operation method of the same
KR102585883B1 (en) Operating method of memory system and memory system
WO2015052833A1 (en) Storage device, storage system, and storage device control method
JPWO2015076354A1 (en) Storage apparatus, method and program
JP2016503927A (en) Storage system and cache control method
KR102347841B1 (en) Memory management apparatus and control method thereof
US11288197B2 (en) Method and apparatus for performing pipeline-based accessing management in a storage server
WO2016194979A1 (en) Storage system, storage control device, storage control method, and program
CN115203079A (en) Method for writing data into solid state disk
JP5594647B2 (en) Storage apparatus and control method thereof
US20110264848A1 (en) Data recording device
US10162573B2 (en) Storage management system, storage management method, storage medium and information processing system
JP5953245B2 (en) Information processing system
KR20110096829A (en) Semiconductor storage device and control method of the same
JP6276208B2 (en) Memory system and program

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

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP