WO2011074591A1 - ストレージ装置、ストレージ制御装置、ストレージ制御方法及びプログラム - Google Patents
ストレージ装置、ストレージ制御装置、ストレージ制御方法及びプログラム Download PDFInfo
- Publication number
- WO2011074591A1 WO2011074591A1 PCT/JP2010/072513 JP2010072513W WO2011074591A1 WO 2011074591 A1 WO2011074591 A1 WO 2011074591A1 JP 2010072513 W JP2010072513 W JP 2010072513W WO 2011074591 A1 WO2011074591 A1 WO 2011074591A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- storage medium
- access
- data object
- storage
- write
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
Definitions
- the present invention relates to a storage device, a storage control device, a storage control method, and a program.
- the storage medium is a magnetic disk that is frequently used as a storage device
- the time required for moving the disk head to the data storage position, that is, seeking occupies most of the access time.
- the response time when accessing data stored at a close position on the disk is shorter than the response time when accessing data stored at a distant position. Therefore, the access time can be shortened by continuously storing the data to be used at physically close positions on the disk.
- An algorithm for optimizing the movement of the disk head has been proposed in order to efficiently access a plurality of data objects distributed and stored on the disk.
- the order of disk access is optimized so that the head can process a plurality of access requests in one round trip. Thereby, the total time required for a plurality of accesses can be shortened.
- flash memories used as storage media in recent years include elements that have higher sequential access performance than random access.
- the frequency of sequential access increases by performing a scheduling process that arranges the access columns for the storage media in the order of addresses, thereby reducing the total time required for a plurality of accesses. be able to.
- RAID Redundant Array of Independent / Independent Devices
- Non-Patent Document 2 RAID (Redundant Array of Independent / Independent Devices) described in Non-Patent Document 2 is used as a method for shortening the access time of the storage device.
- RAID improves reliability and access performance by providing redundancy among a plurality of storage media included in a storage apparatus.
- a method using redundancy between a plurality of storage media constituting a RAID has been proposed.
- a read access issue destination is selected from a plurality of storage media based on RAID redundancy.
- the issue destination is set so that the number of accesses waiting for each disk becomes equal. The selection method and the method of selecting the issue destination so that the amount of seek required for each disk to process all accesses are described.
- Patent Document 1 when the storage medium is a magnetic disk, the access processed by each disk, the seek range of the head obtained from the access sequence processed by each disk, and the current head position of each disk Describes the method of predicting the time until the processing of all accesses is completed from the seek time required to process all the access columns, and allocating and aligning the access columns to each disk so as to minimize the completion time Has been.
- Write access is not an access for the host accessing the storage device to obtain data. Therefore, immediacy is not required for access processing, and the storage apparatus side can perform write processing at an arbitrary time and write data to the storage medium as long as the written data is not lost.
- Read access is performed to read data required by the host that is the access source to the storage apparatus. Therefore, immediacy is required for the processing for Read access, and the response time affects the processing time on the host side.
- the storage device when scheduling that considers the access characteristics of the storage medium built in the storage device is used, when the storage medium is a magnetic disk, the access string is read or read unless the dependency due to the access order is inconsistent. Regardless of Write, the addresses are arranged in the order of access destination addresses. That is, when scheduling is performed based on an address, there may be a case where Write is executed before Read that requires immediateness.
- the processing time of the entire access sequence is shortened by appropriately selecting the storage medium that is issued for each access.
- this scheduling method is effective only for Read access in which there are a plurality of methods for selecting an access destination storage medium due to RAID redundancy.
- write access requires write access to all storage media in which redundant data is written for data to be written. That is, this scheduling method cannot select an access destination storage medium in the write access unlike the read, and cannot reduce the access time for the write access.
- the scheduling method considering the access characteristics for the storage medium, it is necessary to increase the number of accesses to be subjected to one scheduling process in order to obtain the same high scheduling effect as the read access for the write access.
- the accuracy of scheduling is improved by increasing the number of accesses to be scheduled.
- the processing time required for each scheduling increases, the processing load of the controller in the storage apparatus increases, and the response of each access is delayed.
- An object of the present invention is to provide a storage apparatus, a storage control apparatus, a storage control method, and a program that solve such problems.
- the storage control apparatus is: A cache for temporarily storing data objects to be written to the storage medium; A data classification unit that classifies the data object into any of a plurality of areas obtained by dividing an address space of the storage medium according to a write destination address for the storage medium; A data management unit that holds the identifier of the data object and the area into which the data object is classified in association with each other; With reference to the association, from among the data objects stored in the cache, preferentially select a data object to be written in an area close to the address of the access destination immediately before writing or reading to the storage medium, and A data selection unit for writing to the storage medium, In the plurality of areas, the time required for continuously accessing the same area is shorter than the time required for sequentially accessing different areas.
- the storage control method is: A computer temporarily storing a data object to be written to a storage medium in a cache; Classifying the data object into any of a plurality of areas obtained by dividing an address space of the storage medium according to a write destination address for the storage medium; Associating and holding an identifier of the data object and a region into which the data object is classified; With reference to the association, from among the data objects stored in the cache, preferentially select a data object to be written in an area close to the address of the access destination immediately before writing or reading to the storage medium, and Writing to the storage medium, In the plurality of areas, the time required for continuously accessing the same area is shorter than the time required for sequentially accessing different areas.
- the program according to the third aspect of the present invention is: A process of temporarily storing a data object to be written to a storage medium in a cache; A process of classifying the data object into one of a plurality of areas obtained by dividing an address space of the storage medium according to a write destination address for the storage medium; Processing for associating and holding an identifier of the data object and an area into which the data object is classified; With reference to the association, from among the data objects stored in the cache, preferentially select a data object to be written in an area close to the address of the access destination immediately before writing or reading to the storage medium, and Causing the computer to execute a writing process of writing to the storage medium, In the plurality of areas, the time required for continuously accessing the same area is shorter than the time required for sequentially accessing different areas.
- the storage control device when the write access and the read access to the storage medium coexist, the read access delay due to the write access can be prevented.
- FIG. 1 is a block diagram showing a configuration of a storage device according to a first embodiment. It is a figure which shows the structure of the system containing the storage apparatus which concerns on 2nd Embodiment. It is a block diagram which shows the structure of the storage apparatus which concerns on 2nd Embodiment. It is a block diagram which shows the structure of the command execution part in the storage apparatus which concerns on 2nd Embodiment. It is a figure which shows the access request management table in the storage apparatus which concerns on 2nd Embodiment. It is a figure which shows the command management table in the storage apparatus which concerns on 2nd Embodiment. 10 is a flowchart illustrating an access request processing procedure when the storage apparatus according to the second embodiment receives an access request from a host.
- 10 is a flowchart illustrating a processing procedure when a command execution unit in the storage apparatus according to the second embodiment reads out target data from a cache or a storage medium.
- 10 is a flowchart illustrating a processing procedure when a command execution unit in the storage apparatus according to the second embodiment receives a Write command.
- 10 is a flowchart illustrating the first half of a processing procedure when a command execution unit in a storage apparatus according to a second embodiment writes data on a cache to a storage medium.
- 14 is a flowchart illustrating the second half of a processing procedure when the command execution unit in the storage device according to the second embodiment writes data on a cache to a storage medium. It is a figure which shows the structure of HDD which is the substance of the storage medium in one Example. It is a figure which shows an example of the list of the access request from the host with respect to the storage apparatus in one Example.
- FIG. 1 is a block diagram showing the configuration of the storage apparatus 20 according to this embodiment.
- the storage apparatus 20 includes a storage control apparatus 40 and a storage medium 11.
- the storage control device 40 further includes a cache 12, a data classification unit 41, a data management unit 42, and a data selection unit 43.
- the cache 12 is a cache memory (or buffer memory) for holding a data object written by a write access before writing to the storage medium 11.
- the data classification unit 41 classifies the data objects waiting to be written to the storage medium 11 stored in the cache 12 (hereinafter referred to as “write data objects”) into a plurality of groups according to the access destination addresses.
- the data management unit 42 holds the identifier of the write data object and the area in which the write data object is classified in association with each other. In addition, the data management unit 42 manages a queue of read access and write access waiting for completion or issuance with respect to the storage medium 11 of the storage apparatus 20.
- the data selection unit 43 refers to the data management unit 42 and selects an item to be added to the write access queue for writing to the storage medium 11 from the write data object on the cache 12.
- the storage device 20 uses these units to select a data object and a time to be written to the storage medium 11 from a write data object temporarily stored in the cache 12.
- the cache 12 stores a data object read from the storage medium 11 as a result of a read (Read) access, and a data object written to the storage device 20 by Write access.
- each area is preferably set in an address range in which a head seek is short. That is, each area is a collection of accesses whose access time is shortened when continuous access is made to the storage medium 11.
- HDD Hard Disk Drive
- the data classification unit 41 classifies the data into a group corresponding to the access destination address each time a new write data object is added by write access to the storage device 20.
- the data classification unit 41 classifies the write data object according to which of these areas the address of the access destination of the write data object is included.
- the data management unit 42 stores and references the read access, write access order, and is currently being issued to the storage medium 11 while waiting for issuance while being stored in the corresponding queue for the storage medium 11 in the storage apparatus 20. Recording and referring to access, and recording and referring to access that the storage medium 11 has just completed are performed.
- the data selection unit 43 selects a write data object on the cache 12 for writing to the storage medium 11 from the group classified by the data classification unit 41.
- the data selection unit 43 corresponds to or is close to the access destination address immediately before the storage medium 11 and the access address scheduled to be issued to the storage medium 11. Choose as many of the region's Write data objects as possible. This prevents a decrease in read access performance.
- the data selection unit 43 uses the data management unit 42 to monitor the status of Read access to the storage medium 11 and waits for the issuance of Write so as to minimize the influence on the Read access.
- the influence of the increase in processing time of Read access due to Write access is reduced, the access performance when Read access and Write access are mixed is improved, and the time required for access scheduling is reduced. It can be shortened.
- the storage apparatus 20 using the data management unit 42 and the data selection unit 43, Write performance is reduced so that the write access from the cache 12 to the storage medium 11 is minimized. Select a data object. Therefore, even when Read and Write are performed in parallel, the influence on Read access is small compared to the conventional scheduling method.
- the data management unit 42 is used to select the time when Read access is not performed and write the write data object to the storage medium 11. It is also possible to avoid the performance degradation of Read access.
- FIG. 2 is a diagram illustrating a configuration of a system including the storage apparatus according to the present embodiment.
- a network 60 that connects the storage apparatus 10 to the storage apparatus 10 is included.
- a plurality of hosts 50-i can be connected to the storage apparatus 10 via the network 60.
- the host 50-i and the storage apparatus 10 may be directly connected.
- FIG. 3 is a block diagram showing the configuration of the storage apparatus 10 according to this embodiment.
- the storage apparatus 10 includes a storage medium 11, a cache 12, an access request processing unit 13, and a command execution unit 15.
- the storage medium 11 holds a data object written in the storage device 10.
- the storage medium 11 reads and writes data objects according to commands from the command execution unit 15.
- the cache 12 has higher access performance than the storage medium 11, and in particular, has higher random access performance.
- the cache 12 stores a part of the data object written in the storage medium 11, thereby improving the data object reading performance. Further, the cache 12 temporarily saves the data object written from the host 50-i before writing it to the storage medium 11, thereby speeding up the completion response to the write request from the host 50-i.
- the access request processing unit 13 includes an access interpretation unit 21 and an access request information storage unit 22.
- the access interpretation unit 21 receives an access request from the host 50-i and generates a command to the storage medium 11 in response to the access request.
- the access interpretation unit 21 passes the generated command to the command execution unit 15 and stores management information of the command in the access request information storage unit 22.
- the access interpretation unit 21 simultaneously passes a data object to be written (hereinafter referred to as “Write data object”) to the command execution unit 15.
- the access interpreting unit 21 accepts the data object read by the Read command from the command execution unit 15 or the completion notification of the Write command, and handles the data object read by Read or the completion notification of the Write. To the host 50-i which is the access request issuing source. When the access request from the host 50-i is completed, the access interpretation unit 21 deletes the management information of the corresponding access request stored in the access request information storage unit 22.
- the access request information storage unit 22 stores an access request management table 23 that indicates correspondence information between the access request received by the access interpreter 21 and the command generated by the access interpreter 21.
- FIG. 5 is a diagram illustrating the access request management table 23 as an example.
- the command execution unit 15 executes a command for the storage medium or the cache.
- the command execution unit 15 receives a Read or Write command to the storage medium 11 from the access request processing unit 13.
- the command execution unit 15 reads the data object at the corresponding address from the cache 12 and accesses the access request processing unit. Return to 13.
- the command execution unit 15 temporarily writes the Write data object received from the access request processing unit 13 in the cache 12.
- the command execution unit 15 writes the data object temporarily written in the cache 12 to the corresponding address of the storage medium 11.
- the command execution unit 15 instructs the access request processing unit 13 to read the data object in the case of the Read command. In the case of a Write command, a completion notification is returned.
- FIG. 4 is a block diagram showing the configuration of the command execution unit 15 in the present embodiment.
- the command execution unit 15 includes a control unit 31, a command management information storage unit 32, a time acquisition unit 35, a write data classification unit 36, a write issue determination unit 37, a command history management unit 38, and a command queue 39.
- a control unit 31 a command management information storage unit 32, a time acquisition unit 35, a write data classification unit 36, a write issue determination unit 37, a command history management unit 38, and a command queue 39.
- the control unit 31 receives a Read or Write command from the access request processing unit 13.
- the control unit 31 stores information necessary for access command execution management in the command management information storage unit 32.
- the control unit 13 When the Read command is received, the control unit 13 reads the data object to be accessed from the cache 12 or the storage medium 11. On the other hand, when the accepted command accepts the Write command, the control unit 13 writes a Write data object in the cache 12.
- control unit 31 writes a write data object that is stored in the cache 12 and not stored in the storage medium 11 to the storage medium 11 in accordance with an instruction from the write issue determination unit 37.
- control unit 31 When the control unit 31 issues a Read command and a Write command to the storage medium 11, the control unit 31 stores the command in the command queue 39 and puts the command issued to the storage medium 11 into a standby state. The control unit 31 issues the command stored in the command queue 39 to the storage medium 11. For a command completed by accessing the storage medium 11 or the cache 12 after issuing the command, the control unit 31 returns a data object to the access request processing unit 13 in the case of Read and a completion notification in the case of Write. .
- the command management information storage unit 32 stores a command management table 33 necessary for managing commands received from the access request processing unit 13.
- FIG. 6 is a diagram illustrating the command management table 33 as an example.
- the time acquisition unit 35 is used to acquire the completion time of each command issued to the storage medium 11.
- the write data classification unit 36 classifies and manages the write data object for each zone defined based on the access destination address.
- the write issue determination unit 37 is a storage medium among the write data objects stored in the cache 12 classified by the write data classification unit 36 based on the information stored in the command history management unit 38 and the commands stored in the command queue 39. 11 determines the data object to be written, and instructs the control unit 31 to issue a write command of the write data object to the storage medium 11.
- the command history management unit 38 stores history information of completed commands issued to the storage medium 11.
- the command queue 39 stores standby commands issued to the storage medium 11.
- the control unit 31 selects a command to be issued to the storage medium 11 from the commands stored in the command queue 39.
- FIG. 5 is a diagram illustrating an example of the access request management table 23 stored in the access request information storage unit 22.
- the access request management table 23 holds information associated with each access request from the host 50-i.
- the access request management table 23 is referred to by the access interpreter 21 when information associated with each access request from the host 50-i is required.
- the access request management table 23 indicates, as information accompanying the access request, a unique ID for each access request given when the access request is received, and whether it is Read or Write.
- the access type (“R / W” in FIG. 5)
- the address of the first block in the address space of the entire storage apparatus 10 to be accessed the access length
- a corresponding command ID which is an ID indicating a command for requesting processing to the command execution unit 15, is stored.
- FIG. 6 is a diagram illustrating a command management table 33 stored in the command management information storage unit 32 as an example.
- the command management table 33 holds information accompanying a command issued to the storage medium 11 or the cache 12 in order to process a command requested to be processed by the access request processing unit 13.
- the command management table 33 includes, as information accompanying the command, a unique ID for each command and an access type (“R / W” in FIG. 6) indicating whether it is Read or Write.
- the initial state of the execution state is “standby”, and the control unit 31 changes the execution state to “execution” when issuing the command stored in the command queue 39 to the storage medium 11.
- the access interpreter 21 of the access request processor 13 interprets the access request and generates an access command (Read, Write) for the storage medium 11 (step S1).
- the access interpretation unit 21 stores the access request management information received in step S1 and the generated command correspondence information in the access request information storage unit 22. The information stored at this time is shown in the access request management table 23 of FIG. Further, the access interpretation unit 21 requests the command execution unit 15 to process the command generated in step S1. When the command is Write, the data object to be written is simultaneously passed to the command execution unit 15 (Step S2).
- the control unit 31 receives the command passed to the command execution unit 15 in step S2.
- the control unit 31 stores the command management information in the command management information storage unit 32 in the format shown in the command management table 33 (step S3).
- the control unit 31 determines whether the command received in Step S3 is Read or Write (Step S4).
- step S4 determines whether the command is Read (Yes in step S5). If the result of determination in step S4 is that the command is Read (Yes in step S5), the control unit 31 executes access processing for the Read command. At this time, the control unit 31 issues a Read command process to the storage medium 11 or the cache 12 (step S6).
- step S7 the process of step S10 is performed (step S7).
- step S4 when the command is Write (No in step S5), the control unit 31 executes access processing for the Write command, and stores the Write data object received from the access interpretation unit 21 in the cache 12. Write (step S8).
- control unit 31 When the writing of the write data object to the cache 12 is completed, the control unit 31 notifies the access request processing unit 13 of the completion of the write process. Further, the control unit 31 deletes the write command management information stored in the command management information storage unit 32 at an arbitrary timing thereafter (step S9).
- the access interpreting unit 21 receives the Read result or Write completion notification from the control unit 31, and the access request of the host 50-i corresponding to the command result from the access request management table 23 stored in the access request information storage unit 22. Search for.
- the control unit 31 notifies the request source host 50-i of the corresponding access request of the completion notification of the data object or Write access request that is the result of the Read access request.
- the control unit 31 deletes the management information of the command stored in the access request information storage unit 22 at an arbitrary timing (step S10).
- step S6 a more detailed processing procedure of step S6 will be described with reference to FIGS. 3 to 6 and FIG.
- the control unit 31 issues a Read command received from the access request processing unit 13 to the cache 12 and inquires whether an access destination data object exists (step S21).
- step S22 If the data object that is the access destination of the Read command exists in the cache 12 (Yes in step S22), the control unit 31 receives the data object that is the read access destination from the cache 12, and ends the process of step S6 (step S23). ).
- control unit 31 stores the Read command received from the access request processing unit 13 in the command queue 39 (Step S22). S24).
- the control unit 31 receives the data object of the read result from the storage medium 11 after the completion of the Read command that is taken out from the command queue 39 and issued to the storage medium 11. Further, the execution state of the Read command stored in the command management information storage unit 32 is changed to “completed” (step S25).
- the control unit 31 adds the information of the Read command completed in step S25 to the command history management unit 38 and completes the process of step S6 (step S26).
- step S21 to S26 The processes from step S21 to S26 described above are performed, and the process for the Read command of the control unit 31 (step S6 in FIG. 7) is completed.
- step S8 a more detailed processing procedure of step S8 will be described with reference to FIGS.
- the control unit 31 inquires whether there is an area in the cache 12 that can be used to store the write data object received from the access request processing unit 13 (step S31).
- step S32 If there is no free area on the cache 12 as a result of the inquiry by the control unit 31 (No in step S32), the control unit 31 uses the write data object received from the access request processing unit 13 for writing to the cache 12. The process of the Write command is put on standby until a possible area is secured (step S33).
- control unit 31 If the result of the inquiry by the control unit 31 is that there is an empty area on the cache 12 (Yes in step S32), the control unit 31 issues a write command to the cache 12 and writes a write data object (step S34).
- the write data classifying unit 36 classifies the write data object stored in the cache 12 in step S34 for each zone defined based on the storage destination address (step S35).
- the zone is defined such that when the storage medium 11 is continuously accessed to the addresses in the same zone, the time required for the access is shorter than that of other zones.
- the storage medium 11 is an HDD
- the write data classifying unit 36 manages the defined zone and the address of the write data object belonging to the zone.
- step S31 to S35 The above processing from step S31 to S35 is performed, and the processing for the write command of the control unit 31 (step S8 in FIG. 7) is completed.
- the write issue determination unit 37 checks the free capacity of the cache 12 (step S41).
- step S42 If the free capacity of the cache 12 is insufficient (Yes in step S42), the write issue determination unit 37 performs the processing from step S46 onward, and continues the process of writing the write data object to the cache 12.
- step S42 the write issue determination unit 37 checks the load on the storage medium 11 from the waiting command in the command queue 39, and the high load It is determined whether or not (step S43).
- step S44 If the storage medium 11 is not heavily loaded (Yes in step S44), the write issuance determination unit 37 performs the processing from step S46 onward, and continues the process of writing the write data object to the cache 12.
- step S44 When the storage medium 11 has a high load (No in step S44), the write issue determination unit 37 waits until a predetermined time elapses and ends the process (step S45).
- the write issue determination unit 37 checks the command queue 39 and the command management information storage unit 32 to check whether there is a read or write command that is being issued to the storage medium 11 in advance or is issued in the future (step) S46).
- step S47 If there is no preceding command (Yes in step S47), the write issuance determination unit 37 refers to the command history management unit 38 and acquires the access destination address of the command that the storage medium 11 has just executed. (Step S48). Next, the write issue determination unit 37 performs the process of step S50.
- step S47 If there is a preceding command (No in step S47), the write issue determination unit 37 determines from the command queue 39 and the command management information storage unit 32 the access destination address of the command scheduled to be completed last among the preceding commands. Is acquired (step S49).
- the write issue determination unit 37 selects a corresponding zone in the write data classification unit 36 for the access destination address of the previous command obtained in step S48 or S49.
- the write issue determination unit 37 selects any one of the write data objects belonging to the selected zone. If there is no Write data object belonging to the selected Zone, an arbitrary Zone is selected from the Zone that has the next shorter access time with respect to the access destination address of the previous command, and the Write data object to which it belongs similarly Is further selected (step S50).
- a Write data object with the shortest access time can be written to the storage medium 11 (step S50).
- the write issue determination unit 37 stores the write command corresponding to the write data object selected in step S50 in the command queue 39 (step S51).
- the write issue determination unit 37 performs a series of processes from step S41 to step S51 in a state where one or more write data objects are stored in the cache 12. Further, the write issue determination unit 37 needs to store a new data object of the read result from the storage medium 11 by the read access or a new write access write data object to the cache 12 and needs a free space. This process is executed when it becomes.
- steps S1 to S10, steps S21 to S26, steps S31 to S35, and steps S41 to S51 described above will be described with reference to FIGS. 12 and will be described with reference to FIG.
- the HDD 16 shown in FIG. 12 corresponds to the storage medium 11.
- the HDD 16 accesses a unit of a certain size called a block, and addresses are assigned to each block in order from 0.
- the HDD 16 has 4000 blocks as a storage area. The blocks are sequentially arranged on the inner circumference side with address 0 as the outermost circumference, and the last address 3999 is arranged on the innermost circumference.
- the seek time required for the head to seek from the position of the block accessed immediately before the access time when accessing each block, and the rotation of the disk It is assumed that waiting time is added.
- the head seek is performed in the direction from the outer periphery to the inner periphery of the disk, or in the opposite direction, and the seek time is directly proportional to the address difference between the immediately preceding access destination block and the next access destination block. .
- the HDD 16 requires 1 ms to seek for 100 blocks. Further, it is assumed that the disk rotation waiting time is always 5 ms.
- the access time for Read access and Write access is the same. Further, it is assumed that the head exists at the position of block 0 in the initial state of the HDD 16.
- the write data classification unit 36 divides the address space of the HDD 16 into four equal parts, and each zone is defined as 1000 consecutive blocks, and each is defined as zone # 0 to zone # 3 (FIG. 12).
- the cache 12 can store arbitrary three blocks of data objects in the HDD 16. Both the data object read from the HDD 16 and the data object received from the host 50-i as a write data object are handled in units of blocks.
- the replacement policy of the cache block with a new data object uses LRU (Least Recently Used) based on the time when the access request is made. However, when the data object stored in the block selected by the LRU is a write data object, a replacement target is randomly selected from all the blocks in which the write data object is stored. If the block to be replaced is a write data object and has not been written to the HDD 16, the process waits until the writing of the write data object to the HDD 16 is completed.
- the initial state of the cache 12 is a state in which no data object is stored in any of the three blocks.
- FIG. 13 is a command table (a list of commands issued by the host to the storage apparatus) that shows an access request from the host 50-i to the storage apparatus 10 in this embodiment in relation to time.
- the address space provided by the storage apparatus 10 to the host 50-i has a one-to-one correspondence with the block address space of the HDD 16 in block units.
- the host 50-i makes a write request C for the address 3800 to the storage apparatus 10.
- two blocks of the three-block cache 12 are used for storing the results of the preceding read access requests A and B, but one block is not yet stored. Is use.
- the write data object of the write access request C is immediately written to the cache 12. Therefore, the write request C is notified of completion to the host 50-i immediately after the access request, so that the completion time of C is 15 ms later.
- the data objects stored or scheduled to be stored in the block of the cache 12 at this time are the read results of the access requests A and B and the write data object of the access request C.
- the host 50-i makes a write access request D to the address 2600 after 20 ms from the beginning.
- all blocks of the cache 12 are used as the storage location of the read result of the access request A, the storage location of the read result of the access request B being executed, and the storage location of the write data object of the access request C. ing.
- the data object of the access request A that has the oldest access request time is replaced by the data object of the write request D.
- the replacement process is for A which is the Read result.
- the block replacement process of the cache 12 access to the HDD 16 does not occur. Therefore, when 20 ms elapses from the beginning, the data object stored in the block of the cache 12 or the data object to be stored is the read result of the access request B and the write data objects of the access requests C and D.
- the host 50-i makes a Read access request E for the address 2500 when 25 ms elapses from the beginning.
- the processing for the Read access request B in the HDD 16 is completed.
- the cache block is replaced, it is determined that the block used by the access request B immediately after the response to the host 50-i is replaced by the Read access request E.
- the data object stored in the block of the cache 12 or the data object scheduled to be stored is the write data object of the access request E and the access requests C and D.
- the write issuance determination unit 37 detects that the HDD 16 is in an unloaded state by using the command queue 39 and the command management information storage unit 32, so that the write data object stored in the cache 12 is written. Processing begins. Since there is no command that the HDD 16 is currently processing or waiting for, the command history management unit 38 checks the past command execution status of the HDD 16. The command history management unit 38 stores the access destination address and access completion time of the command for the Read access requests A, B, and E that the HDD 16 has completed execution.
- the head of the HDD 16 exists at the block address 2500 position. Comparing the write data object belonging to the zone # 0 to # 3 managed by the write data classifying unit with the head position of the HDD 16 and the write data object of the access request D as the write data object of the zone # 2 where the head of the HDD 16 currently exists. It can be seen that the data object is stored in the cache, and the write data object of the access request D is written to the HDD 16.
- the time required for scheduling processing required for improving the write performance with respect to the write processing of the data object to the storage medium is shortened. It is possible to reduce the influence of the performance degradation of the data object writing process and the reading and writing processes for other access columns.
- the present invention can be applied to, for example, a storage device, a system, and a program that employ a storage medium such as an HDD whose access speed varies depending on an access destination address for successive accesses.
- a storage medium such as an HDD whose access speed varies depending on an access destination address for successive accesses.
- the present invention is not limited to the HDD, and can be applied to storage devices, systems, and programs that employ other storage media as long as the storage media have similar characteristics.
- a cache for temporarily storing data objects to be written to the storage medium;
- a data classification unit that classifies the data object into any of a plurality of areas obtained by dividing an address space of the storage medium according to a write destination address for the storage medium;
- a data management unit that holds the identifier of the data object and the area into which the data object is classified in association with each other; With reference to the association, from among the data objects stored in the cache, preferentially select a data object to be written in an area close to the address of the access destination immediately before writing or reading to the storage medium, and
- a data selection unit for writing to the storage medium In the plurality of areas, the time required for continuous access to the same area is shorter than the time required for continuous access to different areas.
- a storage control device In the plurality of areas, the time required for continuous access to the same area is shorter than the time required for continuous access to different areas.
- the data selection unit selects a data object to be written in an area close to the access destination address of the write and read access columns scheduled to be performed on the storage medium from the data objects stored in the cache.
- the storage control device according to any one of appendices 1 to 3, wherein the storage control device is preferentially selected and written to the storage medium.
- the data selection unit will access the storage medium in the future from the data objects stored in the cache with reference to the history of write and read accesses issued to the storage medium. 4.
- the storage control device according to any one of appendices 1 to 3, wherein a data object to be written in an area close to an address having a high possibility is preferentially selected and written to the storage medium.
- a storage apparatus comprising: the storage control apparatus according to any one of appendices 1 to 5.
- the plurality of regions are a plurality of regions obtained by dividing the address space of the hard disk drive so that the seek distance of the head in each region is shortened.
- (Supplementary note 9) Temporarily storing a data object to be written to a storage medium in a cache; Classifying the data object into any of a plurality of areas obtained by dividing an address space of the storage medium according to a write destination address for the storage medium; Associating and holding an identifier of the data object and a region into which the data object is classified; With reference to the association, from among the data objects stored in the cache, preferentially select a data object to be written in an area close to the address of the access destination immediately before writing or reading to the storage medium, and Writing to the storage medium, In the plurality of areas, the time required for continuous access to the same area is shorter than the time required for continuous access to different areas.
- a storage control method that is characterized.
- a process of temporarily storing a data object to be written in a storage medium in a cache A process of classifying the data object into one of a plurality of areas obtained by dividing an address space of the storage medium according to a write destination address for the storage medium; Processing for associating and holding an identifier of the data object and an area into which the data object is classified; With reference to the association, from among the data objects stored in the cache, preferentially select a data object to be written in an area close to the address of the access destination immediately before writing or reading to the storage medium, and Causing the computer to execute a writing process of writing to the storage medium, In the plurality of areas, the time required for continuous access to the same area is shorter than the time required for continuous access to different areas.
- the computer In the writing process, the computer is caused to execute a process of writing the selected data object to the storage medium during a period in which no read access to the storage medium is performed.
- Appendix 13 A computer-readable recording medium on which the program described in Appendix 11 or 12 is recorded.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本発明は、ストレージ装置において、記憶装置に対する書き込みアクセスと読み出しアクセスとが混在する場合に、書き込みアクセスによる読み出しアクセスの遅延を防ぐ。ストレージ制御装置は、記憶媒体に書き込むべきデータオブジェクトを格納するキャッシュと、記憶媒体に対する書き込み先アドレスに応じて、記憶媒体のアドレス空間を分割して得られた複数の領域のいずれかにデータオブジェクトを分類するデータ分類部と、データオブジェクトの識別子とデータオブジェクトが分類された領域とを対応付けて保持するデータ管理部と、前記対応付けを参照し、キャッシュに格納されたデータオブジェクトの中から、記憶媒体に対する直前のアクセス先のアドレスに近い領域に書き込むべきデータオブジェクトを優先的に選択して記憶媒体に書き込むデータ選択部とを有する。
Description
(関連出願についての記載)
本発明は、日本国特許出願:特願2009-286812号(2009年12月17日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、日本国特許出願:特願2009-286812号(2009年12月17日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、ストレージ装置、ストレージ制御装置、ストレージ制御方法及びプログラムに関する。
情報通信技術の進歩とその適用分野の拡大に伴い、情報処理システムにおけるデータ量が増大するとともに、データに対するアクセスの即時性が求められている。大容量のデータを短時間で処理するため、特に、データを格納するストレージ装置に対して、アクセスの高速化が求められている。
大容量のデータを短時間で読み書きするためには、ストレージ装置が内蔵する記憶媒体に対するアクセスパターンとアクセスに要する時間との関係を把握する必要がある。
例えば、記憶媒体がストレージ装置として多用される磁気ディスクである場合、データの格納位置へのディスクヘッドの移動、すなわち、シークに要する時間がアクセス時間の大半を占める。また、磁気ディスクから成る記憶媒体においては、ディスク上の近い位置に格納されたデータにアクセスするときの応答時間は、遠い位置に格納されたデータにアクセスするときの応答時間よりも短い。したがって、使用するデータをディスク上の物理的に近い位置に連続して格納することで、アクセス時間を短縮することができる。
ディスク上に分散して格納される複数のデータオブジェクトに対して効率的にアクセスを行うために、ディスクヘッドの動きを最適化するアルゴリズムが提案されている。非特許文献2に記載されたエレベータアルゴリズム又はSCAN、LOOKと呼ばれるアルゴリズムによると、ヘッドが1往復で複数のアクセス要求を処理できるように、ディスクアクセスの順序が最適化される。これにより、複数のアクセスに要する合計時間を短縮することができる。
磁気ディスク以外にも、近年記憶媒体として用いられるフラッシュメモリには、ランダムアクセスと比較してシーケンシャルアクセスの性能が高い素子が含まれる。これらの記憶媒体を使用する場合には、記憶媒体に対するアクセス列をアドレスの順番に整列するスケジューリング処理を行うことによって、シーケンシャルアクセスが行われる頻度が増加し、複数のアクセスに要する合計時間を短縮することができる。
また、ストレージ装置が複数の記憶媒体を有する場合には、ストレージ装置のアクセス時間を短縮する方法として、非特許文献2に記載されたRAID(Redundant Array of Independent/Inexpensive Disks)が用いられる。RAIDは、ストレージ装置が有する複数の記憶媒体間で冗長性を持たせることによって、信頼性とアクセス性能を向上させる。記憶媒体間の冗長性の持たせ方に応じて、複数の種類のRAID(RAIDレベル)が存在する。
アクセス時間を短縮するためのスケジューリング方式として、RAIDを構成する複数の記憶媒体間の冗長性を利用する方式が提案されている。この方式では、RAIDの冗長性に基いて、Readアクセスの発行先を複数の記憶媒体から選択する。例えば、非特許文献3において、各記憶媒体が磁気ディスクである場合に、アクセス列全体の処理完了時間を短縮するために、各ディスクに対して待機中のアクセス数が等しくなるように発行先を選択する方式と、各ディスクが全アクセスを処理するために必要なシーク量が最小となるように発行先を選択する方式とが記載されている。
また、特許文献1において、記憶媒体が磁気ディスクである場合に、各ディスクで処理されるアクセス、各ディスクで処理されるアクセス列から求められるヘッドのシーク範囲、及び、各ディスクの現在のヘッド位置とアクセス列全てを処理するために必要なシーク時間から、全アクセスの処理が完了するまでの時間を予測し、完了時間を最小化するようにアクセス列を各ディスクに配分及び整列する方式が記載されている。
Silberschatz et al.,"Operating System Concepts Fifth Edition,"Addison-Wesley,pp.435-437
Patterson et al.,"A Case for Redundant Arrays of Inexpensive Disks (RAID),"Proceedings of the 1988 ACM SIGMOD international conference on Management of data,pp.109-116
S.Chen and D.Towsley,"A Performance Evaluation of RAID Architectures,"IEEE Trans. on Computers,Vol.45,Issue 10,pp.1116-1130,1996
上記特許文献および非特許文献の記載内容は、引用をもって本文に繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。
上記のアクセス時間短縮方式によると、ストレージ装置に対してReadアクセスとWriteアクセスとが同時に行われている場合に問題が生じる。
Writeアクセスは、ストレージ装置にアクセスするホストがデータを得るためのアクセスではない。したがって、アクセス処理に対して即時性は要求されず、ストレージ装置側は、書き込んだデータが失われない範囲で、任意の時期にWriteの処理を行い、記憶媒体にデータを書き込むことができる。
一方、Readアクセスは、ストレージ装置へのアクセス元であるホストが必要とするデータを読み込むために行われる。したがって、Readアクセスに対する処理には即時性が要求され、応答時間がホスト側の処理時間に影響を及ぼす。
したがって、ストレージ装置に対してReadアクセスとWriteアクセスとが同時に行われる場合に、従来のスケジューリング方式を用いてReadとWriteとを同時にスケジューリングすると、即時性を必要とするReadアクセスが、即時性を必要としないWriteアクセスによって遅延するという問題がある。
ストレージ装置において、ストレージ装置に内蔵された記憶媒体のアクセス特性を考慮したスケジューリングを用いる場合、記憶媒体が磁気ディスクであるときには、アクセス列は、アクセス順序による依存関係に矛盾が生じない限り、Read又はWriteに関係なく、アクセス先のアドレス順に整列される。すなわち、アドレスを基準にスケジューリングを行うことで、即時性の求められるReadよりも先にWriteが実行される場合が起こり得る。
また、RAIDの冗長性を利用したスケジューリング方式においては、アクセス毎に発行先の記憶媒体を適切に選択することで、アクセス列全体の処理時間を短縮する。しかし、このスケジューリング方式は、RAIDの冗長性によってアクセス先の記憶媒体の選択方法が複数存在するReadアクセスに対してのみ効果を奏する。一方、Writeアクセスでは、書き込み対象となるデータについて冗長なデータが書き込まれるすべての記憶媒体に対するWriteアクセスが必要とされる。すなわち、このスケジューリング方式は、Wirteアクセスにおいては、Readとは異なりアクセス先記憶媒体を選択することができず、Writeアクセスに対してアクセス時間を短縮することができない。
さらに、記憶媒体に対するアクセス特性を考慮したスケジューリング方式において、Writeアクセスに対してReadアクセスと同様に高いスケジューリング効果を得るためには、1回のスケジューリング処理の対象とするアクセス数を増やす必要がある。前記スケジューリング方式では、スケジューリングを行うアクセスの数を増やすことでスケジューリングの精度が向上する。しかし、毎回のスケジューリングに要する処理時間が増加して、ストレージ装置内のコントローラの処理負荷の増加、及び各アクセスの応答が遅延することが問題となる。
そこで、ストレージ装置において、記憶媒体に対する書き込みアクセスと読み出しアクセスとが混在する場合に、書き込みアクセスによる読み出しアクセスの遅延を防ぐことが課題となる。本発明の目的は、かかる課題を解決するストレージ装置、ストレージ制御装置、ストレージ制御方法及びプログラムを提供することにある。
本発明の第1の視点に係るストレージ制御装置は、
記憶媒体に書き込むべきデータオブジェクトを一時的に格納するキャッシュと、
前記記憶媒体に対する書き込み先アドレスに応じて、前記記憶媒体のアドレス空間を分割して得られた複数の領域のいずれかに前記データオブジェクトを分類するデータ分類部と、
前記データオブジェクトの識別子と前記データオブジェクトが分類された領域とを対応付けて保持するデータ管理部と、
前記対応付けを参照し、前記キャッシュに格納されたデータオブジェクトの中から、前記記憶媒体に対する書き込み又は読み出しによる直前のアクセス先のアドレスに近い領域に書き込むべきデータオブジェクトを優先的に選択して、前記記憶媒体に書き込むデータ選択部とを備え、
前記複数の領域は、同一の領域に対して連続してアクセスを行う場合に必要とされる時間が、異なる領域に対して連続してアクセスを行う場合に必要とされる時間よりも短い。
記憶媒体に書き込むべきデータオブジェクトを一時的に格納するキャッシュと、
前記記憶媒体に対する書き込み先アドレスに応じて、前記記憶媒体のアドレス空間を分割して得られた複数の領域のいずれかに前記データオブジェクトを分類するデータ分類部と、
前記データオブジェクトの識別子と前記データオブジェクトが分類された領域とを対応付けて保持するデータ管理部と、
前記対応付けを参照し、前記キャッシュに格納されたデータオブジェクトの中から、前記記憶媒体に対する書き込み又は読み出しによる直前のアクセス先のアドレスに近い領域に書き込むべきデータオブジェクトを優先的に選択して、前記記憶媒体に書き込むデータ選択部とを備え、
前記複数の領域は、同一の領域に対して連続してアクセスを行う場合に必要とされる時間が、異なる領域に対して連続してアクセスを行う場合に必要とされる時間よりも短い。
本発明の第2の視点に係るストレージ制御方法は、
コンピュータが、記憶媒体に書き込むべきデータオブジェクトを一時的にキャッシュに格納する工程と、
前記記憶媒体に対する書き込み先アドレスに応じて、前記記憶媒体のアドレス空間を分割して得られた複数の領域のいずれかに前記データオブジェクトを分類する工程と、
前記データオブジェクトの識別子と前記データオブジェクトが分類された領域とを対応付けて保持する工程と、
前記対応付けを参照し、前記キャッシュに格納されたデータオブジェクトの中から、前記記憶媒体に対する書き込み又は読み出しによる直前のアクセス先のアドレスに近い領域に書き込むべきデータオブジェクトを優先的に選択して、前記記憶媒体に書き込む書込み工程とを含み、
前記複数の領域は、同一の領域に対して連続してアクセスを行う場合に必要とされる時間が、異なる領域に対して連続してアクセスを行う場合に必要とされる時間よりも短い。
コンピュータが、記憶媒体に書き込むべきデータオブジェクトを一時的にキャッシュに格納する工程と、
前記記憶媒体に対する書き込み先アドレスに応じて、前記記憶媒体のアドレス空間を分割して得られた複数の領域のいずれかに前記データオブジェクトを分類する工程と、
前記データオブジェクトの識別子と前記データオブジェクトが分類された領域とを対応付けて保持する工程と、
前記対応付けを参照し、前記キャッシュに格納されたデータオブジェクトの中から、前記記憶媒体に対する書き込み又は読み出しによる直前のアクセス先のアドレスに近い領域に書き込むべきデータオブジェクトを優先的に選択して、前記記憶媒体に書き込む書込み工程とを含み、
前記複数の領域は、同一の領域に対して連続してアクセスを行う場合に必要とされる時間が、異なる領域に対して連続してアクセスを行う場合に必要とされる時間よりも短い。
本発明の第3の視点に係るプログラムは、
記憶媒体に書き込むべきデータオブジェクトを一時的にキャッシュに格納する処理と、
前記記憶媒体に対する書き込み先アドレスに応じて、前記記憶媒体のアドレス空間を分割して得られた複数の領域のいずれかに前記データオブジェクトを分類する処理と、
前記データオブジェクトの識別子と前記データオブジェクトが分類された領域とを対応付けて保持する処理と、
前記対応付けを参照し、前記キャッシュに格納されたデータオブジェクトの中から、前記記憶媒体に対する書き込み又は読み出しによる直前のアクセス先のアドレスに近い領域に書き込むべきデータオブジェクトを優先的に選択して、前記記憶媒体に書き込む書込み処理とをコンピュータに実行させ、
前記複数の領域は、同一の領域に対して連続してアクセスを行う場合に必要とされる時間が、異なる領域に対して連続してアクセスを行う場合に必要とされる時間よりも短い。
記憶媒体に書き込むべきデータオブジェクトを一時的にキャッシュに格納する処理と、
前記記憶媒体に対する書き込み先アドレスに応じて、前記記憶媒体のアドレス空間を分割して得られた複数の領域のいずれかに前記データオブジェクトを分類する処理と、
前記データオブジェクトの識別子と前記データオブジェクトが分類された領域とを対応付けて保持する処理と、
前記対応付けを参照し、前記キャッシュに格納されたデータオブジェクトの中から、前記記憶媒体に対する書き込み又は読み出しによる直前のアクセス先のアドレスに近い領域に書き込むべきデータオブジェクトを優先的に選択して、前記記憶媒体に書き込む書込み処理とをコンピュータに実行させ、
前記複数の領域は、同一の領域に対して連続してアクセスを行う場合に必要とされる時間が、異なる領域に対して連続してアクセスを行う場合に必要とされる時間よりも短い。
本発明に係るストレージ制御装置、ストレージ制御方法及びプログラムによると、ストレージ装置において、記憶媒体に対する書き込みアクセスと読み出しアクセスが混在する場合に、書き込みアクセスによる読み出しアクセスの遅延を防ぐことができる。
(実施形態1)
第1の実施形態に係るストレージ装置について、図面を参照して説明する。図1は、本実施形態に係るストレージ装置20の構成を示すブロック図である。
第1の実施形態に係るストレージ装置について、図面を参照して説明する。図1は、本実施形態に係るストレージ装置20の構成を示すブロック図である。
図1を参照すると、ストレージ装置20は、ストレージ制御装置40及び記憶媒体11を有する。ストレージ制御装置40は、さらに、キャッシュ12、データ分類部41、データ管理部42及びデータ選択部43を有している。
キャッシュ12は、書き込み(Write)アクセスによって書き込まれるデータオブジェクトを記憶媒体11への書き込み前に保持するためのキャッシュメモリ(ないしバッファメモリ)である。
データ分類部41は、キャッシュ12に格納された記憶媒体11へのWrite待ちのデータオブジェクト(以下「Writeデータオブジェクト」という。)を、アクセス先のアドレスによって複数のグループに分類する。
データ管理部42は、Writeデータオブジェクトの識別子とWriteデータオブジェクトが分類された領域とを対応付けて保持する。また、データ管理部42は、ストレージ装置20の記憶媒体11に対して完了又は発行待ちのReadアクセス、Writeアクセスのキューを管理する。
データ選択部43は、データ管理部42を参照して、キャッシュ12上のWriteデータオブジェクトから記憶媒体11に書き出すためのWriteアクセスのキューに追加するものを選択する。
ストレージ装置20は、これらの各部を用いて、一時的にキャッシュ12に保存されたWriteデータオブジェクトから記憶媒体11に書き込むべきデータオブジェクト及び時期を選択する。
具体的には、キャッシュ12は、記憶媒体11から読み出し(Read)アクセスの結果として読み出されたデータオブジェクトと、Writeアクセスによってストレージ装置20に書き込まれるデータオブジェクトを格納する。
記憶媒体11について、予め記憶領域全体を分割する複数の領域(1つの領域は必ずしも連続している必要はない)を定義する。各領域は、例えば、HDD(Hard Disk Drive)であれば、ヘッドのシークが短くて済むようなアドレスの範囲とすることが好ましい。すなわち、各領域は、記憶媒体11に連続アクセスを行ったときにアクセス時間が短くなるアクセス同士をまとめたものである。
データ分類部41は、ストレージ装置20に対するWriteアクセスによって新たにWriteデータオブジェクトが追加される度に、アクセス先のアドレスに応じたグループに分類する。データ分類部41は、Writeデータオブジェクトのアクセス先のアドレスがこれらの領域のいずれに含まれるかに応じて、Writeデータオブジェクトを分類する。
データ管理部42は、ストレージ装置20内の記憶媒体11に対して対応するキューに格納された状態で発行待ちであるReadアクセス、Writeアクセスの順序の記憶及び参照、現在記憶媒体11に発行中のアクセスの記録及び参照、並びに、記憶媒体11が直前に完了したアクセスの記録及び参照を行う。
データ選択部43は、データ分類部41によって分類されたグループから記憶媒体11に書き出すためのキャッシュ12上のWriteデータオブジェクトを選択する。データ選択部43は、キャッシュ12上のデータオブジェクトを記憶媒体11に書き出す際に、記憶媒体11の直前のアクセス先アドレス、及び記憶媒体11に対して発行予定のアクセスのアドレスに該当するか又は近い領域のWriteデータオブジェクトを可能な限り選ぶようにする。これにより、Readアクセスの性能の低下を防ぐ。
データ選択部43は、データ管理部42を用いて、記憶媒体11に対するReadアクセスの状態を監視し、Readアクセスへの影響を最小限とするようにWriteの発行を待つ。
本実施形態に係るストレージ装置20によると、WriteアクセスによるReadアクセスの処理時間増大の影響を低減し、ReadアクセスとWriteアクセスが混在する場合のアクセス性能を向上させるとともに、アクセスのスケジューリングに要する時間を短縮することができる。
従来のスケジューリング方式によると、ReadアクセスとWriteアクセスをアクセス先アドレスで同時にスケジューリングを行う。したがって、結果の応答に即時性が求められるReadアクセスの処理がWriteアクセスによって遅延する。
また、WriteアクセスがReadアクセスと混在することで同一アドレスに対するアクセス順序を維持する必要がある。したがって、Readアクセスのみが行われる場合のようにスケジューリング精度を高めるには1回のスケジューリング処理で整列を行うアクセスの数を増やす必要がある。1回のスケジューリング処理の対象となるアクセス数を増やした場合には、スケジューリングに要する処理時間が増加する。
一方、本実施形態に係るストレージ装置20によると、データ管理部42とデータ選択部43を用いて、キャッシュ12から記憶媒体11に書き込むデータオブジェクトとしてReadアクセスの性能低下幅が最小となるようにWriteデータオブジェクトを選択する。したがって、ReadとWriteが並列に行われる場合においても、従来のスケジューリング方式と比較してReadアクセスへの影響が小さい。
また、Writeデータオブジェクトを即座に記憶媒体11に書き込む必要がない場合には、データ管理部42を用いて、Readアクセスが行われない時期を選んでWriteデータオブジェクトを記憶媒体11に書き込むことで、Readアクセスの性能低下を回避することもできる。
(実施形態2)
第2の実施形態に係るストレージ装置について図面を参照して説明する。図2は、本実施形態のストレージ装置を含むシステムの構成を示す図である。
第2の実施形態に係るストレージ装置について図面を参照して説明する。図2は、本実施形態のストレージ装置を含むシステムの構成を示す図である。
図2を参照すると、本システムは、データオブジェクトにアクセスする1台以上のホスト50-i(i=1、2、…、n)と、複数の記憶媒体から構成されるストレージ装置10と、ホスト50-iとストレージ装置10とを接続するネットワーク60を含む。
ネットワーク60を介して、ストレージ装置10に複数のホスト50-iを接続することができる。なお、ホスト50-iとストレージ装置10とを直接接続するようにしてもよい。
次に、ストレージ装置10の構成について図面を参照して説明を行う。図3は、本実施形態に係るストレージ装置10の構成を示すブロック図である。図3を参照すると、ストレージ装置10は、記憶媒体11、キャッシュ12、アクセス要求処理部13及びコマンド実行部15を有する。
記憶媒体11は、ストレージ装置10に書き込まれたデータオブジェクトを保持する。記憶媒体11は、コマンド実行部15からのコマンドによりデータオブジェクトの読み書きを行う。
キャッシュ12は、記憶媒体11と比較して、アクセス性能が高く、特に、ランダムアクセス性能が高い。キャッシュ12は、記憶媒体11に書き込まれたデータオブジェクトの一部を格納することで、データオブジェクトの読み出し性能を向上させる。また、キャッシュ12は、ホスト50-iから書き込まれたデータオブジェクトを記憶媒体11に書き込む前に一時的に保存することで、ホスト50-iからの書き込み要求に対する完了応答を高速化する。
アクセス要求処理部13は、アクセス解釈部21及びアクセス要求情報格納部22を有する。アクセス解釈部21は、ホスト50-iからのアクセス要求を受け取り、アクセス要求に対する記憶媒体11へのコマンドを生成する。アクセス解釈部21は、生成したコマンドをコマンド実行部15に渡し、コマンドの管理情報をアクセス要求情報格納部22に格納する。また、アクセス解釈部21は、生成したコマンドがWriteである場合、Write対象となるデータオブジェクト(以下「Writeデータオブジェクト」という。)を同時にコマンド実行部15に渡す。
さらに、アクセス解釈部21は、コマンド実行部15からReadコマンドで読み出されたデータオブジェクト、又はWriteコマンドの完了通知を受理して、Readで読み出されたデータオブジェクト、又はWriteの完了通知を対応するアクセス要求発行元であるホスト50-iに返す。アクセス解釈部21は、ホスト50-iからのアクセス要求が完了すると、アクセス要求情報格納部22に格納された、該当するアクセス要求の管理情報を削除する。
アクセス要求情報格納部22は、アクセス解釈部21が受け取ったアクセス要求、及び、アクセス解釈部21が生成したコマンドとの対応情報を示すアクセス要求管理テーブル23を格納する。図5は、アクセス要求管理テーブル23を一例として示す図である。
コマンド実行部15は、記憶媒体又はキャッシュに対するコマンド実行を行う。コマンド実行部15は、アクセス要求処理部13から記憶媒体11へのRead又はWriteコマンドを受け取る。Readアクセスの場合には、コマンド実行部15は、記憶媒体11、又は、キャッシュ12に要求されたデータオブジェクトが格納されているときには、キャッシュ12から該当するアドレスのデータオブジェクトを読み出してアクセス要求処理部13に返す。一方、Writeアクセスの場合には、コマンド実行部15は、アクセス要求処理部13から受理したWriteデータオブジェクトを一時的にキャッシュ12に書き込む。
また、コマンド実行部15は、キャッシュ12に一時的に書き込まれたデータオブジェクトを記憶媒体11の該当するアドレスに書き込む。コマンド実行部15は、記憶媒体11に発行したコマンドが完了し、又は、キャッシュ12に対するRead若しくはWriteが完了すると、アクセス要求処理部13に対して、Readコマンドの場合には読み出されたデータオブジェクトを返し、Writeコマンドの場合には完了通知を返す。
次に、コマンド実行部15の構成について図面を参照して説明を行う。図4は、本実施形態におけるコマンド実行部15の構成を示すブロック図である。図4を参照すると、コマンド実行部15は、制御部31、コマンド管理情報格納部32、時刻取得部35、Writeデータ分類部36、Write発行判断部37、コマンド履歴管理部38及びコマンドキュー39を有する。
制御部31は、アクセス要求処理部13からRead又はWriteコマンドを受理する。制御部31は、アクセスコマンドの実行管理に必要な情報をコマンド管理情報格納部32に格納する。
Readコマンドを受理した場合には、制御部13は、キャッシュ12又は記憶媒体11からアクセス対象のデータオブジェクトを読み出す。一方、受理したコマンドがWriteコマンドを受理した場合には、制御部13は、キャッシュ12にWriteデータオブジェクトを書き込む。
また、制御部31は、キャッシュ12に格納されており、記憶媒体11に格納されていないWriteデータオブジェクトを、Write発行判断部37の指示に応じて記憶媒体11に書き込む。
制御部31は、Readコマンド及びWriteコマンドを記憶媒体11に発行する場合、コマンドキュー39にコマンドを格納し、記憶媒体11に発行するコマンドを待機状態にする。制御部31は、コマンドキュー39に格納されたコマンドを記憶媒体11に発行する。コマンドの発行後、記憶媒体11又はキャッシュ12へのアクセスにより完了したコマンドについて、制御部31は、Readの場合にはデータオブジェクトを、Writeの場合には完了通知を、アクセス要求処理部13に返す。
コマンド管理情報格納部32は、アクセス要求処理部13から受理したコマンドの管理に必要となるコマンド管理テーブル33を格納する。図6は、コマンド管理テーブル33を一例として示す図である。
時刻取得部35は、記憶媒体11に発行した各コマンドの完了時間を取得するために用いられる。
Writeデータ分類部36は、アクセス要求処理部13から受理したWriteデータオブジェクトをキャッシュ12に格納する際に、アクセス先のアドレスを基準に定義したZoneごとにWriteデータオブジェクトを分類して管理する。
Write発行判断部37は、コマンド履歴管理部38の情報、及び、コマンドキュー39に格納されたコマンドから、Writeデータ分類部36で分類されたキャッシュ12に格納されたWriteデータオブジェクトのうち、記憶媒体11に対してWriteすべきデータオブジェクトを判断し、Writeデータオブジェクトの記憶媒体11へのWriteコマンドの発行を、制御部31に指示する。
コマンド履歴管理部38は、記憶媒体11に発行されたコマンドのうちの完了したものの履歴情報を格納する。
コマンドキュー39は、記憶媒体11に発行される待機状態のコマンドを格納する。
制御部31は、記憶媒体11に発行するコマンドを、コマンドキュー39に格納されたコマンドの中から選択する。
図5は、アクセス要求情報格納部22に格納されるアクセス要求管理テーブル23を一例として示す図である。
アクセス要求管理テーブル23は、ホスト50-iからの各アクセス要求に付随する情報を保持する。アクセス要求管理テーブル23は、ホスト50-iからの各アクセス要求に付随する情報が必要となった場合に、アクセス解釈部21によって参照される。
図5を参照すると、アクセス要求管理テーブル23は、アクセス要求に付随する情報として、アクセス要求を受けた際に付与されるアクセス要求ごとに固有なIDと、Read又はWriteのいずれであるかを示すアクセス種別(図5の「R/W」)と、アクセス先のストレージ装置10全体におけるアドレス空間内における先頭ブロックのアドレスと、アクセス長と、アクセス要求の要求元ホストと、各アクセス要求を処理するためにコマンド実行部15に処理を依頼するコマンドを指し示すIDである対応コマンドIDとを格納する。
図6は、コマンド管理情報格納部32に格納されるコマンド管理テーブル33を一例として示す図である。
コマンド管理テーブル33は、アクセス要求処理部13から処理を依頼されたコマンドを処理するために、記憶媒体11又はキャッシュ12に対して発行されるコマンドに付随する情報を保持する。
図6を参照すると、コマンド管理テーブル33は、コマンドに付随する情報として、コマンド毎に固有なIDと、Read又はWriteのいずれであるかを示すアクセス種別(図6の「R/W」)と、アクセス先の先頭ブロックのアドレスと、アクセス長と、各コマンドが発行前の状態(図6の「待機」)、各コマンドが記憶媒体11に対して発行済かつ完了待ちの状態(図6の「実行」)、各コマンドの結果又は完了が記憶媒体11又はキャッシュ12から通知された状態(図6の「完了」)のいずれの状態であるのかを示す実行状態とを格納する。なお、実行状態の初期状態は「待機」であり、制御部31は、コマンドキュー39に格納されたコマンドを記憶媒体11に発行する際に、実行状態を「実行」に変更する。
次に、図2~図11を参照して本実施形態に係るストレージ装置10の動作について説明する。
まず、図2~図7を参照して、ホスト50-iからストレージ装置10へアクセス要求が行われた際のストレージ装置10の動作について説明する。ホスト50-iからストレージ装置10へアクセス要求が行われるごとに、図2~図4に示したシステムは、以下の動作を実行する。
ホスト50-iからアクセス要求を受理した、アクセス要求処理部13のアクセス解釈部21は、アクセス要求を解釈し、記憶媒体11に対するアクセスコマンド(Read、Write)を生成する(ステップS1)。
アクセス解釈部21は、ステップS1で受理したアクセス要求の管理情報と生成したコマンドの対応情報をアクセス要求情報格納部22に格納する。このとき格納される情報は、図5のアクセス要求管理テーブル23に示したものある。また、アクセス解釈部21は、コマンド実行部15に対してステップS1で生成したコマンドの処理を要求する。コマンドがWriteである場合には、同時にWrite対象のデータオブジェクトをコマンド実行部15に渡す(ステップS2)。
制御部31は、ステップS2でコマンド実行部15に渡されたコマンドを受理する。制御部31は、このコマンドの管理情報を、コマンド管理テーブル33に示した形式でコマンド管理情報格納部32に格納する(ステップS3)。
制御部31は、ステップS3で受理したコマンドがRead又はWriteのいずれであるかを判定する(ステップS4)。
ステップS4の判定の結果、コマンドがReadである場合には(ステップS5のYes)、制御部31はReadコマンドに対するアクセス処理を実行する。このとき、制御部31は、Readコマンドの処理を記憶媒体11又はキャッシュ12に対して発行する(ステップS6)。
制御部31は、発行したReadコマンドが完了すると、結果である読み出されたデータオブジェクトをアクセス要求処理部13に渡す。また、制御部31は、コマンド管理情報格納部32に格納されたReadコマンドの管理情報を以降の任意のタイミングで削除する。以降、ステップS5でYes判定が行われた場合は、ステップS10の処理を行う(ステップS7)。
ステップS4の判定の結果、コマンドがWriteである場合には(ステップS5のNo)、制御部31はWriteコマンドに対するアクセス処理を実行して、アクセス解釈部21から受け取ったWriteデータオブジェクトをキャッシュ12に書き込む(ステップS8)。
制御部31は、Writeデータオブジェクトのキャッシュ12への書き込みが完了すると、Write処理の完了を、アクセス要求処理部13に通知する。また、制御部31は、コマンド管理情報格納部32に格納されたWriteコマンドの管理情報を以降の任意のタイミングで削除する(ステップS9)。
アクセス解釈部21は、制御部31からReadの結果又はWriteの完了通知を受理し、アクセス要求情報格納部22に格納されたアクセス要求管理テーブル23からコマンド結果に対応したホスト50-iのアクセス要求を探す。制御部31は、該当するアクセス要求の要求元ホスト50-iに対して、Readアクセス要求の結果であるデータオブジェクト又はWriteアクセス要求の完了通知を通知する。制御部31は、ホスト50-iへのコマンドの結果又は完了の通知処理が完了すると、アクセス要求情報格納部22に格納された該コマンドの管理情報を任意のタイミングで削除する(ステップS10)。
以上のステップS1からS10までの処理を行い、ホスト50-iからストレージ装置10へアクセス要求が行われた際のストレージ装置10の処理が終了する。
次に、図3~図6、図8を参照して、ステップS6のさらに詳細な処理手順について説明する。
制御部31は、アクセス要求処理部13から受理したReadコマンドをキャッシュ12に発行し、アクセス先のデータオブジェクトが存在するか否かを問い合わせる(ステップS21)。
キャッシュ12にReadコマンドのアクセス先のデータオブジェクトが存在する場合には(ステップS22のYes)、制御部31はキャッシュ12からReadアクセス先のデータオブジェクトを受け取り、ステップS6の処理を終了する(ステップS23)。
一方、キャッシュ12にReadコマンドのアクセス先のデータオブジェクトが存在しない場合には(ステップS22のNo)、制御部31はアクセス要求処理部13から受理したReadコマンドを、コマンドキュー39に格納する(ステップS24)。
制御部31は、コマンドキュー39から取り出されて記憶媒体11に発行されたReadコマンドの完了後、記憶媒体11からRead結果のデータオブジェクトを受け取る。また、コマンド管理情報格納部32に格納されたReadコマンドの実行状態を「完了」に変更する(ステップS25)。
制御部31は、コマンド履歴管理部38にステップS25で完了したReadコマンドの情報を追加して、ステップS6の処理を完了する(ステップS26)。
以上のステップS21からS26までの処理を行い、制御部31のReadコマンドに対する処理(図7のステップS6)が完了する。
次に、図3~図6、図9を参照して、ステップS8のさらに詳細な処理手順について説明する。
制御部31は、アクセス要求処理部13から受理したWriteデータオブジェクトを格納するために利用可能な領域がキャッシュ12に存在するか否かを問い合わせる(ステップS31)。
制御部31による問い合わせの結果、キャッシュ12上に空き領域が存在しない場合には(ステップS32のNo)、制御部31はアクセス要求処理部13から受理したWriteデータオブジェクトをキャッシュ12に書き込むために利用可能な領域が確保されるまで、Writeコマンドの処理を待機させる(ステップS33)。
制御部31による問い合わせの結果、キャッシュ12上に空き領域が存在する場合には(ステップS32のYes)、制御部31はキャッシュ12にWriteコマンドを発行し、Writeデータオブジェクトを書き込む(ステップS34)。
Writeデータ分類部36は、ステップS34でキャッシュ12に格納されたWriteデータオブジェクトを、格納先のアドレスをもとに定義したZone毎に分類する(ステップS35)。Zoneは、記憶媒体11に対して、同一Zone内のアドレスへのアクセスを連続で行った場合に、他のZoneと比較してアクセスに要する時間が短くなるように定義する。
例えば、記憶媒体11がHDDである場合には、HDDのアドレス空間を先頭から順番に連続した領域を複数に分割したものをZoneとして定義することが好ましい。かかる定義によると、同一Zone内のアクセスは、異なるZone内のアクセスと比較してアドレスの差が小さくなるため、ヘッドのシークに要する時間が短くなり、アクセス時間も短くなる。
Writeデータ分類部36は、定義されたZoneとそのZoneに属するWriteデータオブジェクトのアドレスを管理する。
以上のステップS31からS35までの処理を行い、制御部31のWriteコマンドに対する処理(図7のステップS8)が完了する。
次に、図3~図6、図10、図11を参照して、Write発行判断部37が、キャッシュ12に格納されたWriteデータオブジェクトを記憶媒体11に書き込む際の処理手順について説明する。
まず、Write発行判断部37は、キャッシュ12の空き容量を調べる(ステップS41)。
キャッシュ12の空き容量が不足している場合には(ステップS42のYes)、Write発行判断部37は、ステップS46以降の処理を行い、Writeデータオブジェクトをキャッシュ12に書き込む処理を継続する。
一方、キャッシュ12の空き容量が不足していない場合には(ステップS42のNo)、Write発行判断部37は、コマンドキュー39内の待機中のコマンドから記憶媒体11についての負荷を調べ、高負荷であるか否かを判定する(ステップS43)。
記憶媒体11が高負荷ではない場合には(ステップS44のYes)、Write発行判断部37は、ステップS46以降の処理を行い、Writeデータオブジェクトをキャッシュ12に書き込む処理を継続する。
記憶媒体11が高負荷である場合(ステップS44のNo)、Write発行判断部37は、一定の時間が経過するまで待機して、処理を終了する(ステップS45)。
Write発行判断部37は、コマンドキュー39、及び、コマンド管理情報格納部32を調べることで、先行して記憶媒体11に発行中、又は、将来発行されるRead若しくはWriteコマンドの有無を調べる(ステップS46)。
先行コマンドが存在しない場合には(ステップS47のYes)、Write発行判断部37は、コマンド履歴管理部38を参照して、記憶媒体11が直前に実行を完了したコマンドのアクセス先アドレスを取得する(ステップS48)。次に、Write発行判断部37は、ステップS50の処理を行う。
先行コマンドが存在する場合には(ステップS47のNo)、Write発行判断部37は、コマンドキュー39及びコマンド管理情報格納部32から、先行するコマンドのうち最後に完了する予定のコマンドのアクセス先アドレスを取得する(ステップS49)。
Write発行判断部37は、ステップS48又はS49で得られた直前のコマンドのアクセス先アドレスに対して、Writeデータ分類部36内の該当するZoneを選択する。Write発行判断部37は、選択したZoneに属するWriteデータオブジェクトから任意の1個を選択する。選択したZoneに属するWriteデータオブジェクトが存在しない場合には、直前のコマンドのアクセス先アドレスに対して次にアクセス時間が短くなるZoneから任意の1つのZoneを選択し、同様に所属するWriteデータオブジェクトをさらに選択する(ステップS50)。
かかる選択処理によると、記憶媒体11に対して最もアクセス時間が短くなるWriteデータオブジェクトを書き込むことができる(ステップS50)。
Write発行判断部37は、ステップS50で選択したWriteデータオブジェクトに対応するWriteコマンドをコマンドキュー39に格納する(ステップS51)。
以上のステップS41からS51までの処理を行い、Write発行判断部37が、キャッシュ12に格納されたWriteデータオブジェクトを記憶媒体11に書き込む際の処理が完了する。
Write発行判断部37は、キャッシュ12にWriteデータオブジェクトが1個以上格納された状態において、ステップS41からS51までの一連の処理を行う。また、Write発行判断部37は、キャッシュ12に対して新たにReadアクセスによる記憶媒体11からのRead結果のデータオブジェクト、又は、新たなWriteアクセスのWriteデータオブジェクトの格納が必要となり、空き領域が必要になった場合に、かかる処理を実行する。
ストレージ装置10の記憶媒体11がHDDである場合を例として、上記のステップS1~S10、ステップS21~S26、ステップS31~S35、及び、ステップS41~S51の動作を、図3、図4、図12、図13を参照して説明する。
本実施例においては、図12に示すHDD16が記憶媒体11に相当する。HDD16は、ブロックと呼ばれる一定サイズの領域を単位にアクセスを行い、各ブロックには0から順番にアドレスが割り当てられている。図12を参照すると、HDD16は、4000個のブロックを記憶領域として有する。ブロックは、アドレス0を最外周として順番に内周側に配置され、末尾のアドレス3999が最内周となるように配置される。
HDD16の複数のブロックを連続してアクセスする場合、各ブロックへのアクセス時におけるアクセス時間に対して、直前にアクセスを行ったブロックの位置からヘッドがシークするために要するシーク時間と、ディスクの回転待ち時間とが加わるものとする。ヘッドのシークは、ディスクの外周から内周に向かう方向、又はこれと逆の方向で行われ、シーク時間は直前のアクセス先ブロックと次のアクセス先ブロックとのアドレスの差に正比例するものとする。また、HDD16は、100ブロック分のシークに1msを要するものとする。さらに、ディスクの回転待ち時間は、つねに5msであるとする。また、ReadアクセスとWriteアクセスのアクセス時間は同一とする。さらに、HDD16の初期状態において、ヘッドはブロック0の位置に存在するものとする。
Writeデータ分類部36は、HDD16のアドレス空間を4等分し、各Zoneを連続した1000ブロックずつとし、それぞれをZone#0からZone#3と定義する(図12)。Writeデータ分類部36は、キャッシュ12に格納されたWriteデータオブジェクトをこのZoneによって分類する。このとき、同一Zoneに所属するコマンドを連続で実行した場合、先頭以外の各コマンドは、10ms+5ms=15ms以内に処理が完了する。
キャッシュ12は、HDD16の任意の3ブロックのデータオブジェクトを格納することができるものとする。HDD16から読み出したデータオブジェクト、及び、Writeデータオブジェクトとしてホスト50-iから受理したデータオブジェクトのいずれも、ブロック単位で扱う。キャッシュブロックの新たなデータオブジェクトへの置換ポリシーは、アクセス要求を行った時間に基くLRU(Least Recently Used)を用いる。ただし、LRUで選ばれたブロックに格納されたデータオブジェクトがWriteデータオブジェクトである場合には、置換対象をWriteデータオブジェクトが格納されたすべてのブロックからランダムに選択する。置換されるブロックがWriteデータオブジェクトであり、HDD16に書き込まれていない場合には、WriteデータオブジェクトのHDD16への書き込みが完了するまで待機する。また、キャッシュ12の初期状態は、3ブロックのいずれのブロックにもデータオブジェクトが格納されていない状態とする。
本実施例においては、前記以外のストレージ装置10内での処理におけるオーバーヘッドは無視するものとする。
図13は、本実施例におけるストレージ装置10に対するホスト50-iからのアクセス要求を、時間との関係で示したコマンド表(ホストがストレージ装置に発行するコマンド一覧)である。本実施例において、ストレージ装置10がホスト50-iに対して提供するアドレス空間は、HDD16のブロックアドレスの空間とブロック単位で1対1に対応するものとする。
まず、ホスト50-iは、ストレージ装置10に対して、アドレス500のブロックに対するRead要求Aを行う。初期状態におけるキャッシュ12はデータオブジェクトを保持していないため、アドレス500のReadを行うためにはHDD16にReadコマンドを発行してアクセスを行う必要がある。Read要求Aに対して先行するアクセス要求は存在しないため、Aに対応するコマンドはHDD16で即座に処理が開始される。このとき、ヘッドの初期位置0からRead先の500までのシークが発生し、シーク時間は(500-0)/100=5msである。この他に回転待ち時間に5ms要することからアクセス要求AのRead結果がホスト50-iに返される時間は、5+5=10ms経過後である。
次に、ホスト50-iは、ストレージ装置10に対してアクセス要求Aを行ってから5ms後、アドレス1500に対するRead要求Bを行う。Read要求Bは、Read要求Aの完了後に行われるため、シーク時間は(1500-500)/100=10ms、回転待ち時間は5msである。さらに、Read要求Bがストレージ装置10に対して行われた時点では、先行するRead要求Aが完了していないため、Read要求Aが完了するまでコマンドキュー39にアクセス要求Bに対応した、HDD16に対するアドレス1500のReadコマンドが待機した状態となる。このコマンドの処理が開始されるのが、Aが完了する10ms後であるため、アクセス要求Bが完了する時間は10+10+5=25ms経過後である。
次に、ホスト50-iは、最初から15ms経過後、ストレージ装置10に対してアドレス3800に対するWrite要求Cを行う。Writeアクセス要求Cがストレージ装置10に対して行われた時点では、3ブロックのキャッシュ12のうち、2ブロックは先行するReadアクセス要求A、Bの結果の格納に使用されるものの、1ブロックは未使用である。Writeアクセス要求CのWriteデータオブジェクトは、即座にキャッシュ12に書き込まれる。したがって、Write要求Cは、アクセス要求の直後に完了通知がホスト50-iに対して行われることにより、Cの完了時間は15ms経過後である。この時点でキャッシュ12のブロックに格納されている、又は格納予定のデータオブジェクトは、アクセス要求A、BのRead結果、及び、アクセス要求CのWriteデータオブジェクトである。
次に、ホスト50-iは、最初から20ms経過後、アドレス2600に対するWriteアクセス要求Dを行う。この時点において、アクセス要求AのRead結果の格納先、実行中のアクセス要求BのRead結果の格納先、及び、アクセス要求CのWriteデータオブジェクトの格納先として、キャッシュ12のすべてのブロックが使用されている。これらのうちの最もアクセス要求を行った時間が古い、アクセス要求AのデータオブジェクトがWrite要求Dのデータオブジェクトによって置き換えられる。置き換え処理はRead結果であるAに対するものである、キャッシュ12のブロックの置き換え処理において、HDD16へのアクセスは生じない。したがって、最初から20ms経過した時点で、キャッシュ12のブロックに格納されたデータオブジェクト又は格納予定のデータオブジェクトは、アクセス要求BのRead結果、及び、アクセス要求C、DのWriteデータオブジェクトである。
次に、ホスト50-iは、最初から25ms経過した時点で、アドレス2500に対するReadアクセス要求Eを行う。この時点で、HDD16におけるReadアクセス要求Bに対する処理が完了する。キャッシュブロックの置換を行うと、ホスト50-iへの応答が完了した直後のアクセス要求Bが使用していたブロックがReadアクセス要求Eによって置き換えられることが決定する。この時点で、キャッシュ12のブロックに格納されているデータオブジェクト又は格納予定のデータオブジェクトは、アクセス要求Eによって読み出される予定の結果、及び、アクセス要求C、DのWriteデータオブジェクトである。また、この段階で、HDD16において処理中のアクセスは存在しないため、Readアクセス要求EのReadコマンドの処理を即座に開始することができる。Readコマンドのシーク時間は(2500-1500)/100=10ms、回転待ち時間は5msであるため、Readアクセス要求Eが完了する時間は開始から25+10+5=40ms経過後である。
開始から40ms経過後、Readアクセス要求Eの処理が完了し、ホスト50-iに結果が返される。この時点で、Write発行判断部37が、HDD16が無負荷の状態であることをコマンドキュー39及びコマンド管理情報格納部32を用いて検知することで、キャッシュ12に格納されたWriteデータオブジェクトの書き込み処理が開始される。現時点でHDD16が処理中又は待機中のコマンドは存在しないため、コマンド履歴管理部38からHDD16の過去のコマンド実行状況を調べる。コマンド履歴管理部38は、HDD16が実行を完了した、Readアクセス要求A、B、Eに対するコマンドのアクセス先アドレス、アクセス完了時刻を格納する。
直前にHDD16が実行を完了したコマンドはアクセス要求Eに対応するものであるため、HDD16のヘッドはブロックアドレス2500の位置に存在することが分かる。HDD16のヘッドの位置とWriteデータ分類部で管理されたZone#0から#3までに属するWriteデータオブジェクトを比較すると、現在HDD16のヘッドが存在するZone#2のWriteデータオブジェクトとしてアクセス要求DのWriteデータオブジェクトがキャッシュ上に格納されていることが分かり、アクセス要求DのWriteデータオブジェクトがHDD16に書き込まれる。
本発明によると、単体又は複数の記憶媒体を有するストレージ装置において、データオブジェクトの記憶媒体への書き込み処理に対して、書き込み性能の向上のために必要なスケジューリング処理に要する時間を短縮するとともに、前記データオブジェクトの書き込み処理及び他のアクセス列に対する読み出し、書き込み処理が互いに与える性能低下の影響を削減することができる。
本発明は、例えば、記憶媒体として、連続するアクセスのアクセス先アドレスによってアクセス速度が変化するHDDのような記憶媒体を採用するストレージ装置、システム、プログラムに適用することができる。また、本発明は、HDDに限らず、同様の特性を持つ記憶媒体であれば、その他の記憶媒体を採用するストレージ装置、システム、プログラムに対しても適用することができる。
なお、上記の特許文献及び非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
なお、本発明は、以下に付記する発明をも包含するものである。
(付記1)記憶媒体に書き込むべきデータオブジェクトを一時的に格納するキャッシュと、
前記記憶媒体に対する書き込み先アドレスに応じて、前記記憶媒体のアドレス空間を分割して得られた複数の領域のいずれかに前記データオブジェクトを分類するデータ分類部と、
前記データオブジェクトの識別子と前記データオブジェクトが分類された領域とを対応付けて保持するデータ管理部と、
前記対応付けを参照し、前記キャッシュに格納されたデータオブジェクトの中から、前記記憶媒体に対する書き込み又は読み出しによる直前のアクセス先のアドレスに近い領域に書き込むべきデータオブジェクトを優先的に選択して、前記記憶媒体に書き込むデータ選択部とを備え、
前記複数の領域は、同一の領域に対して連続してアクセスを行う場合に必要とされる時間が、異なる領域に対して連続してアクセスを行う場合に必要とされる時間よりも短いことを特徴とする、ストレージ制御装置。
前記記憶媒体に対する書き込み先アドレスに応じて、前記記憶媒体のアドレス空間を分割して得られた複数の領域のいずれかに前記データオブジェクトを分類するデータ分類部と、
前記データオブジェクトの識別子と前記データオブジェクトが分類された領域とを対応付けて保持するデータ管理部と、
前記対応付けを参照し、前記キャッシュに格納されたデータオブジェクトの中から、前記記憶媒体に対する書き込み又は読み出しによる直前のアクセス先のアドレスに近い領域に書き込むべきデータオブジェクトを優先的に選択して、前記記憶媒体に書き込むデータ選択部とを備え、
前記複数の領域は、同一の領域に対して連続してアクセスを行う場合に必要とされる時間が、異なる領域に対して連続してアクセスを行う場合に必要とされる時間よりも短いことを特徴とする、ストレージ制御装置。
(付記2)前記データ選択部は、前記記憶媒体に対する読み出しのアクセスが行われていない期間に、前記選択されたデータオブジェクトを前記記憶媒体に書き込むことを特徴とする、付記1に記載のストレージ制御装置。
(付記3)前記キャッシュは、前記記憶媒体から読み出されたデータオブジェクトをさらに格納することを特徴とする、付記1又は2に記載のストレージ制御装置。
(付記4)前記データ選択部は、前記キャッシュに格納されたデータオブジェクトの中から、前記記憶媒体に対して行う予定の書き込み及び読み出しのアクセス列のアクセス先アドレスに近い領域に書き込むべきデータオブジェクトを優先的に選択して、前記記憶媒体に書き込むことを特徴とする、付記1乃至3のいずれか1に記載のストレージ制御装置。
(付記5)前記データ選択部は、前記記憶媒体に発行された書き込み及び読み出しのアクセスの履歴を参照して、前記キャッシュに格納されたデータオブジェクトの中から前記記憶媒体に対して将来アクセスされる可能性の高いアドレスに近い領域に書き込むべきデータオブジェクトを優先的に選択して、前記記憶媒体に書き込むことを特徴とする、付記1乃至3のいずれか1に記載のストレージ制御装置。
(付記6)前記記憶媒体と、
付記1乃至5のいずれか1に記載のストレージ制御装置と、を備えていることを特徴とするストレージ装置。
付記1乃至5のいずれか1に記載のストレージ制御装置と、を備えていることを特徴とするストレージ装置。
(付記7)前記記憶媒体はハードディスクドライブであることを特徴とする、付記6に記載のストレージ装置。
(付記8)前記複数の領域は、各領域内におけるヘッドのシーク距離が短くなるように、前記ハードディスクドライブのアドレス空間を分割して得られた複数の領域であることを特徴とする、付記7に記載のストレージ装置。
(付記9)コンピュータが、
記憶媒体に書き込むべきデータオブジェクトを一時的にキャッシュに格納する工程と、
前記記憶媒体に対する書き込み先アドレスに応じて、前記記憶媒体のアドレス空間を分割して得られた複数の領域のいずれかに前記データオブジェクトを分類する工程と、
前記データオブジェクトの識別子と前記データオブジェクトが分類された領域とを対応付けて保持する工程と、
前記対応付けを参照し、前記キャッシュに格納されたデータオブジェクトの中から、前記記憶媒体に対する書き込み又は読み出しによる直前のアクセス先のアドレスに近い領域に書き込むべきデータオブジェクトを優先的に選択して、前記記憶媒体に書き込む書込み工程とを含み、
前記複数の領域は、同一の領域に対して連続してアクセスを行う場合に必要とされる時間が、異なる領域に対して連続してアクセスを行う場合に必要とされる時間よりも短いことを特徴とする、ストレージ制御方法。
記憶媒体に書き込むべきデータオブジェクトを一時的にキャッシュに格納する工程と、
前記記憶媒体に対する書き込み先アドレスに応じて、前記記憶媒体のアドレス空間を分割して得られた複数の領域のいずれかに前記データオブジェクトを分類する工程と、
前記データオブジェクトの識別子と前記データオブジェクトが分類された領域とを対応付けて保持する工程と、
前記対応付けを参照し、前記キャッシュに格納されたデータオブジェクトの中から、前記記憶媒体に対する書き込み又は読み出しによる直前のアクセス先のアドレスに近い領域に書き込むべきデータオブジェクトを優先的に選択して、前記記憶媒体に書き込む書込み工程とを含み、
前記複数の領域は、同一の領域に対して連続してアクセスを行う場合に必要とされる時間が、異なる領域に対して連続してアクセスを行う場合に必要とされる時間よりも短いことを特徴とする、ストレージ制御方法。
(付記10)前記書込み工程において、前記記憶媒体に対する読み出しのアクセスが行われていない期間に、前記選択されたデータオブジェクトを前記記憶媒体に書き込むことを特徴とする、付記9に記載のストレージ制御方法。
(付記11)記憶媒体に書き込むべきデータオブジェクトを一時的にキャッシュに格納する処理と、
前記記憶媒体に対する書き込み先アドレスに応じて、前記記憶媒体のアドレス空間を分割して得られた複数の領域のいずれかに前記データオブジェクトを分類する処理と、
前記データオブジェクトの識別子と前記データオブジェクトが分類された領域とを対応付けて保持する処理と、
前記対応付けを参照し、前記キャッシュに格納されたデータオブジェクトの中から、前記記憶媒体に対する書き込み又は読み出しによる直前のアクセス先のアドレスに近い領域に書き込むべきデータオブジェクトを優先的に選択して、前記記憶媒体に書き込む書込み処理とを、コンピュータに実行させ、
前記複数の領域は、同一の領域に対して連続してアクセスを行う場合に必要とされる時間が、異なる領域に対して連続してアクセスを行う場合に必要とされる時間よりも短いことを特徴とする、プログラム。
前記記憶媒体に対する書き込み先アドレスに応じて、前記記憶媒体のアドレス空間を分割して得られた複数の領域のいずれかに前記データオブジェクトを分類する処理と、
前記データオブジェクトの識別子と前記データオブジェクトが分類された領域とを対応付けて保持する処理と、
前記対応付けを参照し、前記キャッシュに格納されたデータオブジェクトの中から、前記記憶媒体に対する書き込み又は読み出しによる直前のアクセス先のアドレスに近い領域に書き込むべきデータオブジェクトを優先的に選択して、前記記憶媒体に書き込む書込み処理とを、コンピュータに実行させ、
前記複数の領域は、同一の領域に対して連続してアクセスを行う場合に必要とされる時間が、異なる領域に対して連続してアクセスを行う場合に必要とされる時間よりも短いことを特徴とする、プログラム。
(付記12)前記書込み処理において、前記記憶媒体に対する読み出しのアクセスが行われていない期間に、前記選択されたデータオブジェクトを前記記憶媒体に書き込む処理をコンピュータに実行させることを特徴とする、付記11に記載のプログラム。
(付記13)付記11又は12に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
10、20 ストレージ装置
11 記憶媒体
12 キャッシュ
13 アクセス要求処理部
15 コマンド実行部
16 HDD
21 アクセス解釈部
22 アクセス要求情報格納部
23 アクセス要求管理テーブル
31 制御部
32 コマンド管理情報格納部
33 コマンド管理テーブル
35 時刻取得部
36 Writeデータ分類部
37 Write発行判断部
38 コマンド履歴管理部
39 コマンドキュー
40 ストレージ制御装置
41 データ分類部
42 データ管理部
43 データ選択部
50-1~50-n ホスト
60 ネットワーク
11 記憶媒体
12 キャッシュ
13 アクセス要求処理部
15 コマンド実行部
16 HDD
21 アクセス解釈部
22 アクセス要求情報格納部
23 アクセス要求管理テーブル
31 制御部
32 コマンド管理情報格納部
33 コマンド管理テーブル
35 時刻取得部
36 Writeデータ分類部
37 Write発行判断部
38 コマンド履歴管理部
39 コマンドキュー
40 ストレージ制御装置
41 データ分類部
42 データ管理部
43 データ選択部
50-1~50-n ホスト
60 ネットワーク
Claims (10)
- 記憶媒体に書き込むべきデータオブジェクトを一時的に格納するキャッシュと、
前記記憶媒体に対する書き込み先アドレスに応じて、前記記憶媒体のアドレス空間を分割して得られた複数の領域のいずれかに前記データオブジェクトを分類するデータ分類部と、
前記データオブジェクトの識別子と前記データオブジェクトが分類された領域とを対応付けて保持するデータ管理部と、
前記対応付けを参照し、前記キャッシュに格納されたデータオブジェクトの中から前記記憶媒体に対する書き込み又は読み出しによる直前のアクセス先のアドレスに近い領域に書き込むべきデータオブジェクトを優先的に選択して、前記記憶媒体に書き込むデータ選択部とを備え、
前記複数の領域は、同一の領域に対して連続してアクセスを行う場合に必要とされる時間が、異なる領域に対して連続してアクセスを行う場合に必要とされる時間よりも短いことを特徴とする、ストレージ制御装置。 - 前記データ選択部は、前記記憶媒体に対する読み出しのアクセスが行われていない期間に、前記選択されたデータオブジェクトを前記記憶媒体に書き込むことを特徴とする、請求項1に記載のストレージ制御装置。
- 前記キャッシュは、前記記憶媒体から読み出されたデータオブジェクトをさらに格納することを特徴とする、請求項1又は2に記載のストレージ制御装置。
- 前記データ選択部は、前記キャッシュに格納されたデータオブジェクトの中から、前記記憶媒体に対して行う予定の書き込み及び読み出しのアクセス列のアクセス先アドレスに近い領域に書き込むべきデータオブジェクトを、優先的に選択して、前記記憶媒体に書き込むことを特徴とする、請求項1乃至3のいずれか1項に記載のストレージ制御装置。
- 前記データ選択部は、前記記憶媒体に発行された書き込み及び読み出しのアクセスの履歴を参照して、前記キャッシュに格納されたデータオブジェクトの中から、前記記憶媒体に対して将来アクセスされる可能性の高いアドレスに近い領域に書き込むべきデータオブジェクトを優先的に選択して、前記記憶媒体に書き込むことを特徴とする、請求項1乃至3のいずれか1項に記載のストレージ制御装置。
- 前記記憶媒体と、
請求項1乃至5のいずれか1項に記載のストレージ制御装置と、を備えていることを特徴とするストレージ装置。 - 前記記憶媒体はハードディスクドライブであることを特徴とする、請求項6に記載のストレージ装置。
- 前記複数の領域は、各領域内におけるヘッドのシーク距離が短くなるように、前記ハードディスクドライブのアドレス空間を分割して得られた複数の領域であることを特徴とする、請求項7に記載のストレージ装置。
- コンピュータが、記憶媒体に書き込むべきデータオブジェクトを一時的にキャッシュに格納する工程と、
前記記憶媒体に対する書き込み先アドレスに応じて、前記記憶媒体のアドレス空間を分割して得られた複数の領域のいずれかに前記データオブジェクトを分類する工程と、
前記データオブジェクトの識別子と前記データオブジェクトが分類された領域とを対応付けて保持する工程と、
前記対応付けを参照し、前記キャッシュに格納されたデータオブジェクトの中から、前記記憶媒体に対する書き込み又は読み出しによる直前のアクセス先のアドレスに近い領域に書き込むべきデータオブジェクトを優先的に選択して、前記記憶媒体に書き込む書込み工程とを含み、
前記複数の領域は、同一の領域に対して連続してアクセスを行う場合に必要とされる時間が、異なる領域に対して連続してアクセスを行う場合に必要とされる時間よりも短いことを特徴とする、ストレージ制御方法。 - 記憶媒体に書き込むべきデータオブジェクトを一時的にキャッシュに格納する処理と、
前記記憶媒体に対する書き込み先アドレスに応じて、前記記憶媒体のアドレス空間を分割して得られた複数の領域のいずれかに前記データオブジェクトを分類する処理と、
前記データオブジェクトの識別子と前記データオブジェクトが分類された領域とを対応付けて保持する処理と、
前記対応付けを参照し、前記キャッシュに格納されたデータオブジェクトの中から、前記記憶媒体に対する書き込み又は読み出しによる直前のアクセス先のアドレスに近い領域に書き込むべきデータオブジェクトを優先的に選択して、前記記憶媒体に書き込む書込み処理とを、コンピュータに実行させ、
前記複数の領域は、同一の領域に対して連続してアクセスを行う場合に必要とされる時間が、異なる領域に対して連続してアクセスを行う場合に必要とされる時間よりも短いことを特徴とする、プログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009-286812 | 2009-12-17 | ||
JP2009286812 | 2009-12-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2011074591A1 true WO2011074591A1 (ja) | 2011-06-23 |
Family
ID=44167342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2010/072513 WO2011074591A1 (ja) | 2009-12-17 | 2010-12-15 | ストレージ装置、ストレージ制御装置、ストレージ制御方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2011074591A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014010476A (ja) * | 2012-06-27 | 2014-01-20 | Fujitsu Ltd | ストレージ仮想化装置、ストレージ仮想化方法及びストレージ仮想化プログラム |
WO2015145932A1 (ja) * | 2014-03-28 | 2015-10-01 | パナソニックIpマネジメント株式会社 | 不揮発性メモリ装置 |
WO2015170702A1 (ja) * | 2014-05-09 | 2015-11-12 | 日本電気株式会社 | ストレージ装置と情報処理システム及びストレージ制御方法とプログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11317008A (ja) * | 1998-04-30 | 1999-11-16 | Toshiba Corp | ディスク記憶装置及び同装置におけるセグメントキャッシュ制御方法 |
JP2009163499A (ja) * | 2008-01-07 | 2009-07-23 | Nec Corp | ストレージ装置と方法とプログラム |
-
2010
- 2010-12-15 WO PCT/JP2010/072513 patent/WO2011074591A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11317008A (ja) * | 1998-04-30 | 1999-11-16 | Toshiba Corp | ディスク記憶装置及び同装置におけるセグメントキャッシュ制御方法 |
JP2009163499A (ja) * | 2008-01-07 | 2009-07-23 | Nec Corp | ストレージ装置と方法とプログラム |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014010476A (ja) * | 2012-06-27 | 2014-01-20 | Fujitsu Ltd | ストレージ仮想化装置、ストレージ仮想化方法及びストレージ仮想化プログラム |
WO2015145932A1 (ja) * | 2014-03-28 | 2015-10-01 | パナソニックIpマネジメント株式会社 | 不揮発性メモリ装置 |
JPWO2015145932A1 (ja) * | 2014-03-28 | 2017-04-13 | パナソニックIpマネジメント株式会社 | 不揮発性メモリ装置 |
WO2015170702A1 (ja) * | 2014-05-09 | 2015-11-12 | 日本電気株式会社 | ストレージ装置と情報処理システム及びストレージ制御方法とプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7979631B2 (en) | Method of prefetching data in hard disk drive, recording medium including program to execute the method, and apparatus to perform the method | |
RU2616545C2 (ru) | Подкачка рабочего набора, используя последовательно упорядоченный файл подкачки | |
US8972696B2 (en) | Pagefile reservations | |
JP4429780B2 (ja) | 記憶制御装置、制御方法、および制御プログラム。 | |
US20120117328A1 (en) | Managing a Storage Cache Utilizing Externally Assigned Cache Priority Tags | |
US10152236B2 (en) | Hybrid data storage device with partitioned local memory | |
US10346051B2 (en) | Storage media performance management | |
US9342456B2 (en) | Storage control program for hierarchy relocation control, storage system with hierarchy relocation control and hierarchy control apparatus thereof | |
US20180341423A1 (en) | Storage control device and information processing system | |
US9465745B2 (en) | Managing access commands by multiple level caching | |
WO2011074591A1 (ja) | ストレージ装置、ストレージ制御装置、ストレージ制御方法及びプログラム | |
US20060218361A1 (en) | Electronic storage device with rapid data availability | |
JP4189342B2 (ja) | ストレージ装置、ストレージコントローラ及びライトバックキャッシュ制御方法 | |
US7908434B2 (en) | Raid apparatus, cache management method, and computer program product | |
JP2007102436A (ja) | ストレージ制御装置およびストレージ制御方法 | |
US10628045B2 (en) | Internal data transfer management in a hybrid data storage device | |
US20170371589A1 (en) | Hybrid Data Storage Device with Embedded Command Queuing | |
JP2021135538A (ja) | ストレージ制御装置及びストレージ制御プログラム | |
JP5292813B2 (ja) | ストレージ装置と方法とプログラム | |
US20180088833A1 (en) | Hybrid data storage device with performance mode data path | |
US20180335951A1 (en) | Information processing apparatus, non-transitory computer-readable storage medium, and information processing method | |
US10579268B2 (en) | Disk control device, disk control method, and recording medium | |
JP2009169475A (ja) | ストレージ装置、データ格納方法、データ読出方法、データ格納位置・データ読出位置決定プログラム | |
JP2009223355A (ja) | ハードディスクとシリコンディスクのミラーリングを行うディスク制御システム | |
JP4872089B2 (ja) | ディスクアレイ装置及びその制御装置並びに制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10837617 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 10837617 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |