WO2019244656A1 - Storage device - Google Patents

Storage device Download PDF

Info

Publication number
WO2019244656A1
WO2019244656A1 PCT/JP2019/022542 JP2019022542W WO2019244656A1 WO 2019244656 A1 WO2019244656 A1 WO 2019244656A1 JP 2019022542 W JP2019022542 W JP 2019022542W WO 2019244656 A1 WO2019244656 A1 WO 2019244656A1
Authority
WO
WIPO (PCT)
Prior art keywords
area
storage medium
transfer
partial
access
Prior art date
Application number
PCT/JP2019/022542
Other languages
French (fr)
Japanese (ja)
Inventor
周吾 小川
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2020525500A priority Critical patent/JP7075067B2/en
Publication of WO2019244656A1 publication Critical patent/WO2019244656A1/en

Links

Images

Classifications

    • 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

Definitions

  • the present invention relates to a storage device, a data transfer method, and a recording medium.
  • a virtual storage medium (hereinafter, referred to as a virtual storage medium) configured from an area of a storage medium connected to a storage device is transferred to a host computer (hereinafter, referred to as a virtual storage medium) via a network.
  • a host computer hereinafter, referred to as a virtual storage medium
  • Such a storage device When such a storage device receives a read request designating an access target area of a virtual storage medium from a host, it secures a buffer in the storage device, reads data from the access target area, and stores the data in the buffer. At this time, in practice, the storage device reads data from the storage medium area allocated to the access target area and stores the data in the buffer. When all the read data has been stored in the buffer, the storage device starts the operation of reading the read data from the buffer and transferring the read data to the host memory via the network.
  • the storage device when the storage device receives a write request specifying the access target area of the virtual storage medium from the host, the storage device secures a buffer in the storage device and transfers the write data stored in the memory of the host to the buffer via the network. . Then, when all the write data has been stored in the buffer, the storage device reads the write data from the buffer and writes the write data to the access target area of the virtual storage medium. At this time, the storage device actually writes the write data to the area of the storage medium allocated to the access target area.
  • the buffer in the case of a read request, the buffer is transferred from the buffer to the host memory unless all read data in the storage medium area allocated to the access target area of the virtual storage medium is stored in the buffer. Since the data transfer cannot be started, the read performance from the host to the virtual storage medium is reduced.
  • the buffer in the case of a write request, unless all write data in the memory of the host is stored in the buffer, the buffer is transferred to the storage medium area allocated to the access target area of the virtual storage medium. Since the above write data cannot be written, the write performance from the host to the virtual storage medium decreases.
  • An object of the present invention is to provide a storage device that solves the above-mentioned problem, that is, the problem that the access performance from the host to the virtual storage medium is reduced.
  • a storage device includes: A controller that provides access to a virtual storage medium configured from a plurality of storage medium areas and receives an access request to the virtual storage medium from a host via a network; Data transfer means between the node connected to the controller and the memory of the host, The controller divides an access target area on the virtual storage medium accessed by the access request into partial areas, reserves a buffer for each of the partial areas, and, for each of the partial areas, Data transfer between an area of a storage medium and the buffer, and data transfer between the buffer corresponding to the partial area and the area corresponding to the partial area in the memory of the host by the data transfer means. It is configured to control.
  • a data transfer method includes: Between a node connected to a controller that provides access to a virtual storage medium composed of a plurality of storage medium areas and receives an access request to the virtual storage medium from a host via a network, and the memory of the host; Data transfer method, Dividing an access target area on the virtual storage medium accessed by the access request into partial areas, Securing a buffer for each partial area, For each of the partial areas, data transfer between the area of the storage medium corresponding to the partial area and the buffer corresponding to the partial area; and the buffer and the host corresponding to the partial area by the data transfer unit. And data transfer to and from an area corresponding to the partial area in the memory.
  • a computer-readable recording medium Computer A controller that provides access to a virtual storage medium configured from a plurality of storage medium areas and receives an access request to the virtual storage medium from a host via a network; Causing the controller to function as data transfer means between the connected node and the memory of the host, The controller divides an access target area on the virtual storage medium accessed by the access request into partial areas, reserves a buffer for each of the partial areas, and, for each of the partial areas, Data transfer between an area of a storage medium and the buffer corresponding to the partial area; and a transfer of the buffer corresponding to the partial area by the data transfer unit and an area corresponding to the partial area in the memory of the host. Record a program that is configured to control data transfer between.
  • FIG. 1 is a diagram illustrating an entire system configuration according to a first embodiment of the present invention.
  • FIG. 3 is a diagram illustrating a configuration of a controller that executes a process in response to an access request from an application according to the first embodiment of the present invention.
  • FIG. 3 is a diagram illustrating an example of a format of a mapping table for managing a correspondence relationship between an identifier and an address of a storage medium mapped to each area of a virtual storage medium according to the first embodiment of this invention.
  • FIG. 5 is a diagram illustrating a procedure in which a transfer storage area calculation unit calculates a storage medium including a transfer storage area corresponding to an access request and an address on the storage medium in the first embodiment of the present invention.
  • FIG. 4 is a diagram illustrating an example of a correspondence relationship between a transfer storage area and a start address of a transfer memory area calculated from an address representing an area to be accessed on a virtual storage medium and an access size according to the first embodiment of this invention.
  • FIG. 5 is a diagram illustrating an example of a format of an access processing table for managing information on data transfer processing required for an access request from an application according to the first embodiment of this invention.
  • 4 is a flowchart illustrating a procedure in which a controller processes an access request to a virtual storage medium from an application according to the first embodiment of this invention.
  • 4 is a flowchart illustrating a procedure in which a controller processes an access request to a virtual storage medium from an application according to the first embodiment of this invention.
  • FIG. 4 is a flowchart illustrating a procedure in which an access processing execution management unit included in a controller executes a data transfer process for an access request in the first embodiment of the present invention.
  • 4 is a flowchart illustrating a procedure in which an access processing execution management unit included in a controller executes a data transfer process for an access request in the first embodiment of the present invention.
  • FIG. 9 is a block diagram of a storage device according to a second embodiment of the present invention.
  • FIG. 11 is a diagram illustrating an example of a hardware configuration that realizes a controller and a data transfer unit in a storage device according to a second embodiment of the present invention.
  • the present embodiment eliminates a bottleneck that occurs when accessing a virtual storage medium that combines storage areas of a plurality of storage media via a network, and improves access performance.
  • a bottleneck that occurs when accessing a virtual storage medium that combines storage areas of a plurality of storage media via a network.
  • I do the background art of the present embodiment, the problem to be solved by the present embodiment, the outline of the means for solving the problem, the configuration of the present embodiment, the operation of the present embodiment, and the effect of the present embodiment will be sequentially described. I do.
  • the access to the virtual storage medium is performed by, for example, iSCSI (Internet Small Computer Interface) or NVM Express over Fabrics (Non-Volatile Memory Express over Fabrics; registered trademark; hereinafter referred to as NVMe-F).
  • NVMe-F Non-Volatile Memory Express over Fabrics
  • SCSI Small Computer Interface
  • NVMe Non-Volatile Memory Express
  • the same access means as the storage medium of each standard connected to the computer is provided for the storage medium.
  • RDMA Remote Direct Memory Access
  • RNIC Network Interface Card
  • iSCSI RDMA extension iSER (iSCSI Extensions for RDMA) and NVMe-oF
  • overhead is reduced by using RDMA for data transfer between a computer that provides a virtual storage medium and a computer that accesses the virtual storage medium. To improve the access performance.
  • the virtual storage medium can be mapped to a plurality of storage medium areas, for example, RAID (Redundant Arrays of Inexpensive Disks).
  • RAID Redundant Arrays of Inexpensive Disks
  • the read data of the accessed storage medium cannot be transferred first, and the read performance from the host to the virtual storage medium decreases.
  • a storage medium whose access time greatly changes depending on the internal state such as an SSD (Solid State Drive) using a NAND Flash as a storage element
  • the number of storage media waiting for completion of the read increases, The waiting time until the start of the RDMA transfer increases.
  • RDMA when RDMA is used for write access to a virtual storage medium, writing to the storage medium cannot be started until transfer of all write data to the buffer is completed, and write performance to the virtual storage medium is degraded. Since the data transfer by the RDMA is controlled by the RNIC, it is difficult to confirm the state of the write data during the transfer. That is, when the write destination area is mapped to a plurality of storage media, write access cannot be started first from a storage medium for which data transfer from the host to the buffer has been completed, which causes performance degradation.
  • the degradation of the access performance due to the waiting process before and after the RDMA transfer is a problem to be solved in the present embodiment.
  • a means for reducing queuing processing before and after data transfer that occurs when an access destination of a virtual storage medium via a network is mapped to a plurality of storage media and improving access performance of the virtual storage medium is provided. Therefore, in the processing of an access request to a virtual storage medium, access is performed for each storage medium corresponding to the access request destination and RDMA transfer of data related to the access is independently performed. By separating the processing related to the access request for each storage medium, processing related to each storage medium can be performed in parallel without waiting for processing related to other storage mediums when accessing the storage medium and completing data transfer by RDMA. By doing so, the completion time of the access processing is reduced.
  • the host that accesses the virtual storage medium provides the controller that operates on the target node, which is a different node from the host, that provides access to the virtual storage medium, with the type of access request (read or write),
  • the access is requested by sending address information such as LBA (Logical Block Address) indicating the area to be accessed on the virtual storage medium.
  • LBA Logical Block Address
  • the controller When the controller receives the access request from the host, the controller specifies, as the transfer storage area, the identifier of the storage medium corresponding to each part of the area to be accessed and the address indicating the area in the storage medium. Further, the controller obtains an offset from the head of the transfer storage area of each storage medium, which represents a corresponding location in the access target area of the virtual storage medium.
  • the controller receives, in advance or together with an access request, address information indicating a memory area on the host for storing read data or write data for an area to be accessed on the virtual storage medium. Then, the controller obtains an address in the memory address space of the host corresponding to each transfer storage area as the transfer memory area from the address information. The address of each transfer memory area is obtained as an address in the memory space represented by an offset from the head in the area to be accessed in the virtual storage medium.
  • the controller secures a transfer buffer, which is a buffer for relaying transfer data, for each set of the transfer storage area and the transfer memory area on the memory of the target node. That is, a transfer buffer is reserved for each storage medium that is the mapping destination of the access target area of the virtual storage medium.
  • the controller stores read data and write data for the storage medium in the transfer buffer, and performs data transfer with the transfer storage area. Further, the controller instructs the RNIC to perform RDMA transfer of read data and write data between the transfer buffer and the transfer memory area of the host.
  • the controller When the access request from the host is a read, the controller performs a read access to each storage medium corresponding to each part of the area to be accessed, and stores the data in the transfer storage area in the transfer buffer. Then, the controller instructs the RNIC to perform RDMA transfer of read data between the transfer buffer corresponding to the storage medium for which the read access has been completed and the transfer memory area of the host. At this time, the controller starts the RDMA transfer of the read data irrespective of whether the storage of the read data from the transfer storage in another transfer buffer is completed or not completed. When the RDMA transfer from the transfer buffer to the transfer memory area is completed for all the read data, the controller notifies the host of the completion of the read access request.
  • the controller instructs the RNIC to perform RDMA transfer of write data between the transfer memory area of the host corresponding to each part of the area to be accessed and the corresponding transfer buffer. Then, the controller performs write access sequentially from the storage medium corresponding to the transfer buffer for which the RDMA transfer has been completed, and stores the write data in the transfer storage area. At this time, the controller starts write access to the storage medium regardless of whether the RDMA transfer of the write data in the other transfer buffer has been completed or not completed. When all the write data has been stored in the transfer storage area on the storage medium from the transfer buffer, the controller notifies the host of the completion of the write access request.
  • FIG. 1 is a diagram illustrating a configuration of a storage system according to the first embodiment of the present invention.
  • the computer system according to the present embodiment includes a host 1, a target node 2, and a network 3.
  • the host 1 is also called a host computer.
  • the target node 2 is also called a target computer or a storage device.
  • the host 1 has a host memory 10 and a host communication unit 11.
  • an application 12 that issues an access request for the virtual storage medium 23 to the target node 2 operates.
  • the host memory 10 is a memory connected to the host 1.
  • the host memory 10 is accessed by the application 12.
  • the host memory 10 has an area for storing read data as a result of a read request from the application 12 to the virtual storage medium 23, and write data to be written by the write request. This area is defined as a transfer memory area.
  • the host memory 10 is a storage device such as a DRAM used as a memory of the host 1.
  • the host memory 10 may be, for example, a GPU, an FPGA, or another device that is connected to the host 1 directly or via a network and performs input / output via the memory address space of the host 1.
  • the host communication unit 11 transmits and receives data between the host 1 and the target node 2 via the network 3.
  • the host communication unit 11 performs RDMA transfer between the host memory 10 and the target memory 20 connected to the target node 2.
  • the application 12 is software or hardware that operates on the host 1.
  • the application 12 issues an access request for the virtual storage medium 23 to the target node 2.
  • the target node 2 has a target memory 20, a target communication unit 21, a controller 22, and a storage medium 24.
  • the target memory 20 is a memory connected to the target node 2.
  • the target memory 20 is used as a buffer for storing read data and write data for the virtual storage medium 23. This buffer is defined as a target buffer.
  • the target communication unit 21 transmits and receives data between the target node 2 and the host 1 via the network 3.
  • the target communication unit 21 performs RDMA transfer between the target memory 20 and the host memory 10 connected to the host 1.
  • the controller 22 is software or hardware that operates on the target node 2.
  • the controller 22 performs access processing of the virtual storage medium 23.
  • the controller 22 receives an access request for the virtual storage medium 23 from the application 12.
  • the controller 22 controls access to each area of the storage medium 24 corresponding to the access request destination and transfer of read data and write data between the host memory 10 and the target memory 20 in order to execute the access request. .
  • the virtual storage medium 23 is a virtual storage medium constructed from the area of the storage medium 24 by the controller 22.
  • the virtual storage medium 23 is recognized and accessed from the application 12 of the host 1 as a storage medium via the network 3.
  • An area on the virtual storage medium 23 accessed from the application 12 is defined as an access target area.
  • the storage medium 24 is a device such as a solid state drive (SSD) connected to the target node 2 via a bus or a network.
  • SSD solid state drive
  • the storage medium 24 is not limited to the configuration of a single device shown in FIG.
  • the network 3 connects the host 1 and the target node 2 to each other.
  • Network 3 supports RDMA transfer between host 1 and target node 2.
  • the network 3 is not limited to a mode in which only the host 1 and the target node 2 are connected as shown in FIG.
  • a mode in which a node (computer) other than the host 1 and the target node 2 are connected to the network 3 may be employed.
  • the host 1 and the target node 2 may be connected via a switch.
  • the controller 22 includes an access request receiving unit 221, a mapping table 222, a transfer storage area calculation unit 223, a transfer memory area calculation unit 224, an access processing table 225, and an access processing execution management unit 226. And a data transfer control unit 227.
  • the target memory 20 includes a target buffer 200.
  • the access request receiving unit 221 receives an access request from the application 12 running on the host 1.
  • the access request includes a type of access request indicating whether the request is read or write.
  • the access request includes a logical address indicating the head of the access target area on the virtual storage medium 23.
  • the access request includes a memory address indicating the head of a storage area (transfer memory area) for read data or write data on the host memory 10 corresponding to the access target area.
  • the address information of the transfer memory area corresponding to the access target area does not need to be included in the access request, and may be received in advance before the application 12 makes the access request.
  • the access request receiving unit 221 controls the transfer storage area calculation unit 223, the transfer memory area calculation unit 224, the access processing table 225, and the access processing execution management unit 226 to process the received access request.
  • the mapping table 222 includes an identifier of the storage medium 24 mapped to each area (hereinafter, referred to as a block) on the virtual storage medium 23, and an address (hereinafter, a physical address and a physical address) in the storage medium 24 specified by the identifier. ) And the logical addresses in the virtual storage medium 23 are stored and managed in advance.
  • FIG. 3 is a diagram illustrating information included in the mapping table 222.
  • the mapping table 222 records, for each block on the virtual storage medium 23, the identifier of the storage medium 24 of the mapping destination, and the correspondence between the logical address of the block in the virtual storage medium 23 and the physical address of the mapping destination storage medium 24.
  • a block on the virtual storage medium 23 managed by one mapping entry 2221 of the mapping table 222 is called a logical block, and a block of the storage medium 24 mapped to the logical block is called a physical block.
  • Each mapping entry 2221 includes a logical address 2222, which is the head address of each logical block of the virtual storage medium 23, a storage medium identifier 2223 indicating the identifier of the storage medium 24 to which each logical block is mapped, and the storage medium identifier. It includes a physical address 2224 which is the head address of the physical block of the mapping destination in the storage medium 24 represented by 2223, and a mapping size 2225 which indicates the size of the logical block and the physical block to be mapped.
  • the mapping entry 2221 in the first row of the mapping table 222 indicates that a logical block of 64 MiB size starting from the logical address 0x00400000 in the virtual storage medium 23 has a physical address 0x0800000 in the storage medium 24 having the storage medium identifier 1. It is mapped to a physical block having a size of 64 MiB.
  • the mapping entry 2221 in the second row of the mapping table 222 indicates that a logical block of 128 MiB size starting from the logical address 0x00800000 in the virtual storage medium 23 has a physical address 0xa00000000 in the storage medium 24 having the storage medium identifier 1 as the head. This indicates that the address is mapped to a physical block having a size of 128 MiB as an address.
  • mapping entry 2221 on the first line of the mapping table 222 in FIG. 3 one logical block in the virtual storage medium 23 is mapped to a storage area of at most one storage medium 24.
  • mapping entries 2221 on the first and second lines of the mapping table 222 in FIG. 3 two logical blocks in the virtual storage medium 23 whose logical addresses are adjacent to each other are mapped to different storage media. ing.
  • the division can be the minimum quantity required to avoid the queuing process.
  • the format of the mapping table 222 is not limited to the format shown in FIG.
  • the mapping table 222 may have any format as long as the identifier of the storage medium 24 corresponding to each logical block of the virtual storage medium 23 and the correspondence between the logical address and the physical address can be determined. For example, when each mapping entry 2221 corresponds to each logical block obtained by dividing the area of the virtual storage medium 23 from the beginning by a certain size, the logical address 2222 and the mapping size 2225 for each logical block are unnecessary. It is also possible to use RAID for mapping between the virtual storage medium 23 and the storage medium 24.
  • the number of storage media 24 constituting the stripe and the mapping corresponding to the virtual storage medium 23 based on the size of the chunk, which is an area mapped continuously to each storage medium 24 The destination can be calculated.
  • the information of each entry of the mapping table 222 excluding the RAID configuration information is unnecessary.
  • the transfer storage area calculation unit 223 calculates an identifier of a storage medium 24 having a physical block allocated to a logical block including the logical address from a certain logical address of the access target area of the virtual storage medium 23. And a physical address corresponding to the logical address, and a size mapped from the physical address to a continuous area of the storage medium 24 are determined. Further, the transfer storage area calculation unit 223 calculates an offset from the head indicating the position of the area corresponding to the transfer storage area in the area of the access request destination.
  • FIG. 4 is an explanatory diagram of the operation of the transfer storage area calculation unit 223.
  • one logical block 41L of the virtual storage medium 23 is allocated to one physical block 41P of the storage medium 24.
  • the leading logical address of the logical block 41L is Lb
  • the leading physical address of the physical block 41P is Pb
  • the identifier of the storage medium 24 is x.
  • the transfer storage area calculating unit 223 Upon receiving the logical address La on the logical block 41L from the access request receiving unit 221, the transfer storage area calculating unit 223 refers to the mapping entry 2221 corresponding to the logical block 41L in the mapping table 42, and calculates the logical address La.
  • the identifier x of the storage medium 24 assigned to the included logical block is determined.
  • the transfer storage area calculation unit 223 determines the size mapped from the physical address Pa to the continuous area of the storage medium 24 with the identifier x by MS- (La- Lb).
  • the transfer memory area calculation unit 224 determines the address of the transfer memory area on the host memory 10 corresponding to each transfer storage area. calculate.
  • FIG. 5 is an explanatory diagram of the operation of the transfer memory area calculation unit 224.
  • the access target area 51 on the virtual storage medium 23 and the transfer storage area 52a on the storage media 24a, 24b, and 24c mapped to the access target area 51 are shown. , 52b, and 52c, and a transfer memory area 53 on the host memory 10 corresponding to the access target area 51.
  • the area of the size Sa from the top of the access target area 51 is mapped to the storage medium 24a.
  • the area of the size Sb following the access target area 51 is mapped on the storage medium 24b.
  • the remaining area of the access target area 51 having the size Sc is mapped to the storage medium 24c.
  • the access target area 51 when an access request to the access target area 51 is made from the application 12, the access target area 51 is divided into three areas having the sizes of Sa, Sb, and Sc, and data transfer is performed in individual division units. Do. Therefore, the transfer memory area 53 is used by being divided into three areas having the sizes of Sa, Sb, and Sc.
  • the transfer memory area calculation unit 224 calculates the head address of each divided area formed when the transfer memory area 53 is divided as described above.
  • the access processing table 225 manages information on data transfer processing required for processing each access request from the application 12 to the virtual storage medium 23.
  • the access processing table 225 is updated from the access request receiving unit 221 and is referred to by the access processing execution management unit 226 and the data transfer control unit 227.
  • FIG. 6 is a diagram illustrating information included in the access processing table 225.
  • the access processing table 225 stores an access request entry 2251 corresponding to each access request from the application 12 on a one-to-one basis.
  • Each access request entry 2251 includes an access type 2252 and a transfer pair list.
  • the transfer pair list includes one or more transfer pairs 2253 representing a pair of a transfer memory area and a transfer storage area related to the access request.
  • the access request entry 2251 includes a transfer pair 2253 for each of a plurality of sets of a transfer memory area and a transfer storage area as a result of dividing the access request from the application 12 into a plurality.
  • the transfer pair 2253 includes a memory address 2254 indicating the head of the transfer memory area on the host memory 10, a storage identifier 2255 indicating the storage medium 24 including the transfer storage area, a storage medium address 2256 indicating the head of the transfer storage area, and It is composed of a transfer size 2257 representing the size of transfer data.
  • the format of the access processing table 225 is not limited to the format shown in FIG.
  • the access type 2252 may be set as a flag related to write access, and an access in which the flag is set may be written and an access in which the flag is not set may be read.
  • the transfer pair 2253 may include a flag indicating that the data transfer has been completed.
  • the access process execution management unit 226 refers to the access process table 225 to manage the execution status of data transfer required for processing an access request from the application 12 to the virtual storage medium 23.
  • the access processing execution management unit 226 selects the unprocessed transfer pair 2253 from the access processing table 225 and secures the target buffer 200 on the target memory 20. Then, the data transfer control unit 227 starts transfer processing of read data or write data between the transfer memory area and the transfer storage area. When the data transfer process for the transfer pair 2253 ends, the access process execution management unit 226 releases the secured target buffer 200.
  • the data transfer control unit 227 transfers data between the transfer memory area in the host memory 10 and the secured target buffer 200 for the transfer pair 2253 specified by the access processing execution management unit 226, and stores the data in the target buffer 200. Data transfer to and from the transfer storage area on the medium 24 is performed.
  • the data transfer control unit 227 first performs read access to the storage medium 24 represented by the storage identifier 2255, and reads data from the transfer storage area to the target buffer 200. To transfer. When the data transfer to the target buffer 200 is completed, the data transfer control unit 227 next instructs the target communication unit 21 to transfer the read data stored in the target buffer 200 to the transfer memory area of the host memory 10. I do.
  • the data transfer control unit 227 first instructs the target communication unit 21 to transfer the write data stored in the transfer memory area of the host memory 10 to the target buffer. Transfer to 200. Then, when the data transfer to the target buffer 200 is completed, the data transfer control unit 227 performs write access to the storage medium 24 represented by the storage identifier 2255, and writes the write data from the target buffer 200 to the transfer storage area. Forward.
  • the target buffer 200 is secured on the target memory 20 for each transfer pair 2253.
  • the target buffer 200 temporarily holds read data or write data transferred between the transfer memory area and the transfer storage area.
  • the application 12 transmits an access request to the virtual storage medium 23 of the target node 2 to the host communication unit 11.
  • This access request includes the following parameters.
  • (A) Type of access request (b) Logical address indicating the access target area on the virtual storage medium 23 (c) Size of the access target area (d) In the memory space of the host 1 corresponding to the access target area Address pointing to area
  • the logical address indicating the access target area is the first logical address of the access target area. That is, the access target area has continuous logical addresses, and the leading logical address is specified by the access request.
  • the address corresponding to the access target area and indicating the area in the memory space of the host 1 is the head address of the memory area of the host memory 10 that stores the read data as a result of the read request or the write data written in the write request. .
  • the host communication unit 11 transmits the access request received from the application 12 to the target communication unit 21 of the target node 2 via the network 3.
  • the target communication unit 21 transmits the received access request to the controller 22.
  • the access request receiving unit 221 of the controller 22 receives an access request for the virtual storage medium 23 from the application 12 (Step S101).
  • the access request receiving unit 221 creates an access request entry 2251 corresponding to the access request received in step S101 on the access processing table 225, and stores the access type included in the received access request in the column of the access type 2252. Is registered (step S102). At this time, the access request receiving unit 221 leaves the transfer pair list column of the created access request entry 2251 blank.
  • the access request receiving unit 221 initializes an offset representing a point of interest in the transfer storage area and the transfer memory area to 0 (step S103). Then, the access request receiving unit 221 pays attention to the initialized offset.
  • the access request receiving unit 221 adds the value of the focused offset to the first logical address of the access target area in the virtual storage medium 23 included in the access request, and thereby focuses on the access target area on the virtual storage medium 23. Calculate the logical address of the point. (Step S104)
  • the access request receiving unit 221 notifies the transfer storage area calculation unit 223 of the logical address of the point of interest on the virtual storage medium 23 obtained in step S104.
  • the transfer storage area calculation unit 223 refers to the mapping table 222, and the identifier of the storage medium 24 including the transfer storage area corresponding to the notified logical address of the point of interest on the virtual storage medium 23, and the transfer storage area The physical address of the point of interest in is obtained (step S105).
  • the access request receiving unit 221 notifies the transfer memory area calculating unit 224 of the start address of the memory area of the host memory 10 and the focused offset.
  • the transfer memory area calculation unit 224 adds the focused offset to the notified start address of the memory area of the host memory 10, and the transfer memory of the host memory 10 corresponding to the logical address of the focused point on the virtual storage medium 23.
  • the address of the point of interest in the area is obtained (step S106).
  • the transfer storage area calculation unit 223 refers to the mapping table 222 and calculates the size mapped to the continuous area of the storage medium 24 from the notified logical address of the point of interest on the virtual storage medium 23 ( Step S107). Specifically, first, the transfer storage area calculation unit 223 determines the mapping entry 2221 corresponding to the logical block of the virtual storage medium 23 including the logical address of the point of interest. Next, the transfer storage area calculation unit 223 calculates a difference between the logical address of the noted point and the determined logical address 2222 of the corresponding mapping entry 2221. Then, the transfer storage area calculation unit 223 calculates the size mapped to the continuous area by subtracting the calculated difference from the mapping size 2225 of the corresponding mapping entry 2221.
  • the access request receiving unit 221 performs the following processing (step S108). First, the access request receiving unit 221 calculates, as the untransferred area size, a value obtained by subtracting the focused offset from the size of the access target area specified by the access request. Next, the access request receiving unit 221 compares the size of the untransferred area with the size mapped in the continuous area of the storage medium obtained in step S107. Next, the access request receiving unit 221 determines the minimum value of the two sizes as the size of the transfer data.
  • the access request receiving unit 221 obtains the identifier of the storage medium 24 obtained in step S105 and the physical address of the point of interest in the transfer storage area, the address of the point of interest in the transfer memory area obtained in step S106, and the address obtained in step S108.
  • the combination of the sizes of the transfer data is registered in the column of the transfer pair 2253 of the access request entry 2251 created in the access processing table 225 in step S102 (step S109). That is, the identifier of the storage medium 24, the physical address of the point of interest in the transfer storage area, the address of the point of interest in the transfer memory area, and the size of the transfer data are respectively the storage identifier 2255, the storage medium address 2256, and the memory address 2254 in the transfer pair 2253. , Transfer size 2257.
  • the access request receiving unit 221 adds the size of the transfer data obtained in step S108 to the focused offset (step S110). Then, the access request receiving unit 221 shifts the focus to the offset after the addition.
  • the access request receiving unit 221 compares the value of the focused offset with the size of the access target area specified by the access request. When the value of the focused offset is smaller than the size of the access target area (Yes in Step S111), the access request receiving unit 221 executes the processing from Step S104 again.
  • the access request receiving unit 221 instructs the access process execution management unit 226 to execute the access process table to execute the access process 225 access request entry 2251 (step S112).
  • the access processing execution management unit 226 refers to the access processing table 225 and executes processing for the access request in accordance with the access request entry 2251 specified in step S112 (step S113).
  • the access request receiving unit 221 When the access request receiving unit 221 completes the process for the access request according to the access request entry 2251 specified by the access process execution management unit 226, the access request receiving unit 221 deletes the specified access request entry 2251 registered in the access processing table 225. Further, the access request receiving unit 221 notifies the application 12 running on the host 1 that has issued the access request related to the access request entry 2251 of the completion of the access request, and ends the operation (step S114).
  • step S101 to S114 By performing the processing from step S101 to S114, the operation of processing the access request from the application 12 to the virtual storage medium 23 in the embodiment of the present invention is completed.
  • the processing order from steps S101 to S114 does not necessarily need to be the order shown in FIGS. 7A and 7B.
  • the processes of steps S104 to S105, step S106, and step S107 can be performed at the same time, or can be performed in a different order.
  • the address indicating the area in the memory space of the host 1 received from the application 12 in step S101 may be received before the access request.
  • FIG. 1, FIG. 2, FIG. 3, FIG. 6, FIG. 8A, and FIG. 8B in the embodiment of the present invention, an access request to the virtual storage medium 23 from the application 12 shown in FIG.
  • the operation of executing the processing for the access request by the access processing execution management unit 226 in step S113 in the operation of processing the step S113 will be described.
  • the access process execution management unit 226 selects one arbitrary transfer pair 2253 with reference to the access request entry 2251 corresponding to the access request to be processed in the access process table 225 (step S201). Then, the access processing execution management unit 226 pays attention to the selected transfer pair 2253.
  • the access process execution management unit 226 secures a target buffer 200 having a size equal to or larger than the transfer size 2257 of the focused transfer pair 2253 on the target memory 20 for the focused transfer pair 2253 (step S202). .
  • the access process execution management unit 226 instructs the data transfer control unit 227 to execute the data transfer process of the focused transfer pair 2253 (step S203).
  • step S205 the data transfer control unit 227 refers to the access processing table 225 to obtain the storage identifier 2255, the storage medium address 2256, and the transfer size 2257 of the focused transfer pair 2253.
  • the data transfer control unit 227 requests a read from the storage medium 24 indicated by the storage identifier 2255 of the transfer pair of interest 2253.
  • the storage medium address 2256 and the transfer size 2257 of the focused transfer pair 2253 are specified to specify the transfer storage area to be read-accessed, and in step S202, the storage destination of the read data is specified.
  • the head address of the secured target buffer 200 is specified.
  • the storage medium 24 instructed for read access in step S205 reads data from the transfer storage area having the specified storage medium address 2256 as the head and the specified transfer size 2257, and reads the specified target buffer 200 , And notifies completion to the data transfer control unit 227 (step S206).
  • the data transfer control unit 227 instructs the target communication unit 21 to transfer data from the target buffer 200 to the transfer memory area of the host memory 10 (Step S207). .
  • the data transfer control unit 227 specifies the start address of the target buffer 200 and the transfer size 2257 of the transfer pair of interest 2253 as the transfer source to the target communication unit 21.
  • the data transfer control unit 227 specifies the memory address 2254 of the focused transfer pair 2253 as the transfer destination to the target communication unit 21.
  • the target communication unit 21 performs the following data transfer according to the transfer instruction (step S208).
  • the target communication unit 21 reads the read data stored in the target buffer 200 specified as the transfer source, transfers the read data to the host communication unit 11 connected via the network 3, and transfers the read data to the host specified as the transfer destination. Instruct storage in the area specified by the memory address 2254 of the memory 10.
  • the host communication unit 11 receives the instruction from the target communication unit 21 and stores the read data in the transfer memory area of the host memory 10 specified by the memory address 2254.
  • the target communication unit 21 notifies the data transfer control unit 227 of the completion of the data transfer. Then, the process proceeds to step S213.
  • the data transfer control unit 227 performs the following processing (step S209).
  • the data transfer control unit 227 acquires the memory address 2254 and the transfer size 2257 of the transfer pair of interest 2253 with reference to the access processing table 225.
  • the data transfer control unit 227 instructs the target communication unit 21 to transfer data from the host memory 10 to the target buffer 200.
  • the data transfer control unit 227 specifies the memory address 2254 of the transfer pair of interest 2253 and the transfer size 2257 of the transfer pair of interest 2253 as the transfer source to the target communication unit 21.
  • the data transfer control unit 227 specifies the start address of the target buffer 200 as the transfer destination to the target communication unit 21.
  • the target communication unit 21 performs the following transfer according to the transfer instruction (step S210). First, the target communication unit 21 reads the write data from the transfer memory area specified by the memory address 2254 and the transfer size 2257 of the host memory 10 through the host communication unit 11 and stores the write data in the target buffer 200 via the network 3. Next, the target communication unit 21 notifies the data transfer control unit 227 of the completion of the storage of the write data in the target buffer 200.
  • the data transfer control unit 227 After confirming the completion of the storage of the write data in the target buffer 200, the data transfer control unit 227 issues a write request from the target buffer 200 to the storage medium 24 to the storage medium 24 indicated by the storage identifier 2255 of the transfer pair of interest 2253. Perform (step S211). In this write request, the data transfer control unit 227 specifies the head address of the target buffer 200 and the transfer size 2257 of the transfer pair of interest 2253 as the write source for the storage medium 24. In the write request, the data transfer control unit 227 specifies the storage medium address 2256 of the focused transfer pair 2253 as the write destination.
  • the storage medium 24 requested to write in step S211 performs the specified write access, and stores the write data of the specified target buffer 200 in the transfer storage area starting from the specified storage medium address 2256. Then, the completion is notified to the data transfer control unit 227 (step S212). Thereafter, the process proceeds to step S213.
  • step S213 the data transfer control unit 227 notifies the access process execution management unit 226 that the transfer process for the focused transfer pair 2253 has been completed.
  • the access process execution management unit 226 releases the target buffer 200 reserved for the attention transfer pair 2253 whose transfer process has been completed (step S214). Further, the access processing execution management unit 226 deletes the information on the focused transfer pair 2253 for which the execution of the transfer processing has been completed from the access request entry 2251 corresponding to the access request to be processed in the access processing table 225 (step S215). .
  • the access process execution management unit 226 checks the number of transfer pairs 2253 included in the access request entry 2251 corresponding to the access request to be processed (step S216). If the number of transfer pairs 2253 confirmed in step S216 is one or more (Yes in step S217), the access processing execution management unit 226 executes the processing from step S201 again. If the number of transfer pairs 2253 confirmed in step S216 is 0 (No in step S217), the access process execution management unit 226 notifies the access request reception unit 221 of completion of the access request. Then, the operation ends (step S218).
  • step S201 to S218 By performing the processing from step S201 to S218 described above, the operation of executing the processing for the access request by the access processing execution management unit 226 in step S113 in the embodiment of the present invention is completed.
  • the processing order from steps S201 to S218 does not necessarily need to be the order shown in FIGS. 8A and 8B.
  • the processes of step S214 and step S215 can be performed at the same time, or can be performed in a different order. Further, the processing from step S201 to step S215 may be executed in parallel for a plurality of transfer pairs 2253.
  • FIG. 9 is a block diagram of the storage device 6 according to the second embodiment of the present invention.
  • the storage device 6 includes a controller 61, a memory 62, a virtual storage medium 63, a plurality of storage media 64, and a data transfer unit 65.
  • the storage device 6 is communicably connected to a host computer 8 via a network 7.
  • the virtual storage medium 63 is a virtual storage medium composed of a plurality of areas of the storage medium 64.
  • the data transfer unit 65 is configured to transfer data between the storage device 6 and the host memory 81 of the host computer 8 via the network 7.
  • the memory 62 is used as a buffer 621 for temporarily storing data read from the virtual storage medium 63 or data to be written to the virtual storage medium 63.
  • the controller 61 provides access to the virtual storage medium 63.
  • the controller 61 receives an access request to the virtual storage medium 63 from the host computer 8 via the network 7.
  • the controller 61 controls the virtual storage medium 63, the storage medium 64, the memory 62, and the data transfer unit 65 to perform processing according to the received access request.
  • the controller 61 divides the access target area on the virtual storage medium 63 accessed by the access request into one or more partial areas.
  • the controller 61 secures a buffer 621 for each partial area in the memory 62.
  • the controller 61 controls, for each partial area of the virtual storage medium 63, data transfer between the area of the storage medium 64 corresponding to the partial area and the buffer 621 corresponding to the partial area.
  • the controller 61 controls the data transfer between the buffer 621 corresponding to the partial area and the area corresponding to the partial area in the host memory 81 by the data transfer unit 65 for each partial area of the virtual storage medium 63.
  • the controller 61 and the data transfer unit 65 include, for example, an information processing device 930 having an arithmetic processing unit 910 such as one or more microprocessors, a storage unit 920 such as a memory and a hard disk, and a program 940, as shown in FIG. It can be realized by.
  • the program 940 is read into a memory from an external computer-readable recording medium when the information processing device 930 is started up, and controls the operation of the arithmetic processing unit 910. And a data transfer unit 65.
  • the storage device 6 configured as described above operates as follows.
  • the controller 61 of the storage device 6 When the controller 61 of the storage device 6 receives an access request for the virtual storage medium 63 from the host computer 8 via the network 7, the controller 61 divides the access target area on the virtual storage medium 63 into partial areas. Preferably, the controller 61 divides the access target area on the virtual storage medium 63 into a partial area composed of at most one area of the storage medium 64. Preferably, the controller 61 divides the access target area on the virtual storage medium 63 into partial areas so that the number of partial areas is minimized.
  • the controller 61 secures a buffer 621 for each partial area in the memory 62.
  • the controller 61 performs data transfer between the area of the storage medium 64 corresponding to the partial area and the buffer 621 corresponding to the partial area. Further, the controller 61 transfers data between the buffer 621 corresponding to the partial area and the area corresponding to the partial area in the host memory 81 by the data transfer unit 65.
  • the controller 61 performs, for each partial area, data transfer from the area of the storage medium 64 corresponding to the partial area to the buffer 621 corresponding to the partial area. Is completed, the data transfer from the buffer 621 to the area corresponding to the partial area in the host memory 81 is started. Further, for example, when the type of the access request is a write request, the controller 61 performs data transfer for each partial area from the area corresponding to the partial area in the host memory 81 to the buffer 621 corresponding to the partial area. After the data transfer is completed, the data transfer from the buffer 621 to the area of the storage medium 64 corresponding to the partial area is started.
  • the access performance from the host computer 8 to the virtual storage medium 63 is improved.
  • the reason is that the storage device 6 divides the access target area on the virtual storage medium 63 accessed by the access request into partial areas, secures a buffer 621 for each partial area, and To transfer data between the area of the storage medium 64 and the buffer 621 corresponding to the partial area, and between the buffer 621 corresponding to the partial area and the area corresponding to the partial area in the host memory 81.
  • a virtual storage medium configured from a storage medium area connected to a computer can be used for a service or the like provided to another computer via a network.
  • a controller that provides access to a virtual storage medium configured from a plurality of storage medium areas and receives an access request to the virtual storage medium from a host via a network; Data transfer means between the node connected to the controller and the memory of the host, The controller divides an access target area on the virtual storage medium accessed by the access request into partial areas, reserves a buffer for each of the partial areas, and, for each of the partial areas, Data transfer between an area of a storage medium and the buffer corresponding to the partial area; and a transfer of the buffer corresponding to the partial area by the data transfer unit and an area corresponding to the partial area in the memory of the host.
  • a storage device configured to control data transfer between the storage device.
  • Appendix 2 The storage device according to claim 1, wherein the controller divides the access target area into the partial areas each including at most one area of the storage medium in the division.
  • Appendix 3 3. The storage apparatus according to claim 2, wherein the controller divides the partial area so as to minimize the number of the partial areas.
  • Appendix 4 The controller is From the host, the type of the access request, first address information indicating the access target area, and second address information indicating a transfer memory area on the memory for transmitting and receiving data to and from the access target area 3.
  • the controller is The access target area is divided into the partial areas each including at most one area of the storage medium, the size of each of the partial areas, the identifier of the storage medium corresponding to each of the partial areas, and the storage area. 5.
  • the controller is 6.
  • Storage device [Appendix 7]
  • the controller is 7.
  • the storage device further comprising an access processing execution management unit that secures the buffer in the node for each of the partial areas.
  • the controller is 8.
  • the storage apparatus according to claim 7, further comprising a data transfer control unit that controls data transfer between the transfer storage area corresponding to the partial area and the buffer corresponding to the partial area.
  • [Appendix 9] 9.
  • the storage device 8, wherein the data transfer control means controls data transfer by the data transfer means between the buffer corresponding to the partial area and the partial transfer memory area corresponding to the partial area.
  • the controller is The storage device according to claim 9, further comprising a mapping table that stores information that associates the area of the virtual storage medium with the area of the plurality of storage media.
  • the controller is For each of the partial areas, the fourth address information indicating the partial transfer memory area, the identifier of the storage medium, the third address information indicating the transfer storage area, and the size corresponding to the partial area 11.
  • the storage device according to appendix 10 further comprising an access processing table for storing information of the transfer pair including the information.
  • the controller when the type of the access request is a read request, for each of the partial areas, performs data transfer from the area of the storage medium corresponding to the partial area to the buffer corresponding to the partial area, After the data transfer from the area of the storage medium corresponding to the partial area to the buffer corresponding to the partial area is completed, from the buffer corresponding to the partial area to the area corresponding to the partial area in the memory of the host 12.
  • the storage device according to any one of supplementary notes 1 to 11, configured to start the data transfer of (1).
  • the controller When the type of the access request is a write request, the controller performs, for each of the partial areas, data transfer from the area corresponding to the partial area in the memory of the host to the buffer corresponding to the partial area. After completion of the data transfer from the area corresponding to the partial area in the memory of the host to the buffer corresponding to the partial area, the data of the storage medium corresponding to the partial area is read from the buffer corresponding to the partial area. 13.
  • the storage device according to any one of Supplementary Notes 1 to 12, configured to start data transfer to the area.
  • the data transfer means is configured to perform RDMA (Remote Direct Memory Access).
  • Computer A controller that provides access to a virtual storage medium configured from a plurality of storage medium areas and receives an access request to the virtual storage medium from a host via a network; Causing the controller to function as data transfer means between the connected node and the memory of the host, The controller divides an access target area on the virtual storage medium accessed by the access request into partial areas, reserves a buffer for each of the partial areas, and, for each of the partial areas, Data transfer between an area of a storage medium and the buffer corresponding to the partial area; and a transfer of the buffer corresponding to the partial area by the data transfer unit and an area corresponding to the partial area in the memory of the host.
  • a computer-readable recording medium recording a program configured to control data transfer between the computer and the computer.

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

According to the present invention, a controller provides access to a virtual storage medium comprising a plurality of storage medium areas. A data transmission means performs data transmission between a node to which the controller is connected and a memory of a host. When receiving an access request for the virtual storage medium via a network from a host, the controller divides, into partial areas, an area to be accessed on the virtual storage medium, and secures a buffer for each partial area. The controller controls, for each partial area, data transmission between an area of the storage medium which corresponds to the partial area, and a buffer corresponding to the partial area, and data transmission by the data transmission means between the buffer corresponding to the partial area and an area corresponding to the partial area in the memory of the host.

Description

ストレージ装置Storage device
 本発明は、ストレージ装置、データ転送方法、および記録媒体に関する。 The present invention relates to a storage device, a data transfer method, and a recording medium.
 計算機システムにおけるストレージの共有、拡張を目的として、ストレージ装置に接続された記憶媒体の領域から構成された仮想的な記憶媒体(以下、仮想記憶媒体と記す)を、ネットワーク経由でホスト計算機(以下、ホストと記す)に提供することがある(例えば特許文献1参照)。 For the purpose of sharing and expanding storage in a computer system, a virtual storage medium (hereinafter, referred to as a virtual storage medium) configured from an area of a storage medium connected to a storage device is transferred to a host computer (hereinafter, referred to as a virtual storage medium) via a network. (Referred to as Patent Document 1).
 そのようなストレージ装置は、仮想記憶媒体のアクセス対象領域を指定したリード要求をホストから受信すると、ストレージ装置にバッファを確保し、アクセス対象領域からデータをリードして上記バッファに格納する。このとき実際には、ストレージ装置は、アクセス対象領域に割り当てられた記憶媒体の領域からデータをリードしてバッファに格納する。そして、ストレージ装置は、全てのリードデータをバッファに格納し終えると、バッファからリードデータを読み出し、ネットワーク経由でホストのメモリへ転送する動作を開始する。 When such a storage device receives a read request designating an access target area of a virtual storage medium from a host, it secures a buffer in the storage device, reads data from the access target area, and stores the data in the buffer. At this time, in practice, the storage device reads data from the storage medium area allocated to the access target area and stores the data in the buffer. When all the read data has been stored in the buffer, the storage device starts the operation of reading the read data from the buffer and transferring the read data to the host memory via the network.
 また、ストレージ装置は、仮想記憶媒体のアクセス対象領域を指定したライト要求をホストから受信すると、ストレージ装置にバッファを確保し、ホストのメモリに格納されたライトデータをネットワーク経由で上記バッファに転送する。そして、ストレージ装置は、全てのライトデータをバッファに格納し終えると、バッファからライトデータを読み出し、仮想記憶媒体のアクセス対象領域に書き込む。このとき実際には、ストレージ装置は、アクセス対象領域に割り当てられた記憶媒体の領域にライトデータを書き込む。 Further, when the storage device receives a write request specifying the access target area of the virtual storage medium from the host, the storage device secures a buffer in the storage device and transfers the write data stored in the memory of the host to the buffer via the network. . Then, when all the write data has been stored in the buffer, the storage device reads the write data from the buffer and writes the write data to the access target area of the virtual storage medium. At this time, the storage device actually writes the write data to the area of the storage medium allocated to the access target area.
再特WO2016/002325Re-spec WO2016 / 002325
 しかしながら、上述したストレージ装置では、リード要求の場合、仮想記憶媒体のアクセス対象領域に割り当てられた記憶媒体の領域の全てのリードデータがバッファに格納された後でなければ、バッファからホストのメモリへのデータ転送を開始できないため、ホストから仮想記憶媒体に対するリード性能が低下する。 However, in the above-described storage device, in the case of a read request, the buffer is transferred from the buffer to the host memory unless all read data in the storage medium area allocated to the access target area of the virtual storage medium is stored in the buffer. Since the data transfer cannot be started, the read performance from the host to the virtual storage medium is reduced.
 また、上述したストレージ装置では、ライト要求の場合、ホストのメモリ上の全てのライトデータがバッファに格納された後でなければ、仮想記憶媒体のアクセス対象領域に割り当てられた記憶媒体の領域へバッファ上のライトデータを書き込めないため、ホストから仮想記憶媒体に対するライト性能が低下する。 Further, in the above-described storage apparatus, in the case of a write request, unless all write data in the memory of the host is stored in the buffer, the buffer is transferred to the storage medium area allocated to the access target area of the virtual storage medium. Since the above write data cannot be written, the write performance from the host to the virtual storage medium decreases.
 本発明の目的は、上述した課題、すなわち、ホストから仮想記憶媒体に対するアクセス性能が低下する、という課題を解決するストレージ装置を提供することにある。 An object of the present invention is to provide a storage device that solves the above-mentioned problem, that is, the problem that the access performance from the host to the virtual storage medium is reduced.
 本発明の一形態に係るストレージ装置は、
 複数の記憶媒体の領域から構成された仮想記憶媒体に対するアクセスを提供し、ホストからネットワークを経由して前記仮想記憶媒体に対するアクセス要求を受信するコントローラと、
 前記コントローラが接続されたノードと前記ホストのメモリとの間のデータ転送手段とを備え、
 前記コントローラは、前記アクセス要求によってアクセスされる前記仮想記憶媒体上のアクセス対象領域を部分領域に分割し、前記部分領域毎のバッファを確保し、前記部分領域毎に、前記部分領域に対応する前記記憶媒体の領域と前記バッファとの間のデータ転送と、前記データ転送手段による前記部分領域に対応する前記バッファと前記ホストの前記メモリにおける前記部分領域に対応する領域との間のデータ転送とを制御するように構成されている。
A storage device according to an embodiment of the present invention includes:
A controller that provides access to a virtual storage medium configured from a plurality of storage medium areas and receives an access request to the virtual storage medium from a host via a network;
Data transfer means between the node connected to the controller and the memory of the host,
The controller divides an access target area on the virtual storage medium accessed by the access request into partial areas, reserves a buffer for each of the partial areas, and, for each of the partial areas, Data transfer between an area of a storage medium and the buffer, and data transfer between the buffer corresponding to the partial area and the area corresponding to the partial area in the memory of the host by the data transfer means. It is configured to control.
 また、本発明の他の形態に係るデータ転送方法は、
 複数の記憶媒体の領域から構成された仮想記憶媒体に対するアクセスを提供し、ホストからネットワークを経由して前記仮想記憶媒体に対するアクセス要求を受信するコントローラが接続されたノードと前記ホストのメモリとの間のデータ転送方法であって、
 前記アクセス要求によってアクセスされる前記仮想記憶媒体上のアクセス対象領域を部分領域に分割し、
 前記部分領域毎のバッファを確保し、
 前記部分領域毎に、前記部分領域に対応する前記記憶媒体の領域と前記部分領域に対応する前記バッファとの間のデータ転送と、前記データ転送手段による前記部分領域に対応する前記バッファと前記ホストの前記メモリにおける前記部分領域に対応する領域との間のデータ転送とを行う。
Further, a data transfer method according to another aspect of the present invention includes:
Between a node connected to a controller that provides access to a virtual storage medium composed of a plurality of storage medium areas and receives an access request to the virtual storage medium from a host via a network, and the memory of the host; Data transfer method,
Dividing an access target area on the virtual storage medium accessed by the access request into partial areas,
Securing a buffer for each partial area,
For each of the partial areas, data transfer between the area of the storage medium corresponding to the partial area and the buffer corresponding to the partial area; and the buffer and the host corresponding to the partial area by the data transfer unit. And data transfer to and from an area corresponding to the partial area in the memory.
 また、本発明の他の形態に係るコンピュータ読み取り可能な記録媒体は、
 コンピュータを、
 複数の記憶媒体の領域から構成された仮想記憶媒体に対するアクセスを提供し、ホストからネットワークを経由して前記仮想記憶媒体に対するアクセス要求を受信するコントローラと、
 前記コントローラが接続されたノードと前記ホストのメモリとの間のデータ転送手段として機能させ、
 前記コントローラは、前記アクセス要求によってアクセスされる前記仮想記憶媒体上のアクセス対象領域を部分領域に分割し、前記部分領域毎のバッファを確保し、前記部分領域毎に、前記部分領域に対応する前記記憶媒体の領域と前記部分領域に対応する前記バッファとの間のデータ転送と、前記データ転送手段による前記部分領域に対応する前記バッファと前記ホストの前記メモリにおける前記部分領域に対応する領域との間のデータ転送とを制御するように構成されている
プログラムを記録する。
Further, a computer-readable recording medium according to another embodiment of the present invention,
Computer
A controller that provides access to a virtual storage medium configured from a plurality of storage medium areas and receives an access request to the virtual storage medium from a host via a network;
Causing the controller to function as data transfer means between the connected node and the memory of the host,
The controller divides an access target area on the virtual storage medium accessed by the access request into partial areas, reserves a buffer for each of the partial areas, and, for each of the partial areas, Data transfer between an area of a storage medium and the buffer corresponding to the partial area; and a transfer of the buffer corresponding to the partial area by the data transfer unit and an area corresponding to the partial area in the memory of the host. Record a program that is configured to control data transfer between.
 本発明は上述した構成を有することにより、ホストから仮想記憶媒体に対するアクセス性能を高めることができる。 According to the present invention having the above-described configuration, it is possible to enhance the access performance of the host to the virtual storage medium.
本発明の第1の実施形態における、全体のシステム構成を示す図である。FIG. 1 is a diagram illustrating an entire system configuration according to a first embodiment of the present invention. 本発明の第1の実施形態における、アプリケーションからのアクセス要求に対する処理を実行するコントローラの構成を示す図である。FIG. 3 is a diagram illustrating a configuration of a controller that executes a process in response to an access request from an application according to the first embodiment of the present invention. 本発明の第1の実施形態における、仮想記憶媒体の各領域にマッピングされる記憶媒体の識別子、アドレスの対応関係を管理するマッピングテーブルの形式を例示する図である。FIG. 3 is a diagram illustrating an example of a format of a mapping table for managing a correspondence relationship between an identifier and an address of a storage medium mapped to each area of a virtual storage medium according to the first embodiment of this invention. 本発明の第1の実施形態における、転送ストレージ領域算出部がアクセス要求に対応する転送ストレージ領域を含む記憶媒体、及び記憶媒体上のアドレスを計算する手順を例示する図である。FIG. 5 is a diagram illustrating a procedure in which a transfer storage area calculation unit calculates a storage medium including a transfer storage area corresponding to an access request and an address on the storage medium in the first embodiment of the present invention. 本発明の第1の実施形態における、仮想記憶媒体上のアクセス対象の領域を表すアドレスとアクセスサイズから算出される、転送ストレージ領域と転送メモリ領域の先頭アドレスの対応関係を例示する図である。FIG. 4 is a diagram illustrating an example of a correspondence relationship between a transfer storage area and a start address of a transfer memory area calculated from an address representing an area to be accessed on a virtual storage medium and an access size according to the first embodiment of this invention. 本発明の第1の実施形態における、アプリケーションからのアクセス要求に対して必要となる、データ転送処理の情報を管理するアクセス処理テーブルの形式を例示する図である。FIG. 5 is a diagram illustrating an example of a format of an access processing table for managing information on data transfer processing required for an access request from an application according to the first embodiment of this invention. 本発明の第1の実施形態における、アプリケーションから仮想記憶媒体に対するアクセス要求を、コントローラにおいて処理する手順を示したフローチャートである。4 is a flowchart illustrating a procedure in which a controller processes an access request to a virtual storage medium from an application according to the first embodiment of this invention. 本発明の第1の実施形態における、アプリケーションから仮想記憶媒体に対するアクセス要求を、コントローラにおいて処理する手順を示したフローチャートである。4 is a flowchart illustrating a procedure in which a controller processes an access request to a virtual storage medium from an application according to the first embodiment of this invention. 本発明の第1の実施形態における、コントローラに含まれるアクセス処理実行管理部がアクセス要求に対するデータ転送処理を実行する手順を示したフローチャートである。4 is a flowchart illustrating a procedure in which an access processing execution management unit included in a controller executes a data transfer process for an access request in the first embodiment of the present invention. 本発明の第1の実施形態における、コントローラに含まれるアクセス処理実行管理部がアクセス要求に対するデータ転送処理を実行する手順を示したフローチャートである。4 is a flowchart illustrating a procedure in which an access processing execution management unit included in a controller executes a data transfer process for an access request in the first embodiment of the present invention. 本発明の第2の実施形態に係るストレージ装置のブロック図である。FIG. 9 is a block diagram of a storage device according to a second embodiment of the present invention. 本発明の第2の実施形態に係るストレージ装置におけるコントローラおよびデータ転送部を実現するハードウェア構成の一例を示す図である。FIG. 11 is a diagram illustrating an example of a hardware configuration that realizes a controller and a data transfer unit in a storage device according to a second embodiment of the present invention.
 次に本発明の実施の形態について図面を参照して詳細に説明する。 Next, embodiments of the present invention will be described in detail with reference to the drawings.
[第1の実施形態]
 本実施形態は、複数の記憶媒体の記憶領域を組み合わせた仮想的な記憶媒体に対して、ネットワークを経由してアクセスを行う際に発生するボトルネックを解消して、アクセス性能の向上を図る技術に関する。以下、本実施形態の背景技術、本実施形態が解決しようとする課題、課題を解決するための手段の概要、本実施形態の構成、本実施形態の動作、本実施形態の効果について、順に説明する。
[First Embodiment]
The present embodiment eliminates a bottleneck that occurs when accessing a virtual storage medium that combines storage areas of a plurality of storage media via a network, and improves access performance. About. Hereinafter, the background art of the present embodiment, the problem to be solved by the present embodiment, the outline of the means for solving the problem, the configuration of the present embodiment, the operation of the present embodiment, and the effect of the present embodiment will be sequentially described. I do.
[本実施形態の背景技術]
 仮想記憶媒体に対するアクセスは、例えばiSCSI(Internet Small Computer Interface)やNVM Express over Fabrics(Non-Volatile Memory Express over Fabrics;登録商標;以下、NVMe-oFと記す)のようなプロトコルを通して行われる。これらは、一般的な記憶媒体の規格であるSCSI(Small Computer Interface)やNVM Express(Non-Volatile Memory Express;登録商標;以下、NVMeと記す)をネットワーク経由のアクセスに拡張したプロトコルであり、仮想記憶媒体に対して計算機に接続された各規格の記憶媒体と同様のアクセス手段を提供する。
[Background Art of the Embodiment]
The access to the virtual storage medium is performed by, for example, iSCSI (Internet Small Computer Interface) or NVM Express over Fabrics (Non-Volatile Memory Express over Fabrics; registered trademark; hereinafter referred to as NVMe-F). These are protocols that extend the standard of a general storage medium such as SCSI (Small Computer Interface) and NVM Express (Non-Volatile Memory Express; registered trademark; hereinafter referred to as NVMe), and are virtual protocols. The same access means as the storage medium of each standard connected to the computer is provided for the storage medium.
 また、これらの仮想記憶媒体に対するアクセスでは、ネットワークを介したデータ転送処理におけるオーバーヘッドの削減手段としてRDMA(Remote Direct Memory Access)が用いられる。RDMAはネットワークで接続された計算機間で、ネットワークカード(RDMA Network Interface Card;以下、RNICと記す)が指定されたメモリアドレスに対するデータ転送を自動的に行うことで、転送処理のオーバーヘッドを削減する。前述のiSCSIのRDMA拡張であるiSER(iSCSI Extensions for RDMA)やNVMe-oFでは、仮想記憶媒体を提供する計算機と、仮想記憶媒体にアクセスする計算機のデータ転送にRDMAを用いることで、オーバーヘッドを削減してアクセス性能の向上を図る。 For access to these virtual storage media, RDMA (Remote Direct Memory Access) is used as a means for reducing overhead in data transfer processing via a network. RDMA automatically reduces data transfer overhead by automatically transferring data to a specified memory address by a network card (RDMA Network Interface Card; hereinafter, referred to as RNIC) between computers connected via a network. In the above-mentioned iSCSI RDMA extension, iSER (iSCSI Extensions for RDMA) and NVMe-oF, overhead is reduced by using RDMA for data transfer between a computer that provides a virtual storage medium and a computer that accesses the virtual storage medium. To improve the access performance.
[本実施形態が解決しようとする課題]
 仮想記憶媒体のデータ転送に対してRDMAを用いる場合、RNICが自動的にデータ転送を行えるように、RDMAの開始前に転送対象となるデータの格納を完了する必要がある。そのため、仮想記憶媒体のリードアクセスのデータ転送においてRDMAを用いる場合、記憶媒体からリードされたデータが全て転送対象のメモリ領域であるバッファに格納されるまで待機してRDMA転送を開始する。
[Problems to be solved by this embodiment]
When using RDMA for data transfer on a virtual storage medium, it is necessary to complete storage of data to be transferred before starting RDMA so that the RNIC can automatically perform data transfer. Therefore, when RDMA is used in data transfer for read access of the virtual storage medium, the RDMA transfer is started after waiting for all data read from the storage medium to be stored in a buffer which is a memory area to be transferred.
 一方、仮想記憶媒体は例えばRAID(Redundant Arrays of Inexpensive Disks)のように、複数の記憶媒体の領域にマッピングすることが可能である。複数の記憶媒体の領域にマッピングされる仮想記憶媒体にホストからアクセスを行う場合、アクセス対象の領域が複数の記憶媒体に跨ってマッピングされる場合が発生する。この場合は、マッピング先となる各記憶媒体に対してアクセスが行われる。つまり、前述のデータ転送にRDMAを用いるリードアクセスであれば、マッピング先となる全記憶媒体からのリード結果のバッファへの格納完了まで待機してRDMA転送を開始する必要がある。 On the other hand, the virtual storage medium can be mapped to a plurality of storage medium areas, for example, RAID (Redundant Arrays of Inexpensive Disks). When a host accesses a virtual storage medium mapped to a plurality of storage medium areas, a case occurs in which an access target area is mapped across a plurality of storage media. In this case, access is made to each storage medium that is the mapping destination. In other words, in the case of the read access using RDMA for the data transfer described above, it is necessary to start the RDMA transfer after waiting for the completion of storing the read result from all the storage media to be mapped into the buffer.
 つまり、仮想記憶媒体に対するホストからのリードアクセス先が複数の記憶媒体にマッピングされる場合、アクセスが完了した記憶媒体のリードデータを先に転送できず、ホストから仮想記憶媒体に対するリード性能が低下する。特に、例えばNAND Flashを記憶素子としたSSD(Solid State Drive)のように、内部状態に応じてアクセス時間が大きく変化する記憶媒体を用いる場合、リードの完了を待つ記憶媒体数が増加するほど、RDMA転送の開始までの待機時間が増加する。 In other words, when the destination of the read access from the host to the virtual storage medium is mapped to a plurality of storage media, the read data of the accessed storage medium cannot be transferred first, and the read performance from the host to the virtual storage medium decreases. . In particular, for example, when using a storage medium whose access time greatly changes depending on the internal state, such as an SSD (Solid State Drive) using a NAND Flash as a storage element, as the number of storage media waiting for completion of the read increases, The waiting time until the start of the RDMA transfer increases.
 また、仮想記憶媒体に対するライトアクセスにRDMAを用いる場合も、全てのライトデータのバッファへの転送が完了するまで記憶媒体に対するライトを開始できず、仮想記憶媒体に対するライト性能が低下する。RDMAによるデータ転送はRNICが制御するため、転送途中のライトデータに関する状態の確認は困難である。つまり、ライト先の領域が複数の記憶媒体にマッピングされる場合、ホストからバッファへのデータ転送が完了している記憶媒体から先にライトアクセスを開始できず、性能低下の原因となる。 Also, when RDMA is used for write access to a virtual storage medium, writing to the storage medium cannot be started until transfer of all write data to the buffer is completed, and write performance to the virtual storage medium is degraded. Since the data transfer by the RDMA is controlled by the RNIC, it is difficult to confirm the state of the write data during the transfer. That is, when the write destination area is mapped to a plurality of storage media, write access cannot be started first from a storage medium for which data transfer from the host to the buffer has been completed, which causes performance degradation.
 よって、仮想記憶媒体に対するアクセス先が複数の記憶媒体にマッピングされる場合の、RDMA転送の前後における待ち合わせ処理に起因するアクセス性能の低下が、本実施形態において解決する課題である。 Therefore, when the access destination for the virtual storage medium is mapped to a plurality of storage media, the degradation of the access performance due to the waiting process before and after the RDMA transfer is a problem to be solved in the present embodiment.
[課題を解決するための手段の概要]
 仮想記憶媒体のアクセス性能低下の原因となる、RDMA転送の前後における待ち合わせ処理の回避、緩和には、リードデータ、ライトデータの転送処理の分割が必要である。データ転送処理の分割により、リードアクセスであれば記憶媒体からのリードが完了したデータから先に転送を開始できる。また、ライトアクセスであればホストからの転送が完了したデータから個別に記憶媒体に対するライトを開始できる。一方で、データ転送処理の分割は、仮想記憶媒体のアクセス処理におけるオーバーヘッドの増加につながる。よって、データ転送処理の分割は、待ち合わせ処理の回避に必要な最低限の数量とすることが望ましい。
[Summary of means for solving the problem]
To avoid or alleviate the waiting process before and after the RDMA transfer, which causes a reduction in the access performance of the virtual storage medium, it is necessary to divide the read data and write data transfer processes. By dividing the data transfer process, in the case of read access, the transfer can be started first from the data that has been read from the storage medium. In the case of write access, writing to the storage medium can be started individually from data that has been transferred from the host. On the other hand, the division of the data transfer process leads to an increase in overhead in the access process of the virtual storage medium. Therefore, it is desirable to divide the data transfer process to the minimum number necessary to avoid the waiting process.
 本実施形態では、ネットワークを経由した仮想記憶媒体のアクセス先が複数の記憶媒体にマッピングされる場合に発生するデータ転送の前後における待ち合わせ処理を削減し、仮想記憶媒体のアクセス性能を向上させる手段を提供する。そのために、仮想記憶媒体に対するアクセス要求の処理について、アクセス要求先に対応する記憶媒体毎にアクセスと、そのアクセスに関連したデータのRDMA転送を独立して行う。アクセス要求に関する処理を記憶媒体毎に分離することで、記憶媒体のアクセス、RDMAによるデータ転送の完了において他の記憶媒体に関連した処理の待ち合わせを行うことなく、各記憶媒体に関連した処理を並列化することでアクセス処理の完了時間を短縮する。 In the present embodiment, a means for reducing queuing processing before and after data transfer that occurs when an access destination of a virtual storage medium via a network is mapped to a plurality of storage media and improving access performance of the virtual storage medium is provided. provide. Therefore, in the processing of an access request to a virtual storage medium, access is performed for each storage medium corresponding to the access request destination and RDMA transfer of data related to the access is independently performed. By separating the processing related to the access request for each storage medium, processing related to each storage medium can be performed in parallel without waiting for processing related to other storage mediums when accessing the storage medium and completing data transfer by RDMA. By doing so, the completion time of the access processing is reduced.
 まず、仮想記憶媒体にアクセスを行うホストは、仮想記憶媒体に対するアクセスを提供する、ホストとは異なるノードであるターゲットノード上で動作するコントローラに対して、アクセス要求の種類(リード、ライト)と、仮想記憶媒体上のアクセス対象の領域を指し示すLBA(Logical Block Address)等のアドレス情報を送ることでアクセスを要求する。 First, the host that accesses the virtual storage medium provides the controller that operates on the target node, which is a different node from the host, that provides access to the virtual storage medium, with the type of access request (read or write), The access is requested by sending address information such as LBA (Logical Block Address) indicating the area to be accessed on the virtual storage medium.
 コントローラは、ホストからアクセス要求を受信すると、アクセス対象の領域の各部に対応する記憶媒体の識別子、及び記憶媒体内の領域を指し示すアドレスを、転送ストレージ領域として特定する。また、コントローラは、各記憶媒体の転送ストレージ領域について、仮想記憶媒体のアクセス対象の領域における対応箇所を表す、先頭からのオフセットを求める。 When the controller receives the access request from the host, the controller specifies, as the transfer storage area, the identifier of the storage medium corresponding to each part of the area to be accessed and the address indicating the area in the storage medium. Further, the controller obtains an offset from the head of the transfer storage area of each storage medium, which represents a corresponding location in the access target area of the virtual storage medium.
 また、コントローラは、仮想記憶媒体のアクセス対象の領域に対する、ホスト上のリードデータまたはライトデータを格納するメモリ領域を指すアドレス情報を事前に、またはアクセス要求と共に受け取る。そして、コントローラは、上記アドレス情報から、各転送ストレージ領域に対応するホストのメモリアドレス空間上のアドレスを、転送メモリ領域として求める。各転送メモリ領域のアドレスは、仮想記憶媒体のアクセス対象の領域において先頭からのオフセットで表される、メモリ空間上のアドレスとして求められる。 {Circle around (1)} The controller receives, in advance or together with an access request, address information indicating a memory area on the host for storing read data or write data for an area to be accessed on the virtual storage medium. Then, the controller obtains an address in the memory address space of the host corresponding to each transfer storage area as the transfer memory area from the address information. The address of each transfer memory area is obtained as an address in the memory space represented by an offset from the head in the area to be accessed in the virtual storage medium.
 さらに、コントローラは、ターゲットノードのメモリ上に、転送ストレージ領域と転送メモリ領域の各組に対して、転送データを中継するためのバッファである、転送バッファを確保する。つまり、仮想記憶媒体のアクセス対象領域のマップ先である、各記憶媒体に対して転送バッファを確保する。コントローラは、記憶媒体に対するリードデータ、ライトデータを転送バッファに格納し、転送ストレージ領域との間でデータ転送を行う。また、コントローラは、RNICに対して、転送バッファとホストの転送メモリ領域との間で、リードデータ、ライトデータのRDMA転送を指示する。 (4) Further, the controller secures a transfer buffer, which is a buffer for relaying transfer data, for each set of the transfer storage area and the transfer memory area on the memory of the target node. That is, a transfer buffer is reserved for each storage medium that is the mapping destination of the access target area of the virtual storage medium. The controller stores read data and write data for the storage medium in the transfer buffer, and performs data transfer with the transfer storage area. Further, the controller instructs the RNIC to perform RDMA transfer of read data and write data between the transfer buffer and the transfer memory area of the host.
 ホストからのアクセス要求がリードである場合、コントローラは、アクセス対象の領域各部に対応する各記憶媒体にリードアクセスを行い、転送ストレージ領域のデータを転送バッファに格納する。そして、コントローラは、リードアクセスが完了した記憶媒体に対応する転送バッファについて、ホストの転送メモリ領域との間でリードデータのRDMA転送をRNICに指示する。このとき、コントローラは、他の転送バッファに対する転送ストレージからのリードデータの格納について完了、未完了の状態を問わず、リードデータのRDMA転送を開始する。全てのリードデータについて、転送バッファから転送メモリ領域に対するRDMA転送が完了すると、コントローラは、ホストに対してリードアクセス要求の完了を通知する。 When the access request from the host is a read, the controller performs a read access to each storage medium corresponding to each part of the area to be accessed, and stores the data in the transfer storage area in the transfer buffer. Then, the controller instructs the RNIC to perform RDMA transfer of read data between the transfer buffer corresponding to the storage medium for which the read access has been completed and the transfer memory area of the host. At this time, the controller starts the RDMA transfer of the read data irrespective of whether the storage of the read data from the transfer storage in another transfer buffer is completed or not completed. When the RDMA transfer from the transfer buffer to the transfer memory area is completed for all the read data, the controller notifies the host of the completion of the read access request.
 一方、ホストからのアクセス要求がライトである場合、コントローラは、アクセス対象の領域各部に対応するホストの転送メモリ領域と、対応する転送バッファとの間でライトデータのRDMA転送をRNICに指示する。そして、コントローラは、RDMA転送が完了した転送バッファに対応する記憶媒体から順番にライトアクセスを行い、転送ストレージ領域に対してライトデータを格納する。このとき、コントローラは、他の転送バッファにおけるライトデータのRDMA転送について完了、未完了の状態を問わず、記憶媒体のライトアクセスを開始する。全てのライトデータについて、転送バッファから記憶媒体上の転送ストレージ領域に対する格納が完了すると、コントローラは、ホストに対してライトアクセス要求の完了を通知する。 On the other hand, if the access request from the host is a write, the controller instructs the RNIC to perform RDMA transfer of write data between the transfer memory area of the host corresponding to each part of the area to be accessed and the corresponding transfer buffer. Then, the controller performs write access sequentially from the storage medium corresponding to the transfer buffer for which the RDMA transfer has been completed, and stores the write data in the transfer storage area. At this time, the controller starts write access to the storage medium regardless of whether the RDMA transfer of the write data in the other transfer buffer has been completed or not completed. When all the write data has been stored in the transfer storage area on the storage medium from the transfer buffer, the controller notifies the host of the completion of the write access request.
[本実施形態の構成]
 図1は、本発明の第1の実施形態に係るストレージシステムの構成を例示する図である。図1を参照すると、本実施形態に係るコンピュータシステムは、ホスト1、ターゲットノード2、ネットワーク3を含む。ホスト1は、ホストコンピュータとも呼ぶ。ターゲットノード2は、ターゲットコンピュータあるいはストレージ装置とも呼ぶ。
[Configuration of the present embodiment]
FIG. 1 is a diagram illustrating a configuration of a storage system according to the first embodiment of the present invention. Referring to FIG. 1, the computer system according to the present embodiment includes a host 1, a target node 2, and a network 3. The host 1 is also called a host computer. The target node 2 is also called a target computer or a storage device.
 ホスト1は、ホストメモリ10とホスト通信部11とを持つ。ホスト1は、ターゲットノード2に対して仮想記憶媒体23のアクセス要求を行うアプリケーション12が動作する。 The host 1 has a host memory 10 and a host communication unit 11. In the host 1, an application 12 that issues an access request for the virtual storage medium 23 to the target node 2 operates.
 ホストメモリ10は、ホスト1に接続されたメモリである。ホストメモリ10は、アプリケーション12からアクセスされる。ホストメモリ10は、アプリケーション12から仮想記憶媒体23に対するリード要求の結果であるリードデータ、及びライト要求で書き込まれるライトデータを格納する領域を持つ。この領域を、転送メモリ領域と定義する。ホストメモリ10は、ホスト1のメモリとして使用されるDRAM等の記憶デバイスである。或いはホストメモリ10は、ホスト1に直接或いはネットワークを介して接続され、ホスト1のメモリアドレス空間を経由して入出力を行う、例えばGPUやFPGA、或いはその他のデバイスであってもよい。 The host memory 10 is a memory connected to the host 1. The host memory 10 is accessed by the application 12. The host memory 10 has an area for storing read data as a result of a read request from the application 12 to the virtual storage medium 23, and write data to be written by the write request. This area is defined as a transfer memory area. The host memory 10 is a storage device such as a DRAM used as a memory of the host 1. Alternatively, the host memory 10 may be, for example, a GPU, an FPGA, or another device that is connected to the host 1 directly or via a network and performs input / output via the memory address space of the host 1.
 ホスト通信部11は、ネットワーク3を介してホスト1とターゲットノード2との間でデータの送受信を行う。また、ホスト通信部11は、ホストメモリ10、及びターゲットノード2に接続されたターゲットメモリ20との間でRDMA転送を行う。 The host communication unit 11 transmits and receives data between the host 1 and the target node 2 via the network 3. The host communication unit 11 performs RDMA transfer between the host memory 10 and the target memory 20 connected to the target node 2.
 アプリケーション12は、ホスト1上で動作するソフトウェア、またはハードウェアである。アプリケーション12は、ターゲットノード2に対して仮想記憶媒体23のアクセス要求を行う。 The application 12 is software or hardware that operates on the host 1. The application 12 issues an access request for the virtual storage medium 23 to the target node 2.
 ターゲットノード2は、ターゲットメモリ20、ターゲット通信部21、コントローラ22、記憶媒体24を持つ。 The target node 2 has a target memory 20, a target communication unit 21, a controller 22, and a storage medium 24.
 ターゲットメモリ20は、ターゲットノード2に接続されたメモリである。ターゲットメモリ20は、仮想記憶媒体23に対するリードデータ、ライトデータを格納するためのバッファとして使用する。このバッファを、ターゲットバッファと定義する。 (4) The target memory 20 is a memory connected to the target node 2. The target memory 20 is used as a buffer for storing read data and write data for the virtual storage medium 23. This buffer is defined as a target buffer.
 ターゲット通信部21は、ネットワーク3を介してターゲットノード2とホスト1との間でデータの送受信を行う。また、ターゲット通信部21は、ターゲットメモリ20、及びホスト1に接続されたホストメモリ10との間でRDMA転送を行う。 The target communication unit 21 transmits and receives data between the target node 2 and the host 1 via the network 3. The target communication unit 21 performs RDMA transfer between the target memory 20 and the host memory 10 connected to the host 1.
 コントローラ22は、ターゲットノード2上で動作するソフトウェア、またはハードウェアである。コントローラ22は、仮想記憶媒体23のアクセス処理を行う。コントローラ22は、仮想記憶媒体23に対するアプリケーション12からのアクセス要求を受け取る。コントローラ22は、上記アクセス要求を実行するために、アクセス要求先に対応する記憶媒体24の各領域に対するアクセス、及びホストメモリ10とターゲットメモリ20との間のリードデータ、ライトデータの転送を制御する。 The controller 22 is software or hardware that operates on the target node 2. The controller 22 performs access processing of the virtual storage medium 23. The controller 22 receives an access request for the virtual storage medium 23 from the application 12. The controller 22 controls access to each area of the storage medium 24 corresponding to the access request destination and transfer of read data and write data between the host memory 10 and the target memory 20 in order to execute the access request. .
 仮想記憶媒体23は、コントローラ22によって記憶媒体24の領域から構築される仮想的な記憶媒体である。仮想記憶媒体23は、ホスト1のアプリケーション12から、ネットワーク3を介して記憶媒体として認識、アクセスされる。アプリケーション12からアクセスされる仮想記憶媒体23上の領域を、アクセス対象領域と定義する。 The virtual storage medium 23 is a virtual storage medium constructed from the area of the storage medium 24 by the controller 22. The virtual storage medium 23 is recognized and accessed from the application 12 of the host 1 as a storage medium via the network 3. An area on the virtual storage medium 23 accessed from the application 12 is defined as an access target area.
 記憶媒体24は、仮想記憶媒体23の領域がマッピングされる。仮想記憶媒体23のアクセス対象領域がマッピングされる記憶媒体24の領域を、転送ストレージ領域と定義する。記憶媒体24は、ターゲットノード2にバスやネットワークを介して接続された、SSD(Solid State Drive)等のデバイスである。記憶媒体24は、図1に示した単体のデバイスによる構成に限定されず、複数存在してもよい。 (4) In the storage medium 24, an area of the virtual storage medium 23 is mapped. The area of the storage medium 24 to which the access target area of the virtual storage medium 23 is mapped is defined as a transfer storage area. The storage medium 24 is a device such as a solid state drive (SSD) connected to the target node 2 via a bus or a network. The storage medium 24 is not limited to the configuration of a single device shown in FIG.
 ネットワーク3は、ホスト1とターゲットノード2とを相互に接続する。ネットワーク3は、ホスト1とターゲットノード2との間のRDMA転送をサポートする。また、ネットワーク3は、図1に示したようにホスト1とターゲットノード2のみを接続する形態に限定されない。例えば、ネットワーク3にホスト1とターゲットノード2以外の他のノード(コンピュータ)が接続される形態であってもよい。また、ホスト1とターゲットノード2とをスイッチを介して接続する形態であってもよい。 The network 3 connects the host 1 and the target node 2 to each other. Network 3 supports RDMA transfer between host 1 and target node 2. Further, the network 3 is not limited to a mode in which only the host 1 and the target node 2 are connected as shown in FIG. For example, a mode in which a node (computer) other than the host 1 and the target node 2 are connected to the network 3 may be employed. Alternatively, the host 1 and the target node 2 may be connected via a switch.
 次に、本実施形態に係るコンピュータシステムにおいて、コントローラ22がホスト1で動作するアプリケーション12から仮想記憶媒体23に対するアクセス要求を受け取り、実行する構成について、図2、図3、図4、図5、図6を用いて説明する。 Next, in the computer system according to the present embodiment, the configuration in which the controller 22 receives and executes an access request to the virtual storage medium 23 from the application 12 running on the host 1 will be described with reference to FIGS. 2, 3, 4, 5, and 5. This will be described with reference to FIG.
 図2を参照すると、コントローラ22は、アクセス要求受信部221と、マッピングテーブル222と、転送ストレージ領域算出部223と、転送メモリ領域算出部224と、アクセス処理テーブル225と、アクセス処理実行管理部226と、データ転送制御部227とを備える。また、ターゲットメモリ20は、ターゲットバッファ200を備える。 Referring to FIG. 2, the controller 22 includes an access request receiving unit 221, a mapping table 222, a transfer storage area calculation unit 223, a transfer memory area calculation unit 224, an access processing table 225, and an access processing execution management unit 226. And a data transfer control unit 227. The target memory 20 includes a target buffer 200.
 アクセス要求受信部221は、ホスト1で動作するアプリケーション12からアクセス要求を受け取る。アクセス要求は、リード、ライトのいずれであるかを表すアクセス要求の種類を含む。また、アクセス要求は、仮想記憶媒体23上のアクセス対象領域の先頭を指し示す論理アドレスを含む。また、アクセス要求は、アクセス対象領域に対応するホストメモリ10上のリードデータまたはライトデータの格納領域(転送メモリ領域)の先頭を指すメモリアドレスを含む。但し、アクセス対象領域に対応する転送メモリ領域のアドレス情報は、アクセス要求に含まれている必要はなく、アプリケーション12がアクセス要求を行う前に予め受け取るようにしてもよい。アクセス要求受信部221は、受け取ったアクセス要求を処理するために、転送ストレージ領域算出部223、転送メモリ領域算出部224、アクセス処理テーブル225、アクセス処理実行管理部226を制御する。 The access request receiving unit 221 receives an access request from the application 12 running on the host 1. The access request includes a type of access request indicating whether the request is read or write. The access request includes a logical address indicating the head of the access target area on the virtual storage medium 23. The access request includes a memory address indicating the head of a storage area (transfer memory area) for read data or write data on the host memory 10 corresponding to the access target area. However, the address information of the transfer memory area corresponding to the access target area does not need to be included in the access request, and may be received in advance before the application 12 makes the access request. The access request receiving unit 221 controls the transfer storage area calculation unit 223, the transfer memory area calculation unit 224, the access processing table 225, and the access processing execution management unit 226 to process the received access request.
 マッピングテーブル222は、仮想記憶媒体23上の各領域(以下、ブロックと呼ぶ)に対してマッピングされる記憶媒体24の識別子、及びその識別子で特定される記憶媒体24におけるアドレス(以下、物理アドレスと呼ぶ)と仮想記憶媒体23における論理アドレスとの対応関係を事前に記憶して管理する。 The mapping table 222 includes an identifier of the storage medium 24 mapped to each area (hereinafter, referred to as a block) on the virtual storage medium 23, and an address (hereinafter, a physical address and a physical address) in the storage medium 24 specified by the identifier. ) And the logical addresses in the virtual storage medium 23 are stored and managed in advance.
 図3は、マッピングテーブル222に含まれる情報を例示する図である。マッピングテーブル222は、仮想記憶媒体23上のブロック毎に、マッピング先の記憶媒体24の識別子、そのブロックの仮想記憶媒体23における論理アドレスとマッピング先の記憶媒体24における物理アドレスとの対応関係を記録したマッピングエントリ2221を含む。マッピングテーブル222の一つのマッピングエントリ2221で管理される仮想記憶媒体23上のブロックを論理ブロック、論理ブロックにマッピングされる記憶媒体24のブロックを物理ブロックと呼ぶ。各マッピングエントリ2221は、仮想記憶媒体23の各論理ブロックの先頭アドレスである論理アドレス2222と、その各論理ブロックのマッピング先である記憶媒体24の識別子を表す記憶媒体識別子2223と、その記憶媒体識別子2223の表す記憶媒体24における、マッピング先の物理ブロックの先頭アドレスである物理アドレス2224と、マッピングされる論理ブロックと物理ブロックのサイズを表すマッピングサイズ2225とを含む。 FIG. 3 is a diagram illustrating information included in the mapping table 222. The mapping table 222 records, for each block on the virtual storage medium 23, the identifier of the storage medium 24 of the mapping destination, and the correspondence between the logical address of the block in the virtual storage medium 23 and the physical address of the mapping destination storage medium 24. The mapping entry 2221. A block on the virtual storage medium 23 managed by one mapping entry 2221 of the mapping table 222 is called a logical block, and a block of the storage medium 24 mapped to the logical block is called a physical block. Each mapping entry 2221 includes a logical address 2222, which is the head address of each logical block of the virtual storage medium 23, a storage medium identifier 2223 indicating the identifier of the storage medium 24 to which each logical block is mapped, and the storage medium identifier. It includes a physical address 2224 which is the head address of the physical block of the mapping destination in the storage medium 24 represented by 2223, and a mapping size 2225 which indicates the size of the logical block and the physical block to be mapped.
 例えば、マッピングテーブル222の1行目のマッピングエントリ2221は、仮想記憶媒体23における論理アドレス0x00400000を先頭アドレスとする64MiBのサイズの論理ブロックは、記憶媒体識別子1の記憶媒体24における物理アドレス0x08000000を先頭にする64MiBのサイズの物理ブロックにマッピングされていることを表している。また、マッピングテーブル222の2行目のマッピングエントリ2221は、仮想記憶媒体23における論理アドレス0x00800000を先頭アドレスとする128MiBのサイズの論理ブロックは、記憶媒体識別子1の記憶媒体24における物理アドレス0xa0000000を先頭アドレスとする128MiBのサイズの物理ブロックにマッピングされていることを表している。 For example, the mapping entry 2221 in the first row of the mapping table 222 indicates that a logical block of 64 MiB size starting from the logical address 0x00400000 in the virtual storage medium 23 has a physical address 0x0800000 in the storage medium 24 having the storage medium identifier 1. It is mapped to a physical block having a size of 64 MiB. The mapping entry 2221 in the second row of the mapping table 222 indicates that a logical block of 128 MiB size starting from the logical address 0x00800000 in the virtual storage medium 23 has a physical address 0xa00000000 in the storage medium 24 having the storage medium identifier 1 as the head. This indicates that the address is mapped to a physical block having a size of 128 MiB as an address.
 図3のマッピングテーブル222の1行目のマッピングエントリ2221に例示されるように、仮想記憶媒体23における1つの論理ブロックは、高々1つの記憶媒体24の記憶領域にマッピングされている。また、図3のマッピングテーブル222の1行目と2行目のマッピングエントリ2221に例示されるように、仮想記憶媒体23における論理アドレスが隣接する2つの論理ブロックは、互いに異なる記憶媒体にマッピングされている。このように、仮想記憶媒体23における各論理ブロックを、高々1つの記憶媒体24の記憶領域にマッピングし、且つ、隣接する2つの論理ブロックを互いに異なる記憶媒体にマッピングすることにより、データ転送処理の分割を、待ち合わせ処理の回避に必要な最低限の数量とすることができる。 As illustrated in the mapping entry 2221 on the first line of the mapping table 222 in FIG. 3, one logical block in the virtual storage medium 23 is mapped to a storage area of at most one storage medium 24. As illustrated in the mapping entries 2221 on the first and second lines of the mapping table 222 in FIG. 3, two logical blocks in the virtual storage medium 23 whose logical addresses are adjacent to each other are mapped to different storage media. ing. In this manner, by mapping each logical block in the virtual storage medium 23 to a storage area of at most one storage medium 24 and mapping two adjacent logical blocks to storage mediums different from each other, the data transfer processing can be performed. The division can be the minimum quantity required to avoid the queuing process.
 マッピングテーブル222の形式は、図3に示した形式に限定されない。マッピングテーブル222は、仮想記憶媒体23の各論理ブロックに対応する記憶媒体24の識別子および論理アドレスと物理アドレスとの対応を決定することができれば、どのような形式であってもよい。例えば各マッピングエントリ2221が、仮想記憶媒体23の領域を先頭から一定サイズで区切った各論理ブロックに対応する場合は、論理ブロック毎の論理アドレス2222、及びマッピングサイズ2225は不要である。また、仮想記憶媒体23と記憶媒体24のマッピングにRAIDを用いることも可能である。その場合は、例えばRAID0であれば、ストライプを構成する記憶媒体24の数量、及び各記憶媒体24に対して連続的にマッピングされた領域である、チャンクのサイズから仮想記憶媒体23に対応するマッピング先を計算可能である。このとき、RAIDの構成情報を除いたマッピングテーブル222の各エントリの情報は不要である。 The format of the mapping table 222 is not limited to the format shown in FIG. The mapping table 222 may have any format as long as the identifier of the storage medium 24 corresponding to each logical block of the virtual storage medium 23 and the correspondence between the logical address and the physical address can be determined. For example, when each mapping entry 2221 corresponds to each logical block obtained by dividing the area of the virtual storage medium 23 from the beginning by a certain size, the logical address 2222 and the mapping size 2225 for each logical block are unnecessary. It is also possible to use RAID for mapping between the virtual storage medium 23 and the storage medium 24. In this case, for example, in the case of RAID 0, the number of storage media 24 constituting the stripe and the mapping corresponding to the virtual storage medium 23 based on the size of the chunk, which is an area mapped continuously to each storage medium 24 The destination can be calculated. At this time, the information of each entry of the mapping table 222 excluding the RAID configuration information is unnecessary.
 転送ストレージ領域算出部223は、マッピングテーブル222に基づいて、仮想記憶媒体23のアクセス対象領域の或る論理アドレスから、その論理アドレスを含む論理ブロックに割り当てられた物理ブロックを有する記憶媒体24の識別子と、その論理アドレスに対応する物理アドレスと、その物理アドレスから当該記憶媒体24の連続領域にマッピングされるサイズとを決定する。また、転送ストレージ領域算出部223は、アクセス要求先の領域における、転送ストレージ領域に対応する領域の位置を示す、先頭からのオフセットを計算する。 Based on the mapping table 222, the transfer storage area calculation unit 223 calculates an identifier of a storage medium 24 having a physical block allocated to a logical block including the logical address from a certain logical address of the access target area of the virtual storage medium 23. And a physical address corresponding to the logical address, and a size mapped from the physical address to a continuous area of the storage medium 24 are determined. Further, the transfer storage area calculation unit 223 calculates an offset from the head indicating the position of the area corresponding to the transfer storage area in the area of the access request destination.
 図4は、転送ストレージ領域算出部223の動作説明図である。図4を参照すると、仮想記憶媒体23の或る1つの論理ブロック41Lは、記憶媒体24の或る1つの物理ブロック41Pに割り当てられている。論理ブロック41Lの先頭の論理アドレスはLb、物理ブロック41Pの先頭の物理アドレスはPb、記憶媒体24の識別子はxである。転送ストレージ領域算出部223は、アクセス要求受信部221から、論理ブロック41L上の論理アドレスLaが与えられると、マッピングテーブル42における論理ブロック41Lに対応するマッピングエントリ2221を参照して、論理アドレスLaを含む論理ブロックに割り当てられた記憶媒体24の識別子xを決定する。また、転送ストレージ領域算出部223は、論理アドレスLaから論理ブロック41Lの先頭の論理アドレスLbを減じて、論理アドレスLaのオフセット(La-Lb)を求める。そして、転送ストレージ領域算出部223は、物理ブロック41Pの先頭の物理アドレスPbに上記オフセットを加算して、論理アドレスLaに対応する物理アドレスPaを計算する。即ち、Pa=Pb+(La-Lb)である。例えば、論理アドレスLaがアプリケーション12のアクセス要求で指定されたアクセス対象領域の先頭アドレスである場合、物理アドレスPaは、転送ストレージ領域43の先頭を指し示し、オフセット(La-Lb)は転送ストレージ領域43のオフセットを示す。また、転送ストレージ領域算出部223は、論理ブロック41Lと物理ブロック41PのマッピングサイズをMSとすると、物理アドレスPaから識別子xの記憶媒体24の連続領域にマッピングされるサイズを、MS-(La-Lb)として計算する。 FIG. 4 is an explanatory diagram of the operation of the transfer storage area calculation unit 223. Referring to FIG. 4, one logical block 41L of the virtual storage medium 23 is allocated to one physical block 41P of the storage medium 24. The leading logical address of the logical block 41L is Lb, the leading physical address of the physical block 41P is Pb, and the identifier of the storage medium 24 is x. Upon receiving the logical address La on the logical block 41L from the access request receiving unit 221, the transfer storage area calculating unit 223 refers to the mapping entry 2221 corresponding to the logical block 41L in the mapping table 42, and calculates the logical address La. The identifier x of the storage medium 24 assigned to the included logical block is determined. Further, the transfer storage area calculation unit 223 obtains the offset (La−Lb) of the logical address La by subtracting the leading logical address Lb of the logical block 41L from the logical address La. Then, the transfer storage area calculation unit 223 calculates the physical address Pa corresponding to the logical address La by adding the offset to the head physical address Pb of the physical block 41P. That is, Pa = Pb + (La−Lb). For example, if the logical address La is the start address of the access target area specified by the access request of the application 12, the physical address Pa indicates the start of the transfer storage area 43, and the offset (La-Lb) indicates the transfer storage area 43. Indicates the offset of Further, assuming that the mapping size of the logical block 41L and the physical block 41P is MS, the transfer storage area calculation unit 223 determines the size mapped from the physical address Pa to the continuous area of the storage medium 24 with the identifier x by MS- (La- Lb).
 転送メモリ領域算出部224は、仮想記憶媒体23のアクセス対象領域が複数の記憶媒体24の転送ストレージ領域にマッピングされる場合、各転送ストレージ領域に対応するホストメモリ10上の転送メモリ領域のアドレスを計算する。 When the access target area of the virtual storage medium 23 is mapped to the transfer storage areas of the plurality of storage media 24, the transfer memory area calculation unit 224 determines the address of the transfer memory area on the host memory 10 corresponding to each transfer storage area. calculate.
 図5は、転送メモリ領域算出部224の動作説明図であり、仮想記憶媒体23上のアクセス対象領域51と、アクセス対象領域51にマッピングされる記憶媒体24a、24b、24c上の転送ストレージ領域52a、52b、52cと、アクセス対象領域51に対応するホストメモリ10上の転送メモリ領域53との関係の一例を示している。図5の例では、アクセス対象領域51の先頭からサイズSaの領域は、記憶媒体24aにマッピングされている。また、アクセス対象領域51の続くサイズSbの領域は、記憶媒体24bにマッピングされている。また、アクセス対象領域51の残りのサイズScの領域は、記憶媒体24cにマッピングされている。本実施形態では、アプリケーション12からアクセス対象領域51に対するアクセス要求が行われた場合、アクセス対象領域51をSa、Sb、Scのサイズを有する3つの領域に分割し、個々の分割単位でデータ転送を行う。そのため、転送メモリ領域53は、Sa、Sb、Scのサイズを有する3つの領域に分割して使用する。転送メモリ領域算出部224は、このように転送メモリ領域53を分割したときにできる各分割領域の先頭のアドレスを計算する。 FIG. 5 is an explanatory diagram of the operation of the transfer memory area calculation unit 224. The access target area 51 on the virtual storage medium 23 and the transfer storage area 52a on the storage media 24a, 24b, and 24c mapped to the access target area 51 are shown. , 52b, and 52c, and a transfer memory area 53 on the host memory 10 corresponding to the access target area 51. In the example of FIG. 5, the area of the size Sa from the top of the access target area 51 is mapped to the storage medium 24a. The area of the size Sb following the access target area 51 is mapped on the storage medium 24b. The remaining area of the access target area 51 having the size Sc is mapped to the storage medium 24c. In the present embodiment, when an access request to the access target area 51 is made from the application 12, the access target area 51 is divided into three areas having the sizes of Sa, Sb, and Sc, and data transfer is performed in individual division units. Do. Therefore, the transfer memory area 53 is used by being divided into three areas having the sizes of Sa, Sb, and Sc. The transfer memory area calculation unit 224 calculates the head address of each divided area formed when the transfer memory area 53 is divided as described above.
 転送メモリ領域算出部224は、仮想記憶媒体23のアクセス対象領域51上の分割領域の論理アドレスをLx、アクセス対象領域51の先頭から論理アドレスLxまでのオフセットをOF、転送メモリ領域53の先頭のアドレスをMとすると、論理アドレスLxに対応する転送メモリ領域53のアドレスMxを、Mx=M+OFとして計算する。 The transfer memory area calculation unit 224 calculates the logical address of the divided area on the access target area 51 of the virtual storage medium 23 as Lx, sets the offset from the top of the access target area 51 to the logical address Lx as OF, Assuming that the address is M, the address Mx of the transfer memory area 53 corresponding to the logical address Lx is calculated as Mx = M + OF.
 アクセス処理テーブル225は、アプリケーション12から仮想記憶媒体23に対する、各アクセス要求の処理に必要なデータ転送処理の情報を管理する。アクセス処理テーブル225は、アクセス要求受信部221から更新され、アクセス処理実行管理部226およびデータ転送制御部227から参照される。図6は、アクセス処理テーブル225に含まれる情報を例示する図である。アクセス処理テーブル225は、アプリケーション12からの各アクセス要求に1対1に対応するアクセス要求エントリ2251を格納する。各アクセス要求エントリ2251は、アクセス種別2252と転送ペア一覧とを含む。転送ペア一覧は、アクセス要求に関連する転送メモリ領域と転送ストレージ領域の組を表す1以上の転送ペア2253を含む。アクセス要求エントリ2251は、アプリケーション12からのアクセス要求が複数に分割された結果、複数の転送メモリ領域と転送ストレージ領域の組に対応する場合、それぞれについて転送ペア2253を含む。また、転送ペア2253は、ホストメモリ10上の転送メモリ領域の先頭を指すメモリアドレス2254、転送ストレージ領域を含む記憶媒体24を指すストレージ識別子2255、転送ストレージ領域の先頭を指す記憶媒体アドレス2256、及び転送データのサイズを表す転送サイズ2257から構成される。 The access processing table 225 manages information on data transfer processing required for processing each access request from the application 12 to the virtual storage medium 23. The access processing table 225 is updated from the access request receiving unit 221 and is referred to by the access processing execution management unit 226 and the data transfer control unit 227. FIG. 6 is a diagram illustrating information included in the access processing table 225. The access processing table 225 stores an access request entry 2251 corresponding to each access request from the application 12 on a one-to-one basis. Each access request entry 2251 includes an access type 2252 and a transfer pair list. The transfer pair list includes one or more transfer pairs 2253 representing a pair of a transfer memory area and a transfer storage area related to the access request. The access request entry 2251 includes a transfer pair 2253 for each of a plurality of sets of a transfer memory area and a transfer storage area as a result of dividing the access request from the application 12 into a plurality. Further, the transfer pair 2253 includes a memory address 2254 indicating the head of the transfer memory area on the host memory 10, a storage identifier 2255 indicating the storage medium 24 including the transfer storage area, a storage medium address 2256 indicating the head of the transfer storage area, and It is composed of a transfer size 2257 representing the size of transfer data.
 アクセス処理テーブル225の形式は、図6に示した形式に限定されない。例えばアクセス種別2252をライトアクセスに関するフラグとして、フラグがセットされているアクセスをライト、セットされていないアクセスをリードとする形式でもよい。また、転送ペア2253に、データ転送が終了したことを表すフラグを含んでもよい。 The format of the access processing table 225 is not limited to the format shown in FIG. For example, the access type 2252 may be set as a flag related to write access, and an access in which the flag is set may be written and an access in which the flag is not set may be read. Further, the transfer pair 2253 may include a flag indicating that the data transfer has been completed.
 アクセス処理実行管理部226は、アクセス処理テーブル225を参照して、アプリケーション12から仮想記憶媒体23に対するアクセス要求の処理に必要なデータ転送の実行状況を管理する。アクセス処理実行管理部226は、アクセス処理テーブル225から未処理の転送ペア2253を選択してターゲットメモリ20上にターゲットバッファ200を確保する。そして、データ転送制御部227により、転送メモリ領域と転送ストレージ領域との間でリードデータまたはライトデータの転送処理を開始する。また、アクセス処理実行管理部226は、転送ペア2253に関するデータ転送処理が終了すると、確保されたターゲットバッファ200を開放する。 The access process execution management unit 226 refers to the access process table 225 to manage the execution status of data transfer required for processing an access request from the application 12 to the virtual storage medium 23. The access processing execution management unit 226 selects the unprocessed transfer pair 2253 from the access processing table 225 and secures the target buffer 200 on the target memory 20. Then, the data transfer control unit 227 starts transfer processing of read data or write data between the transfer memory area and the transfer storage area. When the data transfer process for the transfer pair 2253 ends, the access process execution management unit 226 releases the secured target buffer 200.
 データ転送制御部227は、アクセス処理実行管理部226から指示された転送ペア2253について、ホストメモリ10上の転送メモリ領域と確保されたターゲットバッファ200との間のデータ転送、及びターゲットバッファ200と記憶媒体24上の転送ストレージ領域との間でデータ転送を実行する。 The data transfer control unit 227 transfers data between the transfer memory area in the host memory 10 and the secured target buffer 200 for the transfer pair 2253 specified by the access processing execution management unit 226, and stores the data in the target buffer 200. Data transfer to and from the transfer storage area on the medium 24 is performed.
 転送ペア2253に対するアクセス種別2252がリードである場合、データ転送制御部227は、最初にストレージ識別子2255で表される記憶媒体24にリードアクセスを行い、転送ストレージ領域からターゲットバッファ200に対してリードデータを転送する。そして、データ転送制御部227は、ターゲットバッファ200に対するデータ転送が完了すると、次にターゲット通信部21に指示して、ターゲットバッファ200に格納されたリードデータを、ホストメモリ10の転送メモリ領域に転送する。 If the access type 2252 for the transfer pair 2253 is read, the data transfer control unit 227 first performs read access to the storage medium 24 represented by the storage identifier 2255, and reads data from the transfer storage area to the target buffer 200. To transfer. When the data transfer to the target buffer 200 is completed, the data transfer control unit 227 next instructs the target communication unit 21 to transfer the read data stored in the target buffer 200 to the transfer memory area of the host memory 10. I do.
 一方、転送ペア2253に対するアクセス種別2252がライトである場合、データ転送制御部227は、最初にターゲット通信部21に指示して、ホストメモリ10の転送メモリ領域に格納されたライトデータを、ターゲットバッファ200に転送する。そして、データ転送制御部227は、ターゲットバッファ200に対するデータ転送が完了すると、次にストレージ識別子2255で表される記憶媒体24にライトアクセスを行い、ターゲットバッファ200から転送ストレージ領域に対してライトデータを転送する。 On the other hand, when the access type 2252 for the transfer pair 2253 is write, the data transfer control unit 227 first instructs the target communication unit 21 to transfer the write data stored in the transfer memory area of the host memory 10 to the target buffer. Transfer to 200. Then, when the data transfer to the target buffer 200 is completed, the data transfer control unit 227 performs write access to the storage medium 24 represented by the storage identifier 2255, and writes the write data from the target buffer 200 to the transfer storage area. Forward.
 ターゲットバッファ200は、各転送ペア2253に対してターゲットメモリ20上に確保される。ターゲットバッファ200は、転送メモリ領域と転送ストレージ領域との間で転送されるリードデータまたはライトデータを一時的に保持する。 (4) The target buffer 200 is secured on the target memory 20 for each transfer pair 2253. The target buffer 200 temporarily holds read data or write data transferred between the transfer memory area and the transfer storage area.
[本実施形態の動作]
 次に、図1、図2、図3、図6、図7A、図7Bを参照して本発明の実施形態における、アプリケーション12から仮想記憶媒体23に対するアクセス要求を処理する動作を説明する。
[Operation of this embodiment]
Next, an operation of processing an access request from the application 12 to the virtual storage medium 23 in the embodiment of the present invention will be described with reference to FIGS. 1, 2, 3, 6, 7A, and 7B.
 アプリケーション12は、ターゲットノード2の仮想記憶媒体23に対するアクセス要求をホスト通信部11へ送信する。このアクセス要求は、以下のパラメータを含む。
(a)アクセス要求の種類
(b)仮想記憶媒体23上のアクセス対象領域を指し示す論理アドレス
(c)当該アクセス対象領域のサイズ
(d)当該アクセス対象領域に対応する、ホスト1のメモリ空間上の領域を指し示すアドレス
The application 12 transmits an access request to the virtual storage medium 23 of the target node 2 to the host communication unit 11. This access request includes the following parameters.
(A) Type of access request (b) Logical address indicating the access target area on the virtual storage medium 23 (c) Size of the access target area (d) In the memory space of the host 1 corresponding to the access target area Address pointing to area
 アクセス要求の種類は、リードとライトの2種類がある。アクセス対象領域を指し示す論理アドレスは、当該アクセス対象領域の先頭の論理アドレスである。即ち、アクセス対象領域は連続した論理アドレスを持ち、その先頭の論理アドレスがアクセス要求で指定される。アクセス対象領域に対応する、ホスト1のメモリ空間上の領域を指し示すアドレスは、リード要求の結果であるリードデータあるいはライト要求で書き込まれるライトデータを格納するホストメモリ10のメモリ領域の先頭アドレスである。 There are two types of access requests: read and write. The logical address indicating the access target area is the first logical address of the access target area. That is, the access target area has continuous logical addresses, and the leading logical address is specified by the access request. The address corresponding to the access target area and indicating the area in the memory space of the host 1 is the head address of the memory area of the host memory 10 that stores the read data as a result of the read request or the write data written in the write request. .
 ホスト通信部11は、アプリケーション12から受け取ったアクセス要求を、ネットワーク3を通じてターゲットノード2のターゲット通信部21へ送信する。ターゲット通信部21は、受信したアクセス要求をコントローラ22へ送信する。 The host communication unit 11 transmits the access request received from the application 12 to the target communication unit 21 of the target node 2 via the network 3. The target communication unit 21 transmits the received access request to the controller 22.
 コントローラ22のアクセス要求受信部221は、アプリケーション12から仮想記憶媒体23に対するアクセス要求を受信する(ステップS101)。 The access request receiving unit 221 of the controller 22 receives an access request for the virtual storage medium 23 from the application 12 (Step S101).
 次にアクセス要求受信部221は、ステップS101で受信したアクセス要求に対応するアクセス要求エントリ2251をアクセス処理テーブル225上に作成し、そのアクセス種別2252の欄に上記受信したアクセス要求に含まれるアクセス種別を登録する(ステップS102)。アクセス要求受信部221は、この時点では、作成したアクセス要求エントリ2251の転送ペア一覧の欄は空白にしておく。 Next, the access request receiving unit 221 creates an access request entry 2251 corresponding to the access request received in step S101 on the access processing table 225, and stores the access type included in the received access request in the column of the access type 2252. Is registered (step S102). At this time, the access request receiving unit 221 leaves the transfer pair list column of the created access request entry 2251 blank.
 次に、アクセス要求受信部221は、転送ストレージ領域および転送メモリ領域における着目点を表すオフセットを0に初期化する(ステップS103)。そして、アクセス要求受信部221は、初期化したオフセットに注目する。 Next, the access request receiving unit 221 initializes an offset representing a point of interest in the transfer storage area and the transfer memory area to 0 (step S103). Then, the access request receiving unit 221 pays attention to the initialized offset.
 次に、アクセス要求受信部221は、アクセス要求に含まれる仮想記憶媒体23におけるアクセス対象領域の先頭の論理アドレスに注目中オフセットの値を加えることで、仮想記憶媒体23上のアクセス対象領域の着目点の論理アドレスを算出する。(ステップS104) Next, the access request receiving unit 221 adds the value of the focused offset to the first logical address of the access target area in the virtual storage medium 23 included in the access request, and thereby focuses on the access target area on the virtual storage medium 23. Calculate the logical address of the point. (Step S104)
 次に、アクセス要求受信部221は、転送ストレージ領域算出部223に対してステップS104で求めた仮想記憶媒体23上の着目点の論理アドレスを通知する。転送ストレージ領域算出部223は、マッピングテーブル222を参照して、通知された仮想記憶媒体23上の着目点の論理アドレスに対応する、転送ストレージ領域が含まれる記憶媒体24の識別子、及び転送ストレージ領域における着目点の物理アドレスを求める(ステップS105)。 Next, the access request receiving unit 221 notifies the transfer storage area calculation unit 223 of the logical address of the point of interest on the virtual storage medium 23 obtained in step S104. The transfer storage area calculation unit 223 refers to the mapping table 222, and the identifier of the storage medium 24 including the transfer storage area corresponding to the notified logical address of the point of interest on the virtual storage medium 23, and the transfer storage area The physical address of the point of interest in is obtained (step S105).
 次に、アクセス要求受信部221は、転送メモリ領域算出部224に対してホストメモリ10のメモリ領域の先頭アドレスと注目中オフセットを通知する。転送メモリ領域算出部224は、通知されたホストメモリ10のメモリ領域の先頭アドレスに注目中オフセットを加算して、仮想記憶媒体23上の着目点の論理アドレスに対応する、ホストメモリ10の転送メモリ領域における着目点のアドレスを求める(ステップS106)。 Next, the access request receiving unit 221 notifies the transfer memory area calculating unit 224 of the start address of the memory area of the host memory 10 and the focused offset. The transfer memory area calculation unit 224 adds the focused offset to the notified start address of the memory area of the host memory 10, and the transfer memory of the host memory 10 corresponding to the logical address of the focused point on the virtual storage medium 23. The address of the point of interest in the area is obtained (step S106).
 次に、転送ストレージ領域算出部223は、マッピングテーブル222を参照して、上記通知された仮想記憶媒体23上の着目点の論理アドレスから記憶媒体24の連続領域にマッピングされるサイズを算出する(ステップS107)。具体的には、まず、転送ストレージ領域算出部223は、上記着目点の論理アドレスを包含する仮想記憶媒体23の論理ブロックに対応するマッピングエントリ2221を決定する。次に、転送ストレージ領域算出部223は、上記着目点の論理アドレスと、上記決定した対応するマッピングエントリ2221の論理アドレス2222との差分を計算する。そして、転送ストレージ領域算出部223は、計算した差分を対応するマッピングエントリ2221のマッピングサイズ2225から差し引くことで、連続領域にマッピングされるサイズを算出する。 Next, the transfer storage area calculation unit 223 refers to the mapping table 222 and calculates the size mapped to the continuous area of the storage medium 24 from the notified logical address of the point of interest on the virtual storage medium 23 ( Step S107). Specifically, first, the transfer storage area calculation unit 223 determines the mapping entry 2221 corresponding to the logical block of the virtual storage medium 23 including the logical address of the point of interest. Next, the transfer storage area calculation unit 223 calculates a difference between the logical address of the noted point and the determined logical address 2222 of the corresponding mapping entry 2221. Then, the transfer storage area calculation unit 223 calculates the size mapped to the continuous area by subtracting the calculated difference from the mapping size 2225 of the corresponding mapping entry 2221.
 次に、アクセス要求受信部221は、以下のような処理を行う(ステップS108)。まず、アクセス要求受信部221は、アクセス要求で指定されたアクセス対象領域のサイズから注目中オフセットを差し引いた値を未転送領域サイズとして算出する。次に、アクセス要求受信部221は、上記未転送領域サイズとステップS107で求めた、記憶媒体の連続領域にマッピングされるサイズとを比較する。次に、アクセス要求受信部221は、上記2つのサイズの最小値を、転送データのサイズに決定する。 Next, the access request receiving unit 221 performs the following processing (step S108). First, the access request receiving unit 221 calculates, as the untransferred area size, a value obtained by subtracting the focused offset from the size of the access target area specified by the access request. Next, the access request receiving unit 221 compares the size of the untransferred area with the size mapped in the continuous area of the storage medium obtained in step S107. Next, the access request receiving unit 221 determines the minimum value of the two sizes as the size of the transfer data.
 次に、アクセス要求受信部221は、ステップS105で求めた記憶媒体24の識別子と転送ストレージ領域における着目点の物理アドレス、ステップS106で求めた転送メモリ領域における着目点のアドレス、ステップS108で求めた転送データのサイズの組み合わせを、ステップS102においてアクセス処理テーブル225に作成したアクセス要求エントリ2251の転送ペア2253の欄に登録する(ステップS109)。即ち、記憶媒体24の識別子、転送ストレージ領域における着目点の物理アドレス、転送メモリ領域における着目点のアドレス、転送データのサイズは、それぞれ転送ペア2253におけるストレージ識別子2255、記憶媒体アドレス2256、メモリアドレス2254、転送サイズ2257に対応する。 Next, the access request receiving unit 221 obtains the identifier of the storage medium 24 obtained in step S105 and the physical address of the point of interest in the transfer storage area, the address of the point of interest in the transfer memory area obtained in step S106, and the address obtained in step S108. The combination of the sizes of the transfer data is registered in the column of the transfer pair 2253 of the access request entry 2251 created in the access processing table 225 in step S102 (step S109). That is, the identifier of the storage medium 24, the physical address of the point of interest in the transfer storage area, the address of the point of interest in the transfer memory area, and the size of the transfer data are respectively the storage identifier 2255, the storage medium address 2256, and the memory address 2254 in the transfer pair 2253. , Transfer size 2257.
 次に、アクセス要求受信部221は、注目中オフセットにステップS108で求めた転送データのサイズを加算する(ステップS110)。そして、アクセス要求受信部221は、加算後のオフセットに注目を移す。 Next, the access request receiving unit 221 adds the size of the transfer data obtained in step S108 to the focused offset (step S110). Then, the access request receiving unit 221 shifts the focus to the offset after the addition.
 次に、アクセス要求受信部221は、注目中オフセットの値とアクセス要求で指定されたアクセス対象領域のサイズとを比較する。アクセス要求受信部221は、注目中オフセットの値がアクセス対象領域のサイズ未満の場合(ステップS111のYes判定)、ステップS104からの処理を再度実行する。 Next, the access request receiving unit 221 compares the value of the focused offset with the size of the access target area specified by the access request. When the value of the focused offset is smaller than the size of the access target area (Yes in Step S111), the access request receiving unit 221 executes the processing from Step S104 again.
 一方、注目中オフセットの値がアクセス対象の領域のサイズ以上の場合(ステップS111のNo判定)、アクセス要求受信部221はアクセス処理実行管理部226に対して、アクセス処理を実行すべきアクセス処理テーブル225のアクセス要求エントリ2251を指示する(ステップS112)。 On the other hand, when the value of the focused offset is equal to or larger than the size of the area to be accessed (No in step S111), the access request receiving unit 221 instructs the access process execution management unit 226 to execute the access process table to execute the access process 225 access request entry 2251 (step S112).
 アクセス処理実行管理部226は、アクセス処理テーブル225を参照して、ステップS112で指示されたアクセス要求エントリ2251に従いアクセス要求に対する処理を実行する(ステップS113)。 The access processing execution management unit 226 refers to the access processing table 225 and executes processing for the access request in accordance with the access request entry 2251 specified in step S112 (step S113).
 アクセス要求受信部221は、アクセス処理実行管理部226において指示したアクセス要求エントリ2251に従うアクセス要求に対する処理が完了すると、アクセス処理テーブル225に登録された、当該指示したアクセス要求エントリ2251を削除する。また、アクセス要求受信部221は、当該アクセス要求エントリ2251に係るアクセス要求を行ったホスト1で動作するアプリケーション12に対してアクセス要求の完了を通知して、動作を終了する(ステップS114)。 When the access request receiving unit 221 completes the process for the access request according to the access request entry 2251 specified by the access process execution management unit 226, the access request receiving unit 221 deletes the specified access request entry 2251 registered in the access processing table 225. Further, the access request receiving unit 221 notifies the application 12 running on the host 1 that has issued the access request related to the access request entry 2251 of the completion of the access request, and ends the operation (step S114).
 以上のステップS101からS114までの処理を行うことにより、本発明の実施形態における、アプリケーション12から仮想記憶媒体23に対するアクセス要求を処理する動作が完了する。ステップS101からS114までの処理順序は、必ずしも図7A、図7Bに示した順序である必要はない。例えば、ステップS104からS105、ステップS106、ステップS107の各処理は同時期に実行可能であり、或いは順序を入れ替えた実行が可能である。また、ステップS101においてアプリケーション12から受信する、ホスト1のメモリ空間上の領域を指し示すアドレスは、アクセス要求よりも前に受け取ってもよい。 動作 By performing the processing from step S101 to S114, the operation of processing the access request from the application 12 to the virtual storage medium 23 in the embodiment of the present invention is completed. The processing order from steps S101 to S114 does not necessarily need to be the order shown in FIGS. 7A and 7B. For example, the processes of steps S104 to S105, step S106, and step S107 can be performed at the same time, or can be performed in a different order. In addition, the address indicating the area in the memory space of the host 1 received from the application 12 in step S101 may be received before the access request.
 次に、図1、図2、図3、図6、図8A、図8Bを参照して本発明の実施形態における、図7Aおよび図7Bで示されたアプリケーション12から仮想記憶媒体23に対するアクセス要求を処理する動作における、ステップS113のアクセス処理実行管理部226による、アクセス要求に対する処理を実行する動作を説明する。 Next, referring to FIG. 1, FIG. 2, FIG. 3, FIG. 6, FIG. 8A, and FIG. 8B, in the embodiment of the present invention, an access request to the virtual storage medium 23 from the application 12 shown in FIG. The operation of executing the processing for the access request by the access processing execution management unit 226 in step S113 in the operation of processing the step S113 will be described.
 アクセス処理実行管理部226は、アクセス処理テーブル225における、処理対象のアクセス要求に対応するアクセス要求エントリ2251を参照して、任意の転送ペア2253を1つ選択する(ステップS201)。そして、アクセス処理実行管理部226は、この選択した転送ペア2253に注目する。 The access process execution management unit 226 selects one arbitrary transfer pair 2253 with reference to the access request entry 2251 corresponding to the access request to be processed in the access process table 225 (step S201). Then, the access processing execution management unit 226 pays attention to the selected transfer pair 2253.
 次に、アクセス処理実行管理部226は、注目中転送ペア2253に対して、ターゲットメモリ20上に注目中転送ペア2253中の転送サイズ2257以上のサイズを持つターゲットバッファ200を確保する(ステップS202)。 Next, the access process execution management unit 226 secures a target buffer 200 having a size equal to or larger than the transfer size 2257 of the focused transfer pair 2253 on the target memory 20 for the focused transfer pair 2253 (step S202). .
 次に、アクセス処理実行管理部226は、データ転送制御部227に対して注目中転送ペア2253のデータ転送処理の実行を指示する(ステップS203)。 Next, the access process execution management unit 226 instructs the data transfer control unit 227 to execute the data transfer process of the focused transfer pair 2253 (step S203).
 処理対象のアクセス要求のアクセス種別2252がリードの場合(ステップS204のYes判定)、データ転送制御部227は、以下の処理を行う(ステップS205)。まず、データ転送制御部227は、アクセス処理テーブル225を参照して、注目中転送ペア2253のストレージ識別子2255、記憶媒体アドレス2256、転送サイズ2257を取得する。次にデータ転送制御部227は、注目中転送ペア2253のストレージ識別子2255の指し示す記憶媒体24に対して、リードを要求する。このリードの要求では、リードアクセスする転送ストレージ領域を指定するために注目中転送ペア2253の記憶媒体アドレス2256と転送サイズ2257とを指定し、リードしたデータの格納先を指定するためにステップS202で確保したターゲットバッファ200の先頭アドレスを指定する。 (4) When the access type 2252 of the access request to be processed is read (Yes in step S204), the data transfer control unit 227 performs the following process (step S205). First, the data transfer control unit 227 refers to the access processing table 225 to obtain the storage identifier 2255, the storage medium address 2256, and the transfer size 2257 of the focused transfer pair 2253. Next, the data transfer control unit 227 requests a read from the storage medium 24 indicated by the storage identifier 2255 of the transfer pair of interest 2253. In this read request, the storage medium address 2256 and the transfer size 2257 of the focused transfer pair 2253 are specified to specify the transfer storage area to be read-accessed, and in step S202, the storage destination of the read data is specified. The head address of the secured target buffer 200 is specified.
 ステップS205でリードアクセスを指示された記憶媒体24は、指定された記憶媒体アドレス2256を先頭とし、指定された転送サイズ2257をサイズとする転送ストレージ領域からデータをリードし、指定されたターゲットバッファ200にリードデータを格納し、完了をデータ転送制御部227に通知する(ステップS206)。 The storage medium 24 instructed for read access in step S205 reads data from the transfer storage area having the specified storage medium address 2256 as the head and the specified transfer size 2257, and reads the specified target buffer 200 , And notifies completion to the data transfer control unit 227 (step S206).
 データ転送制御部227は、ターゲットバッファ200に対するリードデータの格納完了を確認後、ターゲット通信部21に対して、ターゲットバッファ200からホストメモリ10の転送メモリ領域へのデータ転送指示を行う(ステップS207)。データ転送制御部227は、上記転送指示では、ターゲット通信部21に対して、転送元として、ターゲットバッファ200の先頭アドレスと注目中転送ペア2253の転送サイズ2257とを指定する。また、データ転送制御部227は、上記転送指示では、ターゲット通信部21に対して、転送先として、注目中転送ペア2253のメモリアドレス2254を指定する。 After confirming the completion of storing the read data in the target buffer 200, the data transfer control unit 227 instructs the target communication unit 21 to transfer data from the target buffer 200 to the transfer memory area of the host memory 10 (Step S207). . In the transfer instruction, the data transfer control unit 227 specifies the start address of the target buffer 200 and the transfer size 2257 of the transfer pair of interest 2253 as the transfer source to the target communication unit 21. In the transfer instruction, the data transfer control unit 227 specifies the memory address 2254 of the focused transfer pair 2253 as the transfer destination to the target communication unit 21.
 ターゲット通信部21は、上記転送指示に従い、以下のようなデータ転送を行う(ステップS208)。まず、ターゲット通信部21は、転送元として指定されたターゲットバッファ200に格納されたリードデータを読み出して、ネットワーク3で接続されたホスト通信部11に対して転送し、転送先として指定されたホストメモリ10のメモリアドレス2254で指定される領域に対する格納を指示する。ホスト通信部11は、ターゲット通信部21からの指示を受けて、リードデータをホストメモリ10のメモリアドレス2254で指定される転送メモリ領域に格納する。ホスト通信部11による転送メモリ領域に対するリードデータの格納が完了すると、ターゲット通信部21は、データ転送制御部227に対してデータ転送の完了を通知する。そして、その後、処理はステップS213へと進む。 The target communication unit 21 performs the following data transfer according to the transfer instruction (step S208). First, the target communication unit 21 reads the read data stored in the target buffer 200 specified as the transfer source, transfers the read data to the host communication unit 11 connected via the network 3, and transfers the read data to the host specified as the transfer destination. Instruct storage in the area specified by the memory address 2254 of the memory 10. The host communication unit 11 receives the instruction from the target communication unit 21 and stores the read data in the transfer memory area of the host memory 10 specified by the memory address 2254. When the storage of the read data in the transfer memory area by the host communication unit 11 is completed, the target communication unit 21 notifies the data transfer control unit 227 of the completion of the data transfer. Then, the process proceeds to step S213.
 一方、処理対象のアクセス要求のアクセス種別2252がライトの場合(ステップS204のNo判定)、データ転送制御部227は、以下の処理を行う(ステップS209)。まず、データ転送制御部227は、アクセス処理テーブル225を参照して、注目中転送ペア2253のメモリアドレス2254、転送サイズ2257を取得する。次に、データ転送制御部227は、ターゲット通信部21に対して、ホストメモリ10からターゲットバッファ200への転送指示を行う。データ転送制御部227は、上記転送指示では、ターゲット通信部21に対して、転送元として、注目中転送ペア2253のメモリアドレス2254と注目中転送ペア2253の転送サイズ2257とを指定する。また、データ転送制御部227は、上記転送指示では、ターゲット通信部21に対して、転送先として、ターゲットバッファ200の先頭アドレスを指定する。 On the other hand, when the access type 2252 of the access request to be processed is write (No determination in step S204), the data transfer control unit 227 performs the following processing (step S209). First, the data transfer control unit 227 acquires the memory address 2254 and the transfer size 2257 of the transfer pair of interest 2253 with reference to the access processing table 225. Next, the data transfer control unit 227 instructs the target communication unit 21 to transfer data from the host memory 10 to the target buffer 200. In the transfer instruction, the data transfer control unit 227 specifies the memory address 2254 of the transfer pair of interest 2253 and the transfer size 2257 of the transfer pair of interest 2253 as the transfer source to the target communication unit 21. In the transfer instruction, the data transfer control unit 227 specifies the start address of the target buffer 200 as the transfer destination to the target communication unit 21.
 ターゲット通信部21は、上記転送指示に従って、以下のような転送を行う(ステップS210)。まず、ターゲット通信部21は、ホスト通信部11を通じてホストメモリ10のメモリアドレス2254および転送サイズ2257で指定される転送メモリ領域からライトデータを読み出し、ネットワーク3を経由してターゲットバッファ200に格納する。次にターゲット通信部21は、ターゲットバッファ200に対するライトデータの格納の完了をデータ転送制御部227に通知する。 (4) The target communication unit 21 performs the following transfer according to the transfer instruction (step S210). First, the target communication unit 21 reads the write data from the transfer memory area specified by the memory address 2254 and the transfer size 2257 of the host memory 10 through the host communication unit 11 and stores the write data in the target buffer 200 via the network 3. Next, the target communication unit 21 notifies the data transfer control unit 227 of the completion of the storage of the write data in the target buffer 200.
 データ転送制御部227は、ターゲットバッファ200に対するライトデータの格納完了を確認後、注目中転送ペア2253のストレージ識別子2255の指し示す記憶媒体24に対して、ターゲットバッファ200から記憶媒体24へのライト要求を行う(ステップS211)。このライト要求では、データ転送制御部227は、記憶媒体24に対して、ライト元として、ターゲットバッファ200の先頭アドレスと注目中転送ペア2253の転送サイズ2257とを指定する。また、データ転送制御部227は、上記ライト要求では、ライト先として、注目中転送ペア2253の記憶媒体アドレス2256を指定する。 After confirming the completion of the storage of the write data in the target buffer 200, the data transfer control unit 227 issues a write request from the target buffer 200 to the storage medium 24 to the storage medium 24 indicated by the storage identifier 2255 of the transfer pair of interest 2253. Perform (step S211). In this write request, the data transfer control unit 227 specifies the head address of the target buffer 200 and the transfer size 2257 of the transfer pair of interest 2253 as the write source for the storage medium 24. In the write request, the data transfer control unit 227 specifies the storage medium address 2256 of the focused transfer pair 2253 as the write destination.
 ステップS211でライトを要求された記憶媒体24は、指定されたライトアクセスを行い、指定されたターゲットバッファ200のライトデータを、指定された記憶媒体アドレス2256を先頭アドレスとする転送ストレージ領域に格納して、完了をデータ転送制御部227に通知する(ステップS212)。その後、処理はステップS213へと進む。 The storage medium 24 requested to write in step S211 performs the specified write access, and stores the write data of the specified target buffer 200 in the transfer storage area starting from the specified storage medium address 2256. Then, the completion is notified to the data transfer control unit 227 (step S212). Thereafter, the process proceeds to step S213.
 ステップS213では、データ転送制御部227は、注目中転送ペア2253に関する転送処理の実行完了を、アクセス処理実行管理部226に通知する。 In step S213, the data transfer control unit 227 notifies the access process execution management unit 226 that the transfer process for the focused transfer pair 2253 has been completed.
 アクセス処理実行管理部226は、転送処理の実行が完了した注目中転送ペア2253に対して確保された、ターゲットバッファ200を開放する(ステップS214)。また、アクセス処理実行管理部226は、転送処理の実行が完了した注目中転送ペア2253に関する情報を、アクセス処理テーブル225の処理対象のアクセス要求に対応するアクセス要求エントリ2251から削除する(ステップS215)。 (4) The access process execution management unit 226 releases the target buffer 200 reserved for the attention transfer pair 2253 whose transfer process has been completed (step S214). Further, the access processing execution management unit 226 deletes the information on the focused transfer pair 2253 for which the execution of the transfer processing has been completed from the access request entry 2251 corresponding to the access request to be processed in the access processing table 225 (step S215). .
 次に、アクセス処理実行管理部226は、処理対象のアクセス要求に対応するアクセス要求エントリ2251に含まれる、転送ペア2253の個数を確認する(ステップS216)。ステップS216において確認した、転送ペア2253の個数が1個以上である場合(ステップS217のYes判定)、アクセス処理実行管理部226はステップS201からの処理を再度実行する。また、ステップS216において確認した、転送ペア2253の個数が0個である場合(ステップS217のNo判定)、アクセス処理実行管理部226はアクセス要求の処理完了を、アクセス要求受信部221に通知して、動作を終了する(ステップS218)。 Next, the access process execution management unit 226 checks the number of transfer pairs 2253 included in the access request entry 2251 corresponding to the access request to be processed (step S216). If the number of transfer pairs 2253 confirmed in step S216 is one or more (Yes in step S217), the access processing execution management unit 226 executes the processing from step S201 again. If the number of transfer pairs 2253 confirmed in step S216 is 0 (No in step S217), the access process execution management unit 226 notifies the access request reception unit 221 of completion of the access request. Then, the operation ends (step S218).
 以上のステップS201からS218までの処理を行うことにより、本発明の実施形態における、ステップS113のアクセス処理実行管理部226による、アクセス要求に対する処理を実行する動作が完了する。ステップS201からS218までの処理順序は、必ずしも図8Aおよび図8Bに示した順序である必要はない。例えば、ステップS214とステップS215の処理は同時期に実行可能であり、或いは順序を入れ替えた実行が可能である。また、ステップS201からステップS215までの処理は、複数の転送ペア2253に対して並列に実行してもよい。 By performing the processing from step S201 to S218 described above, the operation of executing the processing for the access request by the access processing execution management unit 226 in step S113 in the embodiment of the present invention is completed. The processing order from steps S201 to S218 does not necessarily need to be the order shown in FIGS. 8A and 8B. For example, the processes of step S214 and step S215 can be performed at the same time, or can be performed in a different order. Further, the processing from step S201 to step S215 may be executed in parallel for a plurality of transfer pairs 2253.
[本実施形態の効果]
 本実施形態を適用することで、ホストから複数の記憶媒体の記憶領域を組み合わせた仮想記憶媒体に対するアクセスにおいて、アクセス先が複数記憶媒体にマッピングされる場合に、RDMA転送の前後における待ち合わせ処理の発生を回避して、アクセス性能の向上を実現することができる。また、記憶媒体の領域とバッファとの間のデータ転送とバッファとホストのメモリとの間のデータ転送とを並列化することができる。
[Effects of the present embodiment]
By applying the present embodiment, when a host accesses a virtual storage medium in which storage areas of a plurality of storage media are combined, when an access destination is mapped to a plurality of storage media, occurrence of a queuing process before and after RDMA transfer occurs And improving the access performance. Further, data transfer between the area of the storage medium and the buffer and data transfer between the buffer and the memory of the host can be parallelized.
[第2の実施形態]
 図9は、本発明の第2の実施形態に係るストレージ装置6のブロック図である。ストレージ装置6は、コントローラ61と、メモリ62と、仮想記憶媒体63と、複数の記憶媒体64と、データ転送部65とを含んで構成されている。ストレージ装置6は、ネットワーク7を介してホストコンピュータ8に相互に通信可能に接続されている。
[Second embodiment]
FIG. 9 is a block diagram of the storage device 6 according to the second embodiment of the present invention. The storage device 6 includes a controller 61, a memory 62, a virtual storage medium 63, a plurality of storage media 64, and a data transfer unit 65. The storage device 6 is communicably connected to a host computer 8 via a network 7.
 仮想記憶媒体63は、複数の記憶媒体64の領域から構成される仮想的な記憶媒体である。データ転送部65は、ストレージ装置6とホストコンピュータ8のホストメモリ81との間のデータ転送をネットワーク7経由で行うように構成されている。メモリ62は、仮想記憶媒体63からリードしたデータ或いは仮想記憶媒体63にライトするデータを一時的に記憶するためのバッファ621に利用される。 The virtual storage medium 63 is a virtual storage medium composed of a plurality of areas of the storage medium 64. The data transfer unit 65 is configured to transfer data between the storage device 6 and the host memory 81 of the host computer 8 via the network 7. The memory 62 is used as a buffer 621 for temporarily storing data read from the virtual storage medium 63 or data to be written to the virtual storage medium 63.
 コントローラ61は、仮想記憶媒体63に対するアクセスを提供する。コントローラ61は、ホストコンピュータ8からネットワーク7を経由して仮想記憶媒体63に対するアクセス要求を受信する。コントローラ61は、受信したアクセス要求に応じた処理を行うために、仮想記憶媒体63、記憶媒体64、メモリ62、およびデータ転送部65を制御する。例えば、コントローラ61は、アクセス要求によってアクセスされる仮想記憶媒体63上のアクセス対象領域を1以上の部分領域に分割する。また、コントローラ61は、部分領域毎のバッファ621をメモリ62に確保する。また、コントローラ61は、仮想記憶媒体63の部分領域毎に、部分領域に対応する記憶媒体64の領域と部分領域に対応するバッファ621との間のデータ転送を制御する。また、コントローラ61は、仮想記憶媒体63の部分領域毎に、データ転送部65による部分領域に対応するバッファ621とホストメモリ81における部分領域に対応する領域との間のデータ転送を制御する。 (4) The controller 61 provides access to the virtual storage medium 63. The controller 61 receives an access request to the virtual storage medium 63 from the host computer 8 via the network 7. The controller 61 controls the virtual storage medium 63, the storage medium 64, the memory 62, and the data transfer unit 65 to perform processing according to the received access request. For example, the controller 61 divides the access target area on the virtual storage medium 63 accessed by the access request into one or more partial areas. Further, the controller 61 secures a buffer 621 for each partial area in the memory 62. Further, the controller 61 controls, for each partial area of the virtual storage medium 63, data transfer between the area of the storage medium 64 corresponding to the partial area and the buffer 621 corresponding to the partial area. Further, the controller 61 controls the data transfer between the buffer 621 corresponding to the partial area and the area corresponding to the partial area in the host memory 81 by the data transfer unit 65 for each partial area of the virtual storage medium 63.
 コントローラ61およびデータ転送部65は、例えば図10に示すように、1以上のマイクロプロセッサ等の演算処理部910と、メモリやハードディスク等の記憶部920とを有する情報処理装置930と、プログラム940とで実現することができる。プログラム940は、情報処理装置930の立ち上げ時等に外部のコンピュータ読み取り可能な記録媒体からメモリに読み込まれ、演算処理部910の動作を制御することにより、演算処理部910上に、コントローラ61、およびデータ転送部65を実現する。 The controller 61 and the data transfer unit 65 include, for example, an information processing device 930 having an arithmetic processing unit 910 such as one or more microprocessors, a storage unit 920 such as a memory and a hard disk, and a program 940, as shown in FIG. It can be realized by. The program 940 is read into a memory from an external computer-readable recording medium when the information processing device 930 is started up, and controls the operation of the arithmetic processing unit 910. And a data transfer unit 65.
 以上のように構成されたストレージ装置6は、以下のように動作する。 The storage device 6 configured as described above operates as follows.
 ストレージ装置6のコントローラ61は、ネットワーク7を介してホストコンピュータ8から仮想記憶媒体63に対するアクセス要求を受信すると、仮想記憶媒体63上のアクセス対象領域を部分領域に分割する。好ましくは、コントローラ61は、仮想記憶媒体63上のアクセス対象領域を、高々1つの記憶媒体64の領域から構成される部分領域に分割する。また好ましくは、コントローラ61は、部分領域の個数が最小となるように、仮想記憶媒体63上のアクセス対象領域を部分領域に分割する。 When the controller 61 of the storage device 6 receives an access request for the virtual storage medium 63 from the host computer 8 via the network 7, the controller 61 divides the access target area on the virtual storage medium 63 into partial areas. Preferably, the controller 61 divides the access target area on the virtual storage medium 63 into a partial area composed of at most one area of the storage medium 64. Preferably, the controller 61 divides the access target area on the virtual storage medium 63 into partial areas so that the number of partial areas is minimized.
 次に、コントローラ61は、部分領域毎のバッファ621をメモリ62に確保する。次に、コントローラ61は、部分領域毎に、部分領域に対応する記憶媒体64の領域と部分領域に対応するバッファ621との間のデータ転送を行う。また、コントローラ61は、データ転送部65による部分領域に対応するバッファ621とホストメモリ81における部分領域に対応する領域との間のデータ転送を行う。 Next, the controller 61 secures a buffer 621 for each partial area in the memory 62. Next, for each partial area, the controller 61 performs data transfer between the area of the storage medium 64 corresponding to the partial area and the buffer 621 corresponding to the partial area. Further, the controller 61 transfers data between the buffer 621 corresponding to the partial area and the area corresponding to the partial area in the host memory 81 by the data transfer unit 65.
 例えば、コントローラ61は、アクセス要求の種類がリード要求であるとき、部分領域毎に、部分領域に対応する記憶媒体64の領域から部分領域に対応するバッファ621へのデータ転送を行い、当該データ転送の完了後に、上記バッファ621からホストメモリ81における部分領域に対応する領域へのデータ転送を開始する。また、例えば、コントローラ61は、アクセス要求の種類がライト要求であるとき、部分領域毎に、ホストメモリ81における部分領域に対応する領域から部分領域に対応するバッファ621へのデータ転送を行い、当該データ転送の完了後に、上記バッファ621から部分領域に対応する記憶媒体64の領域へのデータ転送を開始する。 For example, when the type of the access request is a read request, the controller 61 performs, for each partial area, data transfer from the area of the storage medium 64 corresponding to the partial area to the buffer 621 corresponding to the partial area. Is completed, the data transfer from the buffer 621 to the area corresponding to the partial area in the host memory 81 is started. Further, for example, when the type of the access request is a write request, the controller 61 performs data transfer for each partial area from the area corresponding to the partial area in the host memory 81 to the buffer 621 corresponding to the partial area. After the data transfer is completed, the data transfer from the buffer 621 to the area of the storage medium 64 corresponding to the partial area is started.
 このように本実施形態に係るストレージ装置6によれば、ホストコンピュータ8から仮想記憶媒体63に対するアクセス性能が向上する。その理由は、ストレージ装置6は、アクセス要求によってアクセスされる仮想記憶媒体63上のアクセス対象領域を部分領域に分割し、部分領域毎のバッファ621を確保し、部分領域毎に、部分領域に対応する記憶媒体64の領域と部分領域に対応するバッファ621との間のデータ転送と、部分領域に対応するバッファ621とホストメモリ81における部分領域に対応する領域との間のデータ転送とを行うため、リード要求の場合、バッファ621にリードデータが格納された部分領域からホストメモリへのデータ転送を開始でき、ライト要求の場合、バッファ621にライトデータが格納された部分領域から記録媒体への書き込みを開始できるためである。 As described above, according to the storage device 6 according to the present embodiment, the access performance from the host computer 8 to the virtual storage medium 63 is improved. The reason is that the storage device 6 divides the access target area on the virtual storage medium 63 accessed by the access request into partial areas, secures a buffer 621 for each partial area, and To transfer data between the area of the storage medium 64 and the buffer 621 corresponding to the partial area, and between the buffer 621 corresponding to the partial area and the area corresponding to the partial area in the host memory 81. In the case of a read request, data transfer from the partial area where the read data is stored in the buffer 621 to the host memory can be started, and in the case of a write request, writing from the partial area where the write data is stored in the buffer 621 to the recording medium This is because it is possible to start.
 以上、上記各実施形態を参照して本発明を説明したが、本発明は、上述した実施形態に限定されるものではない。本発明の構成や詳細には、本発明の範囲内で当業者が理解しうる様々な変更をすることができる。 Although the present invention has been described with reference to the above embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
 なお、本発明は、日本国にて2018年6月22日に特許出願された特願2018-119240の特許出願に基づく優先権主張の利益を享受するものであり、当該特許出願に記載された内容は、全て本明細書に含まれるものとする。 The present invention enjoys the benefit of the priority claim based on the patent application of Japanese Patent Application No. 2018-119240 filed in Japan on June 22, 2018, and is described in the patent application. The contents are all included in this specification.
 本発明は、計算機に接続された記憶媒体の領域から構成された仮想記憶媒体を、ネットワーク経由で他の計算機に提供するサービス等に利用できる。 According to the present invention, a virtual storage medium configured from a storage medium area connected to a computer can be used for a service or the like provided to another computer via a network.
 上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
[付記1]
 複数の記憶媒体の領域から構成された仮想記憶媒体に対するアクセスを提供し、ホストからネットワークを経由して前記仮想記憶媒体に対するアクセス要求を受信するコントローラと、
 前記コントローラが接続されたノードと前記ホストのメモリとの間のデータ転送手段とを備え、
 前記コントローラは、前記アクセス要求によってアクセスされる前記仮想記憶媒体上のアクセス対象領域を部分領域に分割し、前記部分領域毎のバッファを確保し、前記部分領域毎に、前記部分領域に対応する前記記憶媒体の領域と前記部分領域に対応する前記バッファとの間のデータ転送と、前記データ転送手段による前記部分領域に対応する前記バッファと前記ホストの前記メモリにおける前記部分領域に対応する領域との間のデータ転送とを制御するように構成されている
ストレージ装置。
[付記2]
 前記コントローラは、前記分割では、前記アクセス対象領域を、高々1つの前記記憶媒体の領域から構成される前記部分領域に分割する
付記1に記載のストレージ装置。
[付記3]
 前記コントローラは、前記分割では、前記部分領域の個数が最小となるように分割する
付記2に記載のストレージ装置。
[付記4]
 前記コントローラは、
 前記ホストから、前記アクセス要求の種類と、前記アクセス対象領域を指し示す第1のアドレス情報と、前記アクセス対象領域との間でデータを送受信する前記メモリ上の転送メモリ領域を指し示す第2のアドレス情報とを取得するアクセス要求受信手段を備える
付記3に記載のストレージ装置。
[付記5]
 前記コントローラは、
 前記アクセス対象領域を、高々1つの前記記憶媒体の領域から構成される前記部分領域に分割し、それぞれの前記部分領域のサイズと、それぞれの前記部分領域に対応する前記記憶媒体の識別子および前記記憶媒体の領域である転送ストレージ領域を指し示す第3のアドレス情報を求める転送ストレージ領域算出手段を備える
付記4に記載のストレージ装置。
[付記6]
 前記コントローラは、
 前記転送メモリ領域を、それぞれの前記部分領域に対応する部分転送メモリ領域に分割し、それぞれの前記部分転送メモリ領域を指し示す第4のアドレス情報を求める転送メモリ領域算出手段を備える
付記5に記載のストレージ装置。
[付記7]
 前記コントローラは、
 前記部分領域毎に、前記ノードに前記バッファを確保するアクセス処理実行管理手段を備える
付記6に記載のストレージ装置。
[付記8]
 前記コントローラは、
 前記部分領域に対応する前記転送ストレージ領域と前記部分領域に対応する前記バッファとの間のデータ転送を制御するデータ転送制御手段を備える
付記7に記載のストレージ装置。
[付記9]
 前記データ転送制御手段は、前記部分領域に対応する前記バッファと前記部分領域に対応する前記部分転送メモリ領域との間の前記データ転送手段によるデータ転送を制御する
付記8に記載のストレージ装置。
[付記10]
 前記コントローラは、
 前記仮想記憶媒体の領域と前記複数の記憶媒体の領域とを対応付ける情報を記憶するマッピングテーブルを備える
付記9に記載のストレージ装置。
[付記11]
 前記コントローラは、
 前記部分領域毎に、前記部分領域に対応する、前記部分転送メモリ領域を指し示す前記第4のアドレス情報、前記記憶媒体の識別子、前記転送ストレージ領域を指し示す前記第3のアドレス情報、および前記サイズを含む転送ペアの情報を記憶するアクセス処理テーブルを備える
付記10に記載のストレージ装置。
[付記12]
 前記コントローラは、前記アクセス要求の種類がリード要求であるとき、前記部分領域毎に、前記部分領域に対応する前記記憶媒体の領域から前記部分領域に対応する前記バッファへのデータ転送を行い、前記部分領域に対応する前記記憶媒体の領域から前記部分領域に対応する前記バッファへのデータ転送の完了後に、前記部分領域に対応する前記バッファから前記ホストの前記メモリにおける前記部分領域に対応する領域へのデータ転送を開始するように構成されている
付記1乃至11の何れかに記載のストレージ装置。
[付記13]
 前記コントローラは、前記アクセス要求の種類がライト要求であるとき、前記部分領域毎に、前記ホストの前記メモリにおける前記部分領域に対応する領域から前記部分領域に対応する前記バッファへのデータ転送を行い、前記ホストの前記メモリにおける前記部分領域に対応する領域から前記部分領域に対応する前記バッファへのデータ転送の完了後に、前記部分領域に対応する前記バッファから前記部分領域に対応する前記記憶媒体の領域へのデータ転送を開始するように構成されている
付記1乃至12の何れかに記載のストレージ装置。
[付記14]
 前記データ転送手段は、RDMA(Remote Direct Memory Access)を行うように構成されている
付記1乃至13の何れかに記載のストレージ装置。
[付記15]
 複数の記憶媒体の領域から構成された仮想記憶媒体に対するアクセスを提供し、ホストからネットワークを経由して前記仮想記憶媒体に対するアクセス要求を受信するコントローラが接続されたノードと前記ホストのメモリとの間のデータ転送方法であって、
 前記アクセス要求によってアクセスされる前記仮想記憶媒体上のアクセス対象領域を部分領域に分割し、
 前記部分領域毎のバッファを確保し、
 前記部分領域毎に、前記部分領域に対応する前記記憶媒体の領域と前記部分領域に対応する前記バッファとの間のデータ転送と、前記部分領域に対応する前記バッファと前記ホストの前記メモリにおける前記部分領域に対応する領域との間のデータ転送とを行う
データ転送方法。
[付記16]
 コンピュータを、
 複数の記憶媒体の領域から構成された仮想記憶媒体に対するアクセスを提供し、ホストからネットワークを経由して前記仮想記憶媒体に対するアクセス要求を受信するコントローラと、
 前記コントローラが接続されたノードと前記ホストのメモリとの間のデータ転送手段として機能させ、
 前記コントローラは、前記アクセス要求によってアクセスされる前記仮想記憶媒体上のアクセス対象領域を部分領域に分割し、前記部分領域毎のバッファを確保し、前記部分領域毎に、前記部分領域に対応する前記記憶媒体の領域と前記部分領域に対応する前記バッファとの間のデータ転送と、前記データ転送手段による前記部分領域に対応する前記バッファと前記ホストの前記メモリにおける前記部分領域に対応する領域との間のデータ転送とを制御するように構成されている
プログラムを記録したコンピュータ読み取り可能な記録媒体。
Some or all of the above embodiments may be described as in the following supplementary notes, but are not limited thereto.
[Appendix 1]
A controller that provides access to a virtual storage medium configured from a plurality of storage medium areas and receives an access request to the virtual storage medium from a host via a network;
Data transfer means between the node connected to the controller and the memory of the host,
The controller divides an access target area on the virtual storage medium accessed by the access request into partial areas, reserves a buffer for each of the partial areas, and, for each of the partial areas, Data transfer between an area of a storage medium and the buffer corresponding to the partial area; and a transfer of the buffer corresponding to the partial area by the data transfer unit and an area corresponding to the partial area in the memory of the host. A storage device configured to control data transfer between the storage device.
[Appendix 2]
The storage device according to claim 1, wherein the controller divides the access target area into the partial areas each including at most one area of the storage medium in the division.
[Appendix 3]
3. The storage apparatus according to claim 2, wherein the controller divides the partial area so as to minimize the number of the partial areas.
[Appendix 4]
The controller is
From the host, the type of the access request, first address information indicating the access target area, and second address information indicating a transfer memory area on the memory for transmitting and receiving data to and from the access target area 3. The storage device according to claim 3, further comprising an access request receiving unit that acquires the request.
[Appendix 5]
The controller is
The access target area is divided into the partial areas each including at most one area of the storage medium, the size of each of the partial areas, the identifier of the storage medium corresponding to each of the partial areas, and the storage area. 5. The storage apparatus according to claim 4, further comprising a transfer storage area calculation unit that obtains third address information indicating a transfer storage area that is a medium area.
[Appendix 6]
The controller is
6. The transfer memory area according to claim 5, further comprising: a transfer memory area calculating unit that divides the transfer memory area into partial transfer memory areas corresponding to the respective partial areas and obtains fourth address information indicating the respective partial transfer memory areas. Storage device.
[Appendix 7]
The controller is
7. The storage device according to claim 6, further comprising an access processing execution management unit that secures the buffer in the node for each of the partial areas.
[Appendix 8]
The controller is
8. The storage apparatus according to claim 7, further comprising a data transfer control unit that controls data transfer between the transfer storage area corresponding to the partial area and the buffer corresponding to the partial area.
[Appendix 9]
9. The storage device according to claim 8, wherein the data transfer control means controls data transfer by the data transfer means between the buffer corresponding to the partial area and the partial transfer memory area corresponding to the partial area.
[Appendix 10]
The controller is
The storage device according to claim 9, further comprising a mapping table that stores information that associates the area of the virtual storage medium with the area of the plurality of storage media.
[Supplementary Note 11]
The controller is
For each of the partial areas, the fourth address information indicating the partial transfer memory area, the identifier of the storage medium, the third address information indicating the transfer storage area, and the size corresponding to the partial area 11. The storage device according to appendix 10, further comprising an access processing table for storing information of the transfer pair including the information.
[Supplementary Note 12]
The controller, when the type of the access request is a read request, for each of the partial areas, performs data transfer from the area of the storage medium corresponding to the partial area to the buffer corresponding to the partial area, After the data transfer from the area of the storage medium corresponding to the partial area to the buffer corresponding to the partial area is completed, from the buffer corresponding to the partial area to the area corresponding to the partial area in the memory of the host 12. The storage device according to any one of supplementary notes 1 to 11, configured to start the data transfer of (1).
[Appendix 13]
When the type of the access request is a write request, the controller performs, for each of the partial areas, data transfer from the area corresponding to the partial area in the memory of the host to the buffer corresponding to the partial area. After completion of the data transfer from the area corresponding to the partial area in the memory of the host to the buffer corresponding to the partial area, the data of the storage medium corresponding to the partial area is read from the buffer corresponding to the partial area. 13. The storage device according to any one of Supplementary Notes 1 to 12, configured to start data transfer to the area.
[Appendix 14]
The storage device according to any one of supplementary notes 1 to 13, wherein the data transfer means is configured to perform RDMA (Remote Direct Memory Access).
[Appendix 15]
Between a node connected to a controller that provides access to a virtual storage medium composed of a plurality of storage medium areas and receives an access request to the virtual storage medium from a host via a network, and the memory of the host; Data transfer method,
Dividing an access target area on the virtual storage medium accessed by the access request into partial areas,
Securing a buffer for each partial area,
For each of the partial areas, data transfer between the area of the storage medium corresponding to the partial area and the buffer corresponding to the partial area, and the buffer corresponding to the partial area and the buffer in the memory of the host. A data transfer method for transferring data to and from an area corresponding to a partial area.
[Appendix 16]
Computer
A controller that provides access to a virtual storage medium configured from a plurality of storage medium areas and receives an access request to the virtual storage medium from a host via a network;
Causing the controller to function as data transfer means between the connected node and the memory of the host,
The controller divides an access target area on the virtual storage medium accessed by the access request into partial areas, reserves a buffer for each of the partial areas, and, for each of the partial areas, Data transfer between an area of a storage medium and the buffer corresponding to the partial area; and a transfer of the buffer corresponding to the partial area by the data transfer unit and an area corresponding to the partial area in the memory of the host. A computer-readable recording medium recording a program configured to control data transfer between the computer and the computer.
1 ホスト
10 ホストメモリ
11 ホスト通信部
12 アプリケーション
2 ターゲットノード
20 ターゲットメモリ
200 ターゲットバッファ
21 ターゲット通信部
22 コントローラ
221 アクセス要求受信部
222 マッピングテーブル
2221 マッピングエントリ
2222 論理アドレス
2223 記憶媒体識別子
2224 物理アドレス
2225 マッピングサイズ
223 転送ストレージ領域算出部
224 転送メモリ領域算出部
225 アクセス処理テーブル
2251 アクセス要求エントリ
2252 アクセス種別
2253 転送ペア
2254 メモリアドレス
2255 ストレージ識別子
2256 記憶媒体アドレス
2257 転送サイズ
226 アクセス処理実行管理部
227 データ転送制御部
23 仮想記憶媒体
24 記憶媒体
3 ネットワーク
41 記憶領域
42 マッピングテーブル
421 論理アドレス
422 記憶媒体識別子
423 物理アドレス
43 転送ストレージ領域
51 アクセス対象領域
52 転送ストレージ領域
53 転送メモリ領域
6 ストレージ装置
61 コントローラ
62 メモリ
621 バッファ
63 仮想記憶媒体
64 記憶媒体
7 ネットワーク
8 ホストコンピュータ
81 ホストメモリ
910 演算処理部
920 記憶部
930 情報処理装置
940 プログラム
1 Host 10 Host Memory 11 Host Communication Unit 12 Application 2 Target Node 20 Target Memory 200 Target Buffer 21 Target Communication Unit 22 Controller 221 Access Request Receiving Unit 222 Mapping Table 2221 Mapping Entry 2222 Logical Address 2223 Storage Medium Identifier 2224 Physical Address 2225 Mapping Size 223 Transfer storage area calculation section 224 Transfer memory area calculation section 225 Access processing table 2251 Access request entry 2252 Access type 2253 Transfer pair 2254 Memory address 2255 Storage identifier 2256 Storage medium address 2257 Transfer size 226 Access processing execution management section 227 Data transfer control section 23 virtual storage medium 24 storage medium 3 network 4 1 storage area 42 mapping table 421 logical address 422 storage medium identifier 423 physical address 43 transfer storage area 51 access target area 52 transfer storage area 53 transfer memory area 6 storage device 61 controller 62 memory 621 buffer 63 virtual storage medium 64 storage medium 7 network 8 host computer 81 host memory 910 arithmetic processing unit 920 storage unit 930 information processing device 940 program

Claims (16)

  1.  複数の記憶媒体の領域から構成された仮想記憶媒体に対するアクセスを提供し、ホストからネットワークを経由して前記仮想記憶媒体に対するアクセス要求を受信するコントローラと、
     前記コントローラが接続されたノードと前記ホストのメモリとの間のデータ転送手段とを備え、
     前記コントローラは、前記アクセス要求によってアクセスされる前記仮想記憶媒体上のアクセス対象領域を部分領域に分割し、前記部分領域毎のバッファを確保し、前記部分領域毎に、前記部分領域に対応する前記記憶媒体の領域と前記部分領域に対応する前記バッファとの間のデータ転送と、前記データ転送手段による前記部分領域に対応する前記バッファと前記ホストの前記メモリにおける前記部分領域に対応する領域との間のデータ転送とを制御するように構成されている
    ストレージ装置。
    A controller that provides access to a virtual storage medium configured from a plurality of storage medium areas and receives an access request to the virtual storage medium from a host via a network;
    Data transfer means between the node connected to the controller and the memory of the host,
    The controller divides an access target area on the virtual storage medium accessed by the access request into partial areas, reserves a buffer for each of the partial areas, and, for each of the partial areas, Data transfer between an area of a storage medium and the buffer corresponding to the partial area; and a transfer of the buffer corresponding to the partial area by the data transfer unit and an area corresponding to the partial area in the memory of the host. A storage device configured to control data transfer between the storage device.
  2.  前記コントローラは、前記分割では、前記アクセス対象領域を、高々1つの前記記憶媒体の領域から構成される前記部分領域に分割する
    請求項1に記載のストレージ装置。
    2. The storage device according to claim 1, wherein the controller divides the access target area into the partial areas each including at most one area of the storage medium.
  3.  前記コントローラは、前記分割では、前記部分領域の個数が最小となるように分割する
    請求項2に記載のストレージ装置。
    3. The storage device according to claim 2, wherein the controller performs the division such that the number of the partial areas is minimized in the division.
  4.  前記コントローラは、
     前記ホストから、前記アクセス要求の種類と、前記アクセス対象領域を指し示す第1のアドレス情報と、前記アクセス対象領域との間でデータを送受信する前記メモリ上の転送メモリ領域を指し示す第2のアドレス情報とを取得するアクセス要求受信手段を備える
    請求項3に記載のストレージ装置。
    The controller is
    From the host, the type of the access request, first address information indicating the access target area, and second address information indicating a transfer memory area on the memory for transmitting and receiving data to and from the access target area 4. The storage device according to claim 3, further comprising an access request receiving unit that acquires the request.
  5.  前記コントローラは、
     前記アクセス対象領域を、高々1つの前記記憶媒体の領域から構成される前記部分領域に分割し、それぞれの前記部分領域のサイズと、それぞれの前記部分領域に対応する前記記憶媒体の識別子および前記記憶媒体の領域である転送ストレージ領域を指し示す第3のアドレス情報を求める転送ストレージ領域算出手段を備える
    請求項4に記載のストレージ装置。
    The controller is
    The access target area is divided into the partial areas each including at most one area of the storage medium, the size of each of the partial areas, the identifier of the storage medium corresponding to each of the partial areas, and the storage area. 5. The storage apparatus according to claim 4, further comprising a transfer storage area calculating unit that obtains third address information indicating a transfer storage area that is a medium area.
  6.  前記コントローラは、
     前記転送メモリ領域を、それぞれの前記部分領域に対応する部分転送メモリ領域に分割し、それぞれの前記部分転送メモリ領域を指し示す第4のアドレス情報を求める転送メモリ領域算出手段を備える
    請求項5に記載のストレージ装置。
    The controller is
    6. The transfer memory area calculating unit according to claim 5, further comprising: a transfer memory area calculating unit that divides the transfer memory area into partial transfer memory areas corresponding to the respective partial areas, and obtains fourth address information indicating the respective partial transfer memory areas. Storage device.
  7.  前記コントローラは、
     前記部分領域毎に、前記ノードに前記バッファを確保するアクセス処理実行管理手段を備える
    請求項6に記載のストレージ装置。
    The controller is
    7. The storage apparatus according to claim 6, further comprising an access processing execution management unit that secures the buffer in the node for each of the partial areas.
  8.  前記コントローラは、
     前記部分領域に対応する前記転送ストレージ領域と前記部分領域に対応する前記バッファとの間のデータ転送を制御するデータ転送制御手段を備える
    請求項7に記載のストレージ装置。
    The controller is
    The storage apparatus according to claim 7, further comprising a data transfer control unit that controls data transfer between the transfer storage area corresponding to the partial area and the buffer corresponding to the partial area.
  9.  前記データ転送制御手段は、前記部分領域に対応する前記バッファと前記部分領域に対応する前記部分転送メモリ領域との間の前記データ転送手段によるデータ転送を制御する
    請求項8に記載のストレージ装置。
    9. The storage device according to claim 8, wherein said data transfer control means controls data transfer by said data transfer means between said buffer corresponding to said partial area and said partial transfer memory area corresponding to said partial area.
  10.  前記コントローラは、
     前記仮想記憶媒体の領域と前記複数の記憶媒体の領域とを対応付ける情報を記憶するマッピングテーブルを備える
    請求項9に記載のストレージ装置。
    The controller is
    10. The storage device according to claim 9, further comprising a mapping table that stores information that associates an area of the virtual storage medium with an area of the plurality of storage media.
  11.  前記コントローラは、
     前記部分領域毎に、前記部分領域に対応する、前記部分転送メモリ領域を指し示す前記第4のアドレス情報、前記記憶媒体の識別子、前記転送ストレージ領域を指し示す前記第3のアドレス情報、および前記サイズを含む転送ペアの情報を記憶するアクセス処理テーブルを備える
    請求項10に記載のストレージ装置。
    The controller is
    For each of the partial areas, the fourth address information indicating the partial transfer memory area, the identifier of the storage medium, the third address information indicating the transfer storage area, and the size corresponding to the partial area 11. The storage device according to claim 10, further comprising an access processing table for storing information on a transfer pair including the information.
  12.  前記コントローラは、前記アクセス要求の種類がリード要求であるとき、前記部分領域毎に、前記部分領域に対応する前記記憶媒体の領域から前記部分領域に対応する前記バッファへのデータ転送を行い、前記部分領域に対応する前記記憶媒体の領域から前記部分領域に対応する前記バッファへのデータ転送の完了後に、前記部分領域に対応する前記バッファから前記ホストの前記メモリにおける前記部分領域に対応する領域へのデータ転送を開始するように構成されている
    請求項1乃至11の何れかに記載のストレージ装置。
    The controller, when the type of the access request is a read request, for each of the partial areas, performs data transfer from the area of the storage medium corresponding to the partial area to the buffer corresponding to the partial area, After the data transfer from the area of the storage medium corresponding to the partial area to the buffer corresponding to the partial area is completed, from the buffer corresponding to the partial area to the area corresponding to the partial area in the memory of the host The storage device according to any one of claims 1 to 11, wherein the storage device is configured to start the data transfer.
  13.  前記コントローラは、前記アクセス要求の種類がライト要求であるとき、前記部分領域毎に、前記ホストの前記メモリにおける前記部分領域に対応する領域から前記部分領域に対応する前記バッファへのデータ転送を行い、前記ホストの前記メモリにおける前記部分領域に対応する領域から前記部分領域に対応する前記バッファへのデータ転送の完了後に、前記部分領域に対応する前記バッファから前記部分領域に対応する前記記憶媒体の領域へのデータ転送を開始するように構成されている
    請求項1乃至12の何れかに記載のストレージ装置。
    When the type of the access request is a write request, the controller performs, for each of the partial areas, data transfer from the area corresponding to the partial area in the memory of the host to the buffer corresponding to the partial area. After completion of the data transfer from the area corresponding to the partial area in the memory of the host to the buffer corresponding to the partial area, the data of the storage medium corresponding to the partial area is read from the buffer corresponding to the partial area. 13. The storage device according to claim 1, wherein the storage device is configured to start data transfer to an area.
  14.  前記データ転送手段は、RDMA(Remote Direct Memory Access)を行うように構成されている
    請求項1乃至13の何れかに記載のストレージ装置。
    14. The storage device according to claim 1, wherein the data transfer unit is configured to perform RDMA (Remote Direct Memory Access).
  15.  複数の記憶媒体の領域から構成された仮想記憶媒体に対するアクセスを提供し、ホストからネットワークを経由して前記仮想記憶媒体に対するアクセス要求を受信するコントローラが接続されたノードと前記ホストのメモリとの間のデータ転送方法であって、
     前記アクセス要求によってアクセスされる前記仮想記憶媒体上のアクセス対象領域を部分領域に分割し、
     前記部分領域毎のバッファを確保し、
     前記部分領域毎に、前記部分領域に対応する前記記憶媒体の領域と前記部分領域に対応する前記バッファとの間のデータ転送と、前記部分領域に対応する前記バッファと前記ホストの前記メモリにおける前記部分領域に対応する領域との間のデータ転送とを行う
    データ転送方法。
    Between a node connected to a controller that provides access to a virtual storage medium composed of a plurality of storage medium areas and receives an access request to the virtual storage medium from a host via a network, and the memory of the host; Data transfer method,
    Dividing an access target area on the virtual storage medium accessed by the access request into partial areas,
    Securing a buffer for each partial area,
    For each of the partial areas, data transfer between the area of the storage medium corresponding to the partial area and the buffer corresponding to the partial area, and the buffer corresponding to the partial area and the buffer in the memory of the host. A data transfer method for transferring data to and from an area corresponding to a partial area.
  16.  コンピュータを、
     複数の記憶媒体の領域から構成された仮想記憶媒体に対するアクセスを提供し、ホストからネットワークを経由して前記仮想記憶媒体に対するアクセス要求を受信するコントローラと、
     前記コントローラが接続されたノードと前記ホストのメモリとの間のデータ転送手段として機能させ、
     前記コントローラは、前記アクセス要求によってアクセスされる前記仮想記憶媒体上のアクセス対象領域を部分領域に分割し、前記部分領域毎のバッファを確保し、前記部分領域毎に、前記部分領域に対応する前記記憶媒体の領域と前記部分領域に対応する前記バッファとの間のデータ転送と、前記データ転送手段による前記部分領域に対応する前記バッファと前記ホストの前記メモリにおける前記部分領域に対応する領域との間のデータ転送とを制御するように構成されている
    プログラムを記録したコンピュータ読み取り可能な記録媒体。
    Computer
    A controller that provides access to a virtual storage medium configured from a plurality of storage medium areas and receives an access request to the virtual storage medium from a host via a network;
    Causing the controller to function as data transfer means between the connected node and the memory of the host,
    The controller divides an access target area on the virtual storage medium accessed by the access request into partial areas, reserves a buffer for each of the partial areas, and, for each of the partial areas, Data transfer between an area of a storage medium and the buffer corresponding to the partial area; and a transfer of the buffer corresponding to the partial area by the data transfer unit and an area corresponding to the partial area in the memory of the host. A computer-readable recording medium recording a program configured to control data transfer between the computer and the computer.
PCT/JP2019/022542 2018-06-22 2019-06-06 Storage device WO2019244656A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020525500A JP7075067B2 (en) 2018-06-22 2019-06-06 Storage device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018119240 2018-06-22
JP2018-119240 2018-06-22

Publications (1)

Publication Number Publication Date
WO2019244656A1 true WO2019244656A1 (en) 2019-12-26

Family

ID=68983963

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/022542 WO2019244656A1 (en) 2018-06-22 2019-06-06 Storage device

Country Status (2)

Country Link
JP (1) JP7075067B2 (en)
WO (1) WO2019244656A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190040884A (en) * 2017-10-11 2019-04-19 삼성전자주식회사 SYSTEM AND Method for PROVIDING IN-Storage Acceleration(ISA) in DATA STORAGE Devices
US20230061873A1 (en) * 2020-05-08 2023-03-02 Huawei Technologies Co., Ltd. Remote direct memory access with offset values
US12001374B2 (en) 2022-09-26 2024-06-04 Samsung Electronics Co., Ltd. System and method for providing in-storage acceleration (ISA) in data storage devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010132655A2 (en) * 2009-05-15 2010-11-18 Oracle America, Inc. Cache coherent support for flash in a memory hierarchy
WO2016181528A1 (en) * 2015-05-13 2016-11-17 株式会社日立製作所 Storage device
WO2016194979A1 (en) * 2015-06-02 2016-12-08 日本電気株式会社 Storage system, storage control device, storage control method, and program

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62202242A (en) * 1986-02-28 1987-09-05 Nec Corp Mapping system for virtual disk device
JP6253514B2 (en) * 2014-05-27 2017-12-27 ルネサスエレクトロニクス株式会社 Processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010132655A2 (en) * 2009-05-15 2010-11-18 Oracle America, Inc. Cache coherent support for flash in a memory hierarchy
WO2016181528A1 (en) * 2015-05-13 2016-11-17 株式会社日立製作所 Storage device
WO2016194979A1 (en) * 2015-06-02 2016-12-08 日本電気株式会社 Storage system, storage control device, storage control method, and program

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190040884A (en) * 2017-10-11 2019-04-19 삼성전자주식회사 SYSTEM AND Method for PROVIDING IN-Storage Acceleration(ISA) in DATA STORAGE Devices
JP2019075109A (en) * 2017-10-11 2019-05-16 三星電子株式会社Samsung Electronics Co.,Ltd. Data storage device and bridge device
JP7137430B2 (en) 2017-10-11 2022-09-14 三星電子株式会社 Data storage device and bridging device
US11487696B2 (en) 2017-10-11 2022-11-01 Samsung Electronics Co., Ltd. System and method for providing in-storage acceleration (ISA) in data storage devices
KR102513924B1 (en) 2017-10-11 2023-03-27 삼성전자주식회사 SYSTEM AND Method for PROVIDING IN-Storage Acceleration(ISA) in DATA STORAGE Devices
US20230061873A1 (en) * 2020-05-08 2023-03-02 Huawei Technologies Co., Ltd. Remote direct memory access with offset values
US11949740B2 (en) * 2020-05-08 2024-04-02 Huawei Technologies Co., Ltd. Remote direct memory access with offset values
US12001374B2 (en) 2022-09-26 2024-06-04 Samsung Electronics Co., Ltd. System and method for providing in-storage acceleration (ISA) in data storage devices

Also Published As

Publication number Publication date
JP7075067B2 (en) 2022-05-25
JPWO2019244656A1 (en) 2021-06-10

Similar Documents

Publication Publication Date Title
US8650381B2 (en) Storage system using real data storage area dynamic allocation method
US11397668B2 (en) Data read/write method and apparatus, and storage server
US8001323B2 (en) Network storage system, management method therefor, and control program product therefor
JP2003256150A (en) Storage control device and control method for storage control device
US20070174333A1 (en) Method and system for balanced striping of objects
WO2010086921A1 (en) Storage system
US8732381B2 (en) SAS expander for communication between drivers
JP2005011316A (en) Method and system for allocating storage area, and virtualization apparatus
US9760314B2 (en) Methods for sharing NVM SSD across a cluster group and devices thereof
JP2013531283A (en) Storage system including a plurality of storage devices having both a storage virtualization function and a capacity virtualization function
JP7467593B2 (en) Resource allocation method, storage device, and storage system - Patents.com
JP2005149276A (en) Information processing system, information processor and control method therefor, and program
US10387043B2 (en) Writing target file including determination of whether to apply duplication elimination
WO2019244656A1 (en) Storage device
US20050235005A1 (en) Computer system configuring file system on virtual storage device, virtual storage management apparatus, method and signal-bearing medium thereof
WO2014153931A1 (en) File storage method and device, access client and metadata server system
US9348513B2 (en) SAS virtual tape drive
US11144207B2 (en) Accelerating memory compression of a physically scattered buffer
US20230244417A1 (en) Storage node, storage device, and network chip
CN113805789A (en) Metadata processing method in storage device and related device
US20160283134A1 (en) Data replication across host systems via storage controller
KR101470857B1 (en) Network distributed file system and method using iSCSI storage system
JP7404988B2 (en) Storage control device, storage system and storage control program
JP7067256B2 (en) Data transfer device and data transfer method
US20160357479A1 (en) Storage control apparatus

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2020525500

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19822975

Country of ref document: EP

Kind code of ref document: A1