JP2018032061A - Storage controller, and storage system - Google Patents
Storage controller, and storage system Download PDFInfo
- 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
Links
Images
Abstract
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.
しかしながら、従来技術では、複数のストレージ制御装置を含むストレージシステムにおいて、ホスト装置からのライトリクエストに対する応答時間が増大する場合がある。例えば、ホスト装置からのデータのストレージ制御装置間の転送処理に時間がかかり、ライトリクエストに対する応答時間が増大する場合がある。 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.
以下に図面を参照して、本発明にかかるストレージ制御装置、およびストレージシステムの実施の形態を詳細に説明する。 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
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
なお、CM#0〜#3のハードウェア構成例については、図2を用いて後述する。
An example of the hardware configuration of
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
なお、図1では、CM間を接続するFRTとして、FRT110のみ表記したが、2以上のFRTにより冗長化されていてもよい。
In FIG. 1, only the
また、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
なお、図1では、1台のホスト装置120がCM#0〜#3に接続される場合を例に挙げて説明したが、これに限らない。例えば、複数台のホスト装置のそれぞれが、CM#0〜#3のうちの1以上のCMに接続されることにしてもよい。
In FIG. 1, the case where one
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
また、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
なお、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
ここで、従来のストレージシステムでは、ライトリクエスト時に、ホスト装置から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
一方で、ホスト装置から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
(CM#0〜#3のハードウェア構成例)
つぎに、CM#0〜#3のハードウェア構成例について説明する。以下の説明では、CM#0〜#3のうちの任意のCMを「CM#i」と表記する場合がある(i=0,1,2,3)。
(
Next, a hardware configuration example of
図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
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
図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
例えば、対応情報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#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
受付部401は、CA#iを介して、ホスト装置120からのリクエストを受け付ける。ここで、リクエストは、例えば、DE$0,$1内のいずれかのRAIDグループに対するライトリクエスト(書込要求)またはリードリクエスト(読出要求)である。リクエストには、例えば、アクセス先のLUN情報やライトデータ(書込データ)またはリードデータ(読出データ)のデータサイズなどが含まれている。
The accepting
具体的には、例えば、まず、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
特定部402は、ホスト装置120からのリクエストを受け付けたことに応じて、当該リクエストの宛先を特定する。具体的には、例えば、特定部402は、当該リクエストのコマンド種別を判断する。ここで、特定部402は、ライトリクエストであると判断した場合には、当該ライトリクエストに含まれるLUNを特定する。このLUNは、アクセス先となる論理ユニットを識別する情報である。そして、特定部402は、対応情報リスト300を参照して、特定したLUNに対応する担当CM情報およびミラーCM情報を特定する。
In response to receiving a request from the
これにより、ライトリクエストの宛先として、担当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
これにより、リードリクエストの宛先として、担当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
この結果、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
また、リードリクエストの場合には、転送部403は、リードリクエストの宛先に、特定された担当CM#jの論理アドレスを設定して、SW#iに転送する。この結果、SW#iにおいてアドレス変換が行われ、ホスト装置120からのリードリクエストが、FRT110を介して、担当CM#jに転送される。
Further, in the case of a read request, the
なお、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 (
(ライトリクエストの転送例)
つぎに、図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
この場合、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は、ライトリクエストの宛先に、担当CM#3の論理アドレス「0000_2300_0000_0000」およびミラーCM#1の論理アドレス「0000_2100_0000_0000」をそれぞれ設定して、SW#0に転送する。
Next,
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
この結果、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-
(ストレージシステム100のライトリクエスト処理手順)
つぎに、ストレージシステム100のライトリクエスト処理手順について説明する。ここでは、レシーブCMが担当CMおよびミラーCMと異なる場合を例に挙げて説明する。
(Write request processing procedure of storage system 100)
Next, a write request processing procedure of the
図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
つぎに、レシーブ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
図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
そして、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
これにより、レシーブ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
(ストレージシステム100のリードリクエスト処理手順)
つぎに、ストレージシステム100のリードリクエスト処理手順について説明する。ここでは、レシーブCMが担当CMと異なる場合を例に挙げて説明する。
(Read request processing procedure of the storage system 100)
Next, a read request processing procedure of the
図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
つぎに、レシーブ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
なお、ホスト装置120にReadデータ送信正常完了通知が送信されると、CPU#jに対して処理が正常に完了したことが通知され、その結果、CPU#jにおいて、MEM#j内のリードデータを削除するなどの後処理が行われる。
When the read data transmission normal completion notification is transmitted to the
これにより、レシーブ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
(リクエスト処理の具体的処理手順)
つぎに、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
ここで、ライトリクエストの場合(ステップ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
そして、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
また、ステップ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
そして、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
以上説明したように、実施の形態にかかる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
これにより、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
また、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
これにより、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
これにより、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
上述した実施の形態に関し、さらに以下の付記を開示する。 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
(付記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
(付記4)前記内部の回路を再構成可能な集積回路は、FPGA(Field Programmable Gate Array)であることを特徴とする付記1〜3のいずれか一つに記載のストレージ制御装置。
(Supplementary note 4) The storage control device according to any one of
(付記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
111 FRT-SW
120
#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のストレージ制御装置の論理アドレスを宛先に設定して、前記ライトリクエストおよび当該ライトリクエストにかかるライトデータを転送する、ことを特徴とする請求項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:
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019204463A (en) * | 2018-05-25 | 2019-11-28 | 株式会社日立製作所 | Storage system and control method therefor |
Citations (4)
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 |
-
2016
- 2016-08-22 JP JP2016161703A patent/JP6825263B2/en active Active
Patent Citations (4)
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)
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 |