WO2015170702A1 - ストレージ装置と情報処理システム及びストレージ制御方法とプログラム - Google Patents

ストレージ装置と情報処理システム及びストレージ制御方法とプログラム Download PDF

Info

Publication number
WO2015170702A1
WO2015170702A1 PCT/JP2015/063202 JP2015063202W WO2015170702A1 WO 2015170702 A1 WO2015170702 A1 WO 2015170702A1 JP 2015063202 W JP2015063202 W JP 2015063202W WO 2015170702 A1 WO2015170702 A1 WO 2015170702A1
Authority
WO
WIPO (PCT)
Prior art keywords
access
storage
storage device
host
command
Prior art date
Application number
PCT/JP2015/063202
Other languages
English (en)
French (fr)
Inventor
周吾 小川
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2016517914A priority Critical patent/JPWO2015170702A1/ja
Publication of WO2015170702A1 publication Critical patent/WO2015170702A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/08Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers from or to individual record carriers, e.g. punched card, memory card, integrated circuit [IC] card or smart card

Definitions

  • the present invention is based on the priority claim of Japanese Patent Application No. 2014-098012 (filed on May 9, 2014), and the entire contents of the same application are incorporated herein by reference. It shall be.
  • the present invention relates to a storage device, an information processing system, a storage control method, and a program.
  • SSD solid state drive
  • HDD hard disk drive
  • reading (Read) and writing (Write) are performed in page units.
  • the page of the NAND flash memory has a size of about 2K (K is 1024) bytes to 16 KB as a general example, and additionally stores additional information for storing error correction information and the like.
  • This page is different from the unit by which a computer (CPU (Central Processing Unit), processor, data processing apparatus) (referred to as a “host”) accessing the SSD accesses (referred to as “host”).
  • CPU Central Processing Unit
  • host accessing the SSD accesses
  • MLC Multi Level Cell
  • TLC Triple
  • SLC Single-Level Cell
  • Level Cell Level Cell
  • the SSD has, for example, an interface similar to an HDD, such as SAS (Serial Attached SCSI (Small Computer System Interface)) or SATA (Serial ATA).
  • the host which is the request source of access, can perform read access and write access to the SSD in the same manner as the HDD.
  • NAND flash memory which is a storage device of an SSD, provides an access form different from that of an HDD. Since the NAND flash memory can not directly update (overwrite) stored data, in addition to data read and write, it provides erase processing of stored data. Erase processing for the NAND flash memory is performed in units of blocks of a plurality of pages.
  • the SSD for example, in a controller (control device) provided in the SSD, conversion processing from access request for storage from the host to access to NAND flash memory is performed. This is to absorb the difference in the access form with the HDD with respect to the NAND flash memory, and allow the host to access the same as the HDD. For example, when an update of data stored in the NAND flash memory occurs in a write access from the host, the controller of the SSD updates the data to be updated before writing the data to the NAND flash memory. Execute batch erase of blocks including stored pages.
  • the controller of the SSD In order to protect data of a valid page (page holding non-erasable data) in the block, the controller of the SSD erases the block of the NAND flash memory, the data of the valid page of the NAND flash memory The data is read and saved in a buffer memory such as, for example, a dynamic random access memory (DRAM). Subsequently, the controller of the SSD collectively erases the block of the NAND flash memory. Subsequently, the controller of the SSD merges the saved data and the data to be updated on the buffer memory, and the block erased data of the NAND flash memory is stored page by page in the block.
  • DRAM dynamic random access memory
  • the controller of the SSD may execute storage area management processing such as garbage collection automatically (autonomously), for example, in order to secure blocks and pages capable of storing data newly in the NAND flash memory. .
  • garbage collection process for a block for which new data can not be recorded because data has already been written, the valid page of the block can be stored so that new data can be stored in the block again. Is moved to another block, and the block is erased.
  • the controller of the SSD stores new data in a block in which other data is not stored in the NAND flash memory Do.
  • the valid data stored in the page included in the same block before processing the Write access request is normally written to another free block page by the storage area management process. That is, the correspondence between the logical address related to the valid data in the host and the storage address (physical address) of the valid data on the SSD side is the original state by writing the valid data to another page by the storage area management process. Change from
  • a control device that controls processing of the storage device when uploading data to the storage device from the outside has accessed the storage device.
  • the processing load of the storage device is calculated, and when the processing load exceeds a threshold, the data transfer amount to the storage device is limited to the remote server.
  • An arrangement is disclosed to direct.
  • Patent Document 2 schedules I / O requests using characteristics of the storage device to match the response characteristics of the storage device, and the device is in an unknown (unknown) state.
  • a configuration is disclosed that performs an operation on the device to change the device state to a known state.
  • the controller provided in the SSD protects the content written by the user when the write protect is effective (prohibiting writing to the device)
  • An arrangement is disclosed that returns an error when a write command is issued from a host device.
  • mapping information for the address space of the SSD to be referred to on the host side (such as correspondence between the logical address on the host side and the physical address in the SSD) also changes dynamically.
  • the controller of the SSD autonomously executes storage area management processing such as garbage collection for securing the free space (the processing load of the storage area management processing is relatively large). Also, the host basically issues an access request to the SSD, and grasps the state of the SSD according to the response. For this reason, there are cases where the host side can not always accurately know the state of the SSD, such as when the operation of the SSD shifts to an unexpected state (for example, a response delay, a temporary stop of response, etc.).
  • the access load generated inside the SSD may not be the same.
  • the access characteristics resulting from the device characteristics of the NAND flash memory make it difficult to predict the access load from the host.
  • NAND flash memories of multi-level cells MLC, TLC
  • MLC multi-level cells
  • the access load generated inside the SSD is not the same.
  • the access request from the host unintentionally causes the SSD to be in a high-load state, or the response delay or temporary response of the access to the SSD A stop occurs.
  • the response may be delayed or may become temporarily impossible.
  • the response delay of the access in the SSD may affect as a failure, for example, in the form of a timeout in the operation of the entire system. From the above, in order to maintain the reliability and stability of the information processing system, the response delay of the storage medium represented by the SSD and the elimination and avoidance of the temporary response stop state are important issues.
  • the storage medium is re-initialized to recover from the response delay and stop state.
  • the storage medium does not have a protection function of data stored from the host and data used for control and management of the storage medium in case of abnormal stop, there is a possibility that the data is destroyed.
  • Patent Document 3 is write-protecting for the purpose of content protection, which is different from the above-mentioned problem of solving or avoiding the problem of the response delay of the access in the SSD and the occurrence of the temporary response stop. (Does not solve the above problems).
  • one object of the present invention is to provide an apparatus, system, method and program for solving any of the above-mentioned problems.
  • a command queue which temporarily holds an access command obtained by converting an access request from a host for access to a storage device, and analysis of the access command held in the command queue A first means for judging whether writing to the storage device should be prohibited based on the result, and a second means for returning an error response to an access request from the host in the case of writing prohibition;
  • a storage apparatus is provided (first aspect).
  • At least one storage device is provided, and a host is provided, the host accessing the storage device upon receiving an error response to the access request to the storage device.
  • An information processing system is provided which reissues a request or issues the access request to another storage device (second aspect).
  • the storage device may be configured of the storage device of the first side (third side).
  • a control method of storage connected to a host wherein an access command obtained by converting an access request from the host for access to a storage device is temporarily held in a command queue, Based on the analysis result of the access command held in the command queue, it is judged whether or not the writing to the storage device should be prohibited, and in the case of the writing prohibition, an error response is returned to the access request from the host
  • a storage control method is provided (fourth aspect).
  • a computer that configures storage connected to a host is held in a command queue that temporarily holds an access command obtained by converting an access request from the host for access to a storage device.
  • a program is provided to execute a second process of returning an error response to the access request from the host (fifth aspect).
  • a non-transitory recording medium such as a computer readable semiconductor memory or a magnetic / optical recording medium storing the program according to the fifth or sixth aspect. (7th side).
  • the response delay of the storage device and the temporary response stop state can be eliminated or avoided.
  • FIG. 1 It is a figure which illustrates the system configuration of one embodiment of the present invention. It is a figure which illustrates the structure of the host of one Embodiment of this invention. It is a figure which illustrates the structure of the storage medium of one Embodiment of this invention. It is a figure which illustrates the mapping table of FIG. It is a figure which illustrates the storage (storage medium) state table of FIG. It is a figure which illustrates the access request table of FIG. It is a figure which illustrates the command queue of FIG. It is a flowchart explaining operation
  • a storage apparatus 200 is connected to an access request source (host) (not shown), and uses an access request from the access request source (host) for accessing the storage device 201. It is determined whether writing to the storage device 201 should be prohibited based on the command queue 202 temporarily holding the converted access command and the analysis result of the access command held in the command queue 202.
  • 1 means (first unit) 203, and second means (second unit) 204 for returning an error response to the access request from the access request source (host) in the case of write prohibition. Including.
  • the access request source host can immediately recognize that the access request has failed by returning an error response.
  • the storage device of the access destination is switched to an alternative storage device other than the storage device 200, or accessed again after the high-load state of the storage device 200 is resolved. And the choice of proper access processing is possible. As a result, access safety and efficiency can be secured.
  • first and second means first and second units 203 and 204, and the processing of the command queue 202 (for example, processing for insertion into a queue (enqueue), processing for removal from a queue (dequeue))
  • the processing / function may be executed by a program executed by a computer.
  • the first means (first unit) 203 is an access command waiting in the command queue 202 or Load determination unit (load determination unit) 205 that determines a load based on an analysis of at least one of the number of access commands and the content of the access commands with respect to access commands waiting in the command queue 202 and access commands being accessed.
  • a write permission change unit (write permission change unit) 206 for prohibiting writing to the storage device 201 when the load exceeds a predetermined threshold (reference value).
  • the write prohibition to the storage device 201 is set based on the analysis or prediction result of the load amount, the processing delay amount, etc., and the high load condition, response delay is eliminated and avoided. Furthermore, recovery of the storage device 201 from the write inhibit state to the write enable state can be achieved.
  • a command interruption unit (command interruption unit) 207 may be further included which clears at least a part of access commands (for example, a write access command) among the commands and interrupts the at least part of the access commands.
  • the command interrupting means 207 makes access to a part or all of the access commands in the access execution state to the storage device 201 at that time (for example, Write Control for interrupting the access command may be performed.
  • the host 1 that has issued the access request corresponding to the interrupted access command generates an error response corresponding to the access request, or occurrence of time-out, etc. (eg, no response from the storage device to which the access request is issued) (Period over time), it can be recognized that the access request has failed.
  • the processing of the first and second means 203 and 204, the processing of the command queue 202, and the command interruption means 207 may of course be executed by a program executed by a computer to execute the processing / functions. is there.
  • the storage device 201 is configured to include, for example, a NAND flash memory.
  • the storage device 200 detects a response delay to an access request from the host 1 in the storage device 200 or predicts a high load inside the storage device 200 causing a response delay state, etc. (A) access to the storage device 201, and (B) abort one or both of the processing for the access request from the host 1;
  • the storage device 200 returns, to the host 1, as a response, the aborted access and error information corresponding to the access request related to the process (which may be information indicating that the access request has not been made). .
  • the storage device 200 reduces the load on the storage device 200 by stopping the access to the storage device 201 and the processing of the access request from the host 1. As a result, the response delay state is eliminated. Alternatively or alternatively, occurrence of a response delay state can be avoided in advance.
  • the host 1 of the request source of the Write access request that receives an error or an unexecuted response from the storage device 200 of the write access request issue target sends a request to the storage device 200 to prevent the storage device 200 from becoming a response delay state.
  • (1) Other storage (not shown) connected to the host 1 (for example, alternative storage 3 in FIG. 1)
  • Storage such as dynamic random access memory (DRAM) (not shown) on the host 1
  • DRAM dynamic random access memory
  • the host 1 which is the access request source does not perform read access that has not been executed and read access after the write access request at predetermined timing (for example, immediately or Request may be issued to the storage apparatus 200).
  • the internal load on the storage device 200 is lowered, and response delay is eliminated, or even before it is determined that avoidance is possible, the read access request from the host 1 is continuously received. It is also good.
  • the storage device 200 is an SSD, the read access is completed by referring to data stored in the NAND flash memory used as the storage device 201.
  • the load for the Read access request is lighter than that for the Write access request (Read does not involve updating the data stored in the NAND flash memory, and stores the data, updates the storage area mapping information, and erases it. Etc. is not done). Therefore, even if the read access to the NAND flash memory is not prohibited, the storage apparatus 200 does not further deteriorate the response delay.
  • the host 1 does not make a write access request to the storage device 200 in the write inhibition state until the response delay is eliminated or can be avoided.
  • the host 1 is connected to the host 1 with respect to the write access request for the storage device 200, other storage (not shown) other than the storage device 200, storage including the main storage on the host 1, or other Make a write access request to the host.
  • the host 1 also determines whether the response delay in the storage device 200 has been eliminated and the completion of the avoidance has been determined.
  • the storage device 200 may notify the status information of the storage device 200 in response to the inquiry about the internal load status or the response delay cancellation status from the host.
  • the storage apparatus 200 receives error information (may be information indicating that the access request has not been executed) in response to an access request other than Read from the host 1 until it is determined that the response delay has been eliminated or avoided. May be returned as a response.
  • the storage 2 (an embodiment corresponding to the storage device 200 of the basic concept of FIG. 16 and FIG. 17) comprises one or more storage devices 21 and a storage control device.
  • (Controller) 29 is provided.
  • the storage control device 29 includes an access conversion means (access conversion unit) 22, an access filter means (access filter unit) 23, a command queue (command queue means) 24, a command issuing means (command issuing unit) 25, a load determination means (load).
  • the determination unit 26 includes a write permission change unit (write permission change unit) 27 and a command interrupt unit (command interrupt unit) 28.
  • the processing / function may be realized by a program executed by a computer for at least one of the means (units) 22-28 of the storage control device 29.
  • the storage device 21 is made of, for example, a NAND flash memory.
  • the access conversion means 22 converts an access request from the host 1 to the storage 2 into an access command to the storage device 21 in the storage.
  • the access filter means 23 returns error information as a response to the host 1 when the write request is in a state in which the access request from the host 1 is not Read.
  • the command queue 24 stores the access command converted by the access conversion means 22.
  • the access command is queued in the command queue 24 in the process waiting state until the command issuing means 25 performs the process.
  • the command queue 24 may queue access commands in arrival order (enqueue) and dequeue them in order (FiFO: First In First Out: First-In-First-Out method), type of access command, access
  • the queue reordering and fetching of the command queue 24 may be scheduled according to the data length or the priority.
  • the command issuing unit 25 issues the access command (the access command at the head of the queue in the case of FIFO) stored in the command queue 24 to the storage device 21.
  • the access command queued in the command queue 24 may be connected to the command queue 24 until the access processing of the access command to the storage device 21 is completed.
  • the command issuing unit 25 may dequeue the access command stored in the command queue 24 from the command queue 24 and issue an access to the storage device 21. In this case, while the access to the storage device 21 is completed, the command issuing unit 25 holds the access command dequeued from the command queue 24 in its own unit.
  • the load determination means 26 estimates the storage load from the access commands queued in the command queue 24.
  • the write permission change unit 27 shifts to the write prohibited state when the load determination unit 26 determines that the load is high, and shifts to the write permission state when the load decreases from the high load state.
  • the command interrupting means 28 may discard access commands other than Read in the command queue 24 or all access commands including Read.
  • the access conversion means 22 receives an access request to the storage 2 from the host 1 and manages processing up to response. Further, the access conversion means 22 converts the received access request into an access command for one or more storage devices 21 in the storage 2 and stores the access command in the command queue 24. Furthermore, the access conversion means 22 receives the result of execution of the converted access command, and notifies the host 1 of the result of the access request when the processing corresponding to the access request is completed (this function is shown in FIG. 16 corresponding to the second means 204).
  • the access filter means 23 is in error (or not yet executed) in response to an access request other than Read from the host 1 when the storage 2 is in the write prohibition state in response to the access request received by the access conversion means 22.
  • the access conversion means 22 is instructed to notify the host 1 of error information indicating.
  • the command queue 24 stores the access command waiting for issue to the storage device 21 converted by the access conversion means 22.
  • the command issuing unit 25 reads an access command for the storage device 21 from the command queue 24 and accesses the storage device 21. When the access is Read, the command issuing unit 25 receives the data read from the storage device 21.
  • the load determination means 26 analyzes the access commands queued in the command queue 24 to estimate the load amount of processing in the storage 2 or the waiting time. More specifically, the load determination means 26 is waiting for an access command waiting for issuance (waiting) for the storage device 21 queued in the command queue 24 and an access command being executed in the command issuing means 25. Alternatively, the load amount (or latency) of processing in the storage 2 is estimated from the number of access commands being executed and / or the contents of the access command (type of access, access data length, etc.). The waiting time is, for example, a waiting time in the command queue 24 from when the access command is stored in the command queue 24 until it is read by the command issuing unit 25 and issued to the storage device 21.
  • the waiting time is not measured for all of the access commands queued in the command queue 24.
  • the access command linked at the end (the access command corresponding to the access request inputted this time) is the command queue 24. It may be the time to reach the beginning of and be issued to the storage device 21. The latency depends on the load on storage 2.
  • the load determination unit 26 may estimate both the load amount and the waiting time, or may estimate only one of them.
  • the write permission changing means 27 delays the response from the storage 2 to the host 1 when the load amount inside the storage by the load judging means 26 or the estimation result of the waiting time exceeds a predetermined reference value set in advance. It is determined that the load state is high, and the write inhibition state (state in which the update operation from the host 1 to the storage 2 is prohibited) is set.
  • the write permission change means 27 sets the high load state when the estimation result of the load by the load determination means 26 or the waiting time falls below a predetermined reference value. It is determined that it has been eliminated and the host is put in the write permission state which permits update operation from the host to the storage.
  • the command interrupting means 28 is a part of the access command stored in the command queue 24 and a part of the access being executed to the storage device by the command issuing means 25 when the write permission state is made by the write permission changing means 27. Or suspend all executions.
  • the interruption of the access command to the storage device 21 is notified to the access conversion means 22 by the command interruption process.
  • the host 1 connected to the storage 2 is referred to FIG.
  • the mapping table 11 records the correspondence between the space of the logical address specified in the access request from the software operating on the host 1, the storage 2 in which the data is stored, and the address.
  • the storage state table 12 records the write prohibited state in the storage 2 connected to the host 1.
  • the mapping unit 13 In response to an access request from software operating on the host 1, the mapping unit 13 refers to the mapping table 11 to acquire the storage 2 as the access destination and the address in the storage.
  • mapping means 13 checks the information in the storage state table 12 when the access request is a write access, and when the storage 2 is in the write prohibited state, the storage destination storage and the storage destination address in the storage. Are selected from the other storages 3 (alternative storages) excluding the storage 2. Furthermore, the mapping unit 13 updates the storage of the mapping destination stored in the mapping table 11 and the address in the storage.
  • the storage destination storage for the write data of the write access request causing the error and the storage destination address in the storage 2 are selected from other storages (e.g., 3 in FIG. 2) excluding the storage 2, and the mapping information stored in the mapping table 11 is updated.
  • the access request unit 15 requests the access from the software operating on the host 1 to the storage 2 and the address of the storage 2 acquired or updated by the mapping unit 13 and the access request reissue unit 14 To issue
  • the access request means 15 receives a response of error information (error or unexecuted) from the storage 2 as a result of response to the access request from the storage 2, for example, the storage prohibits the storage from being written to the storage status table Record the status.
  • the access request means 15 reissues a request for read or write access that has received a response to error information through the access reissue means 14.
  • the access request means 15 receives from the storage a response of normal completion of the access request, it returns the result to the software on the host 1 which is the access request source, and the storage status table 12 Records that it is in the write permitted state.
  • the write prohibition confirmation unit 16 updates the write prohibition state of the storage 2 recorded in the storage state table 12 to the write permitted state at a predetermined time, or writes through the access request unit 15 at a predetermined time interval. By inquiring the write prohibited state to the storage 2 in the prohibited state, it is detected that the storage 2 has shifted to the write permitted state.
  • the response delay state of the access from the host 1 to the storage 2 is resolved against the response delay to the access request from the host 1 due to the high load inside the storage 2. Or, you can avoid it by yourself.
  • the present invention since an error response from the storage 2 to the host 1 is used, the present invention can be applied without changing the existing protocol and access interface.
  • the following description will be made in line with an exemplary embodiment.
  • FIG. 1 is a diagram illustrating an example of the configuration of an embodiment of the present invention.
  • the system of an embodiment includes a host 1, a storage 2 connected to the host 1, and an alternative storage 3.
  • the alternate storage 3 may be the same storage as the storage 2 or may be a different storage.
  • the storage 2 and the alternative storage 3 are directly connected to the host 1 in FIG. 1, they may be connected to each other via a network (not shown).
  • one of the storage 2 and the alternative storage 3 may be connected to the host 1 via the network.
  • the storage 2 may be configured by, for example, a device (for example, an SSD) provided with a programmable batch erase nonvolatile semiconductor memory.
  • the host 1 exemplifies a system configuration in which one storage 2 connected to the host 1 and one alternative storage 3 are provided for the sake of simplicity, the number of storages is limited to one. Of course not. Also, it goes without saying that the host 1 may be connected to another host (not shown) or the like via a communication means (for example, a network) or the like.
  • a communication means for example, a network
  • FIG. 2 is a diagram schematically illustrating an example of the configuration of the host 1 of FIG. Referring to FIG. 2, the host 1 includes a mapping table 11, a storage state table 12, a mapping unit 13, an access request reissue unit 14, an access request unit 15, and a write prohibition check unit 16.
  • FIG. 4 is a diagram for explaining the mapping table 11 of FIG.
  • the mapping table 11 is an identifier (storage ID) such as an ID (Identity) indicating a space of a logical address specified in an access request from software operating on the host 1 and a storage 2 or alternate storage 3 in which data is stored. And the correspondence of the address (storage address) in the storage 2 or the alternative storage 3 is recorded.
  • “0x" of "0x00001100” represents that the following digits are a hexadecimal (hexadecimal) display.
  • the ID of the storage corresponding to each logical address referred to by the software operating on the host 1 and the address of the storage corresponding to the logical address are stored in the mapping table, but for each fixed logical address When managing the mapping, the storage of the logical address may be omitted.
  • FIG. 5 is a diagram for explaining the storage state table 12 of FIG.
  • the storage state table 12 records the write prohibited state in the storage 2.
  • the write prohibition state of the alternative storage 3 may be recorded together.
  • the write prohibition state for each ID (storage ID) for identifying the storage is stored in the form of Yes and No, but it is a form that can represent two states of Yes and No. For example, it may be in any form.
  • storage IDs are managed at equal intervals, for example, storage of the storage IDs in the storage status table 12 may be omitted.
  • mapping unit 13 in response to an access request from software operating on host 1, mapping unit 13 refers to mapping table 11 and designates storage 2 as an access destination and storage 2 as an access destination. Get the address to
  • mapping unit 13 refers to the information of the storage state table 12 with respect to the Write access from the host 1, and when the storage 2 as the access request destination is in the write prohibited state, the write destination is the alternate storage 3, , And alternative storage 3 to any address not stored valid data.
  • the mapping unit 13 reflects, on the mapping table 11, the storage relating to the write destination and the change regarding the address of the storage.
  • the access request re-issuing unit 14 When the access request corresponding to the response of the error information (information indicating that the error or the access request has not been executed) from the storage 2 is the write access request, the access request re-issuing unit 14 generates an error in the write access request
  • the storage destination storage for the Write data and the address in the storage destination storage are changed to the alternative storage 3 and any address where no valid data is stored other than the alternative storage 3.
  • the host 1 receives, for example, the value 0 as a value (return value) indicating access success (normal completion) as a response from the storage 2 to the access request
  • the error response is set to a value other than 0 (for example, 1). Ru.
  • information indicating that the access request has not been executed may be set to a value other than 0.
  • error information information indicating that an error in a response from the storage 2 or an access request has not been executed.
  • the access request reissue unit 14 reflects the changed address in the mapping table 11. If the alternative storage 3 of the change destination has the same configuration as the storage 2, the information in the storage state table 12 is referred to, and the alternative storage 3 in the write permitted state is selected.
  • the access request unit 15 operates on the host 1 for the storage 2 acquired or updated by the mapping unit 13 and the access request reissue unit 14 or a designated address of the alternative storage 3. Issue an access request from
  • the access request unit 15 receives the response result of the access request from the storage 2 or the alternative storage 3 and receives the response from the storage 2 for the error information, the storage 2 writes the storage status table 12 Record that it is prohibited.
  • the access request unit 15 reissues a request for read or write access received a response to error information through the access request reissue unit 14.
  • the access request unit 15 When the access request unit 15 receives from the storage 2 a response of normal completion of the access request, the result is returned to the software on the host that is the access request source, and the storage 2 writes the result to the storage status table 12. Record the permission status.
  • the write prohibition check unit 16 updates the write prohibited state of the storage 2 recorded in the storage state table 12 to the write permitted state at an arbitrary time. As a result, the write access request from the host 1 is made to the storage 2 to detect that the storage 2 has shifted to the write permission state.
  • the write prohibition confirmation unit 16 is not limited to the above configuration.
  • the write request state is inquired to the storage 2 in the write prohibition state through the access request unit 15 at an arbitrary time interval, and the response from the storage 2 is the write permission If it is in the state, it may be recorded in the storage state table 12 that the storage 2 is in the write permitted state.
  • the state of response delay and stop is made readable from the host 1 through a specific register or the like predetermined in the storage 2, and the host 1 refers to the specific register of the storage 2. And the like can be used.
  • FIG. 3 is a diagram schematically illustrating an example of the configuration of the storage 2 of FIG.
  • the storage 2 includes one or more storage devices 21, an access conversion unit 22, an access filter unit 23, a command queue 24, a command issuing unit 25, a load determination unit 26, and Write A permission change unit 27 and a command interrupt unit 28 are provided.
  • the storage device 21 is a device for actually storing data stored in the storage 2 from the host 1.
  • the storage device 21 is configured of a NAND flash memory.
  • FIG. 3 shows a configuration in which one storage device 21 is provided for the simplicity of explanation, it is a matter of course that the number of storage devices 21 is not limited to one.
  • the access conversion unit 22 receives an access request for the storage 2 from the host 1 and registers the access request in the access request table 221 in the access conversion unit 22. Further, the access conversion unit 22 interprets the access request received from the host 1, converts it into an access command for one or more storage devices 21, and stores (queues) the access command in the command queue 24.
  • the access conversion unit 22 manages the execution status of each access command stored in the command queue 24 corresponding to each access request of the host 1, receives the execution result of the access command from the command issuing unit 25, and responds to the access request. When the processing is completed, the host 1 is notified of the result of the access request.
  • the access filter unit 23 acquires the write prohibited state of the storage 2 from the write permission change unit 27 in response to the access request received by the access conversion unit 22.
  • the access filter unit 23 instructs the access conversion unit 22 to return error information as a response to the host 1 in response to an access request other than Read from the host 1.
  • the command queue 24 stores the access command waiting for issuance to the storage device 21 converted by the access conversion unit 22.
  • the command queue 24 may be a linear list such as a FIFO configured to be enqueued at the end of the queue and dequeued from the head.
  • the command queue 24 may be implemented in a DRAM or the like, and may be connected to the queue and controlled from the queue by software.
  • the total waiting time may be shortened by performing scheduling to change the order of the access commands held in the command queue 24 according to the access type, access data length, priority, and the like.
  • the command issuing unit 25 reads an access command for the storage device 21 from the command queue 24 and accesses the storage device 21.
  • the command issuing unit 25 receives the result from the storage device 21, and returns the execution result of the access command to the access conversion unit 22.
  • an access command is input to an IO (Input / Output) port of the NAND flash memory as an access to the storage device 21.
  • the access command includes, for example, an operation command and an address (for example, a block address, a page address in a block) of the NAND flash memory.
  • the load determination unit 26 waits for issue to the storage device 21 stored in the command queue 24, and the number of access commands or access to the access command currently being executed to the storage device 21 in the command issuing unit 25 From the content of the command (type of access, access data length, etc.), the load amount of processing within the storage 2 or waiting time is calculated. A specific example will be described later as an example.
  • the write permission change unit 27 delays the response of the storage 2 or responds when the estimated amount of load inside the storage 2 or the waiting time by the load determination unit 26 exceeds a predetermined reference value. A high load state leading to a delay is determined, and a write prohibition state in which the update operation from the host 1 to the storage 2 is prohibited is set.
  • the write permission change unit 27 is set to the write prohibited state, if the load by the load determination unit 26 or the estimation result of the waiting time falls below a predetermined reference value, the high load state is obtained. It is determined that the information has been eliminated, and a write permit state for permitting update operation from the host 1 to the storage 2 is made.
  • the predetermined reference value that the write permission change unit 27 compares with the internal load amount of the storage 2 or the estimation result of the waiting time is (A) Fixed value not changed during operation of storage 2 (B) A value specified by the host 1 during operation in the storage 2 (C) A value automatically determined before receiving an access request inside Storage 2; It may be either.
  • the command interruption unit 28 notifies the access conversion unit 22 of the interruption of the command to the storage device 21.
  • FIG. 6 is a diagram for explaining the access request table 221 in the access conversion unit 22 of FIG.
  • the access request table 221 is not limited to the configuration provided in the access conversion unit 22, and may be provided in an arbitrary storage unit of the storage 2.
  • the access request table 221 includes columns (fields) of access request ID, access type, address, size, write data, and corresponding command ID.
  • the access request ID is an identifier such as an ID indicating an access request for each access request from the host 1.
  • the type of access is, for example, Read or Write.
  • the address, the size, the write data, and the corresponding command ID are identifiers such as an access destination address, an access size, write data in the write access, and an ID indicating an access command to the storage device 21 of the conversion destination.
  • the data format of the access request table 221 is not limited to the format shown in FIG.
  • a memory is separately prepared inside the storage 2 and the write data is stored in the memory, as shown in FIG. May store only pointer information for memory.
  • FIG. 7 is a diagram for explaining the access command stored in the command queue 24 of FIG.
  • the command queue 24 stores the access command for each storage device 21 converted by the access conversion unit 22 of FIG. Command ID, ⁇ Access type, Storage device ID, Address (address of access destination), ⁇ Write data (write access specific), Corresponding access request ID (an identifier such as an ID indicating an access request from the host 1 as a conversion source in the access conversion unit 22)
  • the data format of the command queue 24 is not limited to the format shown in FIG.
  • the sizes of all the access commands are the same, a plurality of accesses to continuous storage areas (in the example shown in FIG.
  • a size column may be provided in the command queue, and the access size may be stored in the command queue and treated as one access command.
  • the write data as in the access request table 221, instead of storing the write data directly in the command queue, pointer information to a memory storing the write data may be stored.
  • FIG. 8 is a flow chart for explaining an example of the operation of this embodiment.
  • FIG. 8 exemplifies a procedure for making an access request to the corresponding storage 2 or alternate storage 3 as an access destination from the software operating on the host 1 shown in FIG. The procedure for requesting access from the host 1 to the storage shown in FIG. 2 will be described with reference to FIG.
  • Step S11 When the mapping unit 13 of the host 1 receives an access request from software operating on the host 1, the mapping unit 13 refers to the mapping table 11 to access an identifier corresponding to the storage 2 pointed to by the access request and the storage 2 Get the address you want to specify.
  • Step S12 The mapping unit 13 of the host 1 determines whether the access request is Write. If the access request is Read (No in step S12), the processing in step S16 and subsequent steps is executed.
  • Step S13 When the access request is Write (Yes in step S12), the mapping unit 13 of the host 1 refers to the storage state table 12 for the storage 2 of the access request destination acquired in step S11, and is in the write prohibited state. Confirm.
  • step S13 the mapping unit 13 of the host 1 determines whether the storage 2 to be the write destination is in the write inhibition state. If the state is not the write inhibition state (No in step S14), the processes in step S16 and subsequent steps are executed.
  • Step S15 The mapping unit 13 of the host 1 determines that the write destination is the alternate storage 3 and other valid data in the alternate storage 3 when the storage 2 to be the write destination is the write prohibition state in step S13 (Yes in step S14).
  • the address is changed to an arbitrary address not stored, and the mapping table 11 is updated.
  • Step S16 The access request unit 15 of the host 1 receives, from the mapping unit 13, identifier information pointing to the storage 2 or the alternative storage 3 to be an access destination, and information of an access destination address in the storage pointed to by the identifier information. Alternatively, issue an access request to the alternative storage 3 and end the procedure.
  • steps S11 to S16 are performed, and the operation of making an access request from the software operating on the host 1 to the corresponding storage 2 or alternate storage 3 as an access destination is completed.
  • FIG. 9 is a flow chart for explaining an example of the operation of this embodiment described with reference to FIGS. 1 to 7 (write access to an alternative storage corresponding to a write access request that has become an error response).
  • the response of the result of making the access request to the corresponding storage 2 as the access destination from the software operating on the host 1 of FIG. 2 is processed in steps S11 to S16 of FIG.
  • the procedure of performing Write in the alternative storage 3 is illustrated as opposed to FIG. Write access to the alternative storage will be described with reference to FIG.
  • Step S201 The access request unit 15 of the host 1 receives a response from the storage 2 or the alternative storage 3 which is the access destination.
  • Step S202 The access request unit 15 of the host 1 confirms whether the access request for which the response has been received in step S201 is normal termination.
  • Step S203 In the case of normal termination (Yes in step S202), the access request unit 15 of the host 1 determines whether the access request for which the response has been received is Read.
  • Step S204 If the access request is Read (Yes in step S203), the access request unit 15 of the host 1 returns a Read result (read data) to the software operating on the host 1, and ends the processing procedure.
  • Step S205 The access request unit 15 of the host 1 is the case where the access request for which the response is received in step S201 is normally ended (Yes in step S202), and the access request for which the response for the normal completion is received is Write ( No determination in step S203) records that the storage 2 is in the write permitted state in the storage state table 12.
  • Step S206 The access request unit 15 of the host 1 notifies the software operating on the host 1 of write completion, and ends the processing procedure.
  • Step S207 If the access request unit 15 of the host 1 is a message notifying that the response received in step S201 is not a normal end (error or non-execution) (No in step S202), the storage status table 12 is used as storage. 2 records that Write is prohibited.
  • the access request reissuing unit 14 of the host 1 receives an access request for which the access request unit 15 has received a response indicating that the access request unit 15 does not end normally (error or not executed) in step S201. Is read (No in step S208), the processing procedure from step S210 is executed.
  • Step S209 When the access request reissuing unit 14 of the host 1 responds to the access request for which the access request unit 15 has received a response in step S201 for notifying that the processing has not ended normally (error or not executed), the response is Write ( Yes determination in step S208), change the access destination storage destination of the access request to the alternative storage 3, change the destination address in the access destination storage destination of the access request to any address where no other valid data is stored, and map Update table 11.
  • Step S210 The access request reissue unit 14 of the host 1 requests the access request unit 15 to reissue the access request for which the access request unit 15 has received a response in step S201, and ends the processing procedure.
  • step S201 to step S210 The processing from step S201 to step S210 is performed, and in step S11 to step S16 of FIG. 8, the response from the result of the access request to the corresponding storage 2 as the access destination from the software operating on the host 1 is processed.
  • step S11 to step S16 of FIG. 8 the response from the result of the access request to the corresponding storage 2 as the access destination from the software operating on the host 1 is processed.
  • step S11 to step S16 of FIG. 8 the response from the result of the access request to the corresponding storage 2 as the access destination from the software operating on the host 1 is processed.
  • step S11 to step S16 of FIG. 8 the response from the result of the access request to the corresponding storage 2 as the access destination from the software operating on the host 1 is processed.
  • step S11 to step S16 of FIG. 8 the response from the result of the access request to the corresponding storage 2 as the access destination from the software operating on the host 1 is processed.
  • step S11 to step S16 of FIG. 8 the response from the result of
  • the access request unit 15 directly responds to the software operating on the host 1. However, the access request unit 15 may respond via the mapping unit 13.
  • steps S201 to S210 may be performed (in this case, the storage that substitutes the alternative storage 3 is, for example, the storage 2 of FIG. 1).
  • FIG. 10 is a flow chart for explaining an example (transition to the write permitted state) of the operation of this embodiment described with reference to FIGS. 1 to 7.
  • FIG. 10 exemplifies a procedure in the host 1 for detecting the transition from the write prohibited state to the write permitted state in the storage 2 designated in advance by the write prohibited confirmation unit 16. The transition operation from the write inhibition state to the write allowance state in the host 1 will be described with reference to FIG.
  • Step S31 The write prohibition confirmation unit 16 of the host 1 confirms whether the write prohibition state inquiry is not in use.
  • Step S32 The write prohibition confirmation unit 16 of the host 1 does not have means for inquiring the write prohibition state or does not use the means (Yes in step S31), the state information of the storage 2 recorded in the storage state table 12 Is updated to the Write permitted state, and the processing procedure ends.
  • the write prohibition confirmation unit 16 of the host 1 has a means for making an inquiry about the write prohibition state of the storage 2 and, when using the means (No in step S31), makes an inquiry about the write prohibition state to the storage 2 .
  • Step S35 If the result of the inquiry to the storage 2 in step S33 shows that the write prohibition state is present (No in step S34), the write prohibition check unit 16 of the host 1 waits for an arbitrary time and then executes the process again from step S31. .
  • Step S36 When the result of the inquiry to the storage 2 in step S33 shows that the write is in the permission state (Yes in step S34), the write prohibition confirmation unit 16 of the host 1 writes the state information of the storage 2 recorded in the storage state table 12 Update to the permitted state and end the processing procedure.
  • steps S31 to S36 are performed, and the operation of the host 1 for detecting the transition from the write prohibited state to the write permitted state in the storage 2 designated in advance by the write prohibited confirmation unit 16 is completed. Further, the processes from the step S31 to the step S36 may be constantly executed for each storage 2 connected to the host 1 in addition to being started with the write inhibition state of the storage 2 as a trigger.
  • FIG. 11 is a flow chart for explaining an example (operation at the time of execution of access processing) of the operation of this embodiment described with reference to FIGS. 1 to 7.
  • FIG. 11 exemplifies a procedure for executing an access process and returning a response to an access request from the host 1 in the storage 2 described with reference to FIG. The operation at the time of access processing execution in the storage 2 will be described with reference to FIG.
  • Step S41 The access conversion unit 22 of the storage 2 receives an access request for the storage 2 from the host 1 and registers the access request in the access request table 221 in the access conversion unit 22.
  • Step S42 The access filter unit 23 of the storage 2 acquires the write prohibited state of the storage 2 from the write permission change unit 27.
  • Step S43 The access filter unit 23 of the storage 2 is Whether the access request received by the access conversion unit 22 in step S41 is Write and the storage 2 is in the write prohibited state, To judge.
  • Step S44 When the access request received by the access conversion unit 22 in step S41 is Write and the storage 2 is in the write prohibition state (Yes in step S43), the access conversion unit 22 of the storage 2 is the access request table 221. The access request registered in the above is deleted, and error information (error or information not subjected to an access request) is notified to the host 1 as a response, and the processing procedure is ended.
  • Step S45 In step S41, if the access request received by the access conversion unit 22 is Read or the storage 2 is in the write permission state (No in step S43), the access conversion unit 22 of the storage 2 is an access request. Are converted into one or more access commands for the storage device 21 and stored in the command queue 24. Further, the access conversion unit 22 registers the access command in the access request table 221 as a command corresponding to the access request from the host 1.
  • Step S46 The command issuing unit 25 of the storage 2 issues an access corresponding to the access command registered in the command queue 24 to each storage device 21.
  • Step S47 The command issuing unit 25 of the storage 2 notifies the access conversion unit 22 of the result of the access issued to the storage device 21 in step S 46, and deletes the information of the access command from the command queue 24.
  • Step S48 The access conversion unit 22 of the storage 2 refers to the access request table 221 for the access request from the host 1 and confirms completion for all the corresponding access commands, then, from the access result notified in step S47, the host 1 Sends the result of the access request as a response.
  • the access conversion unit 22 transmits read data to the host 1.
  • Step S49 The access conversion unit 22 of the storage 2 deletes the information related to the access request from the host 1 that has responded in step S48 in the access request table 221, and ends the processing procedure.
  • step S41 to step S49 The processing from step S41 to step S49 is performed, and the operation of executing the access processing and responding to the access request from the host 1 in the storage 2 is completed.
  • the registration of the access request to the access request table 221 in the step S41 may be performed immediately before the process of the step S45.
  • step S44 the process of deleting the access request registered from the access request table 221 by the access conversion unit 22 can be omitted.
  • FIG. 12 is a flow chart for explaining an example of the operation of the present embodiment described with reference to FIGS. 1 to 7 (response error information at the time of detection of response delay).
  • the storage 2 described with reference to FIG. 3 detects an internal response delay and shifts to the write prohibited state, and sends error information (error code or access non-execution status) to the host 1 to the access request.
  • error information error code or access non-execution status
  • FIG. 12 a procedure will be described in which the storage 2 of FIG. 3 returns an error information response to the host 1 when the response delay is detected.
  • Step S51 The load determination unit 26 of the storage 2 calculates the internal load of the storage 2 with reference to the access command stored in the command queue 24 and the access command being executed by the command issuing unit 25.
  • Step S52 The write permission change unit 27 of the storage 2 determines whether or not a response delay has occurred from the calculation result of the load by the load determination unit 26 performed in step S51.
  • Step S53 When the write permission changing unit 27 of the storage 2 determines that the response is not delayed (Yes in step S52), the write permission changing unit 27 sets the storage 2 in the write permission state, and ends the processing procedure.
  • Step S54 The write permission change unit 27 of the storage 2 determines that the response delay state (response delay is occurring) from the load calculation result by the load determination unit 26 performed in step S51 (No determination in step S52) , Storage 2 is set to the write prohibited state.
  • Step S55 The command interrupt unit 28 of the storage 2 responds to the detection that the storage 2 is in the write inhibition state from the write permission change unit 27, (A) an access command to the storage 21 stored in the command queue 24; (B) In the command issuing unit 25, an access command being executed to the storage 21; , And select an access command for the storage device 21 to be interrupted.
  • the command interrupt unit 28 prioritizes, for example, a write access command and an erase command for the storage device 21 as an interrupt target. Basically, a Read access command not related to the Write access request from the host 1 is not a target of command suspension by the command suspension unit 28.
  • the command interrupting unit 28 performs the Read operation when the Read access command is waiting in the command queue 24 when detecting the Write prohibited state. Even if the access command is removed from the target of suspension and is being executed by the command issuing unit 25, the configuration is not interrupted (however, for example, in order to eliminate high load and improve performance, Of course, the access command may be interrupted.
  • Step S56 The command suspending unit 28 of the storage 2 instructs suspension of the access command being executed in the command issuing unit 25 which has been selected as the target of suspension in step S55.
  • the access conversion unit 22 is notified of the suspension of the execution of the command together with the access command to be suspended stored in the command queue 24.
  • Step S57 The command interruption unit 28 of the storage 2 deletes the information of the access command interrupted in step S56 from the command queue 24 or the command issuing unit 25.
  • the access conversion unit 22 of the storage 2 refers to the access request table 221, and responds to the access request from the host 1 corresponding to the interrupted access command, indicating an error or unexecuted. End the processing procedure.
  • step S51 to step S58 The processing from step S51 to step S58 is performed, the response delay in the storage 2 is detected, the write prohibition state is entered, and the operation of notifying the host 1 of an error or non-execution to the access request is ended.
  • the above steps S57 and S58 may be executed in parallel or in a different order.
  • the method of selecting the access command to be interrupted in the step S55 is not particularly limited.
  • the storage device 21 is an SSD using a NAND flash memory
  • the write access request from the host 1 in particular, only the access command of the process for the write access request with high load inside the storage is selectively selected. It may be interrupted.
  • the write access command to the storage device 21 is interrupted, the write access command may be interrupted after completing the write access of the minimum access unit (page unit in the case of the SSD).
  • the command interrupting unit 28 in the step S55 selects an access command to be canceled directly from the status of waiting for execution stored in the command queue 24 or the access command to the storage device 21 being executed by the command issuing unit 25.
  • the access request table 221 of the access conversion unit 22 select the access request from the host 1 to be interrupted, and suspend the access command corresponding to the access request in step S56. It may be
  • Example> As an example of the operation and effect of the above-described embodiment, an example of the operation when the storage 2 made of an SSD becomes a high load due to an access request from the host 1 and is in the write prohibited state will be described.
  • the alternate storage 3 of FIG. 1 is different from the storage 2 described with reference to FIG.
  • the alternative storage 3 does not include an SSD as a storage device, and has, for example, an HDD, and is a storage that is always successfully written.
  • SSD storage
  • the page size which is the minimum unit of Read and Write, is 4 KB (Kilo-Byte) (4 KB equivalent cells are connected to one word line), erase minimum A block which is a unit is 64 pages. That is, the block size is 256 KB. Further, the read and write time per page is 200 ⁇ sec (microsecond), 400 ⁇ sec, and the erase time of one block is 3 msec (millisecond), respectively.
  • the storage area space provided by the storage (SSD) 2 to the host 1 is allocated in order from the top address of the NAND flash memory which is the storage device, and every 4 KB in the address space of the storage (SSD) 2, 256 KB Each area corresponds to a page and a block of the NAND flash memory.
  • the storage (SSD) 2 when the waiting time in the internal command queue (24 in FIG. 3) exceeds 400 msec, it is determined that a response delay has occurred, and the host 1 is shifted to the write prohibition state. Suspend processing of the access command issued to the storage device in response to the access request from The storage (SSD) 2 is released from the write inhibition state in the storage (SSD) 2 when the waiting time in the command queue (24 in FIG. 3) falls below 400 msec and shifts to the write permission state. .
  • the initial state in this embodiment will be described.
  • the address space of the storage area for the program operating on the host 1 is mapped in order from the top address of the storage (SSD) 2.
  • the mapping change is performed in 4 KB units. It is assumed that each page of the storage (SSD) 2 is valid or invalid, and some data is written, and it is necessary to erase the block when storing the data. Further, in the initial state, the storage (SSD) 2 receives no access request, and the processing load of the storage (SSD) 2 is assumed to be no load.
  • the access request list 141 in FIG. 13 is a table for managing the access issued by the host 1 to the storage 2.
  • the address of the access request in the access request list 141 represents the logical address of the storage destination of the data to be accessed, and the size of the access request represents the size of the data to be accessed.
  • the address and size of the access request are represented, for example, in units of 4 KB (for example, the size of the access request whose access size is represented as 1 is 4 KB).
  • the access request list 141 is stored, for example, in a storage unit in the host 1.
  • the access request unit 15 of the host 1 converts the access request in the access request list 141 into the address (page address) of the storage 2 by the mapping unit 13 and issues it to the storage (SSD) 2.
  • These Write access requests are converted into access commands for the storage device 21 (NAND flash memory) of the storage (SSD) 2.
  • the permission change unit 27 determines that a response delay has occurred, and shifts to the write prohibited state.
  • the access conversion unit 22 of the storage (SSD) 2 FIG. 3 An error response is returned to.
  • FIG. 15 only the area of the mapping table 11 in which the mapping is changed to the alternate storage 3 is shown ("3" of the storage ID represents the alternate storage 3).
  • the processing of the access command to the storage device 21 is interrupted, and the response delay to the subsequent access request is eliminated. Therefore, according to the present embodiment, it is possible to eliminate the response delay and the temporary stop due to the high load state of the SSD and to prevent it in advance.
  • the address for the storage (SSD) 2 It becomes a 16 KB read access request of 0x00001000.
  • the Read access request is converted to a 16 KB (4 pages worth) Read access command for the storage device 21 (NAND flash memory).
  • the storage 2 corresponds to an interface of a disk drive such as an HDD and is described based on an example using an SSD provided with a NAND flash memory provided with a controller in the storage.
  • the storage is not limited to the above-mentioned SSD.
  • the present invention is also applicable to a storage (for example, a USB (Universal Serial Bus) memory or a memory card) or the like provided with a batch erase type nonvolatile semiconductor memory which does not necessarily belong to the SSD depending on the classification method.
  • the present invention is suitably applied to a storage (storage medium) provided with a batch erase type nonvolatile semiconductor memory such as SSD, but the present invention is limited to the application to such storage
  • the present invention is also applicable to any storage medium and the like similar to, for example, an HDD.
  • the controller (the storage control device 29 in FIG. 3) is described based on an example provided in the storage. However, at least a part of the controller (the storage control device 29 in FIG. May be provided in another node, for example, the host 1 (processor, computer) side. Alternatively, the controller (storage control unit 29 in FIG. 3) may be implemented in the storage device (21 in FIG. 3).
  • a command queue which temporarily holds an access command obtained by converting an access request from a host for access to a storage device; First means for analyzing the queuing status of the access command in the command queue and determining whether or not the writing to the storage device should be prohibited; A second means for returning an error response to an access request from the host in the case of write protection; A storage device characterized in that.
  • Load determining means for determining a load based on at least one of the number of access commands waiting in the command queue and the number of access commands being accessed and their contents;
  • Writing permission changing means for prohibiting writing to the storage device if the load exceeds a predetermined threshold;
  • the second means in the case of write protection, returns a write protection error response to a write request from the host and a query from the host.
  • the command interrupting means keeps the access command queued in the command queue with respect to the access command corresponding to the read request in the write inhibit state, and continues the execution without interrupting the access command in progress.
  • the host selectively reissues a read access request to the storage device having received the error response, and issues a write access request to another storage device.
  • Information processing system The host selectively reissues a read access request to the storage device having received the error response, and issues a write access request to another storage device.
  • the host upon receiving the error response from the storage device, determines that the storage device is not a failure but a write prohibition, and issues a subsequent read access request to the storage device. Or 12 information processing systems.
  • At least one storage device With the host, Equipped with When the host receives an error response to an access request to the storage device, the host reissues the access request to the storage device or issues the access request to another storage device. Processing system.
  • the load is determined based on at least one of the number of access commands waiting in the command queue and the number of access commands being accessed and their contents;
  • the host selectively reissues a read access request to the storage device that has received the error response, and issues a write access request to another storage device.
  • the storage control method according to any one.
  • the computer causes the computer to execute a command interruption process of clearing at least a part of the access command queued in the command queue and interrupting the access command.
  • a command interruption process of clearing at least a part of the access command queued in the command queue and interrupting the access command.
  • the second process causes the computer to execute a process of returning a write inhibit error response to a write request from the host and a query from the host in the case of a write inhibit.
  • the computer constituting the host is made to execute the processing of selectively reissuing a read access request to the storage device having received the error response and issuing a write access request to another storage device. Described program.
  • Appendix 40 When the error response is received from the storage device, the storage device determines that the failure is not a failure but a write prohibition, and executes a process of issuing a subsequent read access request to the storage to the computer constituting the host The program of appendix 38 according to appendix 38.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

 本発明は、記憶デバイスの応答遅延、一時的応答停止状態を解消又は回避可能とするストレージ装置、システム、方法を提供する。ホストに接続されるストレージ装置は、該ホストからのアクセス要求を記憶デバイスへのアクセス用に変換したアクセスコマンドを一旦保持するコマンドキューと、前記コマンドキューに保持されているアクセスコマンドの分析結果に基づき、前記記憶デバイスへの書き込みを禁止とすべきか否かを判断する第1の手段と、書き込み禁止の場合、前記ホストからのアクセス要求に対してエラー応答を返す第2の手段を含む。

Description

ストレージ装置と情報処理システム及びストレージ制御方法とプログラム
 (関連出願についての記載)
 本発明は、日本国特許出願:特願2014-098012号(2014年5月9日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
 本発明は、ストレージ装置と情報処理システム及びストレージ制御方法とプログラムに関する。
 情報処理システムの記憶媒体として、例えばHDD(Hard Disk Drive)のほか、記憶デバイスとして、例えばNANDフラッシュメモリを用いたSSD(Solid State Drive)等のストレージ装置が普及している。NANDフラッシュメモリでは、読み出し(Read)と書き込み(Write)はページ(page)単位に行われる。NANDフラッシュメモリのページは、一般的な例として、2K(Kは1024)バイトから16KB程度のサイズであり、さらにエラー訂正情報等を格納するための追加の情報を併せて格納する。このページは、SSDにアクセスする計算機(CPU(Central Processing Unit)、プロセッサ、データ処理装置)(「ホスト」と呼ぶ)がアクセスを行う単位とは異なる。なお、NANDフラッシュメモリでは、1セル1ビット(SLC:Single-Level Cell)のほかにも、1セルに2ビット又は3ビット等を保持する多値セル(MLC(Multi Level Cell)、TLC(Triple Level Cell))等も用いられている。
 SSDは、例えばSAS(Serial Attached SCSI(Small Computer System Interface))やSATA(Serial ATA)等、HDDと同様のインタフェースを有する。アクセスの要求元となるホストは、SSDに対して、HDDと同様に、Readアクセス及びWriteアクセスが可能である。ただし、SSDの記憶デバイスであるNANDフラッシュメモリは、HDDとは異なるアクセス形態を提供する。NANDフラッシュメモリは、格納されたデータの直接的な更新(上書き)が不可能であることから、データのRead、Writeに加えて、格納されたデータの消去(Erase)処理を提供する。NANDフラッシュメモリに対する消去(Erase)処理は複数ページからなるブロック(Block)単位で実行される。
 SSDでは、例えばSSD内に設けられているコントローラ(制御装置)において、ホストからのストレージに対するアクセス要求からNANDフラッシュメモリに対するアクセスへの変換処理を行う。これは、NANDフラッシュメモリに対して、HDDとのアクセス形態の違いを吸収し、ホストからみてHDDと同一にアクセス可能とするためである。例えば、ホストからのWriteアクセスにおいて、NANDフラッシュメモリに格納されたデータの更新が発生する場合に、SSDのコントローラは、NANDフラッシュメモリに対して、データのWriteを行う前に、更新対象のデータを格納しているページを含むブロックの一括消去を実行する。SSDのコントローラは、NANDフラッシュメモリの当該ブロックの消去にあたり、当該ブロックにおいて有効なページ(消去不可のデータを保持するページ)のデータを保護するために、NANDフラッシュメモリの当該有効なページのデータを読み出し、例えばDRAM(Dynamic Random Access Memory)等のバッファメモリに退避する。つづいて、SSDのコントローラは、NANDフラッシュメモリの当該ブロックを一括消去する。つづいて、SSDのコントローラは、バッファメモリ上で、退避されたデータと更新対象のデータとをマージし、NANDフラッシュメモリの一括消去された当該ブロックに、当該バッファメモリ上のデータを、ページ単位にに書き込む。
 また、SSDのコントローラは、NANDフラッシュメモリにおける新規にデータを格納可能なブロック、ページを確保するために、ガーベッジコレクション等の記憶領域管理処理を、例えば自動的(自律的)に実行する場合がある。ガーベッジコレクションの処理では、データが既に書き込まれているために新たなデータを記録することができないブロックに対して、当該ブロックに再び新しいデータを格納することができるように、当該ブロックの有効なページを他のブロックへ移動した上で、当該ブロックの消去を行う。また、ホストからのWriteアクセス要求に対して、既にデータが書き込まれているページを更新する場合、SSDのコントローラは、NANDフラッシュメモリにおいて、新規データを、別のデータが格納されていないブロックに格納する。その際、Writeアクセス要求を処理する前の同じブロックに含まれるページに格納されていた有効データは、記憶領域管理処理により、通常、別の空きブロックのページに書き込まれる。つまり、ホストにおける当該有効データに関する論理アドレスと、SSD側における当該有効データの格納アドレス(物理アドレス)との対応は、記憶領域管理処理による当該有効データの別のページへの書き込みによって、元の状態から変化する。
 ストレージ装置へのアクセスを制御する関連技術として、例えば特許文献1には、外部よりストレージ装置に対してデータをアップロードする場合のストレージ装置の処理を制御する制御装置が、ストレージ装置にアクセスがあったことを契機に、ストレージ装置より送信されるイベントを受信してストレージ装置の処理負荷を算出し、処理負荷が閾値を超えている場合、リモートサーバに対してストレージ装置へのデータ転送量を制限するように指示する構成が開示されている。
 またSSDの制御に関して、例えば特許文献2には、ストレージデバイスの応答特性を整合させるため、ストレージデバイスの特性を用いてI/O要求をスケジュールし、デバイスが、unknown(未知)状態にあることを示す動作を示す場合、デバイスの状態をknown(既知)な状態とする操作をデバイスに対して行う構成が開示されている。
 そして、NANDフラッシュメモリの関連技術として、例えば特許文献3には、SSD内に設けられているコントローラは、ユーザが書き込んだコンテンツに対して保護するライトプロテクトが有効のとき(当該デバイスに対する書き込みを禁止)、上位装置から書き込みコマンドが発行された場合、エラーを返す構成が開示されている。
特開2008-305095号公報 米国特許出願公開第2012/0066448号明細書 特開2006-309687号公報
 以下に関連技術の分析を与える。
 前述したように、SSDでは、ホストからのアクセス要求がWriteの場合、NANDフラッシュメモリのブロック内の有効ページの読み出し、ブロック単位の消去、ページ単位の書き込み等のアクセスコマンドが実行される。すなわち、ホストがWrite先として指定したアドレス、データサイズや、NANDフラッシュメモリにおけるデータの格納状況等に応じて、NANDフラッシュメモリに対して実行されるアクセスの数や種類が変化する。また、ホスト側で参照するSSDのアドレス空間に対するマッピング情報(ホスト側の論理アドレスとSSDでの物理アドレスとの対応等)も動的に変化する。
 このため、ホスト側からSSDのNANDフラッシュメモリに対するアクセス負荷を正確に予測することは、一般に困難である。
 更に、SSDのコントローラは、空き領域確保のためのガーベッジコレクション等の記憶領域管理処理を自律的に実行する(記憶領域管理処理の処理負荷は相対的に大である)。また、ホストは、基本的に、SSDへのアクセス要求を発行し、その応答にしたがって、SSDの状態を把握している。このため、SSDの動作が予期せぬ状態(例えば応答遅延や一時的な応答停止等)に推移した場合など、SSDの状態を、ホスト側で、常に正確に知ることができない場合もある。
 そして、SSDにおいては、ホストから同一サイズのWriteアクセスを行った場合に、SSD内部で発生するアクセス負荷は同一とはならない場合がある。例えばNANDフラッシュメモリのデバイス特性に起因するアクセス特性が、ホストからのアクセス負荷の予測を困難にしている。また、多値セル(MLC、TLC)のNANDフラッシュメモリは、一般的に、ページに対するWriteアクセスの完了時間が不均一となる場合があることが知られている。この場合、NANDフラッシュメモリを含むSSDにおいて、ホストから同一サイズのWriteアクセスを行った場合に、SSD内部で発生するアクセス負荷は同一とはならない。
 このように、ホストからアクセス負荷の予測が困難である結果、ホストからのアクセス要求によってSSDが意図せずに高負荷の状態となることで、SSDに対するアクセスの応答遅延、又は、一時的な応答停止が発生する。特に、SSDに格納されたデータのReadを伴うアクセス要求に対して、応答が遅延するか、又は一時的に応答が不可能となる場合がある。
 そして、SSDにおけるアクセスの応答遅延は、情報処理システムの性能低下に加えて、例えば、システム全体の動作におけるタイムアウトの形で、障害として影響を与える可能性が存在する。以上から、情報処理システムの信頼性、安定性の維持においてSSDに代表される記憶媒体の応答遅延、一時的応答停止状態の解消、回避は、重要な課題である。
 ここで、上記課題の観点から、改めて上記特許文献をレビューしてみると、上記特許文献1では、ストレージ装置での処理負荷が閾値を超えていたとき、ストレージ装置へのデータ転送量を制限しているが、データ転送量を制限する指示を行うだけでは、SSDにおけるアクセスの応答遅延や一時的な応答停止が発生に対する有効な対処とはなり得ない。
 また、上記特許文献2では、記憶媒体を再初期化することで応答遅延、停止状態から復帰させる。しかしながら、記憶媒体が異常停止に対してホストから格納されたデータ、及び記憶媒体の制御、管理に用いるデータの保護機能を持たない場合に、前記データを破壊する可能性がある。
 さらに、上記特許文献3の開示は、コンテンツ保護を目的とした書き込み禁止であり、SSDにおけるアクセスの応答遅延や一時的な応答停止の発生という問題を解消又は回避するという上記課題とは相違している(上記課題の解決には結びつかない)。
 したがって、本発明は、上記課題のいずれかを解決する装置、システム、方法、プログラムを提供することを目的の1つとしている。
 本発明の1つの側面(aspect)によれば、ホストからのアクセス要求を記憶デバイスへのアクセス用に変換したアクセスコマンドを一旦保持するコマンドキューと、前記コマンドキューに保持されているアクセスコマンドの分析結果に基づき、前記記憶デバイスへの書き込みを禁止とすべきか否かを判断する第1の手段と、書き込み禁止の場合、前記ホストからのアクセス要求に対してエラー応答を返す第2の手段と、を含むストレージ装置が提供される(第1側面)。
 本発明の他の側面によれば、ストレージ装置を少なくとも1つ備え、ホストを備え、前記ホストは、前記ストレージ装置へのアクセス要求に対してエラー応答を受けると、前記ストレージ装置に対して前記アクセス要求を再発行するか、別のストレージ装置に対して前記アクセス要求を発行する情報処理システムが提供される(第2側面)。
 前記第2の側面の情報処理システムにおいて、ストレージ装置は、前記第1側面のストレージ装置で構成してもよい(第3側面)。
 本発明の他の側面によれば、ホストに接続されるストレージの制御方法であって、前記ホストからのアクセス要求を記憶デバイスへのアクセス用に変換したアクセスコマンドをコマンドキューに一旦保持し、前記コマンドキューに保持されているアクセスコマンドの分析結果に基づき、前記記憶デバイスへの書き込みを禁止とすべきか否かを判断し、書き込み禁止の場合、前記ホストからのアクセス要求に対してエラー応答を返すストレージ制御方法が提供される(第4側面)。
 本発明のさらに別の側面によれば、ホストに接続されるストレージを構成するコンピュータに、前記ホストからのアクセス要求を記憶デバイスへのアクセス用に変換したアクセスコマンドを一旦保持するコマンドキューに保持されているアクセスコマンドの分析結果に基づき、前記記憶デバイスへの書き込みを禁止とすべきか否かを判断する第1の処理と、
 書き込み禁止の場合、前記ホストからのアクセス要求に対してエラー応答を返す第2の処理と、を実行させるプログラムが提供される(第5側面)。
 本発明のさらに別の側面によれば、ストレージ装置へのアクセス要求に対して、書き込み禁止状態の前記ストレージ装置からエラー応答を受けると、前記ストレージ装置に対して前記アクセス要求を再発行するか、別のストレージ装置に対して前記アクセス要求を発行する処理を、ホストを構成するコンピュータに実行させるプログラムが提供される(第6側面)。
 本発明のさらに別の側面によれば、上記第5又は第6側面に係るプログラムを記録したコンピュータ読み出し可能な半導体メモリあるいは磁気/光記録媒体等の記録媒体(non-transitory recording medium)が提供される(第7側面)。
 本発明によれば、記憶デバイスの応答遅延、一時的応答停止状態を解消又は回避可能としている。
本発明の一実施形態のシステム構成を例示する図である。 本発明の一実施形態のホストの構成を例示する図である。 本発明の一実施形態の記憶媒体の構成を例示する図である。 図2のマッピングテーブルを例示する図である。 図2のストレージ(記憶媒体)状態テーブルを例示する図である。 図3のアクセス要求テーブルを例示する図である。 図3のコマンドキューを例示する図である。 本発明の一実施形態の動作(アクセス要求)を説明する流れ図である。 本発明の一実施形態の動作(代替記憶媒体へアクセス変更)を説明する流れ図である。 本発明の一実施形態の動作(Write禁止状態からWrite許可状態への移行)を説明する流れ図である。 本発明の一実施形態の動作(アクセス処理実行)を説明する流れ図である。 本発明の一実施形態の動作(Write禁止状態に移行)を説明する流れ図である。 一実施形態におけるホストからのアクセス要求一覧を表形式で例示する図である。 一実施例におけるコマンドキューの状態を例示する図である。 一実施例におけるホストのマッピングテーブルを例示する図である。 本発明の基本概念を説明する図である。 本発明の基本概念を説明する図である。
 以下では、本発明の基本概念、基本原理を説明し、つづいて例示的な実施形態について説明する。
<基本概念>
 図16を参照すると、本発明の一形態に係るストレージ装置200は、図示されないアクセス要求元(ホスト)に接続され、前記アクセス要求元(ホスト)からのアクセス要求を記憶デバイス201へのアクセス用に変換したアクセスコマンドを一旦保持するコマンドキュー(command queue)202と、コマンドキュー202に保持されているアクセスコマンドの分析結果に基づき、記憶デバイス201への書き込みを禁止とすべきか否かを判断する第1の手段(第1のユニット)203と、書き込み禁止の場合、アクセス要求元(ホスト)からの前記アクセス要求に対して、エラー応答を返す第2の手段(第2のユニット)204と、を含む。
 例えば高負荷状況と判断されたとき、記憶デバイス201への書き込みを禁止として、ホストからのアクセス要求に対してエラー応答を返すことで、ストレージ装置200の高負荷状況の解消と回避を図ることができる。また、記憶デバイス201が書き込み禁止のとき、エラー応答を返すことで、アクセス要求元のホストは、アクセス要求が失敗(fail)したことをただちに認識することができる。アクセス要求元のホストでは、アクセス先のストレージ装置を、例えばストレージ装置200とは別の代替ストレージ装置に切り替えるか、あるいは、当該ストレージ装置200の高負荷状態が解消されてから、再度、アクセスする等、適正なアクセス処理の選択が可能である。その結果、アクセスの安全性、効率化を確保可能としている。なお、第1、第2の手段(第1、第2のユニット)203、204、及び、コマンドキュー202の処理(例えばキューへの挿入処理(enqueue)、キューからの取り外し処理(dequeue))は、コンピュータで実行されるプログラムでその処理・機能を実行するようにしてもよいことは勿論である。
<形態(modes)>
 また、図17を参照すると、本発明の一形態(mode)に係るストレージ装置200において、第1の手段(第1のユニット)203は、前記コマンドキュー202で待機中のアクセスコマンド、又は、前記コマンドキュー202で待機中のアクセスコマンド及びアクセス実行中のアクセスコマンドについて、前記アクセスコマンドの数と前記アクセスコマンドの内容の少なくとも一方の分析に基づき、負荷を判定する負荷判定手段(負荷判定ユニット)205と、前記負荷が、所定の閾値(基準値)を超えている場合、記憶デバイス201への書き込みを禁止とする書き込み許可変更手段(書き込み許可変更ユニット)206と、を含む。本発明の一形態によれば、負荷量、処理遅延量等の分析あるいは予測結果等に基づき、記憶デバイス201への書き込み禁止の設定を行い、高負荷状況、応答遅延の解消と回避を図るとともに、さらに、記憶デバイス201の書き込み禁止状態から書き込み許可状態への復旧を図ることができる。
 さらに、図17を参照すると、本発明の一形態に係るストレージ装置200において、前記第1の手段203が記憶デバイス201への書き込みを禁止と判断すると、前記コマンドキュー202にキューイングされているアクセスコマンドのうち少なくとも一部のアクセスコマンド(例えばWriteアクセスコマンド)をクリアし、前記少なくとも一部のアクセスコマンドを中断するコマンド中断手段(コマンド中断ユニット)207をさらに含む構成としてもよい。コマンド中断手段207は、第1の手段203が記憶デバイス201への書き込み禁止と判断すると、その時点で記憶デバイス201に対してアクセス実行状態のアクセスコマンドのうち一部又は全部のアクセスコマンド(例えばWriteアクセスコマンド)を中断する制御を行うようにしてもよい。こうすることで、ストレージ装置200の高負荷状態が解消するまでの時間を短縮することができる。なお、中断されたアクセスコマンドに対応するアクセス要求を発行したホスト1では、当該アクセス要求に対応するエラー応答、またはタイムアウト発生等(例えばアクセス要求の発行先のストレージ装置から何の応答も無いまま一定期間経過)で、当該アクセス要求が失敗したことを認識することができる。なお、第1、第2の手段203、204、及び、コマンドキュー202の処理、コマンド中断手段207は、コンピュータで実行されるプログラムでその処理・機能を実行するようにしてもよいことは勿論である。特に制限されないが、記憶デバイス201は、例えばNAND型フラッシュメモリを備えた構成とされる。
 ストレージ装置200において、ホスト1からのアクセス要求に対する応答遅延を検出するか、応答遅延状態を引き起こすストレージ装置200の内部の高負荷を予見した場合等に、ストレージ装置200は、
(a)記憶デバイス201に対するアクセス、及び、
(b)ホスト1からのアクセス要求に対する処理
のいずれか、又は両者を中止する。
 ストレージ装置200は、ホスト1に対して、中止したアクセス、及び、処理に関連したアクセス要求に対応したエラー情報(アクセス要求が行われなかったことを示す情報であってもよい)を応答として返す。
 ストレージ装置200は、記憶デバイス201に対するアクセス、及び、ホスト1からのアクセス要求の処理を中止することで、ストレージ装置200の負荷を低減する。その結果、応答遅延状態を解消する。あるいは、又は応答遅延状態の発生を未然に回避することができる。
 ストレージ装置200からアクセス要求に対するエラー、又は、アクセス要求が未実行の応答を受理したホスト1は、ストレージ装置200に対するWriteアクセス要求を一時的に中断する。
 Writeアクセス要求発行対象のストレージ装置200から、エラー又は未実行の応答を受け取ったWriteアクセス要求の要求元のホスト1は、ストレージ装置200が応答遅延状態となることを避けるために、ストレージ装置200にWriteアクセス要求を発行する代わりに、
(1)ホスト1に接続された不図示の他のストレージ(例えば図1の代替ストレージ3)、
(2)ホスト1上の不図示のDRAM(Dynamic Random Access Memory)等のストレージ、
(3)不図示の他のホスト、
の少なくともいずれかに対して、Writeアクセス要求を行うようにしてもよい。
 アクセス要求元のホスト1は、応答遅延状態を解消途中のストレージ装置200において、未実行のReadアクセス、及び、当該Writeアクセス要求後のReadアクセスについて、所定のタイミングで(例えば即時に、又は、所定の時間経過後に)、ストレージ装置200に対して要求を行うようにしてもよい。ストレージ装置200は、ストレージ装置200の内部の負荷が下がり、応答遅延が解消するか、回避可能と判断される前であっても、ホスト1からのReadアクセス要求を、継続的に受け付けるようにしてもよい。Readアクセスは、例えば、ストレージ装置200がSSDである場合、記憶デバイス201として使用するNANDフラッシュメモリに格納されたデータを参照することで、アクセス処理が完了する。Readアクセス要求は、Writeアクセス要求に比べて負荷が軽い(Readでは、NANDフラッシュメモリに格納されたデータの更新処理は伴わず、データの格納、記憶領域のマッピング情報の更新、及び消去(Erase)等は行われない)。このため、NANDフラッシュメモリに対するReadアクセスを禁止しなくても、ストレージ装置200が応答遅延を、さらに悪化させることにはならない。
 上記したように、ホスト1は、Write禁止状態のストレージ装置200に対して、応答遅延が解消されるか、回避可能とされるまでの間は、Writeアクセス要求を行わない。ホスト1は、ストレージ装置200に対するWriteアクセス要求について、ホスト1に接続された、ストレージ装置200を除く、不図示の他のストレージや、ホスト1上の主記憶をはじめとしたストレージ、又は、他のホストに対するWriteアクセス要求を行う。
 また、ホスト1は、ストレージ装置200における応答遅延の解消、回避の完了の判定を、
(A)アクセス要求に対するエラー又はアクセス要求未実行の応答から予め定められた所定時間が経過した時点、
(B)ホストからストレージ装置200に対する内部の負荷状態又は応答遅延の解消状態の問い合わせ、又は、
(C)ホストからのRead以外のアクセス要求に対するエラー、未実行応答の有無等の情報によって行うようにしてもよい。
 ストレージ装置200は、ホストからの内部の負荷状態又は応答遅延の解消状態の問い合わせに対して、ストレージ装置200の状態情報を通知するようにしてもよい。ストレージ装置200は、応答遅延が解消、回避されたと判断されるまでの間、ホスト1からのRead以外のアクセス要求に対して、エラー情報(アクセス要求の未実行を示す情報であってもよい)を応答として返すようにしてもよい。
 本発明の一形態によれば、図3を参照すると、ストレージ2(図16、図17の基本概念のストレージ装置200に対応する一形態)は、1つ又は複数の記憶デバイス21とストレージ制御装置(コントローラ)29を備えている。ストレージ制御装置29は、アクセス変換手段(アクセス変換部)22、アクセスフィルタ手段(アクセスフィルタ部)23、コマンドキュー(コマンドキュー手段)24、コマンド発行手段(コマンド発行部)25、負荷判定手段(負荷判定部)26、Write許可変更手段(Write許可変更部)27、及び、コマンド中断手段(コマンド中断部)28を含む。なお、ストレージ制御装置29の手段(部)22-28の少なくとも1つについて、コンピュータで実行されるプログラムでその処理・機能を実現するようにしてもよい。なお、ストレージ2をSSDとすると、記憶デバイス21は、例えばNANDフラッシュメモリからなる。
 アクセス変換手段22は、ホスト1からストレージ2に対するアクセス要求をストレージ内の記憶デバイス21に対するアクセスコマンドに変換する。
 アクセスフィルタ手段23は、ホスト1からのRead以外のアクセス要求についてWrite禁止状態である場合、ホスト1にエラー情報を応答として返す。
 コマンドキュー24は、アクセス変換手段22によって変換されたアクセスコマンドを格納する。アクセスコマンドは、コマンド発行手段25で処理が行われるまでコマンドキュー24に処理待ち状態でキューイングされる。なお、コマンドキュー24は到着順にアクセスコマンドをキューに繋ぎ(enqueue)、順番にキューから外す(dequeue)ようにしてもよいし(FiFO: First In First Out:先入れ先出し方式)、アクセスコマンドの種類、アクセスデータ長、あるいは優先度等に応じて、コマンドキュー24のキューの再順序付けや取り出しをスケジューリングするようにしてもよい。
 コマンド発行手段25は、コマンドキュー24に格納されたアクセスコマンド(FIFOの場合、キューの先頭のアクセスコマンド)を記憶デバイス21に対して発行する。なお、コマンドキュー24にキューイングされているアクセスコマンドは、記憶デバイス21に対する当該アクセスコマンドのアクセス処理が完了するまで、コマンドキュー24に繋いだ状態であってもよい。あるいは、コマンド発行手段25は、コマンドキュー24に格納されたアクセスコマンドをコマンドキュー24から外し(dequeue)、記憶デバイス21に対してアクセスを発行するようにしてもよい。この場合、記憶デバイス21に対するアクセスが完了するまでの期間、コマンド発行手段25はコマンドキュー24から外した(dequeueした)アクセスコマンドを、自ユニット内で保持する。
 負荷判定手段26は、コマンドキュー24にキューイングされているアクセスコマンドから、ストレージの負荷を見積もる。
 Write許可変更手段27は、負荷判定手段26が高負荷と判定した場合に、Write禁止状態に移行し、高負荷状態から負荷が低下した場合に、Write許可状態に移行する。
 コマンド中断手段28では、Write禁止状態に移行した場合に、コマンドキュー24におけるRead以外のアクセスコマンド、又は、Readを含めた全てのアクセスコマンドを破棄するようにしてもよい。
 アクセス変換手段22は、ホスト1からストレージ2に対するアクセス要求を受け取り、応答までの処理を管理する。また、アクセス変換手段22は、受け取ったアクセス要求を、ストレージ2内部の単体又は複数の記憶デバイス21に対するアクセスコマンドに変換してコマンドキュー24に格納する。さらに、アクセス変換手段22は、変換された前記アクセスコマンドの実行結果を受け取り、前記アクセス要求に対応する処理が完了した時点で、ホスト1に、アクセス要求の結果を通知する(この機能は、図16の第2の手段204に対応する)。
 アクセスフィルタ手段23は、アクセス変換手段22が受けたアクセス要求に対して、ストレージ2がWrite禁止状態である場合、ホスト1からのRead以外のアクセス要求に対して、エラー(又は未実行であることを示すエラー情報)をホスト1に通知するように、アクセス変換手段22に指示する。
 コマンドキュー24は、アクセス変換手段22によって変換された、記憶デバイス21に対する発行待ちのアクセスコマンドを格納する。
 コマンド発行手段25は、コマンドキュー24から記憶デバイス21に対するアクセスコマンドを読み出して、記憶デバイス21に対してアクセスを行う。アクセスがReadの場合、コマンド発行手段25は、記憶デバイス21から読み出したデータを受け取る。
 負荷判定手段26は、コマンドキュー24にキューイングされているアクセスコマンドを分析して、ストレージ2における処理の負荷量、又は待ち時間を見積もる。より詳細には、負荷判定手段26は、コマンドキュー24にキューイングされている記憶デバイス21に対する発行待ち(待機中)のアクセスコマンド、及び、コマンド発行手段25において実行中のアクセスコマンドについて、待機中又は実行中のアクセスコマンドの数、及び/又は、アクセスコマンドの内容(アクセスの種類、アクセスデータ長等)から、ストレージ2における処理の負荷量(又は、待ち時間)を見積もる。なお、待ち時間は、例えばアクセスコマンドがコマンドキュー24に格納されてから、コマンド発行手段25によって読み出され、記憶デバイス21に発行されるまでの、コマンドキュー24での待機時間である。待ち時間は、コマンドキュー24にキューイングされているアクセスコマンドの全てについて測定するのではなく、例えば最後尾に繋がれたアクセスコマンド(今回入力されたアクセス要求に対応するアクセスコマンド)がコマンドキュー24の先頭に到達し、記憶デバイス21に発行されるまでの時間であってもよい。待ち時間は、ストレージ2の負荷に依存している。なお、負荷判定手段26は、負荷量と、待ち時間の両方を見積もるようにしてもよいし、いずれか一方のみ見積もるだけでもよい。
 Write許可変更手段27は、負荷判定手段26によるストレージ内部の負荷量、又は、待ち時間の見積結果が、予め定められた所定の基準値を上回った場合に、ストレージ2からホスト1に対する応答の遅延につながる、又は、高負荷状態である、と判定し、Write禁止状態(ストレージ2に対するホスト1からの更新操作を禁止する状態)とする。
 また、Write許可変更手段27は、高負荷状態(Write禁止状態)において、負荷判定手段26による負荷、又は待ち時間の見積もり結果が、予め定められた基準値を下回った場合に、高負荷状態が解消されたと判定してストレージに対するホストからの更新操作を許可する、Write許可状態とする。
 コマンド中断手段28は、Write許可変更手段27によってWrite禁止状態となった場合に、コマンドキュー24に格納されたアクセスコマンド、及び、コマンド発行手段25が記憶デバイスに対して実行中のアクセスの一部、又は全ての実行の中断処理を行う。コマンド中断処理によって、アクセス変換手段22に、記憶デバイス21に対するアクセスコマンドの中断が通知される。
 ストレージ2と接続されるホスト1は、図2を参照すると、
(a)Writeデータの格納先を管理するマッピングテーブル11と、
(b)Write禁止状態を記録するストレージ状態テーブル12と、
(c)アクセス要求が指し示すストレージ2と、対応するストレージ内のアドレスの変換、及び、Write禁止状態のストレージ2に対するマッピングの変更を行うマッピング手段(部)13と、
(d)ストレージ2からエラー情報の応答の受けたWriteアクセス要求に対して、ストレージ2のマッピングを変更するアクセス要求再発行手段(部)14と、
(e)ストレージ2に対してアクセス要求を行うアクセス要求手段(部)15と、
を備える。なお、(a)乃至(e)の手段の少なくとも一部は、コンピュータ上で実行されるプログラムにより、その処理・機能を実現するようにしてもよいことは勿論である。
 マッピングテーブル11は、ホスト1上で動作するソフトウェアからのアクセス要求において指定される論理アドレスの空間と、データが格納されるストレージ2、及び、アドレスの対応関係を記録する。
 ストレージ状態テーブル12は、ホスト1に接続されたストレージ2におけるWrite禁止状態を記録する。
 マッピング手段13は、ホスト1上で動作するソフトウェアからのアクセス要求に対して、マッピングテーブル11を参照してアクセス先となるストレージ2、及びストレージ内のアドレスを取得する。
 また、マッピング手段13は、アクセス要求がWriteアクセスである場合、ストレージ状態テーブル12の情報を確認し、ストレージ2がWrite禁止状態である場合には、格納先ストレージ、及び、ストレージ内の格納先アドレスを、前記ストレージ2を除いた他のストレージ3(代替ストレージ)から選択する。さらに、マッピング部13は、マッピングテーブル11に格納されたマッピング先のストレージ、及びストレージ内のアドレスを更新する。
 アクセス要求再発行手段14は、ストレージ2からエラー情報の応答を受けたアクセス要求がWriteである場合、エラーとなったWriteアクセス要求のWriteデータに対する格納先ストレージ、及び、ストレージ2内の格納先アドレスを、ストレージ2を除いた他のストレージ(例えば図2の3)から選択して、マッピングテーブル11に格納されたマッピング情報を更新する。
 アクセス要求手段15は、マッピング部13、及び、アクセス要求再発行手段14によって取得、又は、更新されたストレージ2、及び、ストレージ2のアドレスに対して、ホスト1上で動作するソフトウェアからのアクセス要求を発行する。
 また、アクセス要求手段15は、例えばストレージ2からのアクセス要求の応答結果として、ストレージ2からエラー情報(エラー又は未実行)の応答を受け取った場合、ストレージ状態テーブル12に対して、ストレージがWrite禁止状態であることを記録する。
 さらに、アクセス要求手段15は、アクセス再発行手段14を通してエラー情報の応答の受けたRead又はWriteアクセスの要求を再発行する。
 さらにまた、アクセス要求手段15は、アクセス要求の正常終了の応答をストレージから受け取った場合は、結果をアクセス要求元であるホスト1上のソフトウェアに返すと共に、ストレージ状態テーブル12に対して、ストレージ1がWrite許可状態であることを記録する。
 Write禁止確認手段16は、ストレージ状態テーブル12に記録されたストレージ2のWrite禁止状態を、所定の時期にWrite許可状態に更新するか、又は、所定の時間間隔で、アクセス要求手段15を通して、Write禁止状態のストレージ2に対して、Write禁止状態の問い合わせを行うことで、ストレージ2がWrite許可状態に移行したことを検出する。
 上記したように、本発明を適用することで、ストレージ2の内部の高負荷による、ホスト1からのアクセス要求への応答遅延に対して、ホスト1からストレージ2に対するアクセスの応答遅延状態を解消し、又は、未然に回避ですることがきる。
 また、本発明によれば、ストレージ2からホスト1に対するエラー応答を用いているため、既存のプロトコル、アクセスインタフェースを変更せずに適用可能である。以下、例示的な実施形態に即して説明する。
<実施形態:システム構成>
 図1は、本発明の実施形態(exemplary embodiments)の一例の構成を例示する図である。図1を参照すると、一実施形態のシステムは、ホスト1、ホスト1に接続されるストレージ2、代替ストレージ3を含む。代替ストレージ3は、ストレージ2と同様のストレージであってもよいし、異なるストレージであってもよい。また、図1ではストレージ2、及び代替ストレージ3は直接ホスト1に接続されているが、互いに不図示のネットワークを介して接続される構成としてもよい。あるいは、ストレージ2、代替ストレージ3の一方がネットワークを介してホスト1に接続された構成としてもよい。ストレージ2は、例えば、プログラム可能な一括消去型不揮発性半導体メモリを備えた装置(例えばSSD)で構成してもよい。なお、図1では、単に説明の簡単のために、ホスト1に接続されるストレージ2、代替ストレージ3を各一台としたシステム構成が例示されているが、ストレージの台数は1台に制限されるものでないことは勿論である。また、ホスト1は、図示されない他のホスト等に、通信手段(例えばネットワーク)等を介して接続される構成としてもよいことは勿論である。
<実施形態:ホスト>
 図2は、図1のホスト1の構成の一例を模式的に例示した図である。図2を参照すると、ホスト1は、マッピングテーブル11と、ストレージ状態テーブル12と、マッピング部13と、アクセス要求再発行部14と、アクセス要求部15と、Write禁止確認部16を備える。
<ホスト:マッピングテーブル>
 図4は、図2のマッピングテーブル11を説明する図である。マッピングテーブル11は、ホスト1上で動作するソフトウェアからのアクセス要求において指定される論理アドレスの空間と、データが格納されるストレージ2又は代替ストレージ3を示すID(Identity)等の識別子(ストレージID)、及び、該ストレージ2又は代替ストレージ3におけるアドレス(ストレージアドレス)の対応関係を記録する。なお、“0x00001100”の“0x”は以下の桁がヘキサデシマル(hexadecimal)表示であることを表している。図4では、マッピングテーブルにホスト1上で動作するソフトウェアが参照する論理アドレス毎に対応するストレージのID、及び論理アドレスに対応する前記ストレージのアドレスを格納しているが、一定の論理アドレス毎にマッピングを管理する場合は、論理アドレスの格納は省略してもよい。
<ホスト:ストレージ状態テーブル>
 図5は、図2のストレージ状態テーブル12を説明する図である。ストレージ状態テーブル12は、ストレージ2におけるWrite禁止状態を記録する。また、代替ストレージ3をストレージ2と同等の構成とした場合、代替ストレージ3のWrite禁止状態を併せて記録するようにしてもよい。図5では、ストレージを識別するID(ストレージID)毎のWrite禁止状態をYes、Noの形で記憶しているが、Yes、Noの2通りの状態を表すことが可能な形式でありさえすれば、任意の形式であってよい。また、ストレージIDが例えば等間隔で管理されている場合は、ストレージ状態テーブル12におけるストレージIDの格納は省略してもよい。
<ホスト:マッピング部>
 再び図2を参照すると、マッピング部13は、ホスト1上で動作するソフトウェアからのアクセス要求に対して、マッピングテーブル11を参照してアクセス先となるストレージ2、及びストレージ2に対してアクセス時に指定するアドレスを取得する。
 また、マッピング部13は、ホスト1からのWriteアクセスに対して、ストレージ状態テーブル12の情報を参照し、アクセス要求先となるストレージ2がWrite禁止状態である場合、Write先を代替ストレージ3、及び、代替ストレージ3の他に有効なデータが格納されていない任意のアドレスに変更する。マッピング部13は、Write先のストレージ、及びストレージのアドレスに関する変更を、マッピングテーブル11に反映する。
<ホスト:アクセス要求再発行部>
 アクセス要求再発行部14は、ストレージ2からエラー情報(エラー又はアクセス要求が未実行である旨の情報)の応答に対応するアクセス要求がWriteアクセス要求である場合、エラーとなったWriteアクセス要求のWriteデータに対する格納先ストレージ、及び格納先ストレージにおけるアドレスを、代替ストレージ3、及び、代替ストレージ3の他に有効なデータが格納されていない任意のアドレスに変更する。なお、ホスト1においてアクセス要求に対するストレージ2からの応答として、例えば値0をアクセス成功(正常完了)を示す値(戻り値)として受け取る場合、エラーの応答は0以外の値(例えば1)とされる。同じくエラーであるが、ストレージ2において、アクセス要求が未実行である旨の情報を0以外の値に設定してもよい。以下では、ストレージ2からの応答のエラー又はアクセス要求が未実行である旨の情報をエラー情報という。
 そして、アクセス要求再発行部14は、変更したアドレスをマッピングテーブル11に反映する。変更先の代替ストレージ3がストレージ2と同一の構成の場合、ストレージ状態テーブル12の情報を参照して、Write許可状態の代替ストレージ3を選択する。
<ホスト:アクセス要求部>
 アクセス要求部15は、マッピング部13、及び、アクセス要求再発行部14によって取得、又は、更新されたストレージ2、又は、代替ストレージ3の指定されたアドレスに対して、ホスト1上で動作するソフトウェアからのアクセス要求を発行する。
 また、アクセス要求部15は、ストレージ2、又は、代替ストレージ3からのアクセス要求の応答結果を受け取り、ストレージ2からエラー情報の応答を受け取った場合は、ストレージ状態テーブル12に対してストレージ2がWrite禁止状態であることを記録する。
 さらに、アクセス要求部15は、アクセス要求再発行部14を通してエラー情報の応答の受けたRead又はWriteアクセスの要求を再発行する。
 アクセス要求部15は、アクセス要求の正常終了の応答をストレージ2から受け取った場合には、結果をアクセス要求元であるホスト上のソフトウェアに返すと共に、ストレージ状態テーブル12に対して、ストレージ2がWrite許可状態であることを記録する。
<ホスト:Write禁止確認部>
 Write禁止確認部16は、ストレージ状態テーブル12に記録されたストレージ2のWrite禁止状態を任意の時期にWrite許可状態に更新する。これによってホスト1からのWriteアクセス要求がストレージ2に対して行われるようにすることで、ストレージ2がWrite許可状態に移行したことを検出する。
 Write禁止確認部16は、上記構成に制限されるものでないことは勿論である。Write禁止確認部16の他の構成例として、例えば、任意の時間間隔でアクセス要求部15を通してWrite禁止状態のストレージ2に対して、Write禁止状態の問い合わせを行い、ストレージ2からの応答がWrite許可状態である場合は、ストレージ状態テーブル12に対してストレージ2がWrite許可状態であることを記録してもよい。特に制限されないが、Write禁止状態の問い合わせとして、例えば、
(1)ダミーのWriteコマンドをWrite禁止状態のストレージに発行し、エラーが返されるか否かでWrite禁止状態であるか否かを判定する、
(2)ストレージ2において予め定められた特定のレジスタ等を通して、応答遅延、停止の状態を、ホスト1から読み出し可能な状態としておき、ホスト1がストレージ2の当該特定のレジスタを参照する、
等の手法を用いることができる。
<実施形態:ストレージ>
 図3は、図1のストレージ2の構成の一例を模式的に例示した図である。図3を参照すると、ストレージ2は、一つ又は複数の記憶デバイス21と、アクセス変換部22と、アクセスフィルタ部23と、コマンドキュー24と、コマンド発行部25と、負荷判定部26と、Write許可変更部27と、コマンド中断部28を備える。
<ストレージ:記憶デバイス>
 記憶デバイス21は、ストレージ2においてホスト1から格納されたデータを実際に記憶するためのデバイスである。例えば、ストレージ2がSSDである場合、記憶デバイス21はNANDフラッシュメモリで構成される。なお、図3では、単に説明の簡単のため、記憶デバイス21を1つ備えた構成が図示されているが、記憶デバイス21は1つに制限されるものでないことは勿論である。
<ストレージ:アクセス変換部>
 アクセス変換部22は、ホスト1からストレージ2に対するアクセス要求を受け取り、アクセス変換部22内のアクセス要求テーブル221に登録する。また、アクセス変換部22は、ホスト1から受け取ったアクセス要求を解釈して、1つ以上の記憶デバイス21に対するアクセスコマンドに変換し、該アクセスコマンドをコマンドキュー24に格納する(キューイングする)。
 アクセス変換部22は、ホスト1の各アクセス要求に対応するコマンドキュー24に格納された各アクセスコマンドの実行状況を管理し、アクセスコマンドの実行結果を、コマンド発行部25から受け取り、アクセス要求に対応する処理が完了した時点で、ホスト1にアクセス要求の結果を通知する。
<ストレージ:アクセスフィルタ部>
 アクセスフィルタ部23は、アクセス変換部22が受けたアクセス要求に対して、Write許可変更部27からストレージ2のWrite禁止状態を取得する。アクセスフィルタ部23は、ストレージ2がWrite禁止状態である場合、ホスト1からのRead以外のアクセス要求に対して、ホスト1に、エラー情報を応答として返すように、アクセス変換部22に指示する。
<ストレージ:コマンドキュー>
 コマンドキュー24は、アクセス変換部22によって変換された、記憶デバイス21に対する発行待ちのアクセスコマンドを格納する。コマンドキュー24は、キューの最後尾に繋ぎ(enqueue)、先頭から取り出す(dequeue)構成のFIFO等の線形リストであってもよい。コマンドキュー24はDRAM等に実装し、キューへの繋ぎ、キューからの取り出しをソフトウェアで制御するようにしてもよい。コマンドキュー24に保持されているアクセスコマンドを、アクセス種別、アクセスデータ長、優先度等に応じて、順番を入れ替えるスケジューリングを行うことで、トータルの待ち時間の短縮化を図るようにしてもよい。
<ストレージ:コマンド発行部>
 コマンド発行部25は、コマンドキュー24から記憶デバイス21に対するアクセスコマンドを読み出して、記憶デバイス21に対してアクセスを行う。コマンド発行部25は、記憶デバイス21から結果を受け取り、アクセス変換部22に、アクセスコマンドの実行結果を返す。記憶デバイス21に対するアクセスとして、記憶デバイス21がNANDフラッシュメモリの場合、NANDフラッシュメモリのIO(Input/Output)ポートにアクセスコマンドを入力する。アクセスコマンドは、例えばNANDフラッシュメモリの動作コマンドとアドレス(例えばブロックアドレス、ブロック内のページアドレス)からなる。
<ストレージ:負荷判定部>
 負荷判定部26は、コマンドキュー24に格納された、記憶デバイス21に対する発行待ち、及び、コマンド発行部25において、記憶デバイス21に対して現在実行中のアクセスコマンドついて、アクセスコマンド数、又は、アクセスコマンドの内容(アクセスの種別、アクセスデータ長等)から、ストレージ2の内部における処理の負荷量、又は、待ち時間を計算する。具体例は実施例として後に説明する。
<ストレージ:Write許可変更部>
 Write許可変更部27は、負荷判定部26によるストレージ2の内部の負荷量、又は、待ち時間の見積結果が、予め定められた基準値を上回った場合に、ストレージ2が応答の遅延、又は応答遅延につながる高負荷状態と判定し、ストレージ2に対するホスト1からの更新操作を禁止するWrite禁止状態とする。
 また、Write許可変更部27は、Write禁止状態に設定されたのち、負荷判定部26による負荷、又は、待ち時間の見積結果が予め定められた基準値を下回った場合には、高負荷状態が解消されたものと判定し、ストレージ2に対するホスト1からの更新操作を許可するWrite許可状態とする。
 Write許可変更部27が、ストレージ2の内部の負荷量、又は、待ち時間の見積結果と比較する予め定められた基準値は、
(イ)ストレージ2の動作中に変更されない固定値、
(ロ)ストレージ2において動作中にホスト1から指定された値、
(ハ)ストレージ2の内部でアクセス要求を受け取る前に自動的に決定される値、
のいずれであっても良い。
<ストレージ:コマンド中断部>
 コマンド中断部28は、Write許可変更部27から情報を取得した結果、ストレージ2がWrite禁止状態である場合、コマンドキュー24に格納されたコマンド、及びコマンド発行部25が記憶デバイス21に対して、現在実行中のアクセスコマンドの一部、又は、全ての実行の中断処理を行う。
 コマンド中断部28から、アクセス変換部22に対して、記憶デバイス21に対するコマンドの中断が通知される。
<ストレージ:アクセス要求テーブル>
 図6は、図3のアクセス変換部22におけるアクセス要求テーブル221を説明する図である。なお、アクセス要求テーブル221は、アクセス変換部22内に配設する構成に制限されるものでなく、ストレージ2の任意の記憶部に備えた構成としてもよい。図6を参照すると、アクセス要求テーブル221は、アクセス要求ID、アクセス種類、アドレス、サイズ、Writeデータ、対応コマンドIDの各カラム(フィールド)を備えている。
 アクセス要求IDは、ホスト1からの各アクセス要求に対して、アクセス要求を示すID等の識別子である。
 アクセス種類は、Read、Write等である。
 アドレス、サイズ、Writeデータ、対応コマンドIDは、それぞれ、アクセス先のアドレス、アクセスサイズ、WriteアクセスにおけるWriteデータ、変換先の記憶デバイス21に対するアクセスコマンドを示すID等の識別子である。
 アクセス要求テーブル221のデータ形式は、図6に示した形式に限定されるものでないことは勿論である。例えばWriteデータは、図6に示したように、直接、Writeデータ本体を格納する形式以外に、例えばストレージ2内部にメモリを別途用意し、Writeデータをメモリに格納して、アクセス要求テーブル221にはメモリに対するポインタ情報のみを格納してもよい。
<ストレージ:コマンドキュー内のアクセスコマンド>
 図7は、図3のコマンドキュー24に格納されているアクセスコマンドを説明する図である。コマンドキュー24は、図3のアクセス変換部22において変換された各記憶デバイス21に対するアクセスコマンドについて、
・コマンドID、
・アクセス種類、
・記憶デバイスID、
・アドレス(アクセス先のアドレス)、
・Writeデータ(Writeアクセス固有)、
・対応アクセス要求ID(アクセス変換部22における変換元であるホスト1からのアクセス要求を示すID等の識別子)、
の各カラム(フィールド)を有する。なお、コマンドキュー24のデータ形式は、図7に示した形式に限定されるものでないことは勿論である。例えば図7では、全てのアクセスコマンドのサイズが同一になることを想定しているが、連続した記憶領域に対する複数のアクセス(図7に示した例では、コマンドIDが12、及び13の2つのWriteアクセス)について、コマンドキューにサイズ欄を設け受け、アクセスサイズをコマンドキューに格納して一つのアクセスコマンドとして扱ってもよい。また、Writeデータについても、アクセス要求テーブル221と同様に、コマンドキューに直接Writeデータを格納せずに、Writeデータを格納するメモリへのポインタ情報を格納するようにしてもよい。
<実施形態:動作>
 次に、図1乃至図7を参照して説明した本実施形態のいくつかの動作例について説明する。
<ストレージへのアクセス要求手順>
 図8は、本実施形態の動作の一例を説明する流れ図である。図8には、図2に示したホスト1で動作するソフトウェアからアクセス先として対応するストレージ2、又は代替ストレージ3に対してアクセス要求を行う手順が例示されている。図8を参照して、図2に示したホスト1からストレージへのアクセス要求手順について説明する。
(ステップS11)
 ホスト1のマッピング部13は、ホスト1上で動作するソフトウェアからアクセス要求を受け取ると、マッピングテーブル11を参照して、当該アクセス要求の指し示すストレージ2に対応する識別子、及び、ストレージ2に対してアクセス時に指定するアドレスを取得する。
(ステップS12)
 ホスト1のマッピング部13は、アクセス要求がWriteであるか否か判定する。アクセス要求がReadである場合(ステップS12のNo判定)、ステップS16以降の処理を実行する。
(ステップS13)
 ホスト1のマッピング部13は、アクセス要求がWriteである場合(ステップS12のYes判定)、ステップS11にて取得したアクセス要求先のストレージ2についてストレージ状態テーブル12を参照して、Write禁止状態であるか確認する。
(ステップS14)
 ホスト1のマッピング部13は、ステップS13においてWrite先となるストレージ2がWrite禁止状態であるか否か判定する。Write禁止状態でない場合(ステップS14のNo判定)、ステップS16以降の処理を実行する。
(ステップS15)
 ホスト1のマッピング部13は、ステップS13においてWrite先となるストレージ2がWrite禁止状態である場合(ステップS14のYes判定)、Write先を代替ストレージ3、及び代替ストレージ3における他に有効なデータが格納されていない任意のアドレスに変更し、マッピングテーブル11を更新する。
(ステップS16)
 ホスト1のアクセス要求部15は、マッピング部13からアクセス先となるストレージ2又は代替ストレージ3を指し示す識別子情報と、該識別子情報が指し示すストレージにおけるアクセス先アドレスの情報を受け取り、識別子情報が指し示すストレージ2又は代替ストレージ3に対してアクセス要求を発行して手順を終了する。
 上記ステップS11からS16までの処理を行い、ホスト1で動作するソフトウェアからアクセス先として対応するストレージ2、又は代替ストレージ3に対してアクセス要求を行う動作が完了する。
<ホストの代替ストレージへのWriteアクセス>
 図9は、図1乃至図7を参照して説明した本実施形態の動作の一例(エラー応答となったWriteアクセス要求に対応した代替ストレージへのWriteアクセス)を説明する流れ図である。図9には、図8のステップS11からS16において、図2のホスト1で動作するソフトウェアからアクセス先として対応するストレージ2にアクセス要求を行った結果の応答を処理し、エラー応答のWriteアクセス要求に対して代替ストレージ3にWriteを行う手順が例示されている。図9を参照して、代替ストレージへのWriteアクセスについて説明する。
(ステップS201)
 ホスト1のアクセス要求部15は、アクセス先であるストレージ2又は代替ストレージ3から応答を受け取る。
(ステップS202)
 ホスト1のアクセス要求部15は、ステップS201において応答を受け取ったアクセス要求が正常終了であるか否かを確認する。
(ステップS203)
 正常終了の場合(ステップS202のYes判定)、ホスト1のアクセス要求部15は、応答を受け取ったアクセス要求がReadであるか判定する。
(ステップS204)
 アクセス要求がReadである場合(ステップS203のYes判定)、ホスト1のアクセス要求部15は、ホスト1上で動作するソフトウェアに対してRead結果(読み出しデータ)を返し、処理手順を終了する。
(ステップS205)
 ホスト1のアクセス要求部15は、ステップS201において応答を受け取ったアクセス要求が正常に終了した場合であり(ステップS202のYes判定)、該正常終了の応答を受け取ったアクセス要求がWriteである場合(ステップS203のNo判定)、ストレージ状態テーブル12に対して、ストレージ2がWrite許可状態であることを記録する。
(ステップS206)
 ホスト1のアクセス要求部15は、ホスト1上で動作するソフトウェアに対してWrite完了を通知して、処理手順を終了する。
(ステップS207)
 ホスト1のアクセス要求部15は、ステップS201において受け取った応答が正常終了でないこと(エラー、又は未実行)を伝えるメッセージである場合(ステップS202のNo判定)、ストレージ状態テーブル12に対して、ストレージ2がWrite禁止状態であることを記録する。
 ホスト1のアクセス要求再発行部14は、アクセス要求部15がステップS201において、正常終了でないこと(エラー、又は未実行)を伝える応答を受け取ったアクセス要求に対して、該応答を受けたアクセス要求がReadである場合(ステップS208のNo判定)、ステップS210以降の処理手順を実行する。
(ステップS209)
 ホスト1のアクセス要求再発行部14は、アクセス要求部15がステップS201において、正常終了でないこと(エラー、又は未実行)を伝える応答を受け取ったアクセス要求に対して該応答がWriteである場合(ステップS208のYes判定)、アクセス要求の発行先ストレージを代替ストレージ3に変更し、アクセス要求の発行先ストレージにおける発行先アドレスを他に有効なデータが格納されていない任意のアドレスに変更してマッピングテーブル11を更新する。
(ステップS210)
 ホスト1のアクセス要求再発行部14は、アクセス要求部15がステップS201において応答を受け取ったアクセス要求に対して、アクセス要求部15に再発行を要求して処理手順を終了する。
 上記ステップS201からS210までの処理を行い、図8のステップS11からS16において、ホスト1で動作するソフトウェアからアクセス先として、対応するストレージ2にアクセス要求を行った結果の応答を処理し、応答がエラー情報(エラー又はアクセス要求未実行)のWriteアクセス要求に対して、アクセス先を変更した代替ストレージ3に対するWriteを行う動作が完了する。
 上記した手順では、アクセス要求部15が直接ホスト1上で動作するソフトウェアに対して応答を行っているが、マッピング部13を介して、応答を行ってもよい。
 なお、代替ストレージ3を、ストレージ2と同様の構成とした場合、ステップS210において代替ストレージ3に対して再発行を行ったアクセス要求に対して、代替ストレージ3からの応答に対する処理を、図9のステップS201からS210の処理を行うようにしてもよい(この場合、代替ストレージ3を代替するストレージは、例えば図1のストレージ2となる)。
<Write禁止状態から許可状態への移行>
 図10は、図1乃至図7を参照して説明した本実施形態の動作の一例(Write許可状態への移行)を説明する流れ図である。図10には、ホスト1においてWrite禁止確認部16による、事前に指定されたストレージ2におけるWrite禁止状態からWrite許可状態への移行を検出する手順が例示されている。図10を参照して、ホスト1におけるWrite禁止状態からWrite許可状態への移行動作を説明する。
(ステップS31)
 ホスト1のWrite禁止確認部16は、Write禁止状態問い合わせが不使用であるか否かを確認する。
(ステップS32)
 ホスト1のWrite禁止確認部16は、Write禁止状態の問い合わせを行う手段を持たない、又は該手段を利用しない場合(ステップS31のYes判定)、ストレージ状態テーブル12に記録されたストレージ2の状態情報をWrite許可状態に更新して処理手順を終了する。
(ステップS33)
 ホスト1のWrite禁止確認部16は、ストレージ2がWrite禁止状態の問い合わせを行う手段を持ち、該手段を利用する場合(ステップS31のNo判定)、ストレージ2に対してWrite禁止状態の問い合わせを行う。
(ステップS35)
 ホスト1のWrite禁止確認部16は、ステップS33におけるストレージ2に対する問い合わせの結果、Write禁止状態であった場合(ステップS34のNo判定)、任意の時間待機した後に、ステップS31から再び処理を実行する。
(ステップS36)
 ホスト1のWrite禁止確認部16は、ステップS33におけるストレージ2に対する問い合わせの結果、Write許可状態であった場合(ステップS34のYes判定)、ストレージ状態テーブル12に記録されたストレージ2の状態情報をWrite許可状態に更新して処理手順を終了する。
 上記ステップS31からS36までの処理を行い、ホスト1においてWrite禁止確認部16による、事前に指定されたストレージ2におけるWrite禁止状態からWrite許可状態への移行を検出する動作が完了する。また、上記ステップS31からS36までの処理は、ストレージ2のWrite禁止状態を契機に開始する以外に、ホスト1に接続された各ストレージ2に対して、常時実行する形でもよい。
<ストレージでのアクセス処理実行>
 図11は、図1乃至図7を参照して説明した本実施形態の動作の一例(アクセス処理を実行時の動作)を説明する流れ図である。図11には、図3を参照して説明したストレージ2においてホスト1からのアクセス要求に対して、アクセス処理を実行して応答を返す手順が例示されている。図11を参照して、ストレージ2におけるアクセス処理実行時の動作を説明する。
(ステップS41)
 ストレージ2のアクセス変換部22は、ホスト1からストレージ2に対するアクセス要求を受け取り、アクセス変換部22内のアクセス要求テーブル221に登録する。
(ステップS42)
 ストレージ2のアクセスフィルタ部23は、Write許可変更部27からストレージ2のWrite禁止状態を取得する。
(ステップS43)
 ストレージ2のアクセスフィルタ部23は、
ステップS41にてアクセス変換部22が受けたアクセス要求がWriteであり、且つ、ストレージ2がWrite禁止状態であるか否か、
を判断する。
(ステップS44)
 ステップS41にてアクセス変換部22が受けたアクセス要求がWriteであり、且つ、ストレージ2がWrite禁止状態である場合(ステップS43のYes判定)、ストレージ2のアクセス変換部22は、アクセス要求テーブル221から登録したアクセス要求を削除し、正常終了ではないことを示すエラー情報(エラー又はアクセス要求未実行の情報)を、応答としてホスト1に通知して、処理手順を終了する。
(ステップS45)
 ステップS41にて、アクセス変換部22が受けたアクセス要求がReadであるか、又は、ストレージ2がWrite許可状態である場合(ステップS43のNo判定)、ストレージ2のアクセス変換部22は、アクセス要求を解釈して、記憶デバイス21に対する1個以上のアクセスコマンドに変換してコマンドキュー24に格納する。また、アクセス変換部22は、アクセス要求テーブル221に、アクセスコマンドを、ホスト1からのアクセス要求に対応するコマンドとして登録する。
(ステップS46)
 ストレージ2のコマンド発行部25は、コマンドキュー24に登録されたアクセスコマンドに対応するアクセスを、各記憶デバイス21に対して発行する。
(ステップS47)
 ストレージ2のコマンド発行部25は、ステップS46において記憶デバイス21に対して発行したアクセスの結果を、アクセス変換部22に通知して、該アクセスコマンドの情報を、コマンドキュー24から削除する。
(ステップS48)
 ストレージ2のアクセス変換部22は、ホスト1からのアクセス要求について、アクセス要求テーブル221を参照して、対応する全てのアクセスコマンドについて完了を確認すると、ステップS47で通知されたアクセス結果から、ホスト1に対して、アクセス要求の結果を応答として送信する。アクセス要求がReadの場合、アクセス変換部22は、読み出しデータをホスト1に送信する。
(ステップS49)
 ストレージ2のアクセス変換部22は、アクセス要求テーブル221に対して、ステップS48で応答したホスト1からのアクセス要求に関する情報を削除し、処理手順を終了する。
 上記ステップS41からS49までの処理を行い、ストレージ2においてホスト1からのアクセス要求に対して、アクセス処理を実行して応答を返す動作が完了する。
 なお、上記ステップS41における、アクセス要求テーブル221に対するアクセス要求の登録は、上記ステップS45の処理の直前に行っても良い。このようにした場合、上記ステップS44において、アクセス変換部22によるアクセス要求テーブル221から登録したアクセス要求を削除する処理を省略することができる。
<ストレージでの応答遅延を検出時のエラー応答>
 図12は、図1乃至図7を参照して説明した本実施形態の動作の一例(応答遅延を検出時のエラー情報を応答)を説明する流れ図である。図12には、図3を参照して説明したストレージ2が内部の応答遅延を検出してWrite禁止状態に移行し、ホスト1に対してアクセス要求に対するエラー情報(エラーコード又はアクセス未実行の旨)を通知する手順を説明する。図12を参照して、図3のストレージ2が応答遅延を検出時のエラー情報応答をホスト1に返す手順を説明する。
(ステップS51)
 ストレージ2の負荷判定部26は、コマンドキュー24に格納されたアクセスコマンド、及び、コマンド発行部25にて実行中のアクセスコマンドを参照して、ストレージ2内部の負荷を計算する。
(ステップS52)
 ストレージ2のWrite許可変更部27は、ステップS51で行われた負荷判定部26による負荷の計算結果から、応答遅延が発生しているか否か判定する。
(ステップS53)
 ストレージ2のWrite許可変更部27は、応答遅延状態ではないと判定した場合(ステップS52のYes判定)、ストレージ2をWrite許可状態に設定して処理手順を終了する。
(ステップS54)
 ストレージ2のWrite許可変更部27は、ステップS51で行われた負荷判定部26による負荷の計算結果から、応答遅延状態(応答遅延が発生している)と判定した場合(ステップS52のNo判定)、ストレージ2をWrite禁止状態に設定する。
(ステップS55)
 ストレージ2のコマンド中断部28は、Write許可変更部27から、ストレージ2がWrite禁止状態であることの検出に応答して、
(A)コマンドキュー24に格納されたストレージ21に対するアクセスコマンド、及び、
(B)コマンド発行部25において、ストレージ21に対して実行中のアクセスコマンド、
から、中断の対象となる、記憶デバイス21に対するアクセスコマンドを選択する。
 コマンド中断部28では、例えば、記憶デバイス21に対するWriteアクセスコマンド、消去コマンドを優先的に中断対象とする。ホスト1からのWriteアクセス要求に関連しないReadアクセスコマンドは、基本的に、コマンド中断部28によるコマンド中断対象とはならない。コマンド中断部28は、例えばホスト1からのReadアクセス要求をアクセス変換部22で変換したReadアクセスコマンドについては、Write禁止状態の検出時に、Readアクセスコマンドがコマンドキュー24で待機中の場合、当該Readアクセスコマンドを中断対象から外し、コマンド発行部25で実行中である場合にも、中断しない構成とされる(ただし、例えば高負荷の解消、性能向上を図るため、コマンド中断部28において、当該Readアクセスコマンドを中断するように構成してもよいことは勿論である)。
(ステップS56)
 ストレージ2のコマンド中断部28は、ステップS55にて中断の対象として選択した、コマンド発行部25において実行中のアクセスコマンドの中断を指示する。コマンドキュー24に格納された中断対象のアクセスコマンドと共に、アクセス変換部22に対してコマンドの実行中断を通知する。
(ステップS57)
 ストレージ2のコマンド中断部28は、ステップS56において中断されたアクセスコマンドの情報を、コマンドキュー24、またはコマンド発行部25から削除する。
(ステップS58)
 ストレージ2のアクセス変換部22は、アクセス要求テーブル221を参照して、中断されたアクセスコマンドに対応する、ホスト1からのアクセス要求に対して、エラー、又は未実行であることを示す応答を行って処理手順を終了する。
 上記ステップS51からS58までの処理を行い、ストレージ2内部の応答遅延を検出してWrite禁止状態に移行してホスト1に対してアクセス要求に対するエラー又は未実行を通知する動作を終了する。
 なお、上記ステップS57、及びS58は、並列、又は順序を入れ替えて実行してもよい。また、上記ステップS55における、中断対象のアクセスコマンドの選択の仕方は、特に限定されない。例えば記憶デバイス21が、NANDフラッシュメモリを用いたSSDである場合のように、ホスト1からのWriteアクセス要求において、特に、ストレージ内部が高負荷となるWriteアクセス要求に対する処理のアクセスコマンドのみを選択的に中断するようにしてもよい。なお、記憶デバイス21に対するWriteアクセスコマンドを中断する場合、アクセス最小単位(SSDの場合、ページ単位)のWriteアクセスを完了した上で、Writeアクセスコマンドを中断するようにしてもよい。
 また、上記ステップS55におけるコマンド中断部28は、コマンドキュー24に格納された実行待ち状態、又は、コマンド発行部25による実行中の記憶デバイス21に対するアクセスコマンドから直接中止の対象となるアクセスコマンドを選択しているが、アクセス変換部22のアクセス要求テーブル221を参照して、中断の対象となるホスト1からのアクセス要求を選択し、該アクセス要求に対応するアクセスコマンドをステップS56で中断する処理手順であってもよい。
<実施例>
 前記した実施形態の作用効果の例として、SSDからなるストレージ2がホスト1からのアクセス要求によって高負荷となり、Write禁止状態となった場合の動作の例を説明する。なお、本実施例では、図1の代替ストレージ3は、図3を参照して説明したストレージ2とは異なる。代替ストレージ3は、記憶デバイスとして、SSDを備えていず、例えばHDDを有し、常にWriteアクセスが成功するストレージであるものとする。本実施例では、説明を容易とするため、図1において、ホスト1に対して、ストレージ(SSD)2と、及び、代替ストレージ3が1台ずつ接続されているものとする。
 ストレージ(SSD)2の記憶デバイスであるNANDフラッシュメモリについて、Read及びWriteの最小単位であるページサイズを4KB(Kilo-Byte)(1ワード線に4KB相当のセルが接続される)、消去の最小単位であるブロックを64ページとする。つまりブロックサイズは、256KBであるものとする。また、1ページあたりのRead、Write時間を、それぞれ200μsec(microsecond)、400μsec、1ブロックの消去時間を3msec(millisecond)とする。ストレージ(SSD)2がホスト1に対して提供する記憶領域の空間は、記憶デバイスであるNANDフラッシュメモリの先頭アドレスから順番に割り当てられており、ストレージ(SSD)2のアドレス空間における4KB毎、256KB毎の領域がそれぞれNANDフラッシュメモリのページ、ブロックに対応するものとする。
 ストレージ(SSD)2では、内部のコマンドキュー(図3の24)における待ち時間が400msecを上回った時点で、応答遅延が発生しているものと判断し、Write禁止状態に移行して、ホスト1からのアクセス要求に対応した、記憶デバイスに発行するアクセスコマンドの中断処理を行う。そして、ストレージ(SSD)2は、ストレージ(SSD)2におけるWrite禁止状態は、コマンドキュー(図3の24)における待ち時間が400msecを下回った時点で解除してWrite許可状態に移行するものとする。
 はじめに、この実施例における初期状態について説明する。この実施例において、ホスト1上で動作するプログラムに対する記憶領域のアドレス空間は、ストレージ(SSD)2の先頭アドレスから順番にマッピングされた状態である。なお、マッピングの変更は4KB単位で実行する。ストレージ(SSD)2の各ページは有効、無効を問わず、何らかのデータが書き込まれた状態であり、データを格納する際に、ブロックに対する消去処理が必要になるものとする。また、ストレージ(SSD)2は、初期状態では、アクセス要求を受けていず、ストレージ(SSD)2の処理負荷は無負荷状態であるものとする。
 本実施例では、ホスト1上で動作するプログラムから、図13で示したアクセス要求を順番にストレージ2に発行する。なお、図13のアクセス要求一覧表141は、ホスト1がストレージ2に対して発行するアクセスを管理するテーブルである。アクセス要求一覧表141におけるアクセス要求のアドレスは、アクセス対象のデータの格納先の論理アドレスを表しており、アクセス要求のサイズはアクセス対象のデータのサイズを表している。特に制限されないが、アクセス要求のアドレス、サイズは、例えば4KBを単位として表している(例えばアクセスサイズが1と表されるアクセス要求のサイズは4KBである)。アクセス要求一覧表141は、例えばホスト1内の記憶部に記憶される。ホスト1のアクセス要求部15は、アクセス要求一覧表141のアクセス要求に対してマッピング部13でストレージ2のアドレス(ページアドレス)に変換してストレージ(SSD)2に発行する。
 すなわち、ホスト1は、図13のアクセス要求一覧表141のID=1のReadアクセス要求を、ストレージ(SSD)2に対して発行する。記憶領域は、ストレージ(SSD)2の先頭アドレスから、順番にマッピングされた状態であるため、ID=1のReadアクセス要求は、ストレージ(SSD)2に対するアドレス:0x00000100の8KBのReadアクセス要求となる。ストレージ(SSD)2は、無負荷であるため、NANDフラッシュメモリに対する8KB(2ページ分)のRead処理が、即座に行われる。
 次に、ID=1のReadアクセス要求の直後に、ホスト1から、図13のアクセス要求一覧表141におけるID=2からID=11までのWriteアクセス要求がストレージ(SSD)2に対して発行される。記憶領域は、ストレージ(SSD)2の先頭アドレスから順番にマッピングされた状態であることから、ID=2からID=11のWriteアクセス要求は、ストレージ(SSD)2に対する4KBのWriteアクセス要求となる。これらのWriteアクセス要求は、ストレージ(SSD)2の記憶デバイス21(NANDフラッシュメモリ)に対するアクセスコマンドに変換される。
 ストレージ(SSD)2の記憶デバイス21(NANDフラッシュメモリ)において、格納されたデータの更新に対してブロックの消去が必要である。このため、例えば図13のアクセス要求一覧表141におけるID=2のホストからのWriteアクセス要求は、記憶デバイス21(NANDフラッシュメモリ)に対する、図14のコマンドキュー24に示した複数のアクセスコマンド(連続する3のアクセスコマンドRead、Erase、Write)に変換される。
 記憶デバイス21(NANDフラッシュメモリ)の当該ブロック内のページ退避処理が加わることで、ホスト1からのID=2のWriteアクセス要求は、
(イ)ページの退避を行うReadアクセスコマンド63個(図14のID1~ID63)、
(ロ)ブロックのEraseコマンド1個(図14のID64)、及び、
(ハ)Writeアクセス要求で指定されたWriteデータの格納、及び、退避していたページのデータ書き戻しを行うWriteアクセスコマンド64個(図14のID65~ID128)、
に変換される。
 これらのアクセスコマンドに対する記憶デバイス21(NANDフラッシュメモリ)の処理時間は、合計、
 200×63+3×1000+400×64=41200μsec(=41.2msec)
である。
 上記合計待ち時間は、図3のストレージ2において、ストレージ2の負荷判定部26(図3)で計算する。図13のID=3からID=11のWriteアクセス要求についても、記憶デバイス21(NANDフラッシュメモリ)に対する同様のアクセスコマンドに変換されることから、図13のID=11のWriteアクセス要求を行った時点で、ストレージ(SSD)2のコマンドキュー24における合計待ち時間は、
41.2msec×10=412msec
となる。この値も、ストレージ2の負荷判定部26で計算する。
 ストレージ(SSD)2は、ID=11のWriteアクセス要求を受け取り、記憶デバイス21(NANDフラッシュメモリ)に対するアクセスコマンドへの変換を行った時点で、負荷判定部26からの合計待ち時間を受け取ったWrite許可変更部27は、応答遅延が発生しているものと判断し、Write禁止状態に移行する。
 また、ストレージ(SSD)2は、応答遅延を解消するために、コマンド中断部28により、図13のID=2からID=11のWriteアクセス要求に対応するアクセスコマンドの中断処理を開始する。これによって、ホスト1が、図13のID=2からID=11のWriteアクセス要求をストレージ(SSD)2に対して発行すると、ストレージ(SSD)2のアクセス変換部22(図3)からホスト1に対してエラー応答が返される。
 ストレージ(SSD)2からのエラー応答を受信したホスト1は、マッピングテーブル11(図2)を変更し、図13のID=2からID=11のWriteアクセス要求に関して、Write先のストレージを、代替ストレージ3に変更し、代替ストレージ3に対してWriteアクセス要求を行う。
 その結果、図13のID=2からID=11のWriteアクセス要求のデータは、代替ストレージ3に格納され、Writeアクセスの完了後、ホスト1におけるマッピングテーブル11は、図15に示した状態となる。図15では、マッピングテーブル11のうち、マッピングが代替ストレージ3に変更された領域のみを表している(ストレージIDの「3」は代替ストレージ3を表している)。
 ストレージ(SSD)2では、記憶デバイス21(NANDフラッシュメモリ)に対するアクセスコマンドの処理が中断されたことで、後続のアクセス要求に対する応答遅延が解消される。よって、本実施例によれば、SSDの高負荷状態による応答遅延、一時停止を解消し、また未然に回避することができる。
 ストレージ(SSD)2がWrite禁止状態に移行した後に、ホスト1から、ストレージ(SSD)2の記憶領域に対して、ID=12のReadアクセス要求が行われた場合、ストレージ(SSD)2に対するアドレス0x00001000の16KBのReadアクセス要求となる。ストレージ(SSD)2において、Readアクセス要求は、記憶デバイス21(NANDフラッシュメモリ)に対する16KB(4ページ分)のReadアクセスコマンドに変換される。ストレージ(SSD)2において、図13のID=2からID=11のWriteアクセス要求に対応したアクセスコマンドは実行されない。このため、図13のID=12のReadアクセス要求に対応した、記憶デバイス21(NANDフラッシュメモリ)に対するReadアクセスコマンドは、記憶デバイス21(NANDフラッシュメモリ)において、412msecの待ち時間を伴わずに、直ちに実行される。
 上記実施例では、ストレージ2として、HDD等のディスクドライブのインタフェースに対応し、ストレージ内にコントローラを備えたNANDフラッシュメモリを備えたSSDを用いた例に即して説明したが、本発明において、ストレージとしては、上記したSSDに制限されるものでないことは勿論である。例えば、分類の仕方によっては必ずしもSSDには属さない一括消去型不揮発性半導体メモリを備えたストレージ(例えばUSB(Universal Serial Bus)メモリやメモリカード)等にも適用可能である。上記したように、本発明は、SSD等一括消去型不揮発性半導体メモリを備えたストレージ(記憶媒体)に適用して好適とされるが、本発明は、かかるストレージへの適用に制限されるものでなく、例えばHDDと同様の任意の記憶媒体等にも適用可能であることは勿論である。
 なお、上記実施形態では、コントローラ(図3のストレージ制御装置29)をストレージ内に備えた例に即して説明したが、コントローラ(図3のストレージ制御装置29)の少なくとも一部を、ストレージ2とは別のノード、例えばホスト1(プロセッサ、計算機)側に備えた構成としてもよい。あるいは、コントローラ(図3のストレージ制御装置29)を記憶デバイス(図3の21)内に実装するようにしてもよい。
 なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各付記の各要素、各実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ乃至選択が可能である。また数値等は、上記した例に制限されるものでないことは勿論である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
 上記した実施形態、実施例は、特に制限されないが、例えば以下のように付記される。
(付記1)
 ホストからのアクセス要求を記憶デバイスへのアクセス用に変換したアクセスコマンドを一旦保持するコマンドキューと、
 前記コマンドキューでのアクセスコマンドのキューイング状況を分析し、前記記憶デバイスへの書き込みを禁止とすべきか否かを判断する第1の手段と、
 書き込み禁止の場合、前記ホストからのアクセス要求に対してエラー応答を返す第2の手段と、
 を含む、ことを特徴とするストレージ装置。
(付記2)
 前記第1の手段が、前記コマンドキューで待機中のアクセスコマンド、及び、アクセス実行中のアクセスコマンドの数及びその内容の少なくとも一方に基づき、負荷を判定する負荷判定手段と、
 前記負荷が、所定の閾値を超えている場合、前記記憶デバイスへの書き込みを禁止とする書き込み許可変更手段と、
 を含む、ことを特徴とする付記1記載のストレージ装置。
(付記3)
 前記第1の手段が前記記憶デバイスへの書き込み禁止と判断すると、前記コマンドキューにキューイングされているアクセスコマンドの少なくとも一部を中断するコマンド中断手段をさらに含む、ことを特徴とする付記1又は2記載のストレージ装置。
(付記4)
 前記コマンド中断手段は、前記第1の手段が前記記憶デバイスへの書き込み禁止と判断すると、前記記憶デバイスに対してアクセス実行中のアクセスコマンドも中断する、ことを特徴とする付記3記載のストレージ装置。
(付記5)
 前記ホストからのアクセス要求を前記記憶デバイスに発行するアクセスコマンドに変換して前記コマンドキューに格納するアクセス変換手段をさらに含む、ことを特徴とする付記1乃至4のいずれかに記載のストレージ装置。
(付記6)
 前記第2の手段は、書き込み禁止の場合、前記ホストからの書き込み要求、及び、前記ホストからの問い合わせに対して、書き込み禁止のエラー応答を返す、ことを特徴とする付記1乃至5のいずれかに記載のストレージ装置。
(付記7)
 書き込み禁止の場合に、前記ホストから書き込み要求を受けると、前記書き込み要求に対するアクセスコマンドを前記コマンドキューに格納することなく、前記エラー応答を返すか、前記書き込み要求を廃棄するように制御する手段をさらに含む、ことを特徴とする付記1乃至6のいずれかに記載のストレージ装置。
(付記8)
 書き込み禁止の状態において、前記ホストからの読み出し要求に対するアクセス処理は継続して行う、ことを特徴とする付記1乃至7のいずれかに記載のストレージ装置。
(付記9)
 前記コマンド中断手段は、書き込み禁止の状態において、読み出し要求に対応するアクセスコマンドに関して、前記コマンドキューにキューイングされているアクセスコマンドは残し、実行中のアクセスコマンドは中断せずに実行を継続する、ことを特徴とする付記3記載のストレージ装置。
(付記10)
 前記記憶デバイスは、ブロック単位に一括消去される不揮発性半導体装置を含む、ことを特徴とする付記1乃至9のいずれかに記載のストレージ装置。
(付記11)
 付記1乃至10のいずれかに記載のストレージ装置を少なくとも1つ備え、
 さらに、ホストを備え、
 前記ホストは、前記ストレージ装置へのアクセス要求に対してエラー応答を受けると、前記ストレージ装置に対して前記アクセス要求を再発行するか、別のストレージ装置に対して前記アクセス要求を発行する、ことを特徴とする情報処理システム。
(付記12)
 前記ホストは、前記ストレージ装置に対して書き込み禁止状態であるか否かを問い合わせる手段を備えたことを特徴とする付記11記載の情報処理システム。
(付記13)
 前記ホストは、前記エラー応答を受けとった前記ストレージ装置に対して、読み出しアクセス要求を選択的に再発行し、書き込みアクセス要求を、他のストレージ装置に発行することを特徴とする付記11又は12記載の情報処理システム。
(付記14)
 前記ホストは、前記ストレージ装置から前記エラー応答を受け取ると、前記ストレージ装置は障害ではなく、書き込み禁止と判断して、後続の読み出しアクセス要求を、前記ストレージ装置に発行することを特徴とする付記11又は12記載の情報処理システム。
(付記15)
 少なくとも1つのストレージ装置と、
 ホストと、
 を備え、
 前記ホストは、前記ストレージ装置へのアクセス要求に対してエラー応答を受けると、前記ストレージ装置に対して前記アクセス要求を再発行するか、別のストレージ装置に対して前記アクセス要求を発行する、情報処理システム。
(付記16)
 ホストからのアクセス要求を記憶デバイスへのアクセス用に変換したアクセスコマンドを一旦保持するコマンドキューにおける前記アクセスコマンドのキューイング状況を分析し、前記記憶デバイスへの書き込みを禁止とすべきか否かを判断し、
 書き込み禁止の場合、前記ホストからのアクセス要求に対してエラー応答を返す、ことを特徴とするストレージ制御方法。
(付記17)
 前記コマンドキューで待機中のアクセスコマンド、及び、アクセス実行中のアクセスコマンドの数及びその内容の少なくとも一方に基づき、負荷を判定し、
 前記負荷が、所定の閾値を超えている場合、前記記憶デバイスへの書き込みを禁止とする、ことを特徴とする付記16記載のストレージ制御方法。
(付記18)
 前記記憶デバイスへの書き込み禁止と判断すると、前記コマンドキューにキューイングされているアクセスコマンドの少なくとも一部をクリアし、対応するアクセスコマンドを中断する、ことを特徴とする付記16又は17記載のストレージ制御方法。
(付記19)
 前記記憶デバイスへの書き込み禁止の判別結果に応じて、その時点で前記記憶デバイスに発行するアクセスを実行中のアクセスコマンドも中断する、ことを特徴とする付記18記載のストレージ制御方法。
(付記20)
 前記ホストからのアクセス要求を受け、前記記憶デバイスに発行するアクセスコマンドに変換して前記コマンドキューに格納する、ことを特徴とする付記16乃至19のいずれかに記載のストレージ制御方法。
(付記21)
 前記記憶デバイスへの書き込みが禁止の場合、前記ホストからのアクセス要求又は問い合わせに対する応答として、前記エラー情報を返す、ことを特徴とする付記16乃至20のいずれかに記載のストレージ制御方法。
(付記22)
 前記ホストから書き込み要求を受けると、前記記憶デバイスへの書き込みが禁止の状態にある場合、前記書き込み要求に対するアクセスコマンドを前記コマンドキューに格納することなく、エラー情報を返すか、前記書き込み要求を廃棄するように制御する、ことを特徴とする付記16乃至21のいずれかに記載のストレージ制御方法。
(付記23)
 前記記憶デバイスへの書き込みが禁止の状態において、ホストからの読み出し要求に対するアクセス処理は継続して行う、ことを特徴とする付記16乃至22のいずれかに記載のストレージ制御方法。
(付記24)
 前記記憶デバイスへの書き込みが禁止の状態において、前記コマンドキューにキューイングされている、読み出し要求に対応するアクセスコマンドはクリアせずに残す、ことを特徴とする付記16乃至23のいずれかに記載のストレージ制御方法。
(付記25)
 前記ホストは、ストレージへのアクセス要求に対してエラー応答を受けると、前記ストレージに対して前記アクセス要求を再発行するか、別のストレージに対して前記アクセス要求を発行する、ことを特徴とする付記16乃至24のいずれかに記載のストレージ制御方法。
(付記26)
 前記ホストは、前記ストレージに対して前記記憶デバイスへの書き込みが禁止の状態であるか否かを問い合わせる、ことを特徴とする付記25記載のストレージ制御方法。
(付記27)
 前記ホストは、前記エラー応答を受けとったストレージ装置に対して、読み出しアクセス要求を選択的に再発行し、書き込みアクセス要求を、他のストレージ装置に発行する、ことを特徴とする付記16乃至26のいずれかに記載のストレージ制御方法。
(付記28)
 前記ホストは、前記ストレージから前記エラー応答を受け取ると、前記ストレージは障害ではなく、書き込み禁止と判断して、後続の読み出しアクセス要求を、前記ストレージに発行する、ことを特徴とする付記16乃至26のいずれかに記載のストレージ制御方法。
(付記29)
 ホストに接続されるストレージを構成するコンピュータに、
 ホストからのアクセス要求を記憶デバイスへのアクセス用に変換したアクセスコマンドを一旦保持するコマンドキューにおける前記アクセスコマンドのキューイング状況を分析し、前記記憶デバイスへの書き込みを禁止とすべきか否かを判断する第1の処理と、
 書き込み禁止の場合、前記ホストからのアクセス要求に対してエラー応答を返す第2の処理と、
 を実行させるプログラム。
(付記30)
 前記第1の処理が、前記コマンドキューで待機中のアクセスコマンド、及び、アクセス実行中のアクセスコマンドの数及びその内容の少なくとも一方に基づき、負荷を判定する負荷判定処理と、
 前記負荷が、所定の閾値を超えている場合、前記記憶デバイスへの書き込みを禁止とする書き込み許可変更処理と、
 を含む、ことを特徴とする付記29記載のプログラム。
(付記31)
 前記第1の処理が前記記憶デバイスへの書き込み禁止と判断すると、前記コマンドキューにキューイングされているアクセスコマンドの少なくとも一部をクリアしアクセスコマンドを中断するコマンド中断処理を前記コンピュータに実行させる付記29又は30記載のプログラム。
(付記32)
 前記コマンド中断処理は、前記第1の手段が前記記憶デバイスへの書き込み禁止と判断すると、前記記憶デバイスに対してアクセス実行中のアクセスコマンドも中断する、ことを特徴とする付記31記載のプログラム。
(付記33)
 前記ホストからのアクセス要求を前記記憶デバイスに発行するアクセスコマンドに変換して前記コマンドキューに格納するアクセス変換処理を、前記コンピュータに実行させる付記29乃至32のいずれかに記載のプログラム。
(付記34)
 前記第2の処理は、書き込み禁止の場合、前記ホストからの書き込み要求、及び、前記ホストからの問い合わせに対して、書き込み禁止のエラー応答を返す処理を、前記コンピュータに実行させる付記29乃至33のいずれかに記載のプログラム。
(付記35)
 前記記憶デバイスへの書き込みが禁止の場合に、前記ホストから書き込み要求を受けると、前記書き込み要求に対するアクセスコマンドを前記コマンドキューに格納することなく、前記エラー応答を返すか、前記書き込み要求を廃棄するように制御する処理を、前記コンピュータに実行させる付記30乃至34のいずれかに記載のプログラム。
(付記36)
 前記記憶デバイスへの書き込みが禁止の状態において、前記ホストからの読み出し要求に対するアクセス処理は継続して行う前記コンピュータに実行させる付記30乃至35のいずれかに記載のプログラム。
(付記37)
 前記コマンド中断処理は、前記記憶デバイスへの書き込みが禁止の状態において、読み出し要求に対応するアクセスコマンドに関して、前記コマンドキューにキューイングされているアクセスコマンドは残し、実行中のアクセスコマンドは中断せずに実行を継続する、付記32記載のプログラム。
(付記38)
 ストレージ装置へのアクセス要求に対して、書き込み禁止状態の前記ストレージ装置からエラー応答を受けると、前記ストレージ装置に対して前記アクセス要求を再発行するか、別のストレージ装置に対して前記アクセス要求を発行する処理を、ホストを構成するコンピュータに実行させるプログラム。
(付記39)
 前記エラー応答を受けとったストレージ装置に対して、読み出しアクセス要求を選択的に再発行し、書き込みアクセス要求を、他のストレージ装置に発行する処理を、前記ホストを構成する前記コンピュータに実行させる付記38記載のプログラム。
(付記40)
 前記ストレージ装置から前記エラー応答を受け取ると、前記ストレージ装置は障害ではなく、書き込み禁止と判断して、後続の読み出しアクセス要求を、前記ストレージに発行する処理を、前記ホストを構成する前記コンピュータに実行させる付記38記載のプログラム。
1 ホスト
2 ストレージ(SSD)
3 代替ストレージ
11 マッピングテーブル
12 ストレージ状態テーブル
13 マッピング部
14 アクセス要求再発行部
15 アクセス要求部
16 Write禁止確認部
21 記憶デバイス
22 アクセス変換部
221 アクセス要求テーブル
23 アクセスフィルタ部
24 コマンドキュー
25 コマンド発行部
26 負荷判定部
27 Write許可変更部
28 コマンド中断部
29 ストレージ制御装置
131 ホスト
141 アクセス要求一覧表
200 ストレージ装置
201 記憶デバイス
202 コマンドキュー
203 第1の手段(第1のユニット)
204 第2の手段(第2のユニット)
205 負荷判定手段(負荷判定ユニット)
206 書き込み許可変更手段(書き込み許可変更ユニット)
207 コマンド中断手段(コマンド中断ユニット)

Claims (30)

  1.  ホストからのアクセス要求を記憶デバイスへのアクセス用に変換したアクセスコマンドを一旦保持するコマンドキューと、
     前記コマンドキューに保持されているアクセスコマンドの分析結果に基づき、前記記憶デバイスへの書き込みを禁止とすべきか否かを判断する第1の手段と、
     書き込み禁止の場合、前記ホストからのアクセス要求に対してエラー応答を返す第2の手段と、
     を含む、ことを特徴とするストレージ装置。
  2.  前記第1の手段が、
     前記コマンドキューで待機中のアクセスコマンド、又は、
     前記コマンドキューで待機中のアクセスコマンド及びアクセス実行中のアクセスコマンドについて、
     前記アクセスコマンドの数と前記アクセスコマンドの内容の少なくとも一方の分析に基づき、負荷を判定する負荷判定手段と、
     前記負荷が予め定められた所定の閾値を超えている場合、前記記憶デバイスへの書き込みを禁止とする書き込み許可変更手段と、
     を含む、ことを特徴とする請求項1記載のストレージ装置。
  3.  前記第1の手段が前記記憶デバイスへの書き込み禁止と判断すると、前記コマンドキューに保持されているアクセスコマンドのうち少なくとも一部のアクセスコマンドをクリアし、前記少なくとも一部のアクセスコマンドを中断するコマンド中断手段をさらに含む、ことを特徴とする請求項1又は2記載のストレージ装置。
  4.  前記コマンド中断手段は、前記第1の手段が前記記憶デバイスへの書き込み禁止と判断すると、その時点でアクセス実行中のアクセスコマンドうち少なくとも一部のアクセスコマンドを中断する、ことを特徴とする請求項3記載のストレージ装置。
  5.  前記ホストからのアクセス要求を受け、前記記憶デバイスに発行するアクセスコマンドに変換して前記コマンドキューに格納するアクセス変換手段をさらに含む、ことを特徴とする請求項1乃至4のいずれか1項に記載のストレージ装置。
  6.  前記第2の手段は、前記記憶デバイスへの書き込みが禁止の場合に、前記ホストから問い合わせを受けると、書き込み禁止状態であることをエラー応答として返す、ことを特徴とする請求項1乃至5のいずれか1項に記載のストレージ装置。
  7.  前記記憶デバイスへの書き込みが禁止の場合に、前記ホストから書き込み要求を受けると、前記書き込み要求に対するアクセスコマンドを前記コマンドキューに格納することなく、前記エラー応答を返すか、前記書き込み要求を廃棄するように制御する手段をさらに含む、ことを特徴とする請求項1乃至6のいずれか1項に記載のストレージ装置。
  8.  前記記憶デバイスへの書き込みが禁止の状態において、前記ホストからの読み出し要求に対する前記記憶デバイスに対する読み出し処理は継続して行う、ことを特徴とする請求項1乃至7のいずれか1項に記載のストレージ装置。
  9.  前記コマンド中断手段は、前記記憶デバイスへの書き込み禁止の状態において、読み出し要求に対応するアクセスコマンドについては、
     前記コマンドキューに保持されているアクセスコマンドは残し、
     アクセス実行中のアクセスコマンドは、中断せずに、実行を継続する、ことを特徴とする請求項3記載のストレージ装置。
  10.  前記記憶デバイスは、ブロック単位に一括消去される不揮発性半導体装置を含む、ことを特徴とする請求項1乃至9のいずれか1項に記載のストレージ装置。
  11.  請求項1乃至10のいずれか1項に記載のストレージ装置を少なくとも1つ備え、
     さらに、ホストを備えた、ことを特徴とする情報処理システム。
  12.  前記ホストは、前記ストレージ装置へのアクセス要求に対してエラー応答を受けると、前記ストレージ装置に対して、
     前記アクセス要求を再発行するか、
     別のストレージ装置に対して前記アクセス要求を発行する、ことを特徴とする請求項11記載の情報処理システム。
  13.  前記ホストは、前記ストレージ装置に対して書き込み禁止状態であるか否かを問い合わせる手段を備えた、ことを特徴とする請求項11又は12記載の情報処理システム。
  14.  前記ホストは、前記エラー応答を受けとった前記ストレージ装置に対して、読み出しアクセス要求を選択的に再発行し、書き込みアクセス要求を、他のストレージ装置に発行する、ことを特徴とする請求項12又は13記載の情報処理システム。
  15.  前記ホストは、前記ストレージ装置からエラー応答を受け取ると、書き込み禁止と判断して、読み出しアクセス要求を、前記ストレージ装置に発行する、ことを特徴とする請求項12又は13記載の情報処理システム。
  16.  少なくとも1つのストレージ装置と、
     ホストと、
     を備え、
     前記ホストは、前記ストレージ装置へのアクセス要求に対してエラー応答を受けると、前記ストレージ装置に対して前記アクセス要求を再発行するか、別のストレージ装置に対して前記アクセス要求を発行する、情報処理システム。
  17.  ホストからのアクセス要求を記憶デバイスへのアクセス用に変換したアクセスコマンドをコマンドキューで一旦保持し、
     前記コマンドキューに保持されているアクセスコマンドの分析結果に基づき、前記記憶デバイスへの書き込みを禁止とすべきか否かを判断し、
     書き込み禁止の場合、前記ホストからのアクセス要求に対してエラー応答を返す、ことを特徴とするストレージ制御方法。
  18.  前記コマンドキューで待機中のアクセスコマンド、又は、
     前記コマンドキューで待機中のアクセスコマンド及びアクセス実行中のアクセスコマンドについて、
     前記アクセスコマンドの数と前記アクセスコマンドの内容の少なくとも一方の分析に基づき、負荷を判定し、
     前記負荷が、所定の閾値を超えている場合、前記記憶デバイスへの書き込みを禁止とする、ことを特徴とする請求項17記載のストレージ制御方法。
  19.  前記記憶デバイスへの書き込み禁止と判断すると、前記コマンドキューに保持されているアクセスコマンドのうち少なくとも一部のアクセスコマンドをクリアし、前記少なくとも一部のアクセスコマンドを中断する、ことを特徴とする請求項17又は18記載のストレージ制御方法。
  20.  前記記憶デバイスへの書き込み禁止の判別結果に応じて、その時点でアクセス実行中のアクセスコマンドのうち少なくとも一部のアクセスコマンドを中断する、ことを特徴とする請求項19記載のストレージ制御方法。
  21.  前記記憶デバイスへの書き込みが禁止の場合、前記ホストからのアクセス要求又は問い合わせに対して、書き込み禁止状態であることをエラー応答として返す、ことを特徴とする請求項17乃至20のいずれか1項に記載のストレージ制御方法。
  22.  前記ホストから書き込み要求を受けると、前記記憶デバイスへの書き込み禁止の状態にある場合、前記書き込み要求に対するアクセスコマンドを前記コマンドキューに格納することなく、エラー情報を返すか、前記書き込み要求を廃棄するように制御する、ことを特徴とする請求項17乃至21のいずれか1項に記載のストレージ制御方法。
  23.  前記記憶デバイスへの書き込みが禁止の状態において、前記ホストからの読み出し要求に対するアクセス処理は継続して行う、ことを特徴とする請求項17乃至22のいずれか1項に記載のストレージ制御方法。
  24.  前記記憶デバイスへの書き込み禁止の状態において、前記コマンドキューに保持されている読み出し要求に対応するアクセスコマンドはクリアせずに残し、実行中の読み出し要求に対応するアクセスコマンドは中断せずに実行を継続する、ことを特徴とする請求項17乃至23のいずれか1項に記載のストレージ制御方法。
  25.  前記ホストは、前記エラー応答を受けとった前記ストレージに対して、読み出しアクセス要求を選択的に再発行し、書き込みアクセス要求を、他のストレージに発行する、ことを特徴とする請求項17乃至24のいずれか1項に記載のストレージ制御方法。
  26.  前記ホストは、前記ストレージから前記エラー応答を受け取ると、前記ストレージは障害ではなく、書き込み禁止と判断して、読み出しアクセス要求を、前記ストレージに発行する、ことを特徴とする請求項17乃至24のいずれか1項に記載のストレージ制御方法。
  27.  ストレージを構成するコンピュータに、
     ホストからのアクセス要求を記憶デバイスへのアクセス用に変換したアクセスコマンドを一旦保持するコマンドキューに保持されているアクセスコマンドの分析結果に基づき、前記記憶デバイスへの書き込みを禁止とすべきか否かを判断する第1の処理と、
     書き込み禁止の場合、前記ホストからのアクセス要求に対してエラー応答を返す第2の処理と、
     を実行させるプログラム。
  28.  前記第1の処理が、
     前記コマンドキューで待機中のアクセスコマンド、又は、
     前記コマンドキューで待機中のアクセスコマンド及びアクセス実行中のアクセスコマンドについて、
     前記アクセスコマンドの数と前記アクセスコマンドの内容の少なくとも一方の分析に基づき、負荷を判定する負荷判定処理と、
     前記負荷が、所定の閾値を超えている場合、前記記憶デバイスへの書き込みを禁止とする書き込み許可変更処理と、
     を含む、ことを特徴とする請求項27記載のプログラム。
  29.  前記第1の処理が前記記憶デバイスへの書き込み禁止と判断すると、前記コマンドキューに保持されているアクセスコマンドのうち少なくとも一部のアクセスコマンドをクリアし、前記少なくとも一部のアクセスコマンドを中断するコマンド中断処理を前記コンピュータに実行させる請求項27又は28記載のプログラム。
  30.  ストレージ装置へのアクセス要求に対して、書き込み禁止状態の前記ストレージ装置からエラー応答を受けると、前記ストレージ装置に対して前記アクセス要求を再発行するか、別のストレージ装置に対して前記アクセス要求を発行する処理を、ホストを構成するコンピュータに実行させるプログラム。
PCT/JP2015/063202 2014-05-09 2015-05-07 ストレージ装置と情報処理システム及びストレージ制御方法とプログラム WO2015170702A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016517914A JPWO2015170702A1 (ja) 2014-05-09 2015-05-07 ストレージ装置と情報処理システム及びストレージ制御方法とプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014-098012 2014-05-09
JP2014098012 2014-05-09

Publications (1)

Publication Number Publication Date
WO2015170702A1 true WO2015170702A1 (ja) 2015-11-12

Family

ID=54392552

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/063202 WO2015170702A1 (ja) 2014-05-09 2015-05-07 ストレージ装置と情報処理システム及びストレージ制御方法とプログラム

Country Status (2)

Country Link
JP (1) JPWO2015170702A1 (ja)
WO (1) WO2015170702A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110737540A (zh) * 2019-09-29 2020-01-31 深圳忆联信息系统有限公司 用于ssd读取异常的恢复优化方法、装置、设备、存储介质
CN112559387A (zh) * 2020-12-23 2021-03-26 湖南国科微电子股份有限公司 一种读请求处理方法、装置、设备及介质
US11797233B2 (en) 2021-07-20 2023-10-24 Fujitsu Limited Data relay device, relay control method, and storage system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001024735A (ja) * 1991-07-31 2001-01-26 Sony Corp データ処理システム及びデータ伝送方法
JP2003196140A (ja) * 2001-10-02 2003-07-11 Hitachi Ltd 排他制御装置及び排他制御方法
JP2008015901A (ja) * 2006-07-07 2008-01-24 Hitachi Ltd 外部記憶装置のアクセス制御方式、及び、アクセス制御方式を行うコントローラ、ホストシステム又は外部記憶装置
WO2011074591A1 (ja) * 2009-12-17 2011-06-23 日本電気株式会社 ストレージ装置、ストレージ制御装置、ストレージ制御方法及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001024735A (ja) * 1991-07-31 2001-01-26 Sony Corp データ処理システム及びデータ伝送方法
JP2003196140A (ja) * 2001-10-02 2003-07-11 Hitachi Ltd 排他制御装置及び排他制御方法
JP2008015901A (ja) * 2006-07-07 2008-01-24 Hitachi Ltd 外部記憶装置のアクセス制御方式、及び、アクセス制御方式を行うコントローラ、ホストシステム又は外部記憶装置
WO2011074591A1 (ja) * 2009-12-17 2011-06-23 日本電気株式会社 ストレージ装置、ストレージ制御装置、ストレージ制御方法及びプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110737540A (zh) * 2019-09-29 2020-01-31 深圳忆联信息系统有限公司 用于ssd读取异常的恢复优化方法、装置、设备、存储介质
CN110737540B (zh) * 2019-09-29 2023-06-06 深圳忆联信息系统有限公司 用于ssd读取异常的恢复优化方法、装置、设备、存储介质
CN112559387A (zh) * 2020-12-23 2021-03-26 湖南国科微电子股份有限公司 一种读请求处理方法、装置、设备及介质
CN112559387B (zh) * 2020-12-23 2023-05-02 湖南国科微电子股份有限公司 一种读请求处理方法、装置、设备及介质
US11797233B2 (en) 2021-07-20 2023-10-24 Fujitsu Limited Data relay device, relay control method, and storage system

Also Published As

Publication number Publication date
JPWO2015170702A1 (ja) 2017-04-20

Similar Documents

Publication Publication Date Title
Jung et al. HIOS: A host interface I/O scheduler for solid state disks
KR102618699B1 (ko) 호스트에 의해 제어되는 스토리지 장치를 포함하는 컴퓨팅 시스템
US9021178B2 (en) High performance path for command processing
TWI628542B (zh) 快閃記憶體的垃圾回收斷電回復方法以及使用該方法的裝置
US9336153B2 (en) Computer system, cache management method, and computer
US20160110107A1 (en) Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
JP6094677B2 (ja) 情報処理装置、メモリダンプ方法、およびメモリダンププログラム
JP4924645B2 (ja) ストレージ制御装置、ストレージシステム及びコピー方法。
US20190243578A1 (en) Memory buffer management for solid state drives
US10310770B2 (en) Nonvolatile memory device, and storage apparatus having nonvolatile memory device
US9880749B2 (en) Storage method and device for controlling the output timing of commands based on a hold time
KR20210016191A (ko) 스토리지 장치
WO2015170702A1 (ja) ストレージ装置と情報処理システム及びストレージ制御方法とプログラム
CN111356991B (zh) 逻辑块寻址范围冲突爬虫
KR102526104B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
WO2013061368A1 (en) Storage apparatus and method of controlling storage apparatus
JP2013200692A (ja) メモリシステム
CN116235138A (zh) 一种应用于固态硬盘ssd的数据读取方法及相关装置
US10866759B2 (en) Deduplication storage system having garbage collection control method
JP2021135538A (ja) ストレージ制御装置及びストレージ制御プログラム
US9870156B2 (en) Memory system and method of controlling memory system
US10817445B2 (en) Semiconductor devices including command priority policy management and related systems
KR101549569B1 (ko) 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치
US11029878B2 (en) Information processing system
US10915441B2 (en) Storage system having non-volatile memory device

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016517914

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15789106

Country of ref document: EP

Kind code of ref document: A1