JP2018032061A - Storage controller, and storage system - Google Patents

Storage controller, and storage system Download PDF

Info

Publication number
JP2018032061A
JP2018032061A JP2016161703A JP2016161703A JP2018032061A JP 2018032061 A JP2018032061 A JP 2018032061A JP 2016161703 A JP2016161703 A JP 2016161703A JP 2016161703 A JP2016161703 A JP 2016161703A JP 2018032061 A JP2018032061 A JP 2018032061A
Authority
JP
Japan
Prior art keywords
request
write request
storage
write
storage control
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.)
Granted
Application number
JP2016161703A
Other languages
Japanese (ja)
Other versions
JP6825263B2 (en
Inventor
祐介 岸
Yusuke Kishi
祐介 岸
松井 秀樹
Hideki Matsui
秀樹 松井
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016161703A priority Critical patent/JP6825263B2/en
Publication of JP2018032061A publication Critical patent/JP2018032061A/en
Application granted granted Critical
Publication of JP6825263B2 publication Critical patent/JP6825263B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a storage controller, and a storage system capable of suppressing an increase of a response time to a write request.SOLUTION: A CM#i has an FPGA#i (or, designated LSI) directly connected to a CA#i, that, responding to a write request received from a host unit 120, identifies a logical address of CM in charge corresponding to LUN, which is identified based on the write request referring to a corresponding information list. The CM#i sets the logical address of the CM in charge identified by the FPGA#i (or, designated LSI) as the address, and transfers the write request and a piece of write data relevant to the write request.SELECTED DRAWING: Figure 2

Description

本発明は、ストレージ制御装置、およびストレージシステムに関する。   The present invention relates to a storage control device and a storage system.

従来、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の複数の記憶装置を格納した筐体を複数搭載して、ホスト装置へ記憶装置の記憶領域を提供するストレージシステムがある。また、このようなストレージシステムでは、ホスト装置と記憶装置との間のアクセス制御を行うストレージ制御装置が複数設けられることがある。   2. Description of the Related Art Conventionally, there is a storage system that mounts a plurality of housings storing a plurality of storage devices such as HDD (Hard Disk Drive) and SSD (Solid State Drive) and provides a storage area of the storage device to a host device. Also, in such a storage system, a plurality of storage control devices that perform access control between the host device and the storage device may be provided.

先行技術としては、例えば、データの書き込みが指示された場合に、ローカルキャッシュとミラーキャッシュへデータを書き込み、また、プライマリディスクへローカルキャッシュのデータを書き込むとともに、セカンダリディスクへミラーキャッシュのデータを書き込むものがある。また、複数のRAID(Redundant Array of Inexpensive Disks)コントローラが、複数のホスト・コンピュータに共用ストレージ・デバイスへの読取り/書込みアクセスを提供するRAIDシステムでキャッシュ・コヒーレンシを提供するためのものがある。   As a prior art, for example, when data writing is instructed, data is written to the local cache and mirror cache, and data of the local cache is written to the primary disk and data of the mirror cache is written to the secondary disk. There is. Also, there are multiple RAID (Redundant Array of Inexpensive Disks) controllers for providing cache coherency in a RAID system that provides multiple host computers with read / write access to a shared storage device.

国際公開第2004/114115号International Publication No. 2004/114115 特表2004−538532号公報JP-T-2004-538532

しかしながら、従来技術では、複数のストレージ制御装置を含むストレージシステムにおいて、ホスト装置からのライトリクエストに対する応答時間が増大する場合がある。例えば、ホスト装置からのデータのストレージ制御装置間の転送処理に時間がかかり、ライトリクエストに対する応答時間が増大する場合がある。   However, in the related art, in a storage system including a plurality of storage control devices, the response time for a write request from the host device may increase. For example, it may take time to transfer data from the host device to the storage control device, and the response time to the write request may increase.

一つの側面では、本発明は、ライトリクエストに対する応答時間の増加を抑制することを目的とする。   In one aspect, an object of the present invention is to suppress an increase in response time to a write request.

本発明の一態様によれば、ホスト装置からリクエストを受け付けるインターフェースと、前記インターフェースに直接接続される、内部の回路を再構成可能な集積回路または専用の集積回路と、を有し、前記集積回路が、前記インターフェースから前記リクエストを受け付けたことに応じて、記憶装置と、互いに通信可能な複数のストレージ制御装置のうちの前記記憶装置へのリクエストを処理するストレージ制御装置の論理アドレスとの対応関係を示す対応情報を参照して、受け付けた前記リクエストから特定される記憶装置に対応するストレージ制御装置の論理アドレスを特定し、特定した前記論理アドレスを宛先に設定して、受け付けた前記リクエストを転送するストレージ制御装置が提案される。   According to an aspect of the present invention, the integrated circuit includes an interface that receives a request from a host device, and an integrated circuit that is directly connected to the interface and that can reconfigure an internal circuit or a dedicated integrated circuit. However, in response to receiving the request from the interface, the correspondence between the storage device and the logical address of the storage control device that processes the request to the storage device among the plurality of storage control devices that can communicate with each other The logical address of the storage control device corresponding to the storage device identified from the received request is identified, the identified logical address is set as the destination, and the received request is transferred. A storage control device is proposed.

本発明の一態様によれば、複数のストレージ制御装置を含むストレージシステムであって、前記複数のストレージ制御装置のうちのいずれかのストレージ制御装置が、ホスト装置からリクエストを受け付けるインターフェースと、前記インターフェースから前記リクエストを受け付けたことに応じて、記憶装置と、互いに通信可能な複数のストレージ制御装置のうちの前記記憶装置へのリクエストを処理するストレージ制御装置の論理アドレスとの対応関係を示す対応情報を参照して、受け付けた前記リクエストから特定される記憶装置に対応するストレージ制御装置の論理アドレスを特定し、特定した前記論理アドレスを宛先に設定して、受け付けた前記リクエストを転送する、内部の回路を再構成可能な集積回路または専用の集積回路と、を有するストレージシステムが提案される。   According to an aspect of the present invention, there is provided a storage system including a plurality of storage control devices, wherein any one of the plurality of storage control devices receives a request from a host device, and the interface Corresponding information indicating the correspondence between the storage device and the logical address of the storage control device that processes the request to the storage device among the plurality of storage control devices that can communicate with each other in response to receiving the request from The logical address of the storage control device corresponding to the storage device specified from the received request is specified, the specified logical address is set as the destination, and the received request is transferred. Reconfigurable integrated circuit or dedicated integrated circuit and A storage system having is proposed.

本発明の一側面によれば、ライトリクエストに対する応答時間の増加を抑制することができる。   According to one aspect of the present invention, an increase in response time to a write request can be suppressed.

図1は、実施の形態にかかるストレージ制御方法の一実施例を示す説明図である。FIG. 1 is an explanatory diagram of an example of the storage control method according to the embodiment. 図2は、CM#iのハードウェア構成例を示すブロック図である。FIG. 2 is a block diagram illustrating a hardware configuration example of CM # i. 図3は、対応情報リスト300の具体例を示す説明図である。FIG. 3 is an explanatory diagram showing a specific example of the correspondence information list 300. 図4は、CM#iのFPGA#iの機能的構成例を示すブロック図である。FIG. 4 is a block diagram illustrating a functional configuration example of FPGA # i of CM # i. 図5は、ライトリクエスト時のストレージシステム100の動作例を示す説明図である。FIG. 5 is an explanatory diagram showing an operation example of the storage system 100 at the time of a write request. 図6は、ライトリクエスト時のアドレス変換例を示す説明図である。FIG. 6 is an explanatory diagram showing an example of address conversion at the time of a write request. 図7Aは、ストレージシステム100のライトリクエスト処理手順の一例を示すシーケンス図(その1)である。FIG. 7A is a sequence diagram (part 1) illustrating an example of a write request processing procedure of the storage system 100. 図7Bは、ストレージシステム100のライトリクエスト処理手順の一例を示すシーケンス図(その2)である。FIG. 7B is a sequence diagram (part 2) illustrating an example of the write request processing procedure of the storage system 100. 図8は、ストレージシステム100のリードリクエスト処理手順の一例を示すシーケンス図である。FIG. 8 is a sequence diagram illustrating an example of a read request processing procedure of the storage system 100. 図9は、FPGA#iのリクエスト処理の具体的処理手順の一例を示すフローチャートである。FIG. 9 is a flowchart illustrating an example of a specific processing procedure of request processing of FPGA #i.

以下に図面を参照して、本発明にかかるストレージ制御装置、およびストレージシステムの実施の形態を詳細に説明する。   Embodiments of a storage control device and a storage system according to the present invention will be described below in detail with reference to the drawings.

(実施の形態)
図1は、実施の形態にかかるストレージ制御方法の一実施例を示す説明図である。図1において、ストレージシステム100は、CE(Controller Enclosure)$0,$1と、DE(Device Enclosure)$0,$1と、を含む。ストレージシステム100は、例えば、RAID5,6等のデータを冗長化して記憶するRAID構成のシステムである。
(Embodiment)
FIG. 1 is an explanatory diagram of an example of the storage control method according to the embodiment. In FIG. 1, the storage system 100 includes CE (Controller Enclosure) $ 0, $ 1 and DE (Device Enclosure) $ 0, $ 1. The storage system 100 is, for example, a system having a RAID configuration that stores data such as RAIDs 5 and 6 in a redundant manner.

CE$0は、CM(Controller Module)#0,#1を有する。CE$1は、CM#2,#3を有する。各CM#0〜#3は、自配下のストレージに対するアクセスを制御するストレージ制御装置の一例である。各CM#0〜#3は、FRT(Front End Router)110を介して、互いに通信可能に接続される。   CE $ 0 includes CMs (Controller Modules) # 0 and # 1. CE $ 1 has CMs # 2 and # 3. Each CM # 0 to # 3 is an example of a storage control device that controls access to the storage under its control. The CMs # 0 to # 3 are communicably connected to each other via an FRT (Front End Router) 110.

なお、CM#0〜#3のハードウェア構成例については、図2を用いて後述する。   An example of the hardware configuration of CMs # 0 to # 3 will be described later with reference to FIG.

FRT110は、FRT−SW(switch)111を有し、CM間を互いに通信可能に接続する接続部の一例である。FRT110は、例えば、PCIe(Peripheral Component Interconnect Express)に準拠したアダプタを複数有し、各CM#0〜#3とPCIeに対応したケーブル等によって接続されてもよい。   The FRT 110 is an example of a connection unit that includes an FRT-SW (switch) 111 and connects CMs so as to communicate with each other. The FRT 110 may include, for example, a plurality of adapters conforming to PCIe (Peripheral Component Interconnect Express), and may be connected to the CMs # 0 to # 3 by cables or the like corresponding to PCIe.

なお、図1では、CM間を接続するFRTとして、FRT110のみ表記したが、2以上のFRTにより冗長化されていてもよい。   In FIG. 1, only the FRT 110 is shown as the FRT connecting the CMs, but the FRT may be made redundant by two or more FRTs.

また、CM#0〜#3には、ホスト装置120が接続される。CM#0〜#3とホスト装置120は、例えば、FC(Fibre Channel)やiSCSI(Internet Small Computer System Interface)などを用いたSAN(Storage Area Network)を介して接続される。また、CM#0〜#3とホスト装置120は、LAN(Local Area Network)やインターネット等を介して接続されることにしてもよい。   In addition, the host device 120 is connected to the CMs # 0 to # 3. The CMs # 0 to # 3 and the host device 120 are connected via a SAN (Storage Area Network) using, for example, FC (Fibre Channel), iSCSI (Internet Small Computer System Interface), or the like. Further, the CMs # 0 to # 3 and the host device 120 may be connected via a LAN (Local Area Network), the Internet, or the like.

なお、図1では、1台のホスト装置120がCM#0〜#3に接続される場合を例に挙げて説明したが、これに限らない。例えば、複数台のホスト装置のそれぞれが、CM#0〜#3のうちの1以上のCMに接続されることにしてもよい。   In FIG. 1, the case where one host device 120 is connected to CMs # 0 to # 3 has been described as an example, but the present invention is not limited to this. For example, each of a plurality of host devices may be connected to one or more CMs among CMs # 0 to # 3.

DE$0,$1は、複数の記憶装置Dを有する。記憶装置Dは、例えば、HDDやSSDなどであってもよく、また、論理的な記憶装置である論理ユニット(LU:Logical Unit)であってもよい。なお、図1では、DE$0,$1が記憶装置Dを有することにしたが、例えば、CE$0,$1が記憶装置Dを有することにしてもよい。   DE $ 0 and $ 1 have a plurality of storage devices D. The storage device D may be, for example, an HDD or an SSD, or may be a logical unit (LU: Logical Unit) that is a logical storage device. In FIG. 1, DE $ 0 and $ 1 have the storage device D, but CE $ 0 and $ 1 may have the storage device D, for example.

CM#0,#1には、DE$0が接続される。CM#0,#1は、ホスト装置120または他のCMからのリクエストに応じて、DE$0に搭載された記憶装置Dに対するアクセスを制御する。図1の例では、DE$0には、CM#0が担当するRAIDグループRG0〜RG3と、CM#1が担当するRAIDグループRG4〜RG7と、が含まれる。RAIDグループは、複数の記憶装置Dをまとめて一つの記憶装置としたものである。この場合、例えば、CM#0は、ホスト装置120または他のCMからのリクエストに応じて、RAIDグループRG0〜RG3に対するアクセスを制御する。   DE $ 0 is connected to CMs # 0 and # 1. The CMs # 0 and # 1 control access to the storage device D installed in the DE $ 0 in response to a request from the host device 120 or another CM. In the example of FIG. 1, DE $ 0 includes RAID groups RG0 to RG3 that CM # 0 is responsible for and RAID groups RG4 to RG7 that CM # 1 is responsible for. In the RAID group, a plurality of storage devices D are combined into one storage device. In this case, for example, CM # 0 controls access to the RAID groups RG0 to RG3 in response to a request from the host device 120 or another CM.

また、CM#2,#3には、DE$1が接続される。CM#2,#3は、ホスト装置120または他のCMからのリクエストに応じて、DE$1に搭載された記憶装置Dに対するアクセスを制御する。図1の例では、DE$1には、CM#2が担当するRAIDグループRG0〜RG3と、CM#3が担当するRAIDグループRG4〜RG7と、が含まれる。この場合、例えば、CM#2は、ホスト装置120または他のCMからのリクエストに応じて、RAIDグループRG0〜RG3に対するアクセスを制御する。   In addition, DE $ 1 is connected to CMs # 2 and # 3. The CMs # 2 and # 3 control access to the storage device D installed in the DE $ 1 in response to a request from the host device 120 or another CM. In the example of FIG. 1, DE $ 1 includes RAID groups RG0 to RG3 that CM # 2 is responsible for and RAID groups RG4 to RG7 that CM # 3 is responsible for. In this case, for example, CM # 2 controls access to the RAID groups RG0 to RG3 in response to a request from the host device 120 or another CM.

なお、CE$0とDE$0は、例えば、1つの筐体に搭載されるストレージ装置として実現される。同様に、CE$1とDE$1は、1つの筐体に搭載されるストレージ装置として実現される。また、ストレージシステム100に含まれるCEの数は2台に限定されるものではなく、各CEに含まれるCMの数も2台に限定されるものではない。   Note that CE $ 0 and DE $ 0 are realized as storage devices mounted in one housing, for example. Similarly, CE $ 1 and DE $ 1 are realized as storage devices mounted in one housing. Further, the number of CEs included in the storage system 100 is not limited to two, and the number of CMs included in each CE is not limited to two.

ここで、従来のストレージシステムでは、ライトリクエスト時に、ホスト装置からRAID演算するデータを、当該RAID演算を担当する第1のCM(以下、「担当CM」という)に転送後、転送したデータを第2のCM(以下、「ミラーCM」という)のメモリにコピー(ミラーリング)することで、データの冗長化を行っている。   Here, in the conventional storage system, at the time of a write request, the data that is subjected to RAID calculation from the host device is transferred to the first CM in charge of the RAID calculation (hereinafter referred to as “charged CM”), and then the transferred data is transferred to Data redundancy is performed by copying (mirroring) the data to the memory of the second CM (hereinafter referred to as “mirror CM”).

しかし、冗長化完了をもってホスト装置へ応答を返すため、ライトリクエストに対する応答時間がその分増加する。なお、RAID演算は、例えば、ホスト装置120からリクエスト(ライトリクエスト、リードリクエスト)に応じて行われるデータの分割、パリティ計算等を含む。   However, since a response is returned to the host device upon completion of redundancy, the response time for the write request increases accordingly. Note that the RAID calculation includes, for example, data division and parity calculation performed in response to a request (write request, read request) from the host device 120.

一方で、ホスト装置からRAID演算するデータを担当CMに転送するにあたり、物理的な接続関係が要因となって、他のCMを経由することがある。この際、ホスト装置からデータを受け取ったCM(以下、「レシーブCM」という)は、当該データから担当CMを判断して、担当CMに転送するため、レシーブCMが担当CMである場合に比べて、ライトリクエストに対する応答時間が増加する。   On the other hand, when transferring data for RAID calculation from the host device to the responsible CM, the physical connection relationship may cause the other CM to pass through. At this time, the CM that has received data from the host device (hereinafter referred to as “receive CM”) determines the assigned CM from the data and transfers it to the assigned CM. Response time for write requests increases.

具体的には、例えば、レシーブCMが、ホスト装置からデータを受信すると、当該データをメモリに一旦格納する。そして、レシーブCMのCPU(Central Processing Unit)が、メモリに格納したデータを解析して、どのCMでRAID演算するものであるかを判断し、担当CMに当該データを転送する。   Specifically, for example, when the receive CM receives data from the host device, the receive CM temporarily stores the data in the memory. Then, the CPU (Central Processing Unit) of the receive CM analyzes the data stored in the memory, determines which CM performs the RAID operation, and transfers the data to the responsible CM.

担当CMは、レシーブCMからデータを受信すると、当該データをメモリに格納する。そして、担当CMのCPUが、メモリに格納したデータを解析して、どのCMにコピー(ミラーリング)するのかを判断し、ミラーCMに当該データ(コピーデータ)を転送する。また、担当CMは、ミラーCMからミラーリング処理の完了を受けると、レシーブCMを介して、ホスト装置に応答を返す。   When the responsible CM receives data from the receive CM, the responsible CM stores the data in the memory. Then, the CPU of the responsible CM analyzes the data stored in the memory, determines which CM is to be copied (mirrored), and transfers the data (copy data) to the mirror CM. In addition, when the responsible CM receives the completion of the mirroring process from the mirror CM, it returns a response to the host device via the receive CM.

このように、従来のストレージシステムでは、ホスト装置から受信したデータは、一旦メモリに格納してからCPUが処理するようになっている。したがって、レシーブCMが担当CMでなくても、ホスト装置から受信したデータは一旦メモリに格納され、メモリアクセスにかかる処理負荷や処理時間がかかる。   Thus, in the conventional storage system, the data received from the host device is temporarily stored in the memory and then processed by the CPU. Therefore, even if the receive CM is not the responsible CM, the data received from the host device is temporarily stored in the memory, and processing load and processing time for memory access are required.

なお、レシーブCMを経由せずにPCIeツリー外のCA(Channel Adapter)にアクセスする場合、ホスト装置からのライトリクエスト時に、CAから全CMに対し、割り込みとしてライトリクエストをブロードキャストすることで、ホスト装置からのライトリクエストを担当CMが直接受信できるようにすることが考えられる。   When accessing a CA (Channel Adapter) outside the PCIe tree without going through the receive CM, the host apparatus can broadcast the write request as an interrupt from the CA to all CMs at the time of a write request from the host apparatus. It is conceivable that the responsible CM can directly receive the write request from.

ライトリクエストのパケットの中にはデータのLUN(Logical Unit Number)、LBA(Logical Block Addressing)、サイズの情報が格納されている。このため、各CMは受け取ったライトリクエストの内容を確認して、DMA(Direct Memory Access)を指示する。また、ホスト装置からのライトデータもブロードキャストする場合、全てのCMに全てのCAから送信されるデータを格納するキャッシュ域を準備すれば、ミラーリングも可能である。   In the write request packet, data LUN (Logical Unit Number), LBA (Logical Block Addressing), and size information are stored. For this reason, each CM confirms the content of the received write request and instructs DMA (Direct Memory Access). When broadcasting write data from the host device, mirroring is also possible by preparing a cache area for storing data transmitted from all CAs in all CMs.

ところが、CMが多数の場合、例えば、24CM構成になると、割込頻度が24倍となり、各CMの割込(例外)処理が増える。割込処理はRAID演算などの通常動作を止めて実施するため、割込が増えた場合はシステムの性能ダウンを引き起こしてしまう。また、CAが増えると、ホスト装置からのライトデータを格納する領域(数)も増えるため、システム資源の無駄が多くなる。   However, when there are a large number of CMs, for example, in a 24CM configuration, the interrupt frequency is increased 24 times, and the interrupt (exception) processing of each CM increases. Since the interrupt processing is performed while stopping normal operations such as RAID calculation, if the number of interrupts increases, the performance of the system will be reduced. Further, as CA increases, the area (number) for storing write data from the host device also increases, resulting in increased waste of system resources.

そこで、本実施の形態では、レシーブCMにおいて、FPGA(Field Programmable Gate Array)や専用LSI(Large−Scale Integration)などの集積回路を用いて、CPUやメモリを介さずに、ホスト装置120からのリクエストを解析して転送先を特定し、担当CMやミラーCMへのデータ転送を行うことで、ホスト装置120からのリクエストに対する応答時間の増加を抑制する。   Therefore, in the present embodiment, in the receive CM, a request from the host device 120 without using a CPU or memory using an integrated circuit such as an FPGA (Field Programmable Gate Array) or a dedicated LSI (Large-Scale Integration). Are identified, the transfer destination is specified, and data transfer to the responsible CM or mirror CM is performed, thereby suppressing an increase in response time to a request from the host device 120.

(CM#0〜#3のハードウェア構成例)
つぎに、CM#0〜#3のハードウェア構成例について説明する。以下の説明では、CM#0〜#3のうちの任意のCMを「CM#i」と表記する場合がある(i=0,1,2,3)。
(CM # 0 to # 3 hardware configuration example)
Next, a hardware configuration example of CMs # 0 to # 3 will be described. In the following description, an arbitrary CM among CMs # 0 to # 3 may be expressed as “CM # i” (i = 0, 1, 2, 3).

図2は、CM#iのハードウェア構成例を示すブロック図である。図2において、CM#iは、CPU#iと、MEM(Memory)#iと、IOC(Input/Output Controller)#iと、CA#iと、FPGA#iと、SW#iと、を含む。各構成部は、バスによってそれぞれ接続される。   FIG. 2 is a block diagram illustrating a hardware configuration example of CM # i. In FIG. 2, CM # i includes CPU # i, MEM (Memory) #i, IOC (Input / Output Controller) #i, CA # i, FPGA # i, and SW # i. . Each component is connected by a bus.

CPU#iは、CM#iの全体の制御を司る。CPU#iは、DMAの機能を有する。DMAは、例えば、PCIeバスから直接(CPU#iの演算を介さずに)MEM#iにリード、ライトする技術である。なお、ここではCPU#iがDMAの機能を有することにしたが、CPU#iとは別に、DMA転送における通信を制御するDMAコントローラを有することにしてもよい。   The CPU #i controls the entire CM #i. The CPU #i has a DMA function. For example, DMA is a technique for reading and writing to MEM # i directly from the PCIe bus (without the operation of CPU # i). Note that the CPU #i has a DMA function here, but may have a DMA controller that controls communication in the DMA transfer separately from the CPU #i.

MEM#iは、データやプログラムを格納する。MEM#iは、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU#iのワークエリアとして使用される。MEM#iに記憶されるプログラムは、CPU#iにロードされることで、コーディングされている処理をCPU#iに実行させる。MEM#iは、データやプログラムを一時的に記憶するキャッシュメモリとしても用いられてもよい。   MEM # i stores data and programs. The MEM # i includes, for example, a ROM (Read Only Memory), a RAM (Random Access Memory), and a flash ROM. Specifically, for example, a flash ROM or ROM stores various programs, and a RAM is used as a work area of the CPU #i. The program stored in MEM # i is loaded into CPU # i, thereby causing CPU # i to execute the coded process. MEM # i may also be used as a cache memory that temporarily stores data and programs.

IOC#iは、記憶装置Dへのアクセス(I/O)を制御するI/O制御部である。CA#iは、ホスト装置120と通信するためのインターフェースである。CA#iは、例えば、LAN、SAN、FC等に準拠したアダプタを有する。FPGA#iは、内部の回路を再構成可能な集積回路である。SW#iは、他のCMと通信するためのインターフェースである。SW#iは、例えば、他のCMと接続するためのポートを有するPCIeスイッチである。   The IOC #i is an I / O control unit that controls access (I / O) to the storage device D. CA # i is an interface for communicating with the host device 120. The CA # i has an adapter that conforms to, for example, LAN, SAN, FC, and the like. The FPGA #i is an integrated circuit that can reconfigure an internal circuit. SW # i is an interface for communicating with other CMs. SW # i is, for example, a PCIe switch having a port for connecting to another CM.

CM#iにおいて、CPU#i/SW#i間、IOC#i/SW#i間およびFPGA#i/SW#i間は、例えば、PCIeバスによって接続される。また、CPU#i/MEM#i間は、メモリバスによって接続される。また、IOC#i/DE(DE$0,$1)間は、例えば、SAS(Serial Attached SCSI)により接続される。   In CM # i, CPU # i / SW # i, IOC # i / SW # i, and FPGA # i / SW # i are connected by, for example, a PCIe bus. The CPU # i / MEM # i are connected by a memory bus. Further, the IOC # i / DE (DE $ 0, $ 1) are connected by, for example, SAS (Serial Attached SCSI).

なお、図2では、CM#iがFPGA#iを有することにしたが、これに限らない。例えば、CM#iにおいてFPGA#iが行う処理を、専用LSIにより実現することにしてもよい。   In FIG. 2, CM # i has FPGA # i, but the present invention is not limited to this. For example, the processing performed by FPGA #i in CM # i may be realized by a dedicated LSI.

(対応情報リスト300の具体例)
つぎに、図2に示したCM#iのFPGA#iが有する対応情報リスト300の具体例について説明する。
(Specific example of correspondence information list 300)
Next, a specific example of the correspondence information list 300 included in the CM # i FPGA # i illustrated in FIG. 2 will be described.

図3は、対応情報リスト300の具体例を示す説明図である。図3において、対応情報リスト300は、LUN情報と、担当CM情報と、ミラーCM情報と、を対応付けて表す対応情報300−1〜300−10を含む。LUN情報は、アクセス先となる論理ユニット(LU)を識別するLUNを示す。担当CM情報は、担当CMの論理アドレスを示す。ミラーCM情報は、ミラーCMの論理アドレスを示す。   FIG. 3 is an explanatory diagram showing a specific example of the correspondence information list 300. In FIG. 3, the correspondence information list 300 includes correspondence information 300-1 to 300-10 that represent LUN information, responsible CM information, and mirror CM information in association with each other. The LUN information indicates a LUN that identifies a logical unit (LU) as an access destination. The assigned CM information indicates the logical address of the assigned CM. The mirror CM information indicates a logical address of the mirror CM.

例えば、対応情報300−1は、LUN0へのリクエストが発生した際の担当CM#0の論理アドレス「0000_2000_0000_0000」を示す。また、対応情報300−1は、LUN0へのリクエストが発生した際のミラーCM#2の論理アドレス「0000_2200_0000_0000」を示す。   For example, the correspondence information 300-1 indicates the logical address “0000_2000_0000_0000” of the assigned CM # 0 when a request to the LUN0 occurs. Further, the correspondence information 300-1 indicates the logical address “0000 — 2200 — 0000 — 0000” of the mirror CM # 2 when a request to the LUN 0 occurs.

(CM#iのFPGA#iの機能的構成例)
図4は、CM#iのFPGA#iの機能的構成例を示すブロック図である。図4において、FPGA#iは、受付部401と、特定部402と、転送部403と、を含む構成である。具体的には、例えば、各機能(受付部401〜転送部403)をHDL(Hardware Description Language)を用いて機能定義し、そのHDL記述を論理合成してFPGA#iに与えることにより、その機能を実現する。
(Functional configuration example of CM # i FPGA # i)
FIG. 4 is a block diagram illustrating a functional configuration example of FPGA # i of CM # i. In FIG. 4, FPGA # i includes a reception unit 401, a specification unit 402, and a transfer unit 403. Specifically, for example, each function (receiving unit 401 to transfer unit 403) is defined using HDL (Hardware Description Language), and the HDL description is logically synthesized and given to FPGA #i. Is realized.

受付部401は、CA#iを介して、ホスト装置120からのリクエストを受け付ける。ここで、リクエストは、例えば、DE$0,$1内のいずれかのRAIDグループに対するライトリクエスト(書込要求)またはリードリクエスト(読出要求)である。リクエストには、例えば、アクセス先のLUN情報やライトデータ(書込データ)またはリードデータ(読出データ)のデータサイズなどが含まれている。   The accepting unit 401 accepts a request from the host device 120 via CA # i. Here, the request is, for example, a write request (write request) or a read request (read request) with respect to any RAID group in DE $ 0 and $ 1. The request includes, for example, the LUN information of the access destination and the data size of write data (write data) or read data (read data).

具体的には、例えば、まず、CA#iが、ホスト装置120からリクエストを受け付けたことに応じて、当該リクエストのDMA WriteをFPGA#iに指示する。この結果、ホスト装置120からのリクエストは、MEM#iに格納されることなく直接FPGA#iに送られる。   Specifically, for example, in response to the reception of a request from the host apparatus 120, the CA #i first instructs the FPGA #i of the DMA write of the request. As a result, the request from the host device 120 is sent directly to the FPGA #i without being stored in the MEM # i.

特定部402は、ホスト装置120からのリクエストを受け付けたことに応じて、当該リクエストの宛先を特定する。具体的には、例えば、特定部402は、当該リクエストのコマンド種別を判断する。ここで、特定部402は、ライトリクエストであると判断した場合には、当該ライトリクエストに含まれるLUNを特定する。このLUNは、アクセス先となる論理ユニットを識別する情報である。そして、特定部402は、対応情報リスト300を参照して、特定したLUNに対応する担当CM情報およびミラーCM情報を特定する。   In response to receiving a request from the host device 120, the specifying unit 402 specifies the destination of the request. Specifically, for example, the specifying unit 402 determines the command type of the request. Here, when determining that the request is a write request, the specifying unit 402 specifies the LUN included in the write request. This LUN is information for identifying a logical unit as an access destination. Then, the identifying unit 402 refers to the correspondence information list 300 to identify responsible CM information and mirror CM information corresponding to the identified LUN.

これにより、ライトリクエストの宛先として、担当CM#jおよびミラーCM#kの論理アドレスを特定することができる。担当CM#jは、ライトリクエストにかかるライトデータのRAID演算を担当するCMである。ミラーCM#kは、ライトリクエストにかかるライトデータのミラーリングを担当するCMである。なお、ライトリクエスト時は、CM#iが担当CM#jまたはミラーCM#kのいずれかである場合がある。   As a result, the logical address of the assigned CM #j and the mirror CM #k can be specified as the write request destination. The assigned CM # j is a CM in charge of RAID calculation of write data related to the write request. The mirror CM # k is a CM in charge of mirroring the write data related to the write request. At the time of a write request, CM # i may be either a responsible CM # j or a mirror CM # k.

また、特定部402は、リードリクエストであると判断した場合、当該リードリクエストに含まれるLUNを特定する。このLUNは、アクセス先となる論理ユニットを識別する情報である。そして、特定部402は、対応情報リスト300を参照して、特定したLUNに対応する担当CM情報を特定する。   When determining that the request is a read request, the specifying unit 402 specifies the LUN included in the read request. This LUN is information for identifying a logical unit as an access destination. Then, the identifying unit 402 refers to the correspondence information list 300 and identifies responsible CM information corresponding to the identified LUN.

これにより、リードリクエストの宛先として、担当CM#jの論理アドレスを特定することができる。担当CM#jは、リードリクエストにかかるリードデータのRAID演算を担当するCMである。なお、リードリクエスト時は、CM#iが担当CM#jである場合がある。   As a result, the logical address of the assigned CM #j can be specified as the destination of the read request. The assigned CM # j is a CM in charge of RAID calculation of the read data related to the read request. At the time of a read request, CM # i may be the responsible CM # j.

転送部403は、ホスト装置120からのリクエストを、特定部402によって特定された当該リクエストの宛先に転送する。具体的には、例えば、ライトリクエストの場合には、転送部403は、特定された担当CM#jの論理アドレスおよびミラーCM#kの論理アドレスをそれぞれ宛先に設定して、ライトリクエストをSW#iに転送する。   The transfer unit 403 transfers the request from the host device 120 to the destination of the request specified by the specifying unit 402. Specifically, for example, in the case of a write request, the transfer unit 403 sets the logical address of the specified responsible CM # j and the logical address of the mirror CM # k as the destination, and sends the write request to the SW #. forward to i.

この結果、SW#iにおいてアドレス変換が行われ、ホスト装置120からのライトリクエストが、FRT110を介して、担当CM#jおよびミラーCM#kにそれぞれ転送される。また、ライトリクエストの場合、ホスト装置120からライトリクエストが送られてきたあとに、当該ライトリクエストにかかるライトデータが転送されてくる。転送部403は、直前の宛先(ライトリクエストの宛先)を記憶しており、ホスト装置120からのライトデータを、その宛先に転送する。なお、ライトリクエストの転送例については、図5および図6を用いて後述する。   As a result, address conversion is performed in SW # i, and the write request from the host device 120 is transferred to the responsible CM # j and mirror CM # k via the FRT 110, respectively. In the case of a write request, after a write request is sent from the host device 120, write data related to the write request is transferred. The transfer unit 403 stores the immediately preceding destination (write request destination), and transfers the write data from the host device 120 to the destination. A write request transfer example will be described later with reference to FIGS.

また、リードリクエストの場合には、転送部403は、リードリクエストの宛先に、特定された担当CM#jの論理アドレスを設定して、SW#iに転送する。この結果、SW#iにおいてアドレス変換が行われ、ホスト装置120からのリードリクエストが、FRT110を介して、担当CM#jに転送される。   Further, in the case of a read request, the transfer unit 403 sets the logical address of the specified responsible CM #j as the destination of the read request and transfers it to SW # i. As a result, address conversion is performed in SW # i, and a read request from the host apparatus 120 is transferred to the responsible CM # j via the FRT 110.

なお、PCIeのバスでは、基本的にはピアツーピア(P2P)の通信が行われるが、これではFPGA#iは、担当CM#jおよびミラーCM#kのいずれから送られてきたデータであるかを判断できなくなる。このため、FPGA#iは、担当CM#jおよびミラーCM#kそれぞれとやり取りができるように、例えば、ミラーCM#kに仮想的なBus(バス)/Dev(デバイス)/Func(機能)を割り当てる。   Note that the PCIe bus basically performs peer-to-peer (P2P) communication, but in this case, the FPGA # i indicates whether the data is sent from the responsible CM # j or the mirror CM # k. It becomes impossible to judge. For this reason, for example, the virtual bus (bus) / Dev (device) / func (function) is assigned to the mirror CM # k so that the FPGA #i can communicate with the responsible CM # j and the mirror CM # k. assign.

これにより、担当CM#jおよびミラーCM#kそれぞれとやり取りするための受け口を設けることができる。仮想的なBus/Dev/Funcを割り当てる技術としては、例えば、既存のSR−IOV(Single Root I/O Virtualization)を用いることができる。SR−IOVは、PCIデバイス側で仮想化をサポートする機能である。   Thereby, a receiving port for communicating with each of the assigned CM #j and the mirror CM #k can be provided. As a technology for allocating virtual Bus / Dev / Func, for example, existing SR-IOV (Single Root I / O Virtualization) can be used. SR-IOV is a function that supports virtualization on the PCI device side.

また、上述したFPGA#iの各機能は、専用の集積回路(例えば、専用LSI)により実現することにしてもよい。具体的には、例えば、FPGA#iの各機能(特定部402〜転送部403)をHDL(あるいは、回路図)を用いて機能定義し、そのHDL記述を論理合成して得られる回路情報に基づいて、その機能を実現する専用LSIを製造することができる。   Further, each function of the above-described FPGA #i may be realized by a dedicated integrated circuit (for example, a dedicated LSI). Specifically, for example, each function (specification unit 402 to transfer unit 403) of FPGA # i is defined using HDL (or a circuit diagram), and circuit information obtained by logically synthesizing the HDL description. Based on this, it is possible to manufacture a dedicated LSI that realizes the function.

(ライトリクエストの転送例)
つぎに、図5および図6を用いて、ライトリクエストの転送例について説明する。
(Write request transfer example)
Next, a transfer example of a write request will be described with reference to FIGS.

図5は、ライトリクエスト時のストレージシステム100の動作例を示す説明図である。また、図6は、ライトリクエスト時のアドレス変換例を示す説明図である。ここでは、CM#0のCA#0が、ホスト装置120からLUN3の「0000_0000_0000_0000」へのライトリクエストを受け付けた場合を想定する。すなわち、CM#0は、レシーブCMである。   FIG. 5 is an explanatory diagram showing an operation example of the storage system 100 at the time of a write request. FIG. 6 is an explanatory diagram showing an example of address conversion at the time of a write request. Here, it is assumed that CA # 0 of CM # 0 receives a write request from the host apparatus 120 to “0000_0000_0000_0000” of LUN3. That is, CM # 0 is a receive CM.

この場合、FPGA#0は、CA#0からライトリクエストを受け付けると、当該ライトリクエストに含まれるLUN3を特定する。そして、図6に示すように、FPGA#0は、対応情報リスト300を参照して、LUN3に対応する担当CM#3の論理アドレス「0000_2300_0000_0000」およびミラーCM#1の論理アドレス「0000_2100_0000_0000」を特定する。   In this case, when FPGA # 0 receives a write request from CA # 0, it specifies LUN 3 included in the write request. Then, as illustrated in FIG. 6, FPGA # 0 refers to the correspondence information list 300 and specifies the logical address “0000_2300_0000_0000” of the responsible CM # 3 corresponding to LUN3 and the logical address “0000_2100_0000_0000” of the mirror CM # 1 To do.

つぎに、FPGA#0は、ライトリクエストの宛先に、担当CM#3の論理アドレス「0000_2300_0000_0000」およびミラーCM#1の論理アドレス「0000_2100_0000_0000」をそれぞれ設定して、SW#0に転送する。   Next, FPGA # 0 sets the logical address “0000 — 2300 — 0000 — 0000” of the responsible CM # 3 and the logical address “0000 — 2100 — 0000 — 0000” of the mirror CM # 1 as the destination of the write request, and transfers them to SW # 0.

SW#0は、FPGA#0からライトリクエストを受け付けると、メモリマップ600を参照して、当該ライトリクエストのアドレス変換を行って、FRT110に出力する。具体的には、SW#0は、担当CM#3の論理アドレス宛のライトリクエストを受け付けると、当該ライトリクエストを論理アドレス「0000_2300_0000_0000〜0000_2380_0000_0000」の範囲に対応するパスに出力する。また、SW#0は、担当CM#1の論理アドレス宛のライトリクエストを受け付けると、当該ライトリクエストを論理アドレス「0000_2100_0000_0000〜0000_2180_0000_0000」の範囲に対応するパスに出力する。   When SW # 0 receives a write request from FPGA # 0, SW # 0 refers to memory map 600, performs address conversion of the write request, and outputs the result to FRT110. Specifically, when SW # 0 receives a write request addressed to the logical address of CM # 3 in charge, SW # 0 outputs the write request to a path corresponding to the range of logical addresses “0000 — 2300 — 0000 — 0000 to 0000 — 2380 — 0000 — 0000”. When SW # 0 receives a write request addressed to the logical address of CM # 1 in charge, SW # 0 outputs the write request to a path corresponding to the range of logical addresses “0000_2100_0000_0000 to 0000_2180_0000_0000”.

この結果、NTV(Non Transparent Virtual)アドレス変換され、FRT110において、物理アドレス空間へのアドレス変換が行われる(NTL(Non Transparent Link)アドレス変換)。具体的には、FRT−SW111において、各パスに対応する担当CM#3のSW#3およびミラーCM#1のSW#1の論理アドレスへの変換が行われ、ライトリクエストが各SW#1,#3に転送される。各スイッチSW#1,#3では、各MEM#1,#3上の物理アドレスへの変換が行われて、ライトリクエストがMEM#1,#3に書き込まれる。   As a result, NTV (Non Transparent Virtual) address conversion is performed, and address conversion to the physical address space is performed in the FRT 110 (NTL (Non Transparent Link) address conversion). Specifically, the FRT-SW 111 converts the assigned CM # 3 SW # 3 and mirror CM # 1 SW # 1 corresponding to each path into logical addresses, and the write request is sent to each SW # 1, SW # 1. Transferred to # 3. In each of the switches SW # 1 and # 3, conversion to a physical address on each of the MEMs # 1 and # 3 is performed, and a write request is written to the MEMs # 1 and # 3.

(ストレージシステム100のライトリクエスト処理手順)
つぎに、ストレージシステム100のライトリクエスト処理手順について説明する。ここでは、レシーブCMが担当CMおよびミラーCMと異なる場合を例に挙げて説明する。
(Write request processing procedure of storage system 100)
Next, a write request processing procedure of the storage system 100 will be described. Here, a case where the receive CM is different from the assigned CM and the mirror CM will be described as an example.

図7Aおよび図7Bは、ストレージシステム100のライトリクエスト処理手順の一例を示すシーケンス図である。図7Aのシーケンス図において、まず、レシーブCM#iのCA#iは、ホスト装置120からライトリクエスト(FCP Command)を受け付けると、ホスト装置120からのライトリクエストをFPGA#iに出力する(ステップS701)。   7A and 7B are sequence diagrams illustrating an example of a write request processing procedure of the storage system 100. FIG. In the sequence diagram of FIG. 7A, first, when the CA # i of the receive CM # i receives a write request (FCP Command) from the host device 120, it outputs the write request from the host device 120 to the FPGA #i (step S701). ).

つぎに、レシーブCM#iのFPGA#iは、CA#iからライトリクエストを受け付けると、担当CM#jおよびミラーCM#kにライトリクエストを転送するリクエスト処理を実行する(ステップS702)。この際、FPGA#iは、ミラーCM#kに対して仮想的なBus/Dev/Funcを割り当てる。   Next, when receiving a write request from CA # i, FPGA # i of receive CM # i executes a request process for transferring the write request to the responsible CM # j and mirror CM # k (step S702). At this time, the FPGA #i assigns a virtual Bus / Dev / Func to the mirror CM # k.

この結果、担当CM#jのMEM#jおよびミラーCM#kのMEM#kのResponse queueにIOCB(I/Oコマンド(制御)・ブロック)が格納される。IOCBは、プロトコルのフロー制御等に使用されるデータであり、例えば、ライトリクエストの内容を示す情報が含まれる。   As a result, IOCB (I / O command (control) block) is stored in the response queue of the MEM # j of the responsible CM # j and the MEM # k of the mirror CM # k. The IOCB is data used for protocol flow control and the like, and includes information indicating the content of the write request, for example.

なお、FPGA#iのリクエスト処理の具体的な処理手順は、図9を用いて後述する。   A specific processing procedure of the request processing of FPGA # i will be described later with reference to FIG.

つぎに、CA#iは、FPGA#iを介して、担当CM#jのCPU#j(ドライバ)およびミラーCM#kのCPU#k(ドライバ)に割り込みを通知する(ステップS703)。FPGA#iでは、直前の宛先、すなわち、ライトリクエストの転送先である担当CM#jおよびミラーCM#kの論理アドレスが記憶されている。このため、CA#iからの割り込みは、担当CM#jおよびミラーCM#kの論理アドレス宛にそれぞれ通知される。   Next, the CA # i notifies the CPU # j (driver) of the responsible CM # j and the CPU # k (driver) of the mirror CM # k of the interrupt via the FPGA # i (step S703). In FPGA # i, the logical addresses of the immediately preceding destination, that is, the responsible CM # j and mirror CM # k, which are the transfer destination of the write request, are stored. For this reason, the interrupt from CA # i is notified to the logical addresses of the responsible CM # j and mirror CM # k, respectively.

担当CM#jのCPU#jおよびミラーCM#kのCPU#kは、割り込みを受けると割込要因を読み込む(ステップS704)。この際、担当CM#jのCPU#jは、直接CA#iへアクセスして割込要因を読み込む。一方、ミラーCM#kのCPU#kは、FPGA#iの仮想的なBus/Dev/Funcにアクセスして、コピーされた割込要因を読み込む。   When the CPU #j of the assigned CM #j and the CPU #k of the mirror CM #k receive an interrupt, they read the interrupt factor (step S704). At this time, the CPU #j of the assigned CM #j directly accesses the CA #i and reads the interrupt factor. On the other hand, the CPU #k of the mirror CM # k accesses the virtual Bus / Dev / Func of the FPGA #i and reads the copied interrupt factor.

ここで、割込要因がIOCBであれば、各CPU#j,#kにおいて、MEM#j,#k内のDMA情報(ライトデータのサイズ等)を参照して、ライトデータ用のキャッシュ領域の確保等の準備が行われる。   If the interrupt factor is IOCB, the CPU #j, #k refers to the DMA information (write data size, etc.) in the MEM # j, #k, and writes the cache area for the write data. Preparations such as securing are performed.

そして、FPGA#iは、各CPU#j,#kにおける準備が完了するのを待ち合わせて、各CPU#j,#kの準備が完了すると、その旨をCA#iに通知する(ステップS705)。CA#iは、各CPU#j,#kの準備が完了すると、ホスト装置120にデータ転送を要求する(ステップS706)。   Then, the FPGA #i waits for the completion of the preparation in each of the CPUs #j and #k, and notifies the CA #i of the fact when the preparations of the respective CPUs #j and #k are completed (step S705). . When the preparations of the CPUs #j and #k are completed, the CA #i requests the host device 120 to transfer data (step S706).

図7Bのシーケンス図において、まず、ホスト装置120は、CA#iからデータ転送の要求を受け付けると、ライトデータの転送を開始する(ステップS707)。CA#iは、FPGA#iを介して、担当CM#jのMEM#jおよびミラーCM#kのMEM#kにライトデータを転送する(ステップS708)。ライトデータには、例えば、データ訂正コード(BCC:Block Check Code)が付加される。   In the sequence diagram of FIG. 7B, first, when receiving a data transfer request from CA # i, the host apparatus 120 starts transfer of write data (step S707). The CA #i transfers the write data to the MEM #j of the responsible CM #j and the MEM #k of the mirror CM #k via the FPGA #i (Step S708). For example, a data correction code (BCC: Block Check Code) is added to the write data.

そして、CA#iは、データ転送が完了すると、FPGA#iを介して、各MEM#j,#kのResponse queueにData転送完了のIOCBをそれぞれ格納する(ステップS709)。つぎに、CA#iは、FPGA#iを介して、担当CM#jのCPU#j(ドライバ)およびミラーCM#kのCPU#k(ドライバ)に割り込みを通知する(ステップS710)。   When the data transfer is completed, the CA #i stores the IOCB that has completed the data transfer in the response queue of each MEM #j and #k via the FPGA #i (step S709). Next, the CA # i notifies the CPU # j (driver) of the responsible CM # j and the CPU # k (driver) of the mirror CM # k of the interrupt via the FPGA # i (step S710).

各CPU#j,#kは、割り込みを受けると、割込要因を読み込んで刈り取る(ステップS711)。そして、各CPU#j,#kは、データ転送が正常に完了したことを確認したら、各MEM#j,#kのResponse queueにデータ転送正常完了のIOCBを格納して、レジスタ(IOCB DMA起動)への書き込みを行う(ステップS712)。この際、CPU#jは、直接CA#iへアクセスする一方で、CPU#kは、FPGA#iの仮想的なBus/Dev/Funcにアクセスする。   When each of the CPUs #j and #k receives an interrupt, the CPU #j and #k read the interrupt factor and mow it (step S711). When each CPU #j, #k confirms that the data transfer has been completed normally, it stores the IOCB indicating the completion of the data transfer in the response queue of each MEM #j, #k and registers (IOCB DMA activation) ) Is written (step S712). At this time, the CPU #j directly accesses the CA #i, while the CPU #k accesses the virtual Bus / Dev / Func of the FPGA #i.

つぎに、FPGA#iは、各CPU#j,#kにおけるデータ転送完了を待ち合わせて、各CPU#j,#kのデータ転送が正常に完了すると、その旨をCA#iに通知する(ステップS713)。そして、CA#iは、各CPU#j,#kのデータ転送が正常に完了すると、ホスト装置120にStatus転送正常完了通知を送信する(ステップS714)。   Next, the FPGA #i waits for the completion of the data transfer in each of the CPUs #j and #k, and when the data transfer of each of the CPUs #j and #k is normally completed, notifies the CA #i to that effect (step # 1). S713). When the data transfer of each of the CPUs #j and #k is normally completed, the CA #i transmits a status transfer normal completion notification to the host device 120 (step S714).

なお、ホスト装置120にStatus転送正常完了通知が送信されると、各CPU#j,#kに対して処理が正常に完了したことが通知され、その結果、各CPU#j,#kにおいて、キャッシュ領域を解放するなどの後処理が行われる。   When the status transfer normal completion notification is transmitted to the host device 120, the CPU #j, #k is notified that the processing has been normally completed. As a result, in each CPU #j, #k, Post-processing such as releasing the cache area is performed.

これにより、レシーブCM#iのFPGA#iにおいて、ホスト装置120からのライトリクエストの宛先を解析して、ライトリクエストおよびライトデータを担当CM#jおよびミラーCM#kに転送することができる。   Accordingly, the FPGA #i of the receive CM #i can analyze the destination of the write request from the host device 120 and transfer the write request and the write data to the responsible CM #j and the mirror CM #k.

(ストレージシステム100のリードリクエスト処理手順)
つぎに、ストレージシステム100のリードリクエスト処理手順について説明する。ここでは、レシーブCMが担当CMと異なる場合を例に挙げて説明する。
(Read request processing procedure of the storage system 100)
Next, a read request processing procedure of the storage system 100 will be described. Here, a case where the receive CM is different from the assigned CM will be described as an example.

図8は、ストレージシステム100のリードリクエスト処理手順の一例を示すシーケンス図である。図8のシーケンス図において、まず、レシーブCM#iのCA#iは、ホスト装置120からリードリクエスト(FCP Command)を受け付けると、ホスト装置120からのリードリクエストをFPGA#iに出力する(ステップS801)。   FIG. 8 is a sequence diagram illustrating an example of a read request processing procedure of the storage system 100. In the sequence diagram of FIG. 8, first, when receiving a read request (FCP Command) from the host apparatus 120, the CA # i of the receive CM # i outputs the read request from the host apparatus 120 to the FPGA #i (step S801). ).

つぎに、レシーブCM#iのFPGA#iは、CA#iからリードリクエストを受け付けると、担当CM#jにリードリクエストを転送するリクエスト処理を実行する(ステップS802)。この結果、担当CM#jのMEM#jのResponse queueにIOCBが格納される。   Next, when receiving a read request from CA # i, FPGA # i of receive CM # i executes request processing for transferring the read request to responsible CM # j (step S802). As a result, the IOCB is stored in the response queue of MEM # j of the assigned CM # j.

なお、FPGA#iリクエスト処理の具体的な処理手順は、図9を用いて後述する。   A specific processing procedure of the FPGA # i request processing will be described later with reference to FIG.

つぎに、レシーブCM#iのCA#iは、FPGA#iを介して、担当CM#jのCPU#j(ドライバ)に割り込みを通知する(ステップS803)。FPGA#iでは、直前の宛先、すなわち、リードリクエストの転送先である担当CM#jの論理アドレスが記憶されている。このため、CA#iからの割り込みは、担当CM#jの論理アドレス宛に通知される。   Next, the CA #i of the receive CM #i notifies the CPU #j (driver) of the responsible CM #j of an interrupt via the FPGA #i (step S803). In FPGA # i, the logical address of the CM # j in charge as the immediately preceding destination, that is, the transfer destination of the read request is stored. Therefore, an interrupt from CA # i is notified to the logical address of the responsible CM # j.

担当CM#jのCPU#jは、割り込みを受けると、直接CA#iへアクセスして割込要因を読み込む(ステップS804)。ここで、割込要因がIOCBであれば、CPU#jにおいて、MEM#j内のDMA情報を参照して、CA#iが読み込むMEM#j内の領域にリードデータを書き込む等の準備が行われる。   When the CPU # j of the assigned CM # j receives an interrupt, it directly accesses the CA # i and reads the interrupt factor (step S804). Here, if the interrupt factor is IOCB, the CPU #j refers to the DMA information in the MEM # j and prepares to write the read data in the area in the MEM # j read by the CA # i. Is called.

CA#iは、CPU#jの準備が完了し、転送データ(リードデータ)の転送準備が完了すると、MEM#jからリードデータを読み出して、ホスト装置120にリードデータ(BCC取外)を転送する(ステップS805)。そして、CA#iは、リードデータの転送が完了すると、ホスト装置120にReadデータ送信正常完了通知を送信する(ステップS806)。   When the preparation of CPU #j is completed and the transfer data (read data) is ready for transfer, CA #i reads the read data from MEM #j and transfers the read data (BCC removal) to host device 120. (Step S805). Then, when the transfer of the read data is completed, CA #i transmits a Read data transmission normal completion notification to the host device 120 (step S806).

なお、ホスト装置120にReadデータ送信正常完了通知が送信されると、CPU#jに対して処理が正常に完了したことが通知され、その結果、CPU#jにおいて、MEM#j内のリードデータを削除するなどの後処理が行われる。   When the read data transmission normal completion notification is transmitted to the host device 120, the CPU #j is notified that the processing has been normally completed. As a result, the CPU #j reads the read data in the MEM #j. Post-processing such as deleting is performed.

これにより、レシーブCM#iのFPGA#iにおいて、ホスト装置120からのライトリクエストの宛先を解析して、リードリクエストを担当CM#jに転送することができる。   As a result, the FPGA #i of the receive CM #i can analyze the destination of the write request from the host device 120 and transfer the read request to the responsible CM #j.

(リクエスト処理の具体的処理手順)
つぎに、FPGA#iのリクエスト処理の具体的な処理手順について説明する。
(Specific processing procedure of request processing)
Next, a specific processing procedure of FPGA # i request processing will be described.

図9は、FPGA#iのリクエスト処理の具体的処理手順の一例を示すフローチャートである。図9のフローチャートにおいて、まず、FPGA#iは、ホスト装置120からのリクエストをCA#iから受け付ける(ステップS901)。つぎに、FPGA#iは、受け付けたリクエストがライトリクエストであるか否かを判断する(ステップS902)。   FIG. 9 is a flowchart illustrating an example of a specific processing procedure of request processing of FPGA #i. In the flowchart of FIG. 9, first, the FPGA #i receives a request from the host apparatus 120 from the CA #i (step S901). Next, the FPGA #i determines whether or not the accepted request is a write request (step S902).

ここで、ライトリクエストの場合(ステップS902:Yes)、FPGA#iは、ライトリクエスト(FCP Command)に含まれるアクセス先のLUNを特定する(ステップS903)。つぎに、FPGA#iは、対応情報リスト300を参照して、特定したアクセス先のLUNに対応する担当CM#jおよびミラーCM#kの論理アドレスを特定する(ステップS904)。   Here, in the case of a write request (step S902: Yes), the FPGA #i specifies an access destination LUN included in the write request (FCP Command) (step S903). Next, the FPGA #i refers to the correspondence information list 300 and identifies the logical address of the assigned CM #j and mirror CM #k corresponding to the identified LUN of the access destination (step S904).

そして、FPGA#iは、特定した担当CM#jおよびミラーCM#kの論理アドレスをライトリクエストの宛先にそれぞれ設定して、当該ライトリクエストをSW#iに転送し(ステップS905)、本フローチャートによる一連の処理を終了する。これにより、FPGA#iにより、ホスト装置120からのライトリクエストを担当CM#jおよびミラーCM#kに転送することができる。   Then, the FPGA #i sets the logical addresses of the specified responsible CM # j and mirror CM # k as the destination of the write request, and forwards the write request to the SW # i (step S905). A series of processing ends. Thus, the write request from the host device 120 can be transferred to the responsible CM # j and the mirror CM # k by the FPGA # i.

また、ステップS902において、リードリクエストの場合(ステップS902:No)、FPGA#iは、ライトリクエスト(FCP Command)に含まれるアクセス先のLUNを特定する(ステップS906)。つぎに、FPGA#iは、対応情報リスト300を参照して、特定したアクセス先のLUNに対応する担当CM#jの論理アドレスを特定する(ステップS907)。   In step S902, in the case of a read request (step S902: No), the FPGA #i specifies the LUN of the access destination included in the write request (FCP Command) (step S906). Next, the FPGA #i refers to the correspondence information list 300 and identifies the logical address of the assigned CM #j corresponding to the identified access destination LUN (step S907).

そして、FPGA#iは、特定した担当CM#jの論理アドレスをリードリクエストの宛先に設定して、当該リードリクエストをSW#iに転送し(ステップS908)、本フローチャートによる一連の処理を終了する。これにより、FPGA#iにより、ホスト装置120からのリードリクエストを担当CM#jに転送することができる。   Then, the FPGA #i sets the logical address of the identified responsible CM # j as the destination of the read request, transfers the read request to the SW # i (step S908), and ends the series of processing according to this flowchart. . Thereby, the read request from the host device 120 can be transferred to the responsible CM # j by the FPGA # i.

以上説明したように、実施の形態にかかるCM#iによれば、CA#iに直接接続されるFPGA#i(あるいは、専用LSI)により、ホスト装置120からのライトリクエストを受け付けたことに応じて、対応情報リスト300を参照して、ライトリクエストから特定されるLUNに対応する担当CM#jの論理アドレスを特定することができる。そして、CM#iによれば、FPGA#i(あるいは、専用LSI)により、特定した担当CM#jの論理アドレスを宛先に設定して、ライトリクエストおよび当該ライトリクエストにかかるライトデータを転送することができる。   As described above, according to CM # i according to the embodiment, in response to reception of a write request from host apparatus 120 by FPGA # i (or a dedicated LSI) directly connected to CA # i. Thus, referring to the correspondence information list 300, the logical address of the assigned CM #j corresponding to the LUN identified from the write request can be identified. According to CM # i, the logical address of the specified responsible CM # j is set as the destination by FPGA # i (or a dedicated LSI), and the write request and the write data related to the write request are transferred. Can do.

これにより、CA#iに直接接続されたFPGA#i(あるいは、専用LSI)を用いて、CPU#iやMEM#iを介さずに、ホスト装置120からのライトリクエストの転送先を解析して、担当CM#jへライトリクエストおよびライトデータを転送することができる。この結果、ライトリクエスト時に、ホスト装置120からのデータをMEM#iに一旦格納する必要がなくなり、CPU#iが処理する場合に比べて、ライトリクエストに対する応答時間の増加を抑制することができる。また、ライトリクエスト時に、CPU#iへの割り込みが発生しないため、CPU#iで実行中の処理が中断されるのを防いで、ストレージシステム100の性能向上を図ることができる。   As a result, the transfer destination of the write request from the host device 120 is analyzed without using the CPU #i or MEM # i by using the FPGA #i (or dedicated LSI) directly connected to the CA # i. , The write request and write data can be transferred to the responsible CM # j. As a result, there is no need to temporarily store data from the host device 120 in the MEM # i at the time of the write request, and an increase in response time to the write request can be suppressed as compared with the case where the CPU # i processes. In addition, since an interrupt to the CPU #i does not occur at the time of a write request, it is possible to prevent the processing being executed by the CPU #i from being interrupted and improve the performance of the storage system 100.

また、CM#iによれば、FPGA#i(あるいは、専用LSI)により、対応情報リスト300を参照して、さらに、ライトリクエストから特定されるLUNに対応するミラーCM#kの論理アドレスを特定することができる。そして、CM#iによれば、FPGA#i(あるいは、専用LSI)により、特定したミラーCM#kの論理アドレスを宛先に設定して、ライトリクエストおよび当該ライトリクエストにかかるライトデータを転送することができる。   Further, according to CM # i, by referring to the correspondence information list 300 using FPGA # i (or a dedicated LSI), the logical address of the mirror CM # k corresponding to the LUN specified from the write request is specified. can do. According to CM # i, the logical address of the specified mirror CM # k is set as the destination by FPGA # i (or a dedicated LSI), and the write request and the write data related to the write request are transferred. Can do.

これにより、CA#iに直接接続されたFPGA#i(あるいは、専用LSI)を用いて、CPU#iやMEM#iを介さずに、ミラーCM#kへライトリクエストおよびライトデータを転送して、ライトデータの冗長化を行うことができる。また、担当CM#jおよびミラーCM#kに対して一斉にデータ転送することができるため、担当CM#kからミラーCM#kへデータ転送する場合に比べて、ライトリクエストに対する応答時間を短縮することができる。   As a result, the FPGA #i (or dedicated LSI) directly connected to CA # i is used to transfer the write request and write data to the mirror CM # k without going through the CPU # i or MEM # i. Write data can be made redundant. In addition, since data can be transferred simultaneously to the assigned CM # j and mirror CM # k, the response time for the write request is shortened compared to the case where data is transferred from the assigned CM # k to the mirror CM # k. be able to.

また、CM#iによれば、FPGA#i(あるいは、専用LSI)により、ホスト装置120からのリードリクエストを受け付けたことに応じて、対応情報リスト300を参照して、リードリクエストから特定されるLUNに対応する担当CM#jの論理アドレスを特定することができる。そして、CM#iによれば、FPGA#i(あるいは、専用LSI)により、特定した担当CM#jの論理アドレスを宛先に設定して、リードリクエストを転送することができる。   Further, according to CM # i, in response to reception of a read request from the host device 120 by FPGA # i (or a dedicated LSI), the correspondence information list 300 is referred to and specified from the read request. The logical address of the assigned CM # j corresponding to the LUN can be specified. According to CM # i, the read request can be transferred by setting the logical address of the specified responsible CM # j as the destination by FPGA # i (or a dedicated LSI).

これにより、CA#iに直接接続されたFPGA#i(あるいは、専用LSI)を用いて、CPU#iやMEM#iを介さずに、ホスト装置120からのリードリクエストの転送先を解析して、担当CM#jへリードリクエストを転送することができる。また、リードリクエスト時に、CPU#iへの割り込みが発生しないため、CPU#iで実行中の処理が中断されるのを防いで、ストレージシステム100の性能向上を図ることができる。   As a result, the transfer destination of the read request from the host apparatus 120 is analyzed without using the CPU #i and the MEM # i by using the FPGA #i (or dedicated LSI) directly connected to the CA # i. , The read request can be transferred to the responsible CM # j. In addition, since an interrupt to the CPU #i does not occur at the time of a read request, it is possible to prevent the processing being executed by the CPU #i from being interrupted and improve the performance of the storage system 100.

上述した実施の形態に関し、さらに以下の付記を開示する。   The following additional notes are disclosed with respect to the embodiment described above.

(付記1)ホスト装置に接続されるインターフェースと、
前記インターフェースに直接接続される、内部の回路を再構成可能な集積回路または専用の集積回路と、を有し、
前記集積回路は、
前記インターフェースを介して前記ホスト装置からのライトリクエストを受け付けたことに応じて、記憶装置と、互いに通信可能な複数のストレージ制御装置のうちの前記記憶装置へのリクエストを処理するストレージ制御装置の論理アドレスとの対応関係を示す対応情報を参照して、前記ライトリクエストから特定される記憶装置に対応するストレージ制御装置の論理アドレスを特定し、
特定した前記論理アドレスを宛先に設定して、前記ライトリクエストおよび当該ライトリクエストにかかるライトデータを転送する、ことを特徴とするストレージ制御装置。
(Appendix 1) An interface connected to the host device;
An integrated circuit that is directly connected to the interface and that can reconfigure internal circuits or a dedicated integrated circuit, and
The integrated circuit comprises:
In response to receiving a write request from the host device via the interface, the storage control device logic that processes a request to the storage device among a plurality of storage control devices that can communicate with the storage device. Referring to the correspondence information indicating the correspondence relationship with the address, specify the logical address of the storage control device corresponding to the storage device specified from the write request,
A storage control apparatus, wherein the specified logical address is set as a destination, and the write request and write data relating to the write request are transferred.

(付記2)前記対応情報は、さらに、前記記憶装置と、前記記憶装置へのリクエストにかかるライトデータのミラーリングを行う第2のストレージ装置との対応関係を示し、
前記集積回路は、
前記対応情報を参照して、さらに、前記ライトリクエストから特定される記憶装置に対応する第2のストレージ制御装置の論理アドレスを特定し、
特定した前記第2のストレージ制御装置の論理アドレスを宛先に設定して、前記ライトリクエストおよび当該ライトリクエストにかかるライトデータを転送する、ことを特徴とする付記1に記載のストレージ制御装置。
(Supplementary Note 2) The correspondence information further indicates a correspondence relationship between the storage device and a second storage device that mirrors write data related to a request to the storage device.
The integrated circuit comprises:
Referencing the correspondence information, further specifying a logical address of a second storage control device corresponding to the storage device specified from the write request,
The storage control device according to appendix 1, wherein the specified logical address of the second storage control device is set as a destination, and the write request and the write data relating to the write request are transferred.

(付記3)前記集積回路は、
前記インターフェースを介して前記ホスト装置からのリードリクエストを受け付けたことに応じて、前記対応情報を参照して、前記リードリクエストから特定される記憶装置に対応するストレージ制御装置の論理アドレスを特定し、
特定した前記論理アドレスを宛先に設定して、前記リードリクエストを転送する、ことを特徴とする付記1または2に記載のストレージ制御装置。
(Appendix 3) The integrated circuit is:
In response to receiving a read request from the host device via the interface, referring to the correspondence information, identify a logical address of the storage control device corresponding to the storage device identified from the read request,
The storage control device according to appendix 1 or 2, wherein the read request is transferred by setting the specified logical address as a destination.

(付記4)前記内部の回路を再構成可能な集積回路は、FPGA(Field Programmable Gate Array)であることを特徴とする付記1〜3のいずれか一つに記載のストレージ制御装置。 (Supplementary note 4) The storage control device according to any one of Supplementary notes 1 to 3, wherein the integrated circuit capable of reconfiguring the internal circuit is a field programmable gate array (FPGA).

(付記5)複数のストレージ制御装置を含むストレージシステムであって、
前記複数のストレージ制御装置のうちのいずれかのストレージ制御装置は、
ホスト装置に接続されるインターフェースと、
前記インターフェースを介して前記ホスト装置からのライトリクエストを受け付けたことに応じて、記憶装置と、互いに通信可能な複数のストレージ制御装置のうちの前記記憶装置へのリクエストを処理するストレージ制御装置の論理アドレスとの対応関係を示す対応情報を参照して、前記ライトリクエストから特定される記憶装置に対応するストレージ制御装置の論理アドレスを特定し、特定した前記論理アドレスを宛先に設定して、前記ライトリクエストおよび当該ライトリクエストにかかるライトデータを転送する、内部の回路を再構成可能な集積回路または専用の集積回路と、
を有することを特徴とするストレージシステム。
(Supplementary Note 5) A storage system including a plurality of storage control devices,
One of the plurality of storage control devices is a storage control device,
An interface connected to the host device;
In response to receiving a write request from the host device via the interface, the storage control device logic that processes a request to the storage device among a plurality of storage control devices that can communicate with the storage device. Referring to the correspondence information indicating the correspondence relationship with the address, the logical address of the storage control device corresponding to the storage device identified from the write request is identified, the identified logical address is set as the destination, and the write An integrated circuit capable of reconfiguring an internal circuit for transferring a request and write data related to the write request, or a dedicated integrated circuit;
A storage system comprising:

100 ストレージシステム
110 FRT
111 FRT−SW
120 ホスト装置
300 対応情報リスト
401 受付部
402 特定部
403 転送部
#0〜#3,#i,#j,#k CM
#i CPU
#i MEM
#i IOC
#i CA
#i FPGA
#i SW
100 storage system 110 FRT
111 FRT-SW
120 Host device 300 Corresponding information list 401 Accepting unit 402 Specifying unit 403 Transfer unit # 0 to # 3, #i, #j, #k CM
#I CPU
#I MEM
#I IOC
#I CA
#I FPGA
#I SW

Claims (4)

ホスト装置に接続されるインターフェースと、
前記インターフェースに直接接続される、内部の回路を再構成可能な集積回路または専用の集積回路と、を有し、
前記集積回路は、
前記インターフェースを介して前記ホスト装置からのライトリクエストを受け付けたことに応じて、記憶装置と、互いに通信可能な複数のストレージ制御装置のうちの前記記憶装置へのリクエストを処理するストレージ制御装置の論理アドレスとの対応関係を示す対応情報を参照して、前記ライトリクエストから特定される記憶装置に対応するストレージ制御装置の論理アドレスを特定し、
特定した前記論理アドレスを宛先に設定して、前記ライトリクエストおよび当該ライトリクエストにかかるライトデータを転送する、ことを特徴とするストレージ制御装置。
An interface connected to the host device;
An integrated circuit that is directly connected to the interface and that can reconfigure internal circuits or a dedicated integrated circuit, and
The integrated circuit comprises:
In response to receiving a write request from the host device via the interface, the storage control device logic that processes a request to the storage device among a plurality of storage control devices that can communicate with the storage device. Referring to the correspondence information indicating the correspondence relationship with the address, specify the logical address of the storage control device corresponding to the storage device specified from the write request,
A storage control apparatus, wherein the specified logical address is set as a destination, and the write request and write data relating to the write request are transferred.
前記対応情報は、さらに、前記記憶装置と、前記記憶装置へのリクエストにかかるライトデータのミラーリングを行う第2のストレージ装置との対応関係を示し、
前記集積回路は、
前記対応情報を参照して、さらに、前記ライトリクエストから特定される記憶装置に対応する第2のストレージ制御装置の論理アドレスを特定し、
特定した前記第2のストレージ制御装置の論理アドレスを宛先に設定して、前記ライトリクエストおよび当該ライトリクエストにかかるライトデータを転送する、ことを特徴とする請求項1に記載のストレージ制御装置。
The correspondence information further indicates a correspondence relationship between the storage device and a second storage device that mirrors write data related to a request to the storage device.
The integrated circuit comprises:
Referencing the correspondence information, further specifying a logical address of a second storage control device corresponding to the storage device specified from the write request,
The storage control device according to claim 1, wherein the logical address of the identified second storage control device is set as a destination, and the write request and the write data relating to the write request are transferred.
前記集積回路は、
前記インターフェースを介して前記ホスト装置からのリードリクエストを受け付けたことに応じて、前記対応情報を参照して、前記リードリクエストから特定される記憶装置に対応するストレージ制御装置の論理アドレスを特定し、
特定した前記論理アドレスを宛先に設定して、前記リードリクエストを転送する、ことを特徴とする請求項1または2に記載のストレージ制御装置。
The integrated circuit comprises:
In response to receiving a read request from the host device via the interface, referring to the correspondence information, identify a logical address of the storage control device corresponding to the storage device identified from the read request,
3. The storage control apparatus according to claim 1, wherein the read request is transferred by setting the specified logical address as a destination.
複数のストレージ制御装置を含むストレージシステムであって、
前記複数のストレージ制御装置のうちのいずれかのストレージ制御装置は、
ホスト装置に接続されるインターフェースと、
前記インターフェースを介して前記ホスト装置からのライトリクエストを受け付けたことに応じて、記憶装置と、互いに通信可能な複数のストレージ制御装置のうちの前記記憶装置へのリクエストを処理するストレージ制御装置の論理アドレスとの対応関係を示す対応情報を参照して、前記ライトリクエストから特定される記憶装置に対応するストレージ制御装置の論理アドレスを特定し、特定した前記論理アドレスを宛先に設定して、前記ライトリクエストおよび当該ライトリクエストにかかるライトデータを転送する、内部の回路を再構成可能な集積回路または専用の集積回路と、
を有することを特徴とするストレージシステム。
A storage system including a plurality of storage control devices,
One of the plurality of storage control devices is a storage control device,
An interface connected to the host device;
In response to receiving a write request from the host device via the interface, the storage control device logic that processes a request to the storage device among a plurality of storage control devices that can communicate with the storage device. Referring to the correspondence information indicating the correspondence relationship with the address, the logical address of the storage control device corresponding to the storage device identified from the write request is identified, the identified logical address is set as the destination, and the write An integrated circuit capable of reconfiguring an internal circuit for transferring a request and write data related to the write request, or a dedicated integrated circuit;
A storage system comprising:
JP2016161703A 2016-08-22 2016-08-22 Storage controller and storage system Active JP6825263B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016161703A JP6825263B2 (en) 2016-08-22 2016-08-22 Storage controller and storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016161703A JP6825263B2 (en) 2016-08-22 2016-08-22 Storage controller and storage system

Publications (2)

Publication Number Publication Date
JP2018032061A true JP2018032061A (en) 2018-03-01
JP6825263B2 JP6825263B2 (en) 2021-02-03

Family

ID=61303392

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016161703A Active JP6825263B2 (en) 2016-08-22 2016-08-22 Storage controller and storage system

Country Status (1)

Country Link
JP (1) JP6825263B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019204463A (en) * 2018-05-25 2019-11-28 株式会社日立製作所 Storage system and control method therefor

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008040571A (en) * 2006-08-02 2008-02-21 Hitachi Ltd Controller for storage system capable of functioning as component of virtual storage system
JP2009181402A (en) * 2008-01-31 2009-08-13 Hitachi Ltd Storage system equipped with two or more controller modules
JP2012531656A (en) * 2009-11-10 2012-12-10 株式会社日立製作所 Storage system with multiple controllers
WO2015068239A1 (en) * 2013-11-07 2015-05-14 株式会社日立製作所 Computer system and data control method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008040571A (en) * 2006-08-02 2008-02-21 Hitachi Ltd Controller for storage system capable of functioning as component of virtual storage system
JP2009181402A (en) * 2008-01-31 2009-08-13 Hitachi Ltd Storage system equipped with two or more controller modules
JP2012531656A (en) * 2009-11-10 2012-12-10 株式会社日立製作所 Storage system with multiple controllers
WO2015068239A1 (en) * 2013-11-07 2015-05-14 株式会社日立製作所 Computer system and data control method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019204463A (en) * 2018-05-25 2019-11-28 株式会社日立製作所 Storage system and control method therefor

Also Published As

Publication number Publication date
JP6825263B2 (en) 2021-02-03

Similar Documents

Publication Publication Date Title
JP6074056B2 (en) Computer system and data control method
USRE49273E1 (en) Switch and memory device
US9298648B2 (en) Method and system for I/O flow management using RAID controller with DMA capabilitiy to directly send data to PCI-E devices connected to PCI-E switch
US9542320B2 (en) Multi-node cache coherency with input output virtualization
US9213500B2 (en) Data processing method and device
US20160259568A1 (en) Method and apparatus for storing data
CN107077447B (en) Shared virtualized local storage
US9619404B2 (en) Backup cache with immediate availability
JP2012133405A (en) Storage device and data transfer control method thereof
CN109815170B (en) Data redundancy processing method and related computer system
US11606429B2 (en) Direct response to IO request in storage system having an intermediary target apparatus
US20110282963A1 (en) Storage device and method of controlling storage device
US20130086285A1 (en) Sharing iommu mappings across devices in a dma group
KR20190142178A (en) METHOD OF NVMe OVER FABRIC RAID IMPLEMENTATION FOR READ COMMAND EXECUTION
US8255596B2 (en) Multipath-based migration of data across storage controllers
US10482049B2 (en) Configuring NVMe devices for redundancy and scaling
US11029847B2 (en) Method and system for shared direct access storage
US11487432B2 (en) Direct response to IO request in storage system with remote replication
US9921753B2 (en) Data replication across host systems via storage controller
US10831684B1 (en) Kernal driver extension system and method
JP6825263B2 (en) Storage controller and storage system
JP5511546B2 (en) Fault tolerant computer system, switch device connected to multiple physical servers and storage device, and server synchronization control method
US10380044B2 (en) Control apparatus, storage apparatus and computer-readable recording medium having stored therein control program
US10705905B2 (en) Software-assisted fine-grained data protection for non-volatile memory storage devices
US11972112B1 (en) Host IO device direct read operations on peer memory over a PCIe non-transparent bridge

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190513

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200729

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201228

R150 Certificate of patent or registration of utility model

Ref document number: 6825263

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150