JP7075067B2 - Storage device - Google Patents

Storage device Download PDF

Info

Publication number
JP7075067B2
JP7075067B2 JP2020525500A JP2020525500A JP7075067B2 JP 7075067 B2 JP7075067 B2 JP 7075067B2 JP 2020525500 A JP2020525500 A JP 2020525500A JP 2020525500 A JP2020525500 A JP 2020525500A JP 7075067 B2 JP7075067 B2 JP 7075067B2
Authority
JP
Japan
Prior art keywords
area
storage medium
transfer
access
partial
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020525500A
Other languages
Japanese (ja)
Other versions
JPWO2019244656A1 (en
Inventor
周吾 小川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JPWO2019244656A1 publication Critical patent/JPWO2019244656A1/en
Application granted granted Critical
Publication of JP7075067B2 publication Critical patent/JP7075067B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

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)

Description

本発明は、ストレージ装置、データ転送方法、および記録媒体に関する。 The present invention relates to a storage device, a data transfer method, and a recording medium.

計算機システムにおけるストレージの共有、拡張を目的として、ストレージ装置に接続された記憶媒体の領域から構成された仮想的な記憶媒体(以下、仮想記憶媒体と記す)を、ネットワーク経由でホスト計算機(以下、ホストと記す)に提供することがある(例えば特許文献1参照)。 A virtual storage medium (hereinafter referred to as a virtual storage medium) composed of an area of a storage medium connected to a storage device for the purpose of sharing and expanding storage in a computer system is provided by a host computer (hereinafter referred to as a virtual storage medium) via a network. It may be provided to a host (referred to as a host) (see, for example, Patent Document 1).

そのようなストレージ装置は、仮想記憶媒体のアクセス対象領域を指定したリード要求をホストから受信すると、ストレージ装置にバッファを確保し、アクセス対象領域からデータをリードして上記バッファに格納する。このとき実際には、ストレージ装置は、アクセス対象領域に割り当てられた記憶媒体の領域からデータをリードしてバッファに格納する。そして、ストレージ装置は、全てのリードデータをバッファに格納し終えると、バッファからリードデータを読み出し、ネットワーク経由でホストのメモリへ転送する動作を開始する。 When such a storage device receives a read request specifying an access target area of the virtual storage medium from the host, such a storage device secures a buffer in the storage device, reads data from the access target area, and stores the data in the buffer. At this time, the storage device actually reads data from the storage medium area allocated to the access target area and stores it in the buffer. Then, when the storage device finishes storing all the read data in the buffer, the storage device starts the operation of reading the read data from the buffer and transferring the read data to the memory of the host via the network.

また、ストレージ装置は、仮想記憶媒体のアクセス対象領域を指定したライト要求をホストから受信すると、ストレージ装置にバッファを確保し、ホストのメモリに格納されたライトデータをネットワーク経由で上記バッファに転送する。そして、ストレージ装置は、全てのライトデータをバッファに格納し終えると、バッファからライトデータを読み出し、仮想記憶媒体のアクセス対象領域に書き込む。このとき実際には、ストレージ装置は、アクセス対象領域に割り当てられた記憶媒体の領域にライトデータを書き込む。 When the storage device receives a write request from the host that specifies the access target area of the virtual storage medium, the storage device secures a buffer in the storage device and transfers the write data stored in the host memory to the above buffer via the network. .. Then, when the storage device finishes storing all the write data in the buffer, the storage device reads the write data from the buffer and writes the write data in the access target area of the virtual storage medium. At this time, the storage device actually writes the write data to the storage medium area allocated to the access target area.

再特WO2016/002325Re-special WO 2016/002325

しかしながら、上述したストレージ装置では、リード要求の場合、仮想記憶媒体のアクセス対象領域に割り当てられた記憶媒体の領域の全てのリードデータがバッファに格納された後でなければ、バッファからホストのメモリへのデータ転送を開始できないため、ホストから仮想記憶媒体に対するリード性能が低下する。 However, in the above-mentioned storage device, in the case of a read request, the buffer is sent to the memory of the host only after all the read data in the storage medium area allocated to the access target area of the virtual storage medium has been stored in the buffer. Since the data transfer cannot be started, the read performance from the host to the virtual storage medium deteriorates.

また、上述したストレージ装置では、ライト要求の場合、ホストのメモリ上の全てのライトデータがバッファに格納された後でなければ、仮想記憶媒体のアクセス対象領域に割り当てられた記憶媒体の領域へバッファ上のライトデータを書き込めないため、ホストから仮想記憶媒体に対するライト性能が低下する。 Further, in the above-mentioned storage device, in the case of a write request, the buffer is buffered in the storage medium area allocated to the access target area of the virtual storage medium only after all the write data in the host memory is stored in the buffer. Since the above write data cannot be written, the write performance from the host to the virtual storage medium deteriorates.

本発明の目的は、上述した課題、すなわち、ホストから仮想記憶媒体に対するアクセス性能が低下する、という課題を解決するストレージ装置を提供することにある。 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 lowered.

本発明の一形態に係るストレージ装置は、
複数の記憶媒体の領域から構成された仮想記憶媒体に対するアクセスを提供し、ホストからネットワークを経由して前記仮想記憶媒体に対するアクセス要求を受信するコントローラと、
前記コントローラが接続されたノードと前記ホストのメモリとの間のデータ転送手段とを備え、
前記コントローラは、前記アクセス要求によってアクセスされる前記仮想記憶媒体上のアクセス対象領域を部分領域に分割し、前記部分領域毎のバッファを確保し、前記部分領域毎に、前記部分領域に対応する前記記憶媒体の領域と前記バッファとの間のデータ転送と、前記データ転送手段による前記部分領域に対応する前記バッファと前記ホストの前記メモリにおける前記部分領域に対応する領域との間のデータ転送とを制御するように構成されている。
The storage device according to one embodiment of the present invention is
A controller that provides access to a virtual storage medium composed of areas of a plurality of storage media and receives an access request to the virtual storage medium from a host via a network.
A data transfer means between the node to which the controller is connected and the memory of the host is provided.
The controller divides the access target area on the virtual storage medium accessed by the access request into partial areas, secures a buffer for each partial area, and corresponds to the partial area for each partial area. Data transfer between the area of the 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, the data transfer method according to another aspect of the present invention is:
Between the node to which the controller is connected and the memory of the host, which provides access to the virtual storage medium composed of areas of a plurality of storage media and receives an access request to the virtual storage medium from the host via the network. It is a data transfer method of
The access target area on the virtual storage medium accessed by the access request is divided into partial areas.
Secure a buffer for each partial area
For each partial area, data transfer between the storage medium area 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 means. Data transfer to and from the area corresponding to the partial area in the memory of the above.

また、本発明の他の形態に係るコンピュータ読み取り可能な記録媒体は、
コンピュータを、
複数の記憶媒体の領域から構成された仮想記憶媒体に対するアクセスを提供し、ホストからネットワークを経由して前記仮想記憶媒体に対するアクセス要求を受信するコントローラと、
前記コントローラが接続されたノードと前記ホストのメモリとの間のデータ転送手段として機能させ、
前記コントローラは、前記アクセス要求によってアクセスされる前記仮想記憶媒体上のアクセス対象領域を部分領域に分割し、前記部分領域毎のバッファを確保し、前記部分領域毎に、前記部分領域に対応する前記記憶媒体の領域と前記部分領域に対応する前記バッファとの間のデータ転送と、前記データ転送手段による前記部分領域に対応する前記バッファと前記ホストの前記メモリにおける前記部分領域に対応する領域との間のデータ転送とを制御するように構成されている
プログラムを記録する。
Further, the computer-readable recording medium according to another embodiment of the present invention is
Computer,
A controller that provides access to a virtual storage medium composed of areas of a plurality of storage media and receives an access request to the virtual storage medium from a host via a network.
It functions as a data transfer means between the node to which the controller is connected and the memory of the host.
The controller divides the access target area on the virtual storage medium accessed by the access request into partial areas, secures a buffer for each partial area, and corresponds to the partial area for each partial area. Data transfer between the area of the storage medium and the buffer corresponding to the partial area, and the area corresponding to the partial area in the memory of the host and the buffer corresponding to the partial area by the data transfer means. Records programs that are configured to control data transfer between.

本発明は上述した構成を有することにより、ホストから仮想記憶媒体に対するアクセス性能を高めることができる。 By having the above-mentioned configuration, the present invention can improve the access performance from the host to the virtual storage medium.

本発明の第1の実施形態における、全体のシステム構成を示す図である。It is a figure which shows the whole system configuration in the 1st Embodiment of this invention. 本発明の第1の実施形態における、アプリケーションからのアクセス要求に対する処理を実行するコントローラの構成を示す図である。It is a figure which shows the structure of the controller which executes the process for the access request from the application in 1st Embodiment of this invention. 本発明の第1の実施形態における、仮想記憶媒体の各領域にマッピングされる記憶媒体の識別子、アドレスの対応関係を管理するマッピングテーブルの形式を例示する図である。It is a figure which illustrates the format of the mapping table which manages the correspondence relation of the identifier and the address of the storage medium mapped to each area of the virtual storage medium in 1st Embodiment of this invention. 本発明の第1の実施形態における、転送ストレージ領域算出部がアクセス要求に対応する転送ストレージ領域を含む記憶媒体、及び記憶媒体上のアドレスを計算する手順を例示する図である。It is a figure which illustrates the procedure in which the transfer storage area calculation unit calculates the address on the storage medium including the transfer storage area corresponding to the access request, and the address on the storage medium in the 1st Embodiment of this invention. 本発明の第1の実施形態における、仮想記憶媒体上のアクセス対象の領域を表すアドレスとアクセスサイズから算出される、転送ストレージ領域と転送メモリ領域の先頭アドレスの対応関係を例示する図である。It is a figure which illustrates the correspondence relationship of the transfer storage area and the head address of a transfer memory area calculated from the address which represents the area of the access target on the virtual storage medium and the access size in 1st Embodiment of this invention. 本発明の第1の実施形態における、アプリケーションからのアクセス要求に対して必要となる、データ転送処理の情報を管理するアクセス処理テーブルの形式を例示する図である。It is a figure which illustrates the format of the access processing table which manages the information of the data transfer processing required for the access request from the application in the 1st Embodiment of this invention. 本発明の第1の実施形態における、アプリケーションから仮想記憶媒体に対するアクセス要求を、コントローラにおいて処理する手順を示したフローチャートである。It is a flowchart which showed the procedure which process | processed the access request from the application to the virtual storage medium in the controller in 1st Embodiment of this invention. 本発明の第1の実施形態における、アプリケーションから仮想記憶媒体に対するアクセス要求を、コントローラにおいて処理する手順を示したフローチャートである。It is a flowchart which showed the procedure which process | processed the access request from the application to the virtual storage medium in the controller in 1st Embodiment of this invention. 本発明の第1の実施形態における、コントローラに含まれるアクセス処理実行管理部がアクセス要求に対するデータ転送処理を実行する手順を示したフローチャートである。It is a flowchart which showed the procedure which the access process execution management part included in a controller execute a data transfer process for an access request in 1st Embodiment of this invention. 本発明の第1の実施形態における、コントローラに含まれるアクセス処理実行管理部がアクセス要求に対するデータ転送処理を実行する手順を示したフローチャートである。It is a flowchart which showed the procedure which the access process execution management part included in a controller execute a data transfer process for an access request in 1st Embodiment of this invention. 本発明の第2の実施形態に係るストレージ装置のブロック図である。It is a block diagram of the storage apparatus which concerns on 2nd Embodiment of this invention. 本発明の第2の実施形態に係るストレージ装置におけるコントローラおよびデータ転送部を実現するハードウェア構成の一例を示す図である。It is a figure which shows an example of the hardware composition which realizes the controller and the data transfer part in the storage apparatus which concerns on 2nd Embodiment of this invention.

次に本発明の実施の形態について図面を参照して詳細に説明する。 Next, embodiments of the present invention will be described in detail with reference to the drawings.

[第1の実施形態]
本実施形態は、複数の記憶媒体の記憶領域を組み合わせた仮想的な記憶媒体に対して、ネットワークを経由してアクセスを行う際に発生するボトルネックを解消して、アクセス性能の向上を図る技術に関する。以下、本実施形態の背景技術、本実施形態が解決しようとする課題、課題を解決するための手段の概要、本実施形態の構成、本実施形態の動作、本実施形態の効果について、順に説明する。
[First Embodiment]
The present embodiment is a technique for improving access performance by eliminating a bottleneck that occurs when accessing a virtual storage medium that is a combination of storage areas of a plurality of storage media via a network. Regarding. Hereinafter, the background techniques of the present embodiment, the problems to be solved by the present embodiment, the outline of the means for solving the problems, the configuration of the present embodiment, the operation of the present embodiment, and the effects of the present embodiment will be described in order. 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 Technique of the present embodiment]
Access to virtual storage media is carried out, for example, through iSCSI (Internet Small Computer Interface) or NVM Express over Fabrics (Non-Volatile Memory Express over Fabrics; registered trademarks; registered trademarks such as NVM; hereinafter referred to as NVM-. These are protocols that extend the general storage medium standards SCSI (Small Computer Interface) and NVM Express (Non-Volatile Memory Express; registered trademark; hereinafter referred to as NVMe) to access via a network, and are virtual. The storage medium is provided with the same access means as the storage medium of each standard connected to the computer.

また、これらの仮想記憶媒体に対するアクセスでは、ネットワークを介したデータ転送処理におけるオーバーヘッドの削減手段としてRDMA(Remote Direct Memory Access)が用いられる。RDMAはネットワークで接続された計算機間で、ネットワークカード(RDMA Network Interface Card;以下、RNICと記す)が指定されたメモリアドレスに対するデータ転送を自動的に行うことで、転送処理のオーバーヘッドを削減する。前述のiSCSIのRDMA拡張であるiSER(iSCSI Extensions for RDMA)やNVMe-oFでは、仮想記憶媒体を提供する計算機と、仮想記憶媒体にアクセスする計算機のデータ転送にRDMAを用いることで、オーバーヘッドを削減してアクセス性能の向上を図る。 Further, in the access to these virtual storage media, RDMA (Remote Direct Memory Access) is used as a means for reducing the overhead in the data transfer process via the network. RDMA reduces the overhead of transfer processing by automatically transferring data to a memory address designated by a network card (RDMA Network Interface Card; hereinafter referred to as RNIC) between computers connected by a network. In iSER (iSCSI Extensions for RDMA) and NVMe-oF, which are the above-mentioned RDMA extensions of iSCSI, overhead is reduced by using RDMA for data transfer between the computer that provides the virtual storage medium and the computer that accesses the virtual storage medium. To improve access performance.

[本実施形態が解決しようとする課題]
仮想記憶媒体のデータ転送に対してRDMAを用いる場合、RNICが自動的にデータ転送を行えるように、RDMAの開始前に転送対象となるデータの格納を完了する必要がある。そのため、仮想記憶媒体のリードアクセスのデータ転送においてRDMAを用いる場合、記憶媒体からリードされたデータが全て転送対象のメモリ領域であるバッファに格納されるまで待機してRDMA転送を開始する。
[Problems to be solved by this embodiment]
When RDMA is used for data transfer of a virtual storage medium, it is necessary to complete the storage of the data to be transferred before the start of RDMA so that the RNIC can automatically transfer the data. Therefore, when RDMA is used in the data transfer of the read access of the virtual storage medium, the RDMA transfer is started after waiting until all the data read from the storage medium is stored in the buffer which is the 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 region of a plurality of storage media such as RAID (Redundant Arrays of Expensive Disks). When a host accesses a virtual storage medium that is mapped to an area of a plurality of storage media, the area to be accessed may be mapped across a plurality of storage media. In this case, access is performed to each storage medium to be the mapping destination. That is, in the case of read access using RDMA for the above-mentioned data transfer, it is necessary to wait until the storage of the read result from all the storage media as the mapping destination in the buffer is completed and start the RDMA transfer.

つまり、仮想記憶媒体に対するホストからのリードアクセス先が複数の記憶媒体にマッピングされる場合、アクセスが完了した記憶媒体のリードデータを先に転送できず、ホストから仮想記憶媒体に対するリード性能が低下する。特に、例えばNAND Flashを記憶素子としたSSD(Solid State Drive)のように、内部状態に応じてアクセス時間が大きく変化する記憶媒体を用いる場合、リードの完了を待つ記憶媒体数が増加するほど、RDMA転送の開始までの待機時間が増加する。 That is, when the read access destination from the host to the virtual storage medium is mapped to a plurality of storage media, the read data of the storage medium that has been accessed cannot be transferred first, and the read performance from the host to the virtual storage medium deteriorates. .. In particular, when a storage medium whose access time changes greatly depending on the internal state, such as an SSD (Solid State Drive) using a NAND Flash as a storage element, is used, the more the number of storage media waiting for the completion of reading increases, the more the storage medium waits for the completion of reading. The waiting time until the start of RDMA transfer increases.

また、仮想記憶媒体に対するライトアクセスにRDMAを用いる場合も、全てのライトデータのバッファへの転送が完了するまで記憶媒体に対するライトを開始できず、仮想記憶媒体に対するライト性能が低下する。RDMAによるデータ転送はRNICが制御するため、転送途中のライトデータに関する状態の確認は困難である。つまり、ライト先の領域が複数の記憶媒体にマッピングされる場合、ホストからバッファへのデータ転送が完了している記憶媒体から先にライトアクセスを開始できず、性能低下の原因となる。 Further, even when RDMA is used for the write access to the virtual storage medium, the write to the storage medium cannot be started until the transfer of all the write data to the buffer is completed, and the write performance to the virtual storage medium is deteriorated. Since the data transfer by RDMA is controlled by RNIC, it is difficult to confirm the state of the write data during transfer. That is, when the write destination area is mapped to a plurality of storage media, the write access cannot be started first from the storage medium in which the data transfer from the host to the buffer is completed, which causes a deterioration in performance.

よって、仮想記憶媒体に対するアクセス先が複数の記憶媒体にマッピングされる場合の、RDMA転送の前後における待ち合わせ処理に起因するアクセス性能の低下が、本実施形態において解決する課題である。 Therefore, when the access destination for the virtual storage medium is mapped to a plurality of storage media, the deterioration of the access performance due to the wait process before and after the RDMA transfer is a problem to be solved in the present embodiment.

[課題を解決するための手段の概要]
仮想記憶媒体のアクセス性能低下の原因となる、RDMA転送の前後における待ち合わせ処理の回避、緩和には、リードデータ、ライトデータの転送処理の分割が必要である。データ転送処理の分割により、リードアクセスであれば記憶媒体からのリードが完了したデータから先に転送を開始できる。また、ライトアクセスであればホストからの転送が完了したデータから個別に記憶媒体に対するライトを開始できる。一方で、データ転送処理の分割は、仮想記憶媒体のアクセス処理におけるオーバーヘッドの増加につながる。よって、データ転送処理の分割は、待ち合わせ処理の回避に必要な最低限の数量とすることが望ましい。
[Outline of means for solving problems]
It is necessary to divide the read data and write data transfer processes in order to avoid or mitigate the wait process before and after the RDMA transfer, which causes the deterioration of the access performance of the virtual storage medium. By dividing the data transfer process, if it is a read access, the transfer can be started first from the data for which the read from the storage medium is completed. Further, in the case of write access, it is possible to individually start writing to the storage medium from the 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 into the minimum quantity necessary for avoiding the wait process.

本実施形態では、ネットワークを経由した仮想記憶媒体のアクセス先が複数の記憶媒体にマッピングされる場合に発生するデータ転送の前後における待ち合わせ処理を削減し、仮想記憶媒体のアクセス性能を向上させる手段を提供する。そのために、仮想記憶媒体に対するアクセス要求の処理について、アクセス要求先に対応する記憶媒体毎にアクセスと、そのアクセスに関連したデータのRDMA転送を独立して行う。アクセス要求に関する処理を記憶媒体毎に分離することで、記憶媒体のアクセス、RDMAによるデータ転送の完了において他の記憶媒体に関連した処理の待ち合わせを行うことなく、各記憶媒体に関連した処理を並列化することでアクセス処理の完了時間を短縮する。 In the present embodiment, there is a means for improving the access performance of the virtual storage medium by reducing the waiting process before and after the data transfer that occurs when the access destination of the virtual storage medium via the network is mapped to a plurality of storage media. offer. Therefore, regarding the processing of the access request to the virtual storage medium, the access to each storage medium corresponding to the access request destination and the RDMA transfer of the data related to the access are independently performed. By separating the processing related to the access request for each storage medium, the processing related to each storage medium can be performed in parallel without waiting for the processing related to other storage media in the access of the storage medium and the completion of the data transfer by RDMA. By making it, the completion time of access processing is shortened.

まず、仮想記憶媒体にアクセスを行うホストは、仮想記憶媒体に対するアクセスを提供する、ホストとは異なるノードであるターゲットノード上で動作するコントローラに対して、アクセス要求の種類(リード、ライト)と、仮想記憶媒体上のアクセス対象の領域を指し示すLBA(Logical Block Address)等のアドレス情報を送ることでアクセスを要求する。 First, the host accessing the virtual storage medium determines the type of access request (read, write) and the type of access request (read, write) to the controller operating on the target node, which is a node different from the host, which provides access to the virtual storage medium. Access is requested by sending address information such as LBA (Logical Block Nodes) indicating the area to be accessed on the virtual storage medium.

コントローラは、ホストからアクセス要求を受信すると、アクセス対象の領域の各部に対応する記憶媒体の識別子、及び記憶媒体内の領域を指し示すアドレスを、転送ストレージ領域として特定する。また、コントローラは、各記憶媒体の転送ストレージ領域について、仮想記憶媒体のアクセス対象の領域における対応箇所を表す、先頭からのオフセットを求める。 When the controller receives the access request from the host, the controller identifies 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 as the transfer storage area. Further, the controller obtains an offset from the beginning of the transfer storage area of each storage medium, which represents a corresponding portion in the access target area of the virtual storage medium.

また、コントローラは、仮想記憶媒体のアクセス対象の領域に対する、ホスト上のリードデータまたはライトデータを格納するメモリ領域を指すアドレス情報を事前に、またはアクセス要求と共に受け取る。そして、コントローラは、上記アドレス情報から、各転送ストレージ領域に対応するホストのメモリアドレス空間上のアドレスを、転送メモリ領域として求める。各転送メモリ領域のアドレスは、仮想記憶媒体のアクセス対象の領域において先頭からのオフセットで表される、メモリ空間上のアドレスとして求められる。 In addition, the controller receives address information indicating the memory area for storing read data or write data on the host for the area to be accessed of the virtual storage medium in advance or together with an access request. Then, the controller obtains the address on the memory address space of the host corresponding to each transfer storage area as the transfer memory area from the above address information. The address of each transfer memory area is obtained as an address on the memory space represented by an offset from the beginning in the area to be accessed of the virtual storage medium.

さらに、コントローラは、ターゲットノードのメモリ上に、転送ストレージ領域と転送メモリ領域の各組に対して、転送データを中継するためのバッファである、転送バッファを確保する。つまり、仮想記憶媒体のアクセス対象領域のマップ先である、各記憶媒体に対して転送バッファを確保する。コントローラは、記憶媒体に対するリードデータ、ライトデータを転送バッファに格納し、転送ストレージ領域との間でデータ転送を行う。また、コントローラは、RNICに対して、転送バッファとホストの転送メモリ領域との間で、リードデータ、ライトデータのRDMA転送を指示する。 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 secured for each storage medium that is a map 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 transfers data to and from the transfer storage area. Further, the controller instructs RNIC to transfer read data and write data by RDMA 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 makes 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 transfer the read data to and from the transfer memory area of the host for the transfer buffer corresponding to the storage medium for which the read access is completed. At this time, the controller starts RDMA transfer of the read data regardless of whether the storage of the read data from the transfer storage to the other transfer buffer is completed or incomplete. 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, when the access request from the host is a write, the controller instructs the RNIC to transfer the write data to RDMA between the transfer memory area of the host corresponding to each part of the access target area and the corresponding transfer buffer. Then, the controller performs write access in order from the storage medium corresponding to the transfer buffer in which the RDMA transfer is completed, and stores the write data in the transfer storage area. At this time, the controller starts the write access of the storage medium regardless of whether the RDMA transfer of the write data in the other transfer buffer is completed or incomplete. When the storage of all the write data from the transfer buffer to the transfer storage area on the storage medium is completed, the controller notifies the host of the completion of the write access request.

[本実施形態の構成]
図1は、本発明の第1の実施形態に係るストレージシステムの構成を例示する図である。図1を参照すると、本実施形態に係るコンピュータシステムは、ホスト1、ターゲットノード2、ネットワーク3を含む。ホスト1は、ホストコンピュータとも呼ぶ。ターゲットノード2は、ターゲットコンピュータあるいはストレージ装置とも呼ぶ。
[Structure of this embodiment]
FIG. 1 is a diagram illustrating a configuration of a storage system according to a 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. Host 1 is also called a host computer. The target node 2 is also referred to as 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. The host 1 operates an application 12 that requests access to the virtual storage medium 23 to the target node 2.

ホストメモリ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 from the application 12. The host memory 10 has an area for storing read data that is the result of a read request from the application 12 to the virtual storage medium 23 and write data 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 the memory of the host 1. Alternatively, the host memory 10 may be, for example, a GPU, FPGA, or other 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 / receives data between the host 1 and the target node 2 via the network 3. Further, 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のアクセス要求を行う。 Application 12 is software or hardware running on host 1. The application 12 requests the target node 2 to access the virtual storage medium 23.

ターゲットノード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に対するリードデータ、ライトデータを格納するためのバッファとして使用する。このバッファを、ターゲットバッファと定義する。 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 the target buffer.

ターゲット通信部21は、ネットワーク3を介してターゲットノード2とホスト1との間でデータの送受信を行う。また、ターゲット通信部21は、ターゲットメモリ20、及びホスト1に接続されたホストメモリ10との間でRDMA転送を行う。 The target communication unit 21 transmits / receives data between the target node 2 and the host 1 via the network 3. Further, 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 for the virtual storage medium 23. The controller 22 receives an access request from the application 12 to the virtual storage medium 23. In order to execute the access request, 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. ..

仮想記憶媒体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 as a storage medium from the application 12 of the host 1 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に示した単体のデバイスによる構成に限定されず、複数存在してもよい。 The storage medium 24 is mapped to the area of the virtual storage medium 23. 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 an SSD (Solid State Drive) connected to the target node 2 via a bus or a network. The storage medium 24 is not limited to the configuration of the single device shown in FIG. 1, and a plurality of storage media 24 may exist.

ネットワーク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 transfers between host 1 and target node 2. Further, the network 3 is not limited to the form in which only the host 1 and the target node 2 are connected as shown in FIG. For example, a node (computer) other than the host 1 and the target node 2 may be connected to the network 3. Further, 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 an access request to the virtual storage medium 23 from the application 12 running on the host 1 and executes the configuration is described in 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. Further, 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 the type of access request indicating whether it is a read or a write. Further, the access request includes a logical address indicating the beginning of the access target area on the virtual storage medium 23. Further, the access request includes a memory address pointing to the beginning of a storage area (transfer memory area) of 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 in order 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) in the storage medium 24 specified by the identifier. The correspondence between (called) and the logical address in the virtual storage medium 23 is 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 the information contained in the mapping table 222. The mapping table 222 records the identifier of the mapping destination storage medium 24, the correspondence between the logical address of the block in the virtual storage medium 23 and the physical address in the mapping destination storage medium 24 for each block on the virtual storage medium 23. Includes the mapping entry 2221 made. The block on the virtual storage medium 23 managed by one mapping entry 2221 in the mapping table 222 is called a logical block, and the block of the storage medium 24 mapped to the logical block is called a physical block. Each mapping entry 2221 is a storage medium identifier 2223 representing an identifier of a logical address 2222 which is a start address of each logical block of the virtual storage medium 23, a storage medium 24 which is a mapping destination of each logical block, and a storage medium identifier thereof. In the storage medium 24 represented by 2223, the physical address 2224 which is the start address of the physical block to be mapped and the mapping size 2225 which represents the size of the logical block to be mapped and the physical block are included.

例えば、マッピングテーブル222の1行目のマッピングエントリ2221は、仮想記憶媒体23における論理アドレス0x00400000を先頭アドレスとする64MiBのサイズの論理ブロックは、記憶媒体識別子1の記憶媒体24における物理アドレス0x08000000を先頭にする64MiBのサイズの物理ブロックにマッピングされていることを表している。また、マッピングテーブル222の2行目のマッピングエントリ2221は、仮想記憶媒体23における論理アドレス0x00800000を先頭アドレスとする128MiBのサイズの論理ブロックは、記憶媒体識別子1の記憶媒体24における物理アドレス0xa0000000を先頭アドレスとする128MiBのサイズの物理ブロックにマッピングされていることを表している。 For example, in the mapping entry 2221 in the first row of the mapping table 222, a logical block having a size of 64 MiB having a logical address 0x00400000 in the virtual storage medium 23 as a head address has a physical address 0x08000000 in the storage medium 24 of the storage medium identifier 1. It means that it is mapped to a physical block with a size of 64 MiB. Further, in the mapping entry 2221 in the second row of the mapping table 222, the logical block having a size of 128 MiB having the logical address 0x00800000 in the virtual storage medium 23 as the head address has the physical address 0xa00000 in the storage medium 24 of the storage medium identifier 1 at the head. It indicates that it 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 in the first row of the mapping table 222 of FIG. 3, one logical block in the virtual storage medium 23 is mapped to the storage area of at most one storage medium 24. Further, as illustrated in the mapping entries 2221 in the first row and the second row of the mapping table 222 in FIG. 3, two logical blocks having adjacent logical addresses in the virtual storage medium 23 are mapped to storage media different from each other. ing. In this way, by mapping each logical block in the virtual storage medium 23 to the storage area of at most one storage medium 24 and mapping the two adjacent logical blocks to different storage media, the data transfer process can be performed. The split can be the minimum quantity required to avoid the wait 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 be in any format as long as it can determine the correspondence between the identifier and the logical address of the storage medium 24 corresponding to each logical block of the virtual storage medium 23 and the physical address. For example, when each mapping entry 2221 corresponds to each logical block in which the area of the virtual storage medium 23 is divided by a fixed size from the beginning, 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 that 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 from the chunk size, which is a region continuously mapped to each storage medium 24. The destination can be calculated. At this time, the information of each entry in the mapping table 222 excluding the RAID configuration information is unnecessary.

転送ストレージ領域算出部223は、マッピングテーブル222に基づいて、仮想記憶媒体23のアクセス対象領域の或る論理アドレスから、その論理アドレスを含む論理ブロックに割り当てられた物理ブロックを有する記憶媒体24の識別子と、その論理アドレスに対応する物理アドレスと、その物理アドレスから当該記憶媒体24の連続領域にマッピングされるサイズとを決定する。また、転送ストレージ領域算出部223は、アクセス要求先の領域における、転送ストレージ領域に対応する領域の位置を示す、先頭からのオフセットを計算する。 The transfer storage area calculation unit 223 is an identifier of a storage medium 24 having a physical block assigned to a logical block including the logical address from a certain logical address of the access target area of the virtual storage medium 23 based on the mapping table 222. And the physical address corresponding to the logical address, and the size mapped from the physical address to the continuous area of the storage medium 24 are determined. Further, the transfer storage area calculation unit 223 calculates an offset from the beginning indicating the position of the area corresponding to the transfer storage area in the access request destination area.

図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 operation explanatory diagram of the transfer storage area calculation unit 223. Referring to FIG. 4, one logical block 41L of the virtual storage medium 23 is assigned to one physical block 41P of the storage medium 24. The first logical address of the logical block 41L is Lb, the first physical address of the physical block 41P is Pb, and the identifier of the storage medium 24 is x. When the logical address La on the logical block 41L is given from the access request receiving unit 221, the transfer storage area calculation unit 223 refers to the mapping entry 2221 corresponding to the logical block 41L in the mapping table 42 to obtain 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 an offset (La-Lb) of the logical address La by subtracting the first logical address Lb of the logical block 41L from the logical address La. Then, the transfer storage area calculation unit 223 adds the offset to the physical address Pb at the head of the physical block 41P to calculate the physical address Pa corresponding to the logical address La. That is, Pa = Pb + (La−Lb). For example, when the logical address La is the start address of the access target area specified in the access request of the application 12, the physical address Pa points to the start of the transfer storage area 43, and the offset (La-Lb) indicates the transfer storage area 43. Indicates the offset of. Further, when the mapping size of the logical block 41L and the physical block 41P is MS, the transfer storage area calculation unit 223 sets the size mapped from the physical address Pa to the continuous area of the storage medium 24 of the identifier x to MS- (La-). Calculate as Lb).

転送メモリ領域算出部224は、仮想記憶媒体23のアクセス対象領域が複数の記憶媒体24の転送ストレージ領域にマッピングされる場合、各転送ストレージ領域に対応するホストメモリ10上の転送メモリ領域のアドレスを計算する。 When the access target area of the virtual storage medium 23 is mapped to the transfer storage area of the plurality of storage media 24, the transfer memory area calculation unit 224 sets 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 operation explanatory diagram of the transfer memory area calculation unit 224, which is an access target area 51 on the virtual storage medium 23 and a transfer storage area 52a on the storage media 24a, 24b, 24c mapped to the access target area 51. , 52b, 52c and an example of the relationship between the transfer memory area 53 on the host memory 10 corresponding to the access target area 51 are shown. In the example of FIG. 5, the area of size Sa from the beginning of the access target area 51 is mapped to the storage medium 24a. Further, the area of the size Sb following the access target area 51 is mapped to the storage medium 24b. Further, the remaining size Sc area of the access target area 51 is mapped to the storage medium 24c. In the present embodiment, when an access request is made to the access target area 51 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 each division unit. conduct. Therefore, the transfer memory area 53 is divided into three areas having the sizes of Sa, Sb, and Sc for use. The transfer memory area calculation unit 224 calculates the start address of each divided area formed when the transfer memory area 53 is divided in this way.

転送メモリ領域算出部224は、仮想記憶媒体23のアクセス対象領域51上の分割領域の論理アドレスをLx、アクセス対象領域51の先頭から論理アドレスLxまでのオフセットをOF、転送メモリ領域53の先頭のアドレスをMとすると、論理アドレスLxに対応する転送メモリ領域53のアドレスMxを、Mx=M+OFとして計算する。 The transfer memory area calculation unit 224 sets the logical address of the divided area on the access target area 51 of the virtual storage medium 23 to Lx, the offset from the beginning of the access target area 51 to the logical address Lx to OF, and the beginning of the transfer memory area 53. 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 necessary 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 referred to by the access processing execution management unit 226 and the data transfer control unit 227. FIG. 6 is a diagram illustrating information contained 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 transfer memory areas and transfer storage areas related to an access request. The access request entry 2251 includes a transfer pair 2253 for each pair of a plurality of transfer memory areas and transfer storage areas as a result of the access request from the application 12 being divided into a plurality of parts. Further, the transfer pair 2253 has a memory address 2254 indicating the beginning 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 beginning of the transfer storage area, and It is composed of a transfer size 2257 that represents the size of the 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 used as a flag for write access, the access with the flag set may be written, and the access without the flag 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 processing execution management unit 226 manages the execution status of data transfer necessary for processing the access request from the application 12 to the virtual storage medium 23 with reference to the access processing table 225. The access processing execution management unit 226 selects an 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 the transfer process of read data or write data between the transfer memory area and the transfer storage area. Further, the access process execution management unit 226 releases the secured target buffer 200 when the data transfer process relating to the transfer pair 2253 is completed.

データ転送制御部227は、アクセス処理実行管理部226から指示された転送ペア2253について、ホストメモリ10上の転送メモリ領域と確保されたターゲットバッファ200との間のデータ転送、及びターゲットバッファ200と記憶媒体24上の転送ストレージ領域との間でデータ転送を実行する。 The data transfer control unit 227 transfers data between the transfer memory area on the host memory 10 and the secured target buffer 200, and stores the target buffer 200 and the transfer pair 2253 instructed by the access process execution management unit 226. Data transfer is performed to and from the transfer storage area on the medium 24.

転送ペア2253に対するアクセス種別2252がリードである場合、データ転送制御部227は、最初にストレージ識別子2255で表される記憶媒体24にリードアクセスを行い、転送ストレージ領域からターゲットバッファ200に対してリードデータを転送する。そして、データ転送制御部227は、ターゲットバッファ200に対するデータ転送が完了すると、次にターゲット通信部21に指示して、ターゲットバッファ200に格納されたリードデータを、ホストメモリ10の転送メモリ領域に転送する。 When the access type 2252 for the transfer pair 2253 is read, the data transfer control unit 227 first makes 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. Then, when the data transfer to the target buffer 200 is completed, the data transfer control unit 227 then 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. 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 use the write data stored in the transfer memory area of the host memory 10 as 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 write data from the target buffer 200 to the transfer storage area. Forward.

ターゲットバッファ200は、各転送ペア2253に対してターゲットメモリ20上に確保される。ターゲットバッファ200は、転送メモリ領域と転送ストレージ領域との間で転送されるリードデータまたはライトデータを一時的に保持する。 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, 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) On the memory space of the host 1 corresponding to the access target area Address pointing to the 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 consecutive logical addresses, and the first logical address thereof is specified in the access request. The address indicating the area on the memory space of the host 1 corresponding to the access target area is the start address of the memory area of the host memory 10 that stores the read data that is the result of the read request or the write data written by 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 through 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 to 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 the access type included in the received access request in the access type 2252 column. Is registered (step S102). At this point, the access request receiving unit 221 leaves the field of the transfer pair list of the created access request entry 2251 blank.

次に、アクセス要求受信部221は、転送ストレージ領域および転送メモリ領域における着目点を表すオフセットを0に初期化する(ステップS103)。そして、アクセス要求受信部221は、初期化したオフセットに注目する。 Next, the access request receiving unit 221 initializes the offset representing the 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 pays attention to the access target area on the virtual storage medium 23 by adding the value of the attention offset to the logical address of the head of the access target area in the virtual storage medium 23 included in the access request. 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 refers to the identifier of the storage medium 24 including the transfer storage area and the transfer storage area corresponding to the logical address of the point of interest on the notified virtual storage medium 23. 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 calculation unit 224 of the start address of the memory area of the host memory 10 and the offset during attention. The transfer memory area calculation unit 224 adds the attention-grabbing 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 point of interest on the virtual storage medium 23. The address of the point of interest in the region 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 calculates the size mapped to the continuous area of the storage medium 24 from the logical address of the point of interest on the virtual storage medium 23 notified above with reference to the mapping table 222. 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 the difference between the logical address of the point of interest and the logical address 2222 of the corresponding mapping entry 2221 determined above. 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 a value obtained by subtracting the attention-grabbing offset from the size of the access target area specified in the access request as the untransferred area size. Next, the access request receiving unit 221 compares the untransferred area size with the size mapped to the continuous area of the storage medium obtained in step S107. Next, the access request receiving unit 221 determines the minimum value of the above 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 obtained the identifier of the storage medium 24 obtained in step S105, 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 of the point of interest in step S108. The combination of transfer data sizes is registered in the transfer pair 2253 column 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 the storage identifier 2255, the storage medium address 2256, and the memory address 2254 in the transfer pair 2253, respectively. , Corresponds to the 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 offset during attention (step S110). Then, the access request receiving unit 221 shifts its attention to the offset after the addition.

次に、アクセス要求受信部221は、注目中オフセットの値とアクセス要求で指定されたアクセス対象領域のサイズとを比較する。アクセス要求受信部221は、注目中オフセットの値がアクセス対象領域のサイズ未満の場合(ステップS111のYes判定)、ステップS104からの処理を再度実行する。 Next, the access request receiving unit 221 compares the value of the offset during attention with the size of the access target area specified by the access request. When the value of the offset during attention is less than the size of the access target area (Yes determination in step S111), the access request receiving unit 221 re-executes the process from step S104.

一方、注目中オフセットの値がアクセス対象の領域のサイズ以上の場合(ステップS111のNo判定)、アクセス要求受信部221はアクセス処理実行管理部226に対して、アクセス処理を実行すべきアクセス処理テーブル225のアクセス要求エントリ2251を指示する(ステップS112)。 On the other hand, when the value of the offset being focused is equal to or larger than the size of the area to be accessed (No determination in step S111), the access request receiving unit 221 accesses the access processing execution management unit 226 to perform an access processing table. The access request entry 2251 of 225 is instructed (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 according to the access request entry 2251 instructed in step S112 (step S113).

アクセス要求受信部221は、アクセス処理実行管理部226において指示したアクセス要求エントリ2251に従うアクセス要求に対する処理が完了すると、アクセス処理テーブル225に登録された、当該指示したアクセス要求エントリ2251を削除する。また、アクセス要求受信部221は、当該アクセス要求エントリ2251に係るアクセス要求を行ったホスト1で動作するアプリケーション12に対してアクセス要求の完了を通知して、動作を終了する(ステップS114)。 When the processing for the access request according to the access request entry 2251 instructed by the access processing execution management unit 226 is completed, the access request receiving unit 221 deletes the instructed access request entry 2251 registered in the access processing table 225. Further, the access request receiving unit 221 notifies the application 12 operating on the host 1 that has made 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 above steps 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 have 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 executed at the same time, or can be executed in a different order. Further, the address indicating the area on 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, an access request from the application 12 shown in FIGS. 7A and 7B to the virtual storage medium 23 in the embodiment of the present invention with reference to FIGS. 1, 2, 3, 6, 6, 8A, and 8B. In the operation of processing the above, the operation of executing the processing for the access request by the access processing execution management unit 226 in step S113 will be described.

アクセス処理実行管理部226は、アクセス処理テーブル225における、処理対象のアクセス要求に対応するアクセス要求エントリ2251を参照して、任意の転送ペア2253を1つ選択する(ステップS201)。そして、アクセス処理実行管理部226は、この選択した転送ペア2253に注目する。 The access processing execution management unit 226 refers to the access request entry 2251 corresponding to the access request to be processed in the access processing table 225, and selects one arbitrary transfer pair 2253 (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 processing execution management unit 226 secures a target buffer 200 having a transfer size of 2257 or more in the attention transfer pair 2253 on the target memory 20 for the attention 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 attention 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の先頭アドレスを指定する。 When the access type 2252 of the access request to be processed is a read (Yes determination in step S204), the data transfer control unit 227 performs the following processing (step S205). First, the data transfer control unit 227 refers to the access processing table 225 and acquires the storage identifier 2255, the storage medium address 2256, and the transfer size 2257 of the attention transfer pair 2253. Next, the data transfer control unit 227 requests a read from the storage medium 24 pointed to by the storage identifier 2255 of the attention transfer pair 2253. In this read request, the storage medium address 2256 and the transfer size 2257 of the transfer pair 2253 being focused on are specified to specify the transfer storage area to be read-accessed, and the storage destination of the read data is specified in step S202. Specify the start address of the secured target buffer 200.

ステップS205でリードアクセスを指示された記憶媒体24は、指定された記憶媒体アドレス2256を先頭とし、指定された転送サイズ2257をサイズとする転送ストレージ領域からデータをリードし、指定されたターゲットバッファ200にリードデータを格納し、完了をデータ転送制御部227に通知する(ステップS206)。 The storage medium 24 instructed to read access in step S205 reads data from the transfer storage area having the designated storage medium address 2256 as the head and the designated transfer size 2257 as the head, and the designated target buffer 200. Read data is stored in the data transfer control unit 227, and the completion is notified 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 that the read data has been stored 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 designates the start address of the target buffer 200 and the transfer size 2257 of the attention transfer pair 2253 as the transfer source to the target communication unit 21. Further, in the above transfer instruction, the data transfer control unit 227 designates the memory address 2254 of the attention-grabbing transfer pair 2253 as the transfer destination for 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 designated as the transfer source, transfers the read data to the host communication unit 11 connected by the network 3, and the host designated as the transfer destination. Instructs storage in the area specified by the memory address 2254 of the memory 10. The host communication unit 11 receives an instruction from the target communication unit 21 and stores the read data in the transfer memory area designated by the memory address 2254 of the host memory 10. 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 refers to the access processing table 225 and acquires the memory address 2254 and the transfer size 2257 of the attention transfer pair 2253. Next, the data transfer control unit 227 instructs the target communication unit 21 to transfer the data from the host memory 10 to the target buffer 200. In the transfer instruction, the data transfer control unit 227 designates the memory address 2254 of the attention transfer pair 2253 and the transfer size 2257 of the attention transfer pair 2253 as transfer sources to the target communication unit 21. Further, in the above transfer instruction, the data transfer control unit 227 designates the start address of the target buffer 200 as the transfer destination for the target communication unit 21.

ターゲット通信部21は、上記転送指示に従って、以下のような転送を行う(ステップS210)。まず、ターゲット通信部21は、ホスト通信部11を通じてホストメモリ10のメモリアドレス2254および転送サイズ2257で指定される転送メモリ領域からライトデータを読み出し、ネットワーク3を経由してターゲットバッファ200に格納する。次にターゲット通信部21は、ターゲットバッファ200に対するライトデータの格納の完了をデータ転送制御部227に通知する。 The target communication unit 21 performs the following transfer according to the transfer instruction (step S210). First, the target communication unit 21 reads write data from the transfer memory area specified by the memory address 2254 of the host memory 10 and the transfer size 2257 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 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 that the write data has been stored in the target buffer 200, the data transfer control unit 227 requests the storage medium 24 pointed to by the storage identifier 2255 of the attention transfer pair 2253 to write from the target buffer 200 to the storage medium 24. (Step S211). In this write request, the data transfer control unit 227 designates the start address of the target buffer 200 and the transfer size 2257 of the attention transfer pair 2253 as the write source for the storage medium 24. Further, the data transfer control unit 227 designates the storage medium address 2256 of the attention-grabbing transfer pair 2253 as the write destination in the write request.

ステップS211でライトを要求された記憶媒体24は、指定されたライトアクセスを行い、指定されたターゲットバッファ200のライトデータを、指定された記憶媒体アドレス2256を先頭アドレスとする転送ストレージ領域に格納して、完了をデータ転送制御部227に通知する(ステップS212)。その後、処理はステップS213へと進む。 The storage medium 24 for which the write is requested in step S211 performs the designated write access, and stores the write data of the designated target buffer 200 in the transfer storage area having the designated storage medium address 2256 as the start address. Then, the completion is notified to the data transfer control unit 227 (step S212). After that, 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 of the completion of execution of the transfer process regarding the attention transfer pair 2253.

アクセス処理実行管理部226は、転送処理の実行が完了した注目中転送ペア2253に対して確保された、ターゲットバッファ200を開放する(ステップS214)。また、アクセス処理実行管理部226は、転送処理の実行が完了した注目中転送ペア2253に関する情報を、アクセス処理テーブル225の処理対象のアクセス要求に対応するアクセス要求エントリ2251から削除する(ステップS215)。 The access process execution management unit 226 releases the target buffer 200 reserved for the attention-grabbing transfer pair 2253 for which the execution of the transfer process has been completed (step S214). Further, the access processing execution management unit 226 deletes the information regarding the attention-grabbing 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 processing execution management unit 226 confirms the number of transfer pairs 2253 included in the access request entry 2251 corresponding to the access request to be processed (step S216). When the number of transfer pairs 2253 confirmed in step S216 is one or more (Yes determination in step S217), the access process execution management unit 226 re-executes the process from step S201. Further, when the number of transfer pairs 2253 confirmed in step S216 is 0 (No determination in step S217), the access processing execution management unit 226 notifies the access request receiving unit 221 that the access request processing is completed. , End the operation (step S218).

以上のステップS201からS218までの処理を行うことにより、本発明の実施形態における、ステップS113のアクセス処理実行管理部226による、アクセス要求に対する処理を実行する動作が完了する。ステップS201からS218までの処理順序は、必ずしも図8Aおよび図8Bに示した順序である必要はない。例えば、ステップS214とステップS215の処理は同時期に実行可能であり、或いは順序を入れ替えた実行が可能である。また、ステップS201からステップS215までの処理は、複数の転送ペア2253に対して並列に実行してもよい。 By performing the above processes from steps S201 to S218, the operation of executing the process for the access request by the access process 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 have to be the order shown in FIGS. 8A and 8B. For example, the processes of steps S214 and S215 can be executed at the same time, or can be executed in a different order. Further, the processes from step S201 to step S215 may be executed in parallel for a plurality of transfer pairs 2253.

[本実施形態の効果]
本実施形態を適用することで、ホストから複数の記憶媒体の記憶領域を組み合わせた仮想記憶媒体に対するアクセスにおいて、アクセス先が複数記憶媒体にマッピングされる場合に、RDMA転送の前後における待ち合わせ処理の発生を回避して、アクセス性能の向上を実現することができる。また、記憶媒体の領域とバッファとの間のデータ転送とバッファとホストのメモリとの間のデータ転送とを並列化することができる。
[Effect of this embodiment]
By applying this embodiment, when an access destination is mapped to a plurality of storage media in an access from a host to a virtual storage medium in which storage areas of a plurality of storage media are combined, a wait process occurs before and after the RDMA transfer. Can be avoided and the access performance can be improved. Further, the data transfer between the area of the storage medium and the buffer and the 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 connected to the host computer 8 via the network 7 so as to be able to communicate with each other.

仮想記憶媒体63は、複数の記憶媒体64の領域から構成される仮想的な記憶媒体である。データ転送部65は、ストレージ装置6とホストコンピュータ8のホストメモリ81との間のデータ転送をネットワーク7経由で行うように構成されている。メモリ62は、仮想記憶媒体63からリードしたデータ或いは仮想記憶媒体63にライトするデータを一時的に記憶するためのバッファ621に利用される。 The virtual storage medium 63 is a virtual storage medium composed of regions of a plurality of storage media 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 the data read from the virtual storage medium 63 or the 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における部分領域に対応する領域との間のデータ転送を制御する。 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 in order 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 data transfer between the area of the storage medium 64 corresponding to the partial area and the buffer 621 corresponding to the partial area for each partial area of the virtual storage medium 63. Further, the controller 61 controls data transfer between the buffer 621 corresponding to the partial area by the data transfer unit 65 and the area corresponding to the partial area in the host memory 81 for each partial area of the virtual storage medium 63.

コントローラ61およびデータ転送部65は、例えば図10に示すように、1以上のマイクロプロセッサ等の演算処理部910と、メモリやハードディスク等の記憶部920とを有する情報処理装置930と、プログラム940とで実現することができる。プログラム940は、情報処理装置930の立ち上げ時等に外部のコンピュータ読み取り可能な記録媒体からメモリに読み込まれ、演算処理部910の動作を制御することにより、演算処理部910上に、コントローラ61、およびデータ転送部65を実現する。 As shown in FIG. 10, for example, the controller 61 and the data transfer unit 65 include 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 or a hard disk, and a program 940. Can be realized with. The program 940 is read into the memory from an external computer-readable recording medium at the time of starting up the information processing apparatus 930, and controls the operation of the arithmetic processing unit 910 so that the controller 61, And the data transfer unit 65 is realized.

以上のように構成されたストレージ装置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 to the virtual storage medium 63 from the host computer 8 via the network 7, the access target area on the virtual storage medium 63 is divided 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 storage medium 64 area. Further, preferably, the controller 61 divides the access target area on the virtual storage medium 63 into the partial areas so that the number of the 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, the controller 61 transfers data between the area of the storage medium 64 corresponding to the partial area and the buffer 621 corresponding to the partial area for each partial area. Further, the controller 61 transfers data between the buffer 621 corresponding to the partial area by the data transfer unit 65 and the area corresponding to the partial area in the host memory 81.

例えば、コントローラ61は、アクセス要求の種類がリード要求であるとき、部分領域毎に、部分領域に対応する記憶媒体64の領域から部分領域に対応するバッファ621へのデータ転送を行い、当該データ転送の完了後に、上記バッファ621からホストメモリ81における部分領域に対応する領域へのデータ転送を開始する。また、例えば、コントローラ61は、アクセス要求の種類がライト要求であるとき、部分領域毎に、ホストメモリ81における部分領域に対応する領域から部分領域に対応するバッファ621へのデータ転送を行い、当該データ転送の完了後に、上記バッファ621から部分領域に対応する記憶媒体64の領域へのデータ転送を開始する。 For example, when the type of access request is a read request, the controller 61 transfers data from the area of the storage medium 64 corresponding to the partial area to the buffer 621 corresponding to the partial area for each partial area, and transfers the data. After the completion of, 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 transfers data from the area corresponding to the partial area in the host memory 81 to the buffer 621 corresponding to the partial area for each 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 corresponds to the partial area for each partial area. To transfer data between the area of the storage medium 64 and the buffer 621 corresponding to the partial area, and to transfer data 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 in which the read data is stored in the buffer 621 to the host memory can be started, and in the case of a write request, the partial area in which the write data is stored in the buffer 621 is written to the recording medium. This is because you can start.

以上、上記各実施形態を参照して本発明を説明したが、本発明は、上述した実施形態に限定されるものではない。本発明の構成や詳細には、本発明の範囲内で当業者が理解しうる様々な変更をすることができる。 Although the present invention has been described above with reference to each of the above embodiments, the present invention is not limited to the above-described embodiments. Various modifications that can be understood by those skilled in the art can be made to the structure 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 priority claim based on the patent application of Japanese Patent Application No. 2018-119240, which was filed in Japan on June 22, 2018, and is described in the patent application. All contents are included in this specification.

本発明は、計算機に接続された記憶媒体の領域から構成された仮想記憶媒体を、ネットワーク経由で他の計算機に提供するサービス等に利用できる。 INDUSTRIAL APPLICABILITY The present invention can be used for a service or the like to provide a virtual storage medium composed of an area of a storage medium connected to a computer 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 also be described, but not limited to:
[Appendix 1]
A controller that provides access to a virtual storage medium composed of areas of a plurality of storage media and receives an access request to the virtual storage medium from a host via a network.
A data transfer means between the node to which the controller is connected and the memory of the host is provided.
The controller divides the access target area on the virtual storage medium accessed by the access request into partial areas, secures a buffer for each partial area, and corresponds to the partial area for each partial area. Data transfer between the area of the storage medium and the buffer corresponding to the partial area, and the area corresponding to the partial area in the memory of the host and the buffer corresponding to the partial area by the data transfer means. A storage device that is configured to control data transfer between.
[Appendix 2]
The storage device according to Appendix 1, wherein in the division, the controller divides the access target area into the partial area composed of at most one storage medium area.
[Appendix 3]
The storage device according to Appendix 2, wherein the controller is divided so that the number of the partial areas is minimized in the division.
[Appendix 4]
The controller
The type of the access request from the host, the first address information indicating the access target area, and the second address information indicating the transfer memory area on the memory for transmitting / receiving data between the access target area and the access target area. The storage device according to Appendix 3, further comprising an access request receiving means for acquiring and.
[Appendix 5]
The controller
The access target area is divided into the partial areas composed of at most one area of the storage medium, the size of each of the partial areas, the identifier of the storage medium corresponding to the respective partial areas, and the storage. The storage device according to Appendix 4, further comprising a transfer storage area calculation means for obtaining a third address information indicating a transfer storage area which is an area of a medium.
[Appendix 6]
The controller
The appendix 5 is provided with a transfer memory area calculation means for dividing the transfer memory area into partial transfer memory areas corresponding to the respective partial areas and obtaining a fourth address information indicating each of the partial transfer memory areas. Storage device.
[Appendix 7]
The controller
The storage device according to Appendix 6, further comprising an access processing execution management means for securing the buffer in the node for each partial area.
[Appendix 8]
The controller
The storage device according to Appendix 7, further comprising a data transfer control means for controlling data transfer between the transfer storage area corresponding to the partial area and the buffer corresponding to the partial area.
[Appendix 9]
The storage device according to Appendix 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
The storage device according to Appendix 9, further comprising a mapping table for storing information that associates the area of the virtual storage medium with the area of the plurality of storage media.
[Appendix 11]
The controller
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 are obtained. The storage device according to Appendix 10, further comprising an access processing table for storing information on the transfer pair including the transfer pair.
[Appendix 12]
When the type of the access request is a read request, the controller transfers data from the storage medium area corresponding to the partial area to the buffer corresponding to the partial area for each 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, 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 Supplementary note 1 to 11, which is configured to start the data transfer of the above.
[Appendix 13]
When the type of the access request is a write request, the controller transfers data from the area corresponding to the partial area in the memory of the host to the buffer corresponding to the partial area for each partial area. After 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 is completed, the storage medium corresponding to the partial area from the buffer corresponding to the partial area The storage device according to any one of Supplementary note 1 to 12, which is configured to start data transfer to an area.
[Appendix 14]
The storage device according to any one of Supplementary note 1 to 13, wherein the data transfer means is configured to perform RDMA (Remote Direct Memory Access).
[Appendix 15]
Between the node to which the controller is connected and the memory of the host, which provides access to the virtual storage medium composed of areas of a plurality of storage media and receives an access request to the virtual storage medium from the host via the network. It is a data transfer method of
The access target area on the virtual storage medium accessed by the access request is divided into partial areas.
Secure a buffer for each partial area
For each partial area, 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 in the buffer corresponding to the partial area and 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 composed of areas of a plurality of storage media and receives an access request to the virtual storage medium from a host via a network.
It functions as a data transfer means between the node to which the controller is connected and the memory of the host.
The controller divides the access target area on the virtual storage medium accessed by the access request into partial areas, secures a buffer for each partial area, and corresponds to the partial area for each partial area. Data transfer between the area of the storage medium and the buffer corresponding to the partial area, and the area corresponding to the partial area in the memory of the host and the buffer corresponding to the partial area by the data transfer means. A computer-readable recording medium that records programs that are configured to control data transfer between.

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 reception unit 222 Mapping table 2222 Mapping entry 2222 Logical address 2223 Storage medium identifier 2224 Physical address 2225 Mapping size 223 Transfer storage area calculation unit 224 Transfer memory area calculation unit 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 unit 227 Data transfer control unit 23 Virtual storage medium 24 Storage medium 3 Network 41 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 (10)

複数の記憶媒体の領域から構成された仮想記憶媒体に対するアクセスを提供し、ホストからネットワークを経由して前記仮想記憶媒体に対するアクセス要求を受信するコントローラと、
前記コントローラが接続されたノードと前記ホストのメモリとの間のデータ転送手段とを備え、
前記コントローラは、前記アクセス要求によってアクセスされる前記仮想記憶媒体上のアクセス対象領域を部分領域に分割し、前記部分領域毎のバッファを確保し、前記部分領域毎に、前記部分領域に対応する前記記憶媒体の領域と前記部分領域に対応する前記バッファとの間のデータ転送と、前記データ転送手段による前記部分領域に対応する前記バッファと前記ホストの前記メモリにおける前記部分領域に対応する領域との間のデータ転送とを制御するように構成されている
ストレージ装置。
A controller that provides access to a virtual storage medium composed of areas of a plurality of storage media and receives an access request to the virtual storage medium from a host via a network.
A data transfer means between the node to which the controller is connected and the memory of the host is provided.
The controller divides the access target area on the virtual storage medium accessed by the access request into partial areas, secures a buffer for each partial area, and corresponds to the partial area for each partial area. Data transfer between the area of the storage medium and the buffer corresponding to the partial area, and the area corresponding to the partial area in the memory of the host and the buffer corresponding to the partial area by the data transfer means. A storage device that is configured to control data transfer between.
前記コントローラは、前記分割では、前記アクセス対象領域を、高々1つの前記記憶媒体の領域から構成される前記部分領域に分割する
請求項1に記載のストレージ装置。
The storage device according to claim 1, wherein in the division, the controller divides the access target area into the partial area composed of at most one storage medium area.
前記コントローラは、前記分割では、前記部分領域の個数が最小となるように分割する
請求項2に記載のストレージ装置。
The storage device according to claim 2, wherein the controller is divided so that the number of the partial areas is minimized in the division.
前記コントローラは、
前記ホストから、前記アクセス要求の種類と、前記アクセス対象領域を指し示す第1のアドレス情報と、前記アクセス対象領域との間でデータを送受信する前記メモリ上の転送メモリ領域を指し示す第2のアドレス情報とを取得するアクセス要求受信手段を備える
請求項3に記載のストレージ装置。
The controller
The type of the access request from the host, the first address information indicating the access target area, and the second address information indicating the transfer memory area on the memory for transmitting and receiving data between the access target area and the access target area. The storage device according to claim 3, further comprising an access request receiving means for acquiring and.
前記コントローラは、
前記アクセス対象領域を、高々1つの前記記憶媒体の領域から構成される前記部分領域に分割し、それぞれの前記部分領域のサイズと、それぞれの前記部分領域に対応する前記記憶媒体の識別子および前記記憶媒体の領域である転送ストレージ領域を指し示す第3のアドレス情報を求める転送ストレージ領域算出手段を備える
請求項4に記載のストレージ装置。
The controller
The access target area is divided into the partial areas composed of at most one area of the storage medium, the size of each of the partial areas, the identifier of the storage medium corresponding to the respective partial areas, and the storage. The storage device according to claim 4, further comprising a transfer storage area calculation means for obtaining a third address information indicating a transfer storage area which is an area of a medium.
前記コントローラは、
前記転送メモリ領域を、それぞれの前記部分領域に対応する部分転送メモリ領域に分割し、それぞれの前記部分転送メモリ領域を指し示す第4のアドレス情報を求める転送メモリ領域算出手段を備える
請求項5に記載のストレージ装置。
The controller
The fifth aspect of claim 5 is provided with a transfer memory area calculation means for dividing the transfer memory area into partial transfer memory areas corresponding to the respective partial areas and obtaining a fourth address information indicating each of the partial transfer memory areas. Storage device.
前記コントローラは、
前記部分領域毎に、前記ノードに前記バッファを確保するアクセス処理実行管理手段を備える
請求項6に記載のストレージ装置。
The controller
The storage device according to claim 6, further comprising an access processing execution management means for securing the buffer in the node for each partial area.
前記コントローラは、
前記部分領域に対応する前記転送ストレージ領域と前記部分領域に対応する前記バッファとの間のデータ転送を制御するデータ転送制御手段を備える
請求項7に記載のストレージ装置。
The controller
The storage device according to claim 7, further comprising a data transfer control means for controlling data transfer between the transfer storage area corresponding to the partial area and the buffer corresponding to the partial area.
複数の記憶媒体の領域から構成された仮想記憶媒体に対するアクセスを提供し、ホストからネットワークを経由して前記仮想記憶媒体に対するアクセス要求を受信するコントローラが接続されたノードと前記ホストのメモリとの間のデータ転送方法であって、
前記アクセス要求によってアクセスされる前記仮想記憶媒体上のアクセス対象領域を部分領域に分割し、
前記部分領域毎のバッファを確保し、
前記部分領域毎に、前記部分領域に対応する前記記憶媒体の領域と前記部分領域に対応する前記バッファとの間のデータ転送と、前記部分領域に対応する前記バッファと前記ホストの前記メモリにおける前記部分領域に対応する領域との間のデータ転送とを行う
データ転送方法。
Between the node to which the controller is connected and the memory of the host, which provides access to the virtual storage medium composed of areas of a plurality of storage media and receives an access request to the virtual storage medium from the host via the network. It is a data transfer method of
The access target area on the virtual storage medium accessed by the access request is divided into partial areas.
Secure a buffer for each partial area
For each partial area, 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 in the buffer corresponding to the partial area and the memory of the host. A data transfer method for transferring data to and from an area corresponding to a partial area.
複数の記憶媒体の領域から構成された仮想記憶媒体を有するコンピュータ
ストからネットワークを経由して前記仮想記憶媒体に対するアクセス要求を受信する処理と、
前記アクセス要求によってアクセスされる前記仮想記憶媒体上のアクセス対象領域を部分領域に分割する処理と
前記部分領域毎のバッファを確保する処理と
前記部分領域毎に、前記部分領域に対応する前記記憶媒体の領域と前記部分領域に対応する前記バッファとの間のデータ転送と、記部分領域に対応する前記バッファと前記ホストのメモリにおける前記部分領域に対応する領域との間のデータ転送とを行う処理と、
を行わせるためのプログラム。
For a computer having a virtual storage medium composed of multiple storage medium areas ,
The process of receiving an access request to the virtual storage medium from the host via the network, and
The process of dividing the access target area on the virtual storage medium accessed by the access request into partial areas, and
The process of securing a buffer for each partial area and
For each partial area, data transfer between the area of the storage medium corresponding to the partial area and the buffer corresponding to the partial area, and in the memory of the buffer corresponding to the partial area and the host. The process of transferring data to and from the area corresponding to the partial area, and
A program to make you do .
JP2020525500A 2018-06-22 2019-06-06 Storage device Active JP7075067B2 (en)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
JPWO2019244656A1 JPWO2019244656A1 (en) 2021-06-10
JP7075067B2 true JP7075067B2 (en) 2022-05-25

Family

ID=68983963

Family Applications (1)

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

Country Status (2)

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

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10719474B2 (en) * 2017-10-11 2020-07-21 Samsung Electronics Co., Ltd. System and method for providing in-storage acceleration (ISA) in data storage devices
CN113939811A (en) * 2020-05-08 2022-01-14 华为技术有限公司 Remote direct memory access with offset value
JP2023136082A (en) 2022-03-16 2023-09-29 キオクシア株式会社 Memory system and control method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015225427A (en) 2014-05-27 2015-12-14 ルネサスエレクトロニクス株式会社 Processor and data collection method
WO2016194979A1 (en) 2015-06-02 2016-12-08 日本電気株式会社 Storage system, storage control device, storage control method, and program

Family Cites Families (3)

* 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
US8180981B2 (en) * 2009-05-15 2012-05-15 Oracle America, Inc. Cache coherent support for flash in a memory hierarchy
WO2016181528A1 (en) * 2015-05-13 2016-11-17 株式会社日立製作所 Storage device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015225427A (en) 2014-05-27 2015-12-14 ルネサスエレクトロニクス株式会社 Processor and data collection method
WO2016194979A1 (en) 2015-06-02 2016-12-08 日本電気株式会社 Storage system, storage control device, storage control method, and program

Also Published As

Publication number Publication date
JPWO2019244656A1 (en) 2021-06-10
WO2019244656A1 (en) 2019-12-26

Similar Documents

Publication Publication Date Title
JP7075067B2 (en) Storage device
JP6019513B2 (en) Method and system for sharing storage resources
US10466935B2 (en) Methods for sharing NVM SSD across a cluster group and devices thereof
US8650381B2 (en) Storage system using real data storage area dynamic allocation method
US8001323B2 (en) Network storage system, management method therefor, and control program product therefor
JP2005011316A (en) Method and system for allocating storage area, and virtualization apparatus
JP6379291B2 (en) File access method, system, and host
JP2003256150A (en) Storage control device and control method for storage control device
JP7467593B2 (en) Resource allocation method, storage device, and storage system - Patents.com
US8732381B2 (en) SAS expander for communication between drivers
CN109144406B (en) Metadata storage method, system and storage medium in distributed storage system
WO2014124576A1 (en) Memory management method, memory management device and numa system
JP2013531283A (en) Storage system including a plurality of storage devices having both a storage virtualization function and a capacity virtualization function
US10387043B2 (en) Writing target file including determination of whether to apply duplication elimination
JP5893028B2 (en) System and method for efficient sequential logging on a storage device that supports caching
JP6307962B2 (en) Information processing system, information processing method, and information processing program
US11144207B2 (en) Accelerating memory compression of a physically scattered buffer
JP6584529B2 (en) Method and apparatus for accessing a file and storage system
CN113805789A (en) Metadata processing method in storage device and related device
JP4258768B2 (en) File placement system
US20160283134A1 (en) Data replication across host systems via storage controller
JP6191021B2 (en) Access device, information recording device, and access system
KR20140061194A (en) Network distributed file system and method using iscsi storage system
JP7000712B2 (en) Data transfer device and data transfer method
US20160357479A1 (en) Storage control apparatus

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201127

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220310

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220413

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220426

R151 Written notification of patent or utility model registration

Ref document number: 7075067

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151