JP6649989B2 - ストレージシステム及びその制御方法 - Google Patents

ストレージシステム及びその制御方法 Download PDF

Info

Publication number
JP6649989B2
JP6649989B2 JP2018101066A JP2018101066A JP6649989B2 JP 6649989 B2 JP6649989 B2 JP 6649989B2 JP 2018101066 A JP2018101066 A JP 2018101066A JP 2018101066 A JP2018101066 A JP 2018101066A JP 6649989 B2 JP6649989 B2 JP 6649989B2
Authority
JP
Japan
Prior art keywords
storage
area
storage area
stored
parameter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018101066A
Other languages
English (en)
Other versions
JP2019204463A (ja
Inventor
佑太朗 小林
佑太朗 小林
笠原 信一
信一 笠原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2018101066A priority Critical patent/JP6649989B2/ja
Priority to US16/297,007 priority patent/US11074010B2/en
Publication of JP2019204463A publication Critical patent/JP2019204463A/ja
Application granted granted Critical
Publication of JP6649989B2 publication Critical patent/JP6649989B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Description

本発明は、ストレージシステム及びその制御方法に関し、複数のストレージコントローラを備えるストレージシステムに適用して好適なものである。
従来、複数のストレージ装置により1つのクラスタを構成し、上位装置(以下、これをホストと呼ぶ)から与えられたデータやコマンドをクラスタ内のストレージ装置間で対応するストレージ装置に転送して処理することにより、ホストに対してクラスタを1つの大きなストレージ装置に見せる技術が広く用いられている(特許文献1参照)。
また、かかるクラスタにおいて、ホストからのライトデータを自動的に2重化することも広く行われている。例えば、特許文献1には、このようなストレージシステムにおいて、第1のストレージ装置が受領したデータを第2のストレージ装置を経由して第3のストレージ装置に転送する際に第2のストレージ装置にもデータを残し、第2及び第3のストレージ装置においてデータを速やかに冗長記憶できるようにする技術が開示されている。
国際公開第2017/149674号
ところが、かかる特許文献1に開示されたストレージシステムでは、ホストから与えられたライト対象のユーザデータ(以下、これをライトデータと呼ぶ)を第1のストレージ装置内のメモリに一旦格納し、これを第2のストレージ装置が読み出す構成となっているために第1のストレージ装置から第2のストレージ装置へのデータ転送を迅速に行い難く、この結果としてホストから見たストレージシステム全体のレスポンス性能を向上させ難い問題があった。
本発明は以上の点を考慮してなされたもので、ホストから見たレスポンス性能を向上させ得るストレージシステム及びその制御方法を提案しようとするものである。
かかる課題を解決するため本発明においては、双方向通信可能に接続された複数のストレージコントローラを有するストレージシステムにおいて、各前記ストレージコントローラに、ホストとの通信時におけるプロトコル制御を行うフロントエンド部と、システム内の他の前記ストレージコントローラとの通信時におけるインタフェースとして機能するインタフェース部と、前記ホストからのコマンドを処理するプロセッサと、前記インタフェース部の内部又は外部にそれぞれ設けられた第1及び第2の記憶領域とを設け、前記第1の記憶領域は、複数の第1の領域に区分されて管理されると共に、前記第2の記憶領域は、各前記第1の領域にそれぞれ対応させて複数の第2の領域に区分されて管理され、前記フロントエンド部は、前記ホストからのコマンドを対応する前記ストレージコントローラに転送し、前記プロセッサは、前記フロントエンド部から自ストレージコントローラに転送されてきた前記コマンドに応じたシステム機能を実現するために必要なパラメータを前記第1の記憶領域内の前記第1の領域に格納すると共に、前記第2の記憶領域内の前記第2の領域のうち、当該第1の領域と対応付けられた前記第2の領域のアドレスを前記フロントエンド部に通知し、前記フロントエンド部は、通知された前記アドレスがあて先としてヘッダに格納されたデータパケットを生成し、生成した前記データパケットを前記第2の記憶領域の当該アドレスに格納し、前記インタフェース部は、前記第2の記憶領域に格納された前記データパケットの前記ヘッダに格納されたあて先の前記アドレスに基づいて、当該アドレスの前記第2の領域と対応付けられた前記第1の記憶領域内の前記第1の領域に格納された前記パラメータを読み出し、読み出した前記パラメータに基づいて、前記コマンドに応じた前記システム機能の処理を実行するようにした。
双方向通信可能に接続された複数のストレージコントローラを有するストレージシステムの制御方法において、各前記ストレージコントローラは、ホストとの通信時におけるプロトコル制御を行うフロントエンド部と、システム内の他の前記ストレージコントローラとの通信時におけるインタフェースとして機能するインタフェース部と、前記ホストからのコマンドを処理するプロセッサと、前記インタフェース部の内部又は外部にそれぞれ設けられた第1及び第2の記憶領域とを有し、前記第1の記憶領域は、複数の第1の領域に区分されて管理されると共に、前記第2の記憶領域は、各前記第1の領域にそれぞれ対応させて複数の第2の領域に区分されて管理され、前記フロントエンド部が、前記ホストからのコマンドを対応する前記ストレージコントローラに転送する第1のステップと、前記プロセッサが、前記フロントエンド部から自ストレージコントローラに転送されてきた前記コマンドに応じたシステム機能を実現するために必要なパラメータを前記第1の記憶領域内の前記第1の領域に格納すると共に、前記第2の記憶領域内の前記第2の領域のうち、当該第1の領域と対応付けられた前記第2の領域のアドレスを前記フロントエンド部に通知する第2のステップと、前記フロントエンド部が、通知された前記アドレスがあて先としてヘッダに格納されたデータパケットを生成し、生成した前記データパケットを前記第2の記憶領域の当該アドレスに格納する第3のステップと、前記インタフェース部が、前記第2の記憶領域に格納された前記データパケットの前記ヘッダに格納されたあて先の前記アドレスに基づいて、当該アドレスの前記第2の領域と対応付けられた前記第1の記憶領域内の前記第1の領域に格納された前記パラメータを読み出し、読み出した前記パラメータに基づいて、前記コマンドに応じた前記システム機能の処理を実行する第4のステップとを設けるようにした。
本発明のストレージシステム及びストレージシステムの制御方法によれば、中間バッファを介すことなく、必要な情報がホストからのコマンドを受領したストレージコントローラからそのコマンドを実行すべきストレージコントローラに転送される。
本発明によれば、ホストから見たレスポンス性能を向上させ得るストレージシステム及びその制御方法を実現できる。
本実施の形態によるストレージシステムの全体構成を示すブロック図である。 ストレージコントローラの詳細構成を示すブロック図である。 LDEV−MP対応テーブルの構成例を示す図表である。 オーナ/ペア対応テーブルの構成例を示す図表である。 従来のストレージシステムにおけるライト処理の流れの説明に供するシーケンス図である。 従来のストレージシステムにおけるライト処理の流れの説明に供するブロック図である。 従来のストレージシステムにおけるライト処理の流れの説明に供するブロック図である。 転送指示の構成例を示す概念図である。 本実施の形態のストレージシステムにおけるライト処理の流れの説明に供するシーケンス図である。 本実施の形態のストレージシステムにおけるライト処理の流れの説明に供するブロック図である。 本実施の形態のストレージシステムにおけるライト処理の流れの説明に供するブロック図である。 (A)−(C)は、スイッチインタフェースパラメータの説明に供する図表であり、(D)は、2重ライトに関するスイッチインタフェースパラメータの構成例を示す図表である。 スイッチインタフェースの詳細構成を示すブロック図である。 パラメータ格納レジスタのパラメータ格納領域と、データバッファRAMのデータ格納領域との対応関係の説明に供する概念図である。 (A)及び(B)は、2重ライト時におけるより具体的な処理の流れの説明に供するシーケンス図及びブロック図である。 (A)及び(B)は、2重ライト時におけるより具体的な処理の流れの説明に供するシーケンス図及びブロック図である。 (A)及び(B)は、2重ライト時におけるより具体的な処理の流れの説明に供するシーケンス図及びブロック図である。 (A)及び(B)は、2重ライト時におけるより具体的な処理の流れの説明に供するシーケンス図及びブロック図である。 2重ライト処理の処理手順を示すフローチャートである。 リード時における処理の流れの説明に供するシーケンス図である。
以下図面について、本発明の一実施の形態を詳述する。
(1)本実施の形態によるストレージシステムの構成
図1において、1は全体として本実施の形態によるストレージシステムを示す。このストレージシステム1は、例えば、PCIe(Peripheral Component Interconnect express)スイッチ2を介して双方向通信可能に接続された複数のストレージコントローラ3A〜3Dを備えて構成される。図1では、4台のストレージコントローラ3A〜3Dによりクラスタ(ストレージシステム1)が構成されている例を示しているが、クラスタ(ストレージシステム1)を構成するストレージコントローラの台数は4に限らない。以下においては、ストレージコントローラ3A〜3Dを区別しない場合、ストレージコントローラ3と呼ぶものとする。
各ストレージコントローラ3は、それぞれ通信ネットワーク4A〜4Dを介してホスト5A〜5Dと双方向通信可能に接続される。なお、通信ネットワーク4A〜4Dの少なくとも一部は共通してもよく、通信ネットワーク4A〜4Dの全てが同一通信ネットワークであってもよい。同様に、ホスト5A〜5Dの少なくとも一部は共通してもよく、ホスト5A〜5Dの全てが同一のホストであってもよい。以下においては、通信ネットワーク4A〜4Dを特に区別しない場合には、これらをまとめて通信ネットワーク4と呼び、ホスト5A〜5Dを特に区別しない場合には、これらをまとめてホスト5と呼ぶものとする。
ホスト5は、ユーザ操作又は実装されたアプリケーションソフトウェアに基づいて、通信ネットワーク4を介してストレージコントローラ3にリードコマンドやライトコマンドを送信するコンピュータ装置であり、メインフレーム又はオープン系サーバなどから構成される。ホスト5がメインフレームの場合、ホスト5及びストレージコントローラ3間の通信は、例えば、FICON(Fibre Connection:登録商標)、ESCON(Enterprise System Connection:登録商標)、ACONARC(Advanced Connection Architecture:登録商標)、FIBARC(Fibre Connection Architecture:登録商標)等の通信プロトコルに従って行われる。またホスト5がオープン系サーバの場合、ホスト5及びストレージコントローラ3間の通信は、例えば、FC(Fibre Channel)、TCP/IP(Transmission Control Protocol/Internet Protocol)、iSCSI(Internet Small Computer System Interface)のような通信プロトコルに従って行われる。
各ストレージコントローラ3A〜3Dには、それぞれ1又は複数の記憶デバイス6から構成される記憶装置7A〜7Dが接続される。以下においては、記憶装置7A〜7Dを特に区別しない場合には、これらをまとめて記憶装置7と呼ぶ。なお図1では、個々のストレージコントローラ3A〜3Dに対してそれぞれ個別の記憶装置7A〜7Dが接続されている場合について例示しているが、一部又は全部のストレージコントローラ3A〜3Dが同一の記憶装置7A〜7Dに接続されている構成であってもよい。1つのストレージコントローラ3と、1つの記憶装置7とによって1つのストレージ装置が構築される。
記憶デバイス6は、例えば、ハードディスクデバイス、半導体メモリデバイス、光ディスクデバイス又は光磁気ディスクデバイスなどから構成される。記憶デバイス6としてハードディスクデバイスを用いる場合、FC(Fibre Channel)ディスク、SCSI(Small Computer System Interface)ディスク、SATAディスク、ATA(AT Attachment)ディスク、SAS(Serial Attached SCSI)ディスク等を用いることができる。また、例えば、フラッシュメモリ(SSD)、MRAM(Magnetoresistive Random Access Memory)、相変化メモリ(Phase-Change Memory)、ReRAM(Resistive random-access memory)、FeRAM(Ferroelectric Random Access Memory)等の種々の記憶デバイス6を用いることもできる。さらに、例えば、種類の異なる記憶デバイスを記憶装置7内に混在させる構成でもよい。
1又は複数の記憶デバイス6が提供する記憶領域がプールとして管理され、プール上に1又は複数の論理的なボリューム(以下、これを論理ボリュームと呼ぶ)が定義されて、当該論理ボリュームがデータを読み書きするための記憶領域としてホスト5に提供される。なお論理ボリュームは、例えば図2に示すように、図中ではLDEV(Logical DEVice)と表示する。論理ボリューム内の記憶領域は、論理ブロックと呼ばれる所定大きさの小領域に区分されて管理され、これら論理ブロックにLBA(Logical Block Address)と呼ばれる固有のアドレスがそれぞれ付与される。そしてホストは、論理ボリュームにデータをリード/ライトする場合、その論理ボリュームの識別子(LUN:Logical Unit Number)と、その論理ボリューム内のデータを読み書きする領域の最初の論理ブロックのLBAと、リード/ライトすべきデータのデータ長とを指定したリードコマンドやライトコマンドをストレージコントローラ3に送信する。
ストレージコントローラ3は、それぞれ1又は複数のCPU20、メモリ21、フロントエンド22、バックエンド23及びスイッチインタフェース24を備えて構成される。
CPU20は、ストレージコントローラ3全体の動作制御を司るプロセッサである。またメモリ21は、例えば、DIMM(Dual Inline Memory Module)などの半導体メモリ若しくはハードディスク装置又はこれら双方から構成され、各種プログラムやデータを保持するために利用される。
フロントエンド22は、通信ネットワーク4を介したホスト5との通信時におけるプロトコル変換を行うインタフェース装置である。フロントエンド22は、CPU20の制御に基づいて、ホスト5との間でコマンドやデータを送受信する。
バックエンド23は、記憶装置7にデータを入出力するためのインタフェース装置である。CPU20は、ホスト5からの要求に応じて、バックエンド23を介して、指定された論理ボリュームの記憶領域を提供する記憶デバイス6にデータをリード/ライトする。
スイッチインタフェース24は、PCIeスイッチ2を介して他のストレージコントローラ3と双方向通信する装置である。スイッチインタフェース24の詳細については、後述する。スイッチインタフェース24は、PCIeスイッチ2を介して他のストレージコントローラ3内のスイッチインタフェース24と接続される。
図2は、ストレージコントローラ3の詳細構成を示す。CPU20は、複数のマイクロプロセッサ20Aを含む。以下、マイクロプロセッサ20AをMP20Aと略記することがある。CPU20は、内蔵する各MP20AのうちいずれかのMP20Aにコマンド処理などを割り当てる。CPU20は、複数のコマンドを並行処理することができる。CPU20が担当する処理は、実際にはいずれかのMP20Aが実行しているため、CPU20とMP20Aとを厳密に区別する必要はない。
メモリ21の記憶領域は、例えば、CPU20に提供する作業領域と、受信したホスト5や他のストレージコントローラ3からのデータを保持するキャッシュ領域と、各MP20Aが使用するテーブルを格納する管理情報領域と、各MP20Aが実行するコンピュータプログラムを格納するプログラム領域とに区分されて管理される。ただし領域ごとにメモリ21を用意する構成でもよい。
プログラム領域には、例えば、図示しないオペレーティングシステムやドライバソフトウェアなどのほかに、マイクロプログラム30が格納される。各MP20Aは、このマイクロプログラム30に基づいて、後述のような各種の処理を実行する。管理情報領域には、例えば、後述するLDEV−MP対応テーブル31及びオーナ/ペア対応テーブル32が格納される。
フロントエンド22には、ホスト5との通信時におけるプロトコル制御を行うプロトコルチップ34が設けられている。本実施の形態のプロトコルチップ34は、後述のようにスイッチインタフェース24にデータやコマンドを直接書き込むDMA機能を備える。またフロントエンド22には、FEメモリ35も設けられている。FEメモリ35は、ホスト5からのライトデータや、記憶装置7から読み出したリードデータを一時的に記憶するために利用されるほか、必要な制御情報を保持するために利用される。後述するLDEV−MP対応テーブル36は、このFEメモリ35に格納されて管理される。なお、FEメモリ35はプロトコルチップ34へ内蔵されていてもよい。
スイッチインタフェース24は、ユーザデータを一時的に格納する記憶領域としてデータバッファRAM(Random Access Memory)43を備える。スイッチインタフェース24の詳細については後述する。
図3は、フロントエンド22のFEメモリ35(図2)に格納されたLDEV−MP対応テーブル36(図2)と、メモリ21に格納されたLDEV−MP対応テーブル31(図2)との構成例を示す。
LDEV−MP対応テーブル31は、クラスタ(ストレージシステム1)内に作成されたすべての論理ボリュームを管理するために利用されるテーブルである。このLDEV−MP対応テーブル31は、ボリューム番号(LDEV#)欄31A、コントローラ番号(CTL#)欄31B及びMP番号(MP#)欄31Cを備えて構成される。LDEV−MP対応テーブル31では、1つの行がクラスタ内に作成された1つの論理ボリュームに対応する。
そしてボリューム番号欄31Aには、クラスタ内に作成された各論理ボリュームにそれぞれ付与されたその論理ボリュームに固有の識別番号(ボリューム番号)が格納される。またコントローラ番号欄31Bには、対応する論理ボリュームを管理するストレージコントローラ3の識別番号(ストレージ番号)が格納される。
さらにMP番号欄31Cには、対応する論理ボリュームを担当するMP20A(図2)に付与されたクラスタ内でそのMP20Aに固有の識別番号(MP番号)が格納される。なお「論理ボリュームを担当するMP」とは、その論理ボリュームを対象とするリードコマンドやライトコマンドがホスト5から与えられた場合に、そのリードコマンドやライトコマンドに従ってその論理ボリュームに要求されたデータを読み書きするMP20Aを指す。
従って、図3の例の場合、「LDEV A」というボリューム番号の論理ボリュームは、「CTL1」というコントローラ番号が付与されたストレージコントローラ3内の「MP#0」というMP番号が付与されたMP20Aにより管理されていることが示されている。
またLDEV−MP対応テーブル36は、当該LDEV−MP対応テーブル36を保持するフロントエンド22が設けられたストレージコントローラ3内のMP20Aと論理ボリュームとの対応関係を管理するために利用されるテーブルであり、LDEV−MP対応テーブル31から必要な情報だけを抽出して作成される。
このLDEV−MP対応テーブル36は、ボリューム番号(LDEV#)欄36A及びMP番号欄(MP#)36Bを備えて構成される。そしてボリューム番号欄36Aには、クラスタ(ストレージシステム1)内に作成された各論理ボリュームのボリューム番号がそれぞれ格納される。またMP番号欄36Bには、対応する論理ボリュームを担当するMP20AのMP番号が格納される。
他のストレージコントローラ3の管理下にある論理ボリュームについては、本LDEV−MP対応テーブル36の管轄外である。ただし、LDEV−MP対応テーブル36では、他のストレージコントローラ3の管理下にある論理ボリュームであることを認識できるように、管轄外の論理ボリュームに対応するMP番号欄36Bには「他コントローラ」という値が設定される。
従って、図3の例の場合、「LDEV A」や「LDEV B」というボリューム番号の論理ボリュームは、このLDEV−MP対応テーブル36を保持するフロントエンド22が搭載されたストレージコントローラ3により管理されており、これらの論理ボリュームがそれぞれ「MP#0」や「MP#4」というMP番号のMP20Aにより管理されているが、「LDEV C」及び「LDEV X」というボリューム番号の論理ボリュームは他ストレージコントローラ3内のMP20Aにより管理されていることが示されている。
なおフロントエンド22が管轄外の論理ボリュームを対象とするコマンドを受領した場合、MP20Aは、その論理ボリュームを管理下においているストレージコントローラ3に当該コマンドを転送する。
図4は、メモリ21に格納されて管理されるオーナ/ペア対応テーブル32の構成例を示す。オーナ/ペア対応テーブル32は、コピーペアを構成するオーナとペアとの対応関係を管理するために利用されるテーブルであり、1つの行が1つのコピーペアに対応する。
ここで「オーナ」とは、コマンドの処理対象の論理ボリュームを管理するストレージコントローラ3を指す。すなわち、コマンドを処理するストレージコントローラ3である。また「ペア」とは、コマンドの処理対象のデータについて、オーナのストレージコントローラ3とコピーペアを形成するストレージコントローラ3を指す。以下においては、オーナとなるストレージコントローラ3をオーナコントローラ3と呼び、オーナコントローラ3とペアを形成するストレージコントローラ3をペアコントローラ3と呼び、ホスト5からのコマンドを受領したストレージコントローラ3を受領コントローラ3と呼ぶ場合がある。
オーナ/ペア対応テーブル32は、図4に示すように、オーナ欄32A及びペア欄32Bを備えて構成される。そしてオーナ欄32Aには、いずれかの論理ボリュームを管理するストレージコントローラ(その論理ボリュームのオーナコントローラ)3の識別番号(以下、これをコントローラ番号と呼ぶ)が格納され、ペア欄32Bには、対応するオーナコントローラ3とコピーペアを構成するストレージコントローラ3のコントローラ番号が格納される。
従って、図4の例の場合、例えば、「CTL1」というコントローラ番号のストレージコントローラ3は、「CTL3」というコントローラ番号のストレージコントローラ3とコピーペアに設定されていることが示されている。オーナ/ペア対応テーブル32に登録された組合せは固定されたものではなく、ストレージシステム1の状況に応じて動的に変更可能である。
(2)本ストレージシステムにおけるデータのライト処理の流れ
(2−1)ライト処理の概要
次に、本ストレージシステム1におけるライト処理の流れについて説明する。これに際して、まず、従来のストレージシステムにおけるライト処理の流れを、図5〜図7を参照して説明する。ここでは、本実施の形態によるストレージシステム1が従来の処理手順でライト処理を実行するものとして説明する。
また以下においては、ホスト5A(図1)からストレージコントローラ3Aに対して、ストレージコントローラ3BのCPU20におけるいずれかのMP20Aが担当する論理ボリュームをライト先とするライトコマンドが与えられたものとする(S1)。さらに以下においては、ライトデータを2重化するようストレージシステム1内の各ストレージコントローラ3が設定されているものとする。
この場合、かかるライトコマンドを受領したストレージコントローラ(受領コントローラ)3Aのフロントエンド(以下、これをコマンド受領フロントエンドと呼ぶ)22のプロトコルチップ34(図2)は、LDEV−MP対応テーブル36(図3)を参照して、ライトデータのライト先の論理ボリュームを担当するMP(以下、これをオーナMPと呼ぶ)20Aを特定し、特定したオーナMP20Aが存在するストレージコントローラ(オーナコントローラ)3Bのメモリ21にそのライトコマンドを格納する(S2)。
また、かかるオーナMP20Aは、メモリ21に格納されたライトコマンドを読み出し(S3)、この後、ステップS2のライトコマンドに対するコマンドレスポンスを、コマンド受領フロントエンド22のプロトコルチップ34に送信する(S4)。かくして、このコマンドレスポンスを受信したプロトコルチップ34は、かかるライトコマンドの送信元のホスト5Aに対してコマンドレスポンスを送信する(S5)。
一方、コマンド受領フロントエンド22のプロトコルチップ34は、この後ホスト5Aから転送されてくる(S6)ライトデータを自ストレージコントローラ(受領コントローラ)3A内のメモリ21に格納する(S7)。これは、一度に複数のホスト5からライトデータが転送されてきた場合、受領コントローラ3Aのフロントエンド22に設けられたデータバッファ(FEメモリ35)がオーバフローする可能性があることから、ホスト5からのライトデータをメモリ21でバッファリングするためである。
そしてコマンド受領フロントエンド22のプロトコルチップ34は、かかるライトデータの転送が完了すると、その旨の転送完了ステータスをオーナMP20Aに送信する(S8)。なお、この転送完了ステータスには、受領コントローラ3Aのメモリ21に格納されているかかるライトデータのアドレスが含まれる。
また転送完了ステータスを受信したオーナMP20Aは、LDEV−MP対応テーブル31(図3)を参照してペアコントローラ3Cを特定し、特定結果に基づいて、図8に示すように、転送元メモリアドレス、1段目メモリアドレス、2段目メモリアドレス及びライトデータ長を含む転送指示33をオーナコントローラ3B内のスイッチインタフェース24に送信する(S9)。
なお、この転送指示33において、転送元メモリアドレスは、受領コントローラ3Aのメモリ21におけるライトデータの先頭アドレスである。また1段目メモリアドレスは、受領コントローラ3Aのメモリ21から読み出したライトデータの転送先のメモリアドレスである。ライトデータはオーナコントローラ3Bを経由してペアコントローラ3Cに転送されるため、1段目メモリアドレスとして、オーナコントローラ3Bのメモリ21内のアドレスが指定される。また2段目メモリアドレスは、ペアコントローラ3Cにおけるライトデータのライト先のアドレスである。2段目メモリアドレスとしては、ペアコントローラ3Cのメモリ21内のアドレスが指定される。
スイッチインタフェース24は、かかる転送指示33が与えられると、当該転送指示33に基づいて、受領コントローラ3Aのメモリ21からライトデータを読み出し(S10)、読み出したライトデータをオーナコントローラ3Bのメモリ21における転送指示33で指定されたアドレス位置に格納すると共に(S11)、このライトデータをペアコントローラ3Cのメモリ21における転送指示33で指定されたアドレス位置に格納する(S12)。
以上のように、従来のストレージシステムでは、ライトデータを受領コントローラ3Aのメモリ21でバッファリングし(S7参照)、これをオーナコントローラ3のスイッチインタフェース24が読み出す構成となっているが、このような受領コントローラ3のメモリ21を経由したオーナコントローラ3へのデータ転送のオーバヘッドが大きく、迅速なライト処理を実行し得ない問題があった。
そこで、本実施の形態のストレージシステム1では、受領コントローラ3のメモリ21を経由することなく、ライトデータをオーナコントローラ3にDMA転送することを特徴の1つとしている。
図8〜図9Bは、このような本実施の形態のストレージシステム1におけるライト処理の流れを示す。ここでもホスト5Aからストレージコントローラ3Aに対して、ストレージコントローラ3BのCPU20のいずれかのMP20Aが担当する論理ボリュームをライト先とするライトコマンドが与えられたものとする(S20)。また以下においても、ストレージシステム1内の各ストレージコントローラ3がライトデータを2重化するよう設定されているものとする。
この場合、かかるライトコマンドを受領したストレージコントローラ(受領コントローラ)3Aのコマンド受領フロントエンド22のプロトコルチップ34(図2)は、LDEV−MP対応テーブル36(図3)を参照してオーナMP20Aを特定し、特定したオーナMP20Aが存在するストレージコントローラ(オーナコントローラ)3Bのメモリ21にそのライトコマンドを格納する(S21)。
また、オーナMP20Aは、メモリ21に格納されたライトコマンドを読み出し(S22)、読み出したライトコマンドに基づいて、対応するペアコントローラ3Cのメモリ21上のアドレスと、自ストレージコントローラ(オーナコントローラ)3Bのメモリ21上のアドレスと、そのとき実行すべき処理(以下、これを「機能」又は「システム機能」とも呼ぶ。ここでは「2重ライト」。)とをスイッチインタフェースパラメータ37としてオーナコントローラ3B内のスイッチインタフェース24に送信する(S23)。
この後、オーナMP20Aは、ステップS21において受領コントローラ3Aのコマンド受領フロントエンド22のプロトコルチップ34から与えられたライトコマンドに対するコマンドレスポンスをそのコマンド受領フロントエンド22のプロトコルチップ34に送信する。またオーナMP20Aは、これと併せて自ストレージコントローラ(オーナコントローラ)3Bのスイッチインタフェース24内のデータバッファRAM43(図2)における自MPに対応するデータ格納領域(パラメータ格納レジスタの自MPに割り当てられたパラメータ格納領域と対応付けられたデータ格納領域)の先頭アドレスをプロトコルチップパラメータ38としてそのプロトコルチップ34に送信する(S24)。
かくして、オーナMP20Aからのコマンドレスポンスを受信したコマンド受領フロントエンド22のプロトコルチップ34は、かかるライトコマンドの送信元のホスト5Aに対してコマンドレスポンスを送信する(S25)。
一方、コマンド受領フロントエンド22のプロトコルチップ34は、ホスト5Aから転送されてくるライトデータを受信すると(S26)、受信したライトデータを、オーナコントローラ3Bのスイッチインタフェース24のデータバッファRAM43にDMA転送する(S27)。
この際、プロトコルチップ34は、ライトデータが格納されたデータパケット(以下においてはPCIパケットとする)のヘッダにおいて、当該PCIパケットのあて先を、上述のステップS24でオーナMP20Aからプロトコルチップパラメータ38として通知されたアドレスに設定する。これにより、かかるデータバッファRAM43におけるかかるアドレス位置にライトデータが格納される。
そしてオーナコントローラ3Bのスイッチインタフェース24は、データバッファRAM43にライトデータが格納されると、ステップS24でオーナMP20Aから与えられたスイッチインタフェースパラメータ37において指定された、自ストレージコントローラ(オーナコントローラ)3Bのメモリ21内のアドレス位置にこのライトデータを格納する(S28)。また、スイッチインタフェース24は、かかるスイッチインタフェースパラメータ37において指定された、ペアコントローラ3Cのメモリ21内のアドレス位置にライトデータをDMA転送することにより格納する(S29)。
このように本実施の形態のストレージシステム1では、受領コントローラ3Aのコマンド受領フロントエンド22が、ホスト5Aから転送されてきたライトデータをオーナコントローラ3Bのスイッチインタフェース24のデータバッファRAM43に直接書き込むため、ライトデータを受領コントローラ3Aのメモリ21を経由してオーナコントローラ3に転送する際のオーバヘッドが発生せず、その分、ホスト5Aから見たストレージシステム1全体としてのレスポンス性能を向上させることができる。
(2−2)スイッチインタフェースパラメータの構成
次に、スイッチインタフェースパラメータの構成を、図10(A)を参照して説明する。この図10(A)からも明らかなように、スイッチインタフェースパラメータ37は、8ビットを1バイトとして24バイトのデータサイズを有する。そして最初の2バイト(16ビット)が、そのときスイッチインタフェース24に実行させようとするシステム機能の機能番号を格納する機能番号フィールド(図10(A)の「機能番号」の欄)として利用される。
ここで、かかる「システム機能」としては、図10(B)に示すように、ライトデータを多重化せずに記憶装置7(図1)に書き込む「1重ライト」や、ライトデータを2重化して記憶装置7に書き込む「2重ライト」、ライトデータに付加されたCRC(Cyclic Redundancy Check)コードに基づいて当該ライトデータの正誤を判定する「CRCチェック」、他のストレージコントローラ3からデータをリードする「他CTLリード(データ)」などがある。
本実施の形態においては、これらスイッチインタフェース24が実行可能な各システム機能に対して予め固有の識別番号が機能番号としてそれぞれ付与されており、この機能番号がスイッチインタフェースパラメータ37の機能番号フィールドに格納される。例えば、「2重ライト」というシステム機能の場合、図10(D)に示すように、機能番号フィールドに「2重ライト」という機能に付与された機能番号(図10(D)の例では「0x0001」)が格納される。
機能番号フィールドの次の1バイト(8ビット)は、機能番号フィールドに機能番号が格納されたシステム機能(以下、これを指定システム機能と呼ぶ)の補助機能の番号(以下、これを機能補助番号と呼ぶ)を格納するための機能補助番号フィールド(図10(A)の「機能補助番号」の欄)として利用される。なお、「1重ライト」や「2重ライト」の補助機能としては、図10(C)に示すように、ライトデータをストレージコントローラ3間で転送する際にデータブロックごとにチェックコードを付加する「T10DIF Insert」や、このチェックコードに基づいてそのユーザデータの正誤を判定する「T10DIF Check」などがある。
機能補助番号フィールドの次の1バイト(8ビット)は、指定システム機能の対象となるストレージコントローラ3のコントローラ番号を格納する対象CTL番号フィールド(図10(A)の「対象CTL番号」の欄)として利用される。例えば、「2重ライト」というシステム機能の場合、図10(D)に示すように、ペアコントローラ3のコントローラ番号がこの対象CTL番号フィールドに格納される。
また対象CTL番号フィールドに続く8バイト(64ビット)は、指定システム機能を実現するために使用される、指定システム機能の対象となるストレージコントローラ3(対象CTL番号フィールドにコントローラ番号が格納されたストレージコントローラ3)内のアドレス(以下、これをシステム機能使用アドレスと呼ぶ)を格納するシステム機能使用アドレスフィールド(図10(A)の「システム機能の使用アドレス」の欄)として利用される。例えば、指定システム機能が「2重ライト」の場合、図10(D)に示すように、ペアコントローラ3内のメモリ21におけるライトデータを格納すべきアドレスがこのシステム機能使用アドレスフィールドに格納される。
なお図10(D)では、システム機能使用アドレスフィールドが4バイトずつの2つの領域(「CTL2の書込み先アドレス1」及び「CTL2の書込み先アドレス2」)に分けられているが、対象となるアドレスが32ビット以内のビット数である場合には前半の4バイト(図10(D)の「CTL2の書込み先アドレス1」の欄)が使用され、対象となるアドレスが32〜64ビットのビット数である場合には前後半の合計8バイト(図10(D)の「CTL2の書込み先アドレス1」及び「CTL2の書込み先アドレス2」の各欄)が使用される。
システム機能使用アドレスフィールドの次の8バイト(64ビット)は、指定システム機能がそのシステム機能を実現するために使用する固有のアドレス(以下、これをシステム機能固有使用アドレスと呼ぶ)を格納するシステム機能固有使用フィールド(図10(A)の「システム機能固有の使用領域」の欄)として利用される。例えば、指定システム機能が「2重ライト」の場合、図10(D)に示すように、自ストレージコントローラ(オーナコントローラ)3内のメモリ21におけるライトデータを格納すべきアドレスがこのシステム機能固有使用アドレスフィールドに格納される。
なお図10(D)では、システム機能固有使用アドレスフィールドが4バイトずつの2つの領域(「自CTLの書込み先アドレス1」及び「自CTLの書込み先アドレス2」)に分けられているが、対象となるアドレスが32ビット以内のビット数である場合には前半の4バイト(図10(D)の「自CTLの書込み先アドレス1」の欄)が使用され、対象となるアドレスが32〜64ビットのビット数である場合には前後半の合計8バイト(図10(D)の「自CTLの書込み先アドレス1」及び「自CTLの書込み先アドレス2」の各欄)が使用される。
システム機能固有使用フィールドの次の4バイト(32ビット)は、そのスイッチインタフェースパラメータ37のバイト0〜バイト19に基づいて計算したパリティ(LRC:Longitudinal Redundancy Check)が格納される。
図10(D)は、ライトデータを自ストレージコントローラ3と、「CTL2」というストレージコントローラ3とに2重ライトすべき場合のスイッチインタフェースパラメータ37の構成例を示す。この図10(D)の詳細については上述の通りであるため、ここでの説明は省略する。
(2−3)スイッチインタフェースの詳細構成
図11は、本実施の形態によるスイッチインタフェース24の詳細構成を示す。この図11に示すように、スイッチインタフェース24は、第1の外部インタフェース部40、第2の外部インタフェース部41、パラメータ格納レジスタ42、データバッファRAM(Random Access Memory)43、ヘッダ/パラメータ読出し部44、パラメータ解読部45及び機能実現部46を備えて構成される。
なお、これら第1の外部インタフェース部40、第2の外部インタフェース部41、パラメータ格納レジスタ42、データバッファRAM43、ヘッダ/パラメータ読出し部44、パラメータ解読部45及び機能実現部46は、ハードウェア構成及びソフトウェア構成のいずれであってもよい。
第1及び第2の外部インタフェース部40,41は、同じストレージコントローラ3内のMP20Aや、PCIeスイッチ2(図1)を介した他のストレージコントローラ3との通信時におけるプロトコル制御を行うインタフェースである。またパラメータ格納レジスタ42は、MP20Aから与えられた上述のスイッチインタフェースパラメータ37を一時的に記憶保持するためのレジスタである。図12に示すように、パラメータ格納レジスタ42の記憶領域は、自ストレージコントローラ3内の各MP20Aにそれぞれ対応させて、複数のパラメータ格納領域42Aに区分されて管理される。
データバッファRAM43は、上述のようにフロントエンド22のプロトコルチップ34(図1)からDMA転送されるPCIパケット(ライトデータ)を一時的に記憶保持するためのメモリである。データバッファRAM43の記憶領域も、パラメータ格納レジスタ42の各パラメータ格納領域42Aにそれぞれ対応させて、複数のデータ格納領域43Aに区分されて管理される。
ヘッダ/パラメータ読出し部44は、コマンド受領フロントエンド22のプロトコルチップ34によりデータバッファRAM43にライトデータが格納された場合に、そのライトデータに対応するスイッチインタフェースパラメータ37を読み出す機能を有する機能部である。
またパラメータ解読部45は、ヘッダ/パラメータ読出し部44から与えられるスイッチインタフェースパラメータ37の内容を解読する機能を有する機能部である。具体的に、パラメータ解読部45は、ヘッダ/パラメータ読出し部44から与えられたスイッチインタフェースパラメータ37から、当該スイッチインタフェースパラメータ37において上述のように指定されたシステム機能、補助機能、対象CTL番号、システム機能使用アドレス及びシステム機能固有使用アドレスを読み出し、読み出したこれらの情報を機能実現部46に出力する。
機能実現部46は、パラメータ解読部45から与えられたスイッチインタフェースパラメータ37の解読結果に基づいて2重ライト等のシステム機能を実行する機能を有する機能部である。機能実現部46は、例えば、「2重ライト」というシステム機能を実現するため、データをDMA転送する機能を有するDMA(Direct Memory Access)部47を備えており、このDMA部47により、第2の外部インタフェース部41を介してクラスタ(ストレージシステム1)内の必要なストレージコントローラ3のメモリ21にデータやコマンドを格納する。
(2−4)2重ライト処理時におけるスイッチインタフェースでの処理の流れ
図8〜図9B及び図11との対応部分に同一符号を付して示す図13〜図16は、図8〜図9Bについて上述した2重ライト処理時のより詳細な処理の流れを示す。
オーナMP20Aは、図13(A)のS23において、ホスト5Aから与えられたライトコマンドに応じたスイッチインタフェースパラメータ37をオーナコントローラ3Bのスイッチインタフェース24に与える際、図13(B)に示すように、このスイッチインタフェースパラメータ37を、パラメータ格納レジスタ42内のオーナMP20Aに対応するパラメータ格納領域42Aに格納する。
またオーナMP20Aは、パラメータ格納レジスタ42におけるスイッチインタフェースパラメータ37を格納したパラメータ格納領域42Aに対応する、データバッファRAM43内のデータ格納領域43A(図12)の先頭アドレスを、プロトコルチップパラメータ38としてコマンド受領フロントエンド22のプロトコルチップ34に通知する(S24)。
この後、かかるプロトコルチップ34は、ホスト5Aからライトデータが転送されてくると(図14(A)のS26)、図14(B)に示すように、そのライトデータをPCIパケット化してオーナコントローラ3Bのスイッチインタフェース24のデータバッファRAM43にDMA転送する(S27)。
この際、プロトコルチップ34は、PCIパケットにおけるデータのライト先を、ステップS24においてオーナMP20Aからプロトコルチップパラメータ38として通知されたアドレスに設定する。これにより、かかるライトデータが、かかるスイッチインタフェース24のデータバッファRAM43内のデータ格納領域43Aのうち、ステップS23においてオーナMP20Aがスイッチインタフェースパラメータ37を書き込んだパラメータ格納レジスタ42内のパラメータ格納領域42Aと対応付けられたデータ格納領域43Aに格納される。
一方、オーナコントローラ3Bのスイッチインタフェース24のヘッダ/パラメータ読出し部44は、データバッファRAM43にライトデータが格納されると(図15(A)のS27)、図15(B)に示すように、ヘッド/パラメータ読出し部44がそのPCIパケットのヘッダHDを読み出す(S30)。
またヘッダ/パラメータ読出し部44は、読み出したPCIパケットのヘッダHDに格納されているそのPCIパケットのあて先のアドレスに基づいて、そのPCIパケットが格納されているデータバッファRAM43内のデータ格納領域43Aを特定すると共に、そのデータ格納領域43Aと対応付けられたパラメータ格納レジスタ42内のパラメータ格納領域42Aを特定(選択)する。そしてヘッダ/パラメータ読出し部44は、特定したパラメータ格納領域42Aからそのパラメータ格納領域42Aに格納されているスイッチインタフェースパラメータ37を読み出し(S32)、これをパラメータ解読部45に出力する(S33)。
またパラメータ解読部45は、ヘッダ/パラメータ読出し部44から出力されたスイッチインタフェースパラメータ37を解読し(S34)、解読結果を機能実現部46に出力する(S35)。このときパラメータ解読部45から機能実現部46に出力される解読結果としては、そのとき実行すべきシステム機能が「2重ライト」であることと、2重ライト先のストレージコントローラ3Cのコントローラ番号及び当該ストレージコントローラ3Cにおけるライトデータのライト先と、自ストレージコントローラ3Bが管理する論理ボリュームにおけるデータのライト先のアドレスなどのパラメータ50である。
機能実現部46は、図16(B)に示すように、このパラメータ50に基づいて対応するシステム機能を起動すると共に(S36)、当該パラメータ50を2重ライト用のDMAパラメータ51としてDMA部47に与える(S37)。
かくしてDMA部47は、このDMAパラメータ51に従って、ライトデータをデータバッファRAM43から読み出し(S38)、読み出したライトデータを自ストレージコントローラ3B内のメモリ21にDMA転送すると共に(S28)、当該ライトデータをPCIeスイッチ2を経由して2重化先のストレージコントローラ(ペアコントローラ)3Cのメモリ21にDMA転送する(S29)。なお、このように自ストレージコントローラ3Bのメモリ21や、ペアコントローラ3Cのメモリ21にDMA転送されたライトデータは、この後、所定のタイミングで記憶装置7(図1)に格納される。
(2−5)スイッチインタフェースパラメータの管理方法
なお、スイッチインタフェース24におけるスイッチインタフェースパラメータ37の管理方法として、上述の図13(A)〜図16(A)のステップS23において、オーナMP20Aがスイッチインタフェースパラメータ37をスイッチインタフェース24のパラメータ格納レジスタ42における自己に割り当てられたパラメータ格納領域42Aに常に上書きする第1の管理方法と、スイッチインタフェース24がスイッチインタフェースパラメータ37に従って実行したシステム機能の完了をステータスでオーナMP20Aに通知するようにし、オーナMP20Aがこの通知を待ってパラメータ格納領域42Aを開放する第2の管理方法とが考えられる。
この場合、1つのMP20Aがホスト5からのコマンドに応じた1つのシステム機能のみを利用することを考慮すれば、第1の管理方法を適用することによって、ホスト5から見たストレージシステム1のレスポンス性能を向上させることができ、さらには実装も簡単化することができる。
ただし、上書きによって誤ったアドレスにスイッチインタフェースパラメータ37が格納された場合、誤ったスイッチインタフェースパラメータ37によって誤った処理が実行され、この結果としてデータ破壊やデータ化けを引き起こすおそれがある。従って、このような事態を防ぐ意味においても、スイッチインタフェース24におけるスイッチインタフェースパラメータ37の管理方法として第2の管理方法を適用することが望ましい。
(2−6)2重ライト処理
図17は、図8のステップS27において、コマンド受領フロントエンド22のプロトコルチップ34からのライトデータを受領した場合にオーナコントローラ3Bのスイッチインタフェース24において実行される一連の処理(ここでは2重ライト処理)の流れを示す。この2重ライト処理は、1つのPCIパケットについて実行される処理であり、1つのPCIパケットがデータバッファRAMに格納されるごとに同様の処理が繰り返される。
具体的に、スイッチインタフェース24では、1つのPCIパケットがデータバッファRAM43に格納されたことをヘッダ/パラメータ読出し部44が検知すると、この図17に示すライト処理が開始され、まず、ヘッダ/パラメータ読出し部44が、当該PCIパケットのヘッダHD(図15(B))の正誤チェックを実行し(S40)、かかるヘッダHDが正常であるか否かを判定する(S41)。
そしてヘッダ/パラメータ読出し部44は、この判定で否定結果を得ると、オーナMP20Aにエラーを通知し(S42)、この後、この2重ライト処理を終了する。従って、この場合には、オーナMP20Aがホスト5Aにエラーを通知し、かかるライトデータを再度転送してもらうことになる。
これに対してヘッダ/パラメータ読出し部44は、ステップS41の判断で肯定結果を得ると、ステップS40で正誤チェックを実行したヘッダHDからそのPCIパケットのあて先のアドレス(そのPCIパケットを格納すべきデータバッファRAM43内のデータ格納領域43Aのアドレス)を読み出し、読み出したアドレスに基づいて、そのアドレスと対応付けられたパラメータ格納レジスタ42内のパラメータ格納領域42Aを特定する(S43)。
そしてヘッダ/パラメータ読出し部44は、パラメータ格納レジスタ42内のステップS43で特定したパラメータ格納領域42Aからスイッチインタフェースパラメータ37を読み出し、これをパラメータ解読部45に転送する(S44)。
パラメータ解読部45は、ヘッダ/パラメータ読出し部44から与えられたスイッチインタフェースパラメータ37を解読し、解読結果を機能実現部に転送する(S45)。またパラメータ解読部45は、スイッチインタフェースパラメータ37に含まれるLRCに基づいて当該スイッチインタフェースパラメータ37が正常であるか否かを判定する(S46)。
そしてパラメータ解読部45は、この判定で否定結果を得ると、オーナMP20Aにエラーを通知し(S47)、この後、この2重ライト処理を終了する。従って、この場合にはオーナMP20Aがホスト5Aにエラーを通知し、スイッチインタフェースパラメータ37を再度転送してもらうことになる。
これに対してパラメータ解読部45は、ステップS45の判断で肯定結果を得ると、機能実現部46におけるスイッチインタフェースパラメータ37において指定されたシステム機能を起動する(S48)。また機能実現部46は、起動されたシステム機能に基づいて、スイッチインタフェースパラメータ37により指定された処理を実行する(S49)。
例えば、スイッチインタフェースパラメータ37により指定された処理がライトデータの2重ライトであった場合、機能実現部46は、DMA部47を起動して当該DMA部47に上述のDMAパラメータ51(図16(B))を与える。かくしてDMA部47は、このDMAパラメータ51に従って、上述のようにしてライトデータを自ストレージコントローラ3B内のメモリ21にDMA転送すると共に、当該ライトデータをペアコントローラ3Cのメモリ21にもDMA転送する。
そして機能実現部46は、かかるスイッチインタフェースパラメータ37により指定された処理が完了すると、その旨の完了通知をオーナMP20Aに送信し(S50)、この後、この2重ライト処理を終了する。
(3)他のシステム機能への応用
以上、2重ライト時の処理の流れについて説明したが、本ストレージシステム1では、2重ライトと同様の処理の流れで「リード」や「CRCチェック」といった他の処理(システム機能)を実行することもできる。一例として、リード処理の流れについて以下に説明する。
図18は、ホスト5Aからストレージコントローラ3Aにリードコマンドが与えられた場合のリード処理の流れを示す。ここでは、リードコマンドの対象となるデータがストレージコントローラ3BのいずれかのMP20Aが管理する論理ボリュームに格納されているものとする。
この場合、ストレージコントローラ3Aのフロントエンド22のプロトコルチップ34は、かかるリードコマンドを受領すると(S60)、LDEV−MP対応テーブル36(図3)を参照してオーナMP20Aを特定し、特定したオーナMP20Aが存在するストレージコントローラ(オーナコントローラ)3Bのメモリ21にそのリードコマンドをDMA転送により格納する(S61)。
また、オーナMP20Aは、メモリ21に格納されたリードコマンドを読み出し(S62)、読み出したリードコマンドに基づいて、要求されたデータがメモリ21内に存在するか否かを判定するキャッシュヒット判定を実行する(S63)。ここでは、要求されたデータがメモリ21内に存在していたものとする。
そこで、オーナMP20Aは、スイッチインタフェースパラメータ37における機能番号フィールド(図10(A)の「機能番号」の欄)に「リード(データ)」というシステム機能に対応する機能番号を格納し、対象CTL番号フィールド(図10(A)の「対象CTL番号」の欄)に自ストレージコントローラのコントローラ番号を格納し、システム機能使用アドレスフィールド(図10(A)の「システム機能の使用アドレス」の欄)にリード先のアドレスを格納したスイッチインタフェースパラメータ37を生成し、これをスイッチインタフェース24のパラメータ格納レジスタ42(図11)における自MPと対応付けられたパラメータ格納領域42A(図12)に格納する(S64)。
この後、オーナMP20Aは、ステップS61において受領コントローラ3Aのコマンド受領フロントエンド22のプロトコルチップ34から与えられたリードコマンドに対するコマンドレスポンスをそのコマンド受領フロントエンド22のプロトコルチップ34に送信する。またオーナMP20Aは、これと併せて自ストレージコントローラ(オーナコントローラ)3Bのスイッチインタフェース24内のデータバッファRAM43(図2)における自MPに対応するデータ格納領域43A(パラメータ格納レジスタ42の自MPに割り当てられたパラメータ格納領域42Aと対応付けられたデータ格納領域43A)の先頭アドレスをプロトコルチップパラメータ38としてそのプロトコルチップ34に送信する(S65)。
かくして、オーナMP20Aからのコマンドレスポンスを受信したコマンド受領フロントエンド22のプロトコルチップ34は、オーナコントローラ3Bのスイッチインタフェース24に対して、ステップS65でプロトコルチップパラメータ38として与えられたアドレスをあて先とするPCIパケットを生成する。そしてプロトコルチップ34は、生成したPCIパケットを、オーナコントローラ3Bのスイッチインタフェース24のデータバッファRAM43におけるステップS65でプロトコルチップパラメータ38として与えられたアドレスに格納する(S66)。
この結果、かかるスイッチインタフェース24のヘッダ/パラメータ読出し部44(図11)は、このPCIパケットが格納されたデータバッファRAM43のデータ格納領域43Aに対応するパラメータ格納レジスタ42のパラメータ格納領域42Aからスイッチインタフェースパラメータ37を読み出す。そしてスイッチインタフェース24のパラメータ解読部45(図11)が、このスイッチインタフェースパラメータ37を解読し、解読結果に基づいて、機能実現部46(図11)における「リード」のシステム機能を起動する。この結果、要求されたデータが機能実現部46により対応する論理ボリュームから読み出され、これがリードデータとして外部インタフェース部41(図11)を介してコマンド受領フロントエンド22のプロトコルチップ34に転送される(S67)。
かくして、かかるリードデータを受信したコマンド受領フロントエンド22のプロトコルチップ34は、このリードデータをリードコマンドの送信元のホスト5Aに転送する(S68)。
(4)本実施の形態の効果
以上のように本実施の形態のストレージシステムでは、ホスト5からのライトデータを中間バッファ(受領コントローラ3のメモリ21)を介すことなく、直接オーナコントローラ3に転送することができるため、ホスト5から見たストレージシステム1全体としてのレスポンス性能を向上させることができる。
また、本ストレージシステム1のように、複数のストレージコントローラ3によりクラスタを構成し、当該クラスタを1つのストレージ装置のようにホスト5に見せるストレージシステムでは、従来、制御の容易化のために、図6BのステップS7について上述したように中間バッファとして利用されるメモリ21の記憶領域を各ストレージコントローラ3にそれぞれ対応させて分割して管理し、これら分割した記憶領域を各ストレージコントローラにそれぞれ固定的に割り当てている。このため、かかるクラスタ構成を有するストレージシステムでは、メモリ21の容量によってはストレージシステムを構成するストレージコントローラ3の数に制限が生じたり、アクセスが少ないストレージコントローラ3に割り当てられた記憶領域の使用効率が悪くなってメモリ21の記憶領域を有効活用できない問題があった。
この点について、本ストレージシステム1では、ホスト5からのライトデータを直接オーナコントローラ3のスイッチインタフェース24にDMA転送するため、各ストレージコントローラ3に対して固定的にメモリ21の記憶領域を割り当てる必要がなく、この結果、ストレージシステム1を構成するストレージコントローラ3の数が制限されることがなく、またメモリ21の記憶領域を有効活用することができるという効果をも得ることができる。
(5)他の実施の形態
なお上述の実施の形態においては、本発明を、図1のように4つのストレージコントローラ3から構成されるストレージシステム1に適用するようにした場合について述べたが、本発明はこれに限らず、2つ、3つ又は4つ以上のストレージコントローラ3により構成されるストレージシステムにも本発明を広く適用することができる。
また上述の実施の形態においては、フロントエンド22のプロトコルチップ34がPCIパケットをスイッチインタフェース24のデータバッファRAM43に格納することにより「1重ライト」、「2重ライト」及び「リード」などの各種システム機能を起動できるようにした場合について述べたが、本発明はこれに限らず、プロトコルチップ34以外のフロントエンド22のDMA機能を有する構成部品や、フロントエンド22以外のDMA機能を有するデバイスにより上述と同様にして必要なシステム機能を起動できるようにしてもよい。
さらに上述の実施の形態においては、オーナMP20Aがスイッチインタフェースパラメータ37をパラメータ格納レジスタ42における自MPに割り当てられたパラメータ格納領域42Aに格納し、プロトコルチップ34がそのオーナMP20Aに対するコマンドやライトデータをデータバッファRAM43の対応するデータ格納領域43Aに格納するようにした場合について述べたが、本発明はこれに限らず、メモリ21上の一部領域をパラメータ格納レジスタ42やデータバッファRAM43の代わりに用いるようにしてもよい。要は、オーナMP20Aがスイッチインタフェースパラメータ37を格納するMP20Aごとの記憶領域(パラメータ格納領域)と、プロトコルチップ34がそのオーナMP20Aに対するコマンドやライトデータを格納する記憶領域(データ格納領域)との対応関係を管理できるのであれば、パラメータ格納レジスタ42やデータバッファRAM43の代わりとなる記憶領域をスイッチインタフェース24以外の場所に設けるようにしてもよい。
さらに上述の実施の形態においては、スイッチインタフェース24において、フロントエンド22のプロトコルチップ34から与えられるPCIパケットのヘッダHDに格納されたそのPCIパケットのあて先のアドレスのみを利用してシステム機能の実行を行うようにした場合について述べたが、本発明はこれに限らず、例えば、PCIパケットのヘッダHDに格納されるTLPタイプ(リード、ライトなどのホスト5から与えられたコマンドのタイプ)の情報や、リクエスタID(そのPCIパケットの送信元デバイスのID)をさらに利用して、スイッチインタフェース24が実行すべきシステム機能を指定できるようにしてもよい。
例えば、リクエスタIDがあるプロトコルチップ34のIDであった場合にはライトデータに付加された保証コードを利用してそのライトデータの正誤を検証し、リクエスタIDがこれ以外のIDであった場合には、ライトデータの正誤を検証しない、といった制御を実行することができる。このようにすることによりPCIパケットのヘッダHDをコマンドとして利用することができ、スイッチインタフェース24において起動させるシステム機能の内容をより一層と詳細に指定することができる。
さらに上述の実施の形態においては、ホスト5からコマンドが与えられるごとに、オーナMP20Aが対応するスイッチインタフェースパラメータ37を生成してスイッチインタフェース24のパラメータ格納レジスタ42における対応するパラメータ格納領域42Aに格納するようにした場合について述べたが、本発明はこれに限らず、一部又は全部のパラメータ格納領域42Aに固定的に固定のスイッチインタフェースパラメータ37を格納しておくようにしてもよい。このようにすることにより、ホスト5から同じコマンドが繰り返し発行されるような場合に、より一層とホスト5から見たストレージシステム1のレスポンス性能を向上させることができる。
さらに上述の実施の形態においては、1つのMP20Aに対してパラメータ格納レジスタ42の1つのパラメータ格納領域42Aを固定的に割り当てるようにした場合について述べたが、本発明はこれに限らず、MP20Aに対してパラメータ格納レジスタ42の複数のパラメータ格納領域42Aを動的に割り当てるようにしてもよい。
さらに上述の実施の形態においては、フロントエンド22のプロトコルチップ34がPCIパケットによりシステム機能を起動するようにした場合について述べたが、本発明はこれに限らず、フロントエンド22のプロトコルチップ34がPCI以外の規格に応じたデータパケットによりシステム機能を起動できるようにしてもよい。
本発明は、複数のストレージコントローラやストレージ装置から構成される種々の構成のストレージシステムに広く適用することができる。
1……ストレージシステム、3,3A〜3D……ストレージコントローラ、5,5A〜5D……ホスト、6……記憶デバイス、7,7A〜7D……記憶装置、20……CPU、20A……MP、21……メモリ、22……フロントエンド、24……スイッチインタフェース、34……プロトコルチップ、37……スイッチインタフェースパラメータ、38……プロトコルチップパラメータ、42……パラメータ格納レジスタ、42A……パラメータ格納領域、43……データバッファRAM、43A……データ格納領域、44……ヘッダ/パラメータ読出し部、45……パラメータ解読部、46……機能実現部、47……DMA部、HD……ヘッダ。

Claims (10)

  1. 双方向通信可能に接続された複数のストレージコントローラを有するストレージシステムにおいて、
    各前記ストレージコントローラは、
    ホストとの通信時におけるプロトコル制御を行うフロントエンド部と、
    システム内の他の前記ストレージコントローラとの通信時におけるインタフェースとして機能するインタフェース部と、
    前記ホストからのコマンドを処理するプロセッサと、
    前記インタフェース部の内部又は外部にそれぞれ設けられた第1及び第2の記憶領域と
    を備え、
    前記第1の記憶領域は、複数の第1の領域に区分されて管理されると共に、前記第2の記憶領域は、各前記第1の領域にそれぞれ対応させて複数の第2の領域に区分されて管理され、
    前記フロントエンド部は、
    前記ホストからのコマンドを対応する前記ストレージコントローラに転送し、
    前記プロセッサは、
    前記フロントエンド部から自ストレージコントローラに転送されてきた前記コマンドに応じたシステム機能を実現するために必要なパラメータを前記第1の記憶領域内の前記第1の領域に格納すると共に、前記第2の記憶領域内の前記第2の領域のうち、当該第1の領域と対応付けられた前記第2の領域のアドレスを前記フロントエンド部に通知し、
    前記フロントエンド部は、
    通知された前記アドレスがあて先としてヘッダに格納されたデータパケットを生成し、生成した前記データパケットを前記第2の記憶領域の当該アドレスに格納し、
    前記インタフェース部は、
    前記第2の記憶領域に格納された前記データパケットの前記ヘッダに格納されたあて先の前記アドレスに基づいて、当該アドレスの前記第2の領域と対応付けられた前記第1の記憶領域内の前記第1の領域に格納された前記パラメータを読み出し、読み出した前記パラメータに基づいて、前記コマンドに応じた前記システム機能の処理を実行する
    ことを特徴とするストレージシステム。
  2. 前記コマンドは、ライトコマンドであり、
    前記データパケットにはライトデータが格納され、
    前記インタフェース部は、
    前記第1の記憶領域から読み出した前記パラメータに基づいて、前記第2の記憶領域に格納された前記ライトデータを、前記パラメータにおいて指定されたライト先のアドレスに格納する
    ことを特徴とする請求項1に記載のストレージシステム。
  3. 前記ストレージコントローラには、複数の前記プロセッサが設けられ、
    前記第1の記憶領域は、各前記プロセッサにそれぞれ対応させて複数の前記第1の領域に区分され、
    前記プロセッサは、
    前記第1の記憶領域における自己に割り当てられた前記第1の領域に前記パラメータを格納する
    ことを特徴とする請求項1に記載のストレージシステム。
  4. 前記第1の記憶領域の前記第1の領域に格納された前記パラメータに従って実行された前記システム機能の完了が、当該パラメータを当該第1の領域に格納した前記プロセッサに通知され、
    前記プロセッサは、当該通知を待って前記第1の記憶領域の当該第1の領域を開放する
    ことを特徴とする請求項1に記載のストレージシステム。
  5. 前記インタフェース部は、
    前記第2の記憶領域に格納された前記データパケットの前記ヘッダにおける前記あて先以外の情報に基づいて、当該情報に応じた処理を実行する
    ことを特徴とする請求項1に記載のストレージシステム。
  6. 双方向通信可能に接続された複数のストレージコントローラを有するストレージシステムの制御方法において、
    各前記ストレージコントローラは、
    ホストとの通信時におけるプロトコル制御を行うフロントエンド部と、
    システム内の他の前記ストレージコントローラとの通信時におけるインタフェースとして機能するインタフェース部と、
    前記ホストからのコマンドを処理するプロセッサと、
    前記インタフェース部の内部又は外部にそれぞれ設けられた第1及び第2の記憶領域と
    を有し、
    前記第1の記憶領域は、複数の第1の領域に区分されて管理されると共に、前記第2の記憶領域は、各前記第1の領域にそれぞれ対応させて複数の第2の領域に区分されて管理され、
    前記フロントエンド部が、前記ホストからのコマンドを対応する前記ストレージコントローラに転送する第1のステップと、
    前記プロセッサが、前記フロントエンド部から自ストレージコントローラに転送されてきた前記コマンドに応じたシステム機能を実現するために必要なパラメータを前記第1の記憶領域内の前記第1の領域に格納すると共に、前記第2の記憶領域内の前記第2の領域のうち、当該第1の領域と対応付けられた前記第2の領域のアドレスを前記フロントエンド部に通知する第2のステップと、
    前記フロントエンド部が、通知された前記アドレスがあて先としてヘッダに格納されたデータパケットを生成し、生成した前記データパケットを前記第2の記憶領域の当該アドレスに格納する第3のステップと、
    前記インタフェース部が、前記第2の記憶領域に格納された前記データパケットの前記ヘッダに格納されたあて先の前記アドレスに基づいて、当該アドレスの前記第2の領域と対応付けられた前記第1の記憶領域内の前記第1の領域に格納された前記パラメータを読み出し、読み出した前記パラメータに基づいて、前記コマンドに応じた前記システム機能の処理を実行する第4のステップと
    を備えることを特徴とするストレージシステムの制御方法。
  7. 前記コマンドは、ライトコマンドであり、
    前記第3のステップにおいて、前記フロントエンド部は、
    前記データパケットを前記第2の記憶領域に格納し、
    前記第4のステップにおいて、前記インタフェース部は、
    前記第1の記憶領域から読み出した前記パラメータに基づいて、前記第2の記憶領域に格納されたライトデータを、前記パラメータにおいて指定されたライト先のアドレスに格納する
    ことを特徴とする請求項6に記載のストレージシステムの制御方法。
  8. 前記ストレージコントローラには、複数の前記プロセッサが設けられ、
    前記第1の記憶領域は、各前記プロセッサにそれぞれ対応させて複数の前記第1の領域に区分され、
    前記第2のステップにおいて、前記プロセッサは、
    前記第1の記憶領域における自己に割り当てられた前記第1の領域に前記パラメータを格納する
    ことを特徴とする請求項6に記載のストレージシステムの制御方法。
  9. 前記第1の記憶領域の前記第1の領域に格納された前記パラメータに従って実行された前記システム機能の完了が、当該パラメータを当該第1の領域に格納した前記プロセッサに通知され、
    前記プロセッサは、当該通知を待って前記第1の記憶領域の当該第1の領域を開放する
    ことを特徴とする請求項6に記載のストレージシステムの制御方法。
  10. 前記第4のステップにおいて、前記インタフェース部は、
    前記第2の記憶領域に格納された前記データパケットの前記ヘッダにおける前記あて先以外の情報に基づいて、当該情報に応じた処理を実行する
    ことを特徴とする請求項6に記載のストレージシステムの制御方法。
JP2018101066A 2018-05-25 2018-05-25 ストレージシステム及びその制御方法 Active JP6649989B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018101066A JP6649989B2 (ja) 2018-05-25 2018-05-25 ストレージシステム及びその制御方法
US16/297,007 US11074010B2 (en) 2018-05-25 2019-03-08 Storage system and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018101066A JP6649989B2 (ja) 2018-05-25 2018-05-25 ストレージシステム及びその制御方法

Publications (2)

Publication Number Publication Date
JP2019204463A JP2019204463A (ja) 2019-11-28
JP6649989B2 true JP6649989B2 (ja) 2020-02-19

Family

ID=68727080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018101066A Active JP6649989B2 (ja) 2018-05-25 2018-05-25 ストレージシステム及びその制御方法

Country Status (2)

Country Link
US (1) US11074010B2 (ja)
JP (1) JP6649989B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2875074A1 (en) * 2012-03-17 2013-09-26 Abbott Medical Optics Inc. Surgical cassette
JP7411616B2 (ja) * 2021-11-02 2024-01-11 株式会社日立製作所 ストレージシステム及びその制御方法
CN116909492B (zh) * 2023-09-12 2023-12-08 合肥康芯威存储技术有限公司 一种存储设备及其控制方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4859471B2 (ja) * 2006-02-02 2012-01-25 株式会社日立製作所 ストレージシステム及びストレージコントローラ
JP5057755B2 (ja) * 2006-11-28 2012-10-24 株式会社日立製作所 記憶制御装置及びその制御方法
JP2008134775A (ja) * 2006-11-28 2008-06-12 Hitachi Ltd 記憶サブシステム及びこれを利用したリモートコピーシステム
US8271669B2 (en) * 2007-05-30 2012-09-18 Broadcom Corporation Method and system for extended steering tags (STAGS) to minimize memory bandwidth for content delivery servers
KR20110088240A (ko) * 2010-01-28 2011-08-03 삼성전자주식회사 스토리지 시스템과 상기 시스템의 데이터 처리 방법
US8959176B2 (en) * 2012-07-31 2015-02-17 Apple Inc. Streaming common media content to multiple devices
US9921753B2 (en) * 2015-03-23 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Data replication across host systems via storage controller
DE102015118522A1 (de) * 2015-10-29 2017-05-04 Dacs Laboratories Gmbh Verfahren und Vorrichtung zum beschleunigten Ausführen von Applikationen
CN106681692A (zh) * 2015-11-09 2017-05-17 联发科技(新加坡)私人有限公司 控制装置、集成电路及任务栈的管理方法
US10459653B2 (en) 2016-03-01 2019-10-29 Hitachi Ltd. Storage system, storage device, and storage system control method for duplicating data with copy pair
WO2018003629A1 (ja) * 2016-06-28 2018-01-04 日本電気株式会社 パケット処理装置、及び、パケット処理方法
JP6825263B2 (ja) * 2016-08-22 2021-02-03 富士通株式会社 ストレージ制御装置、およびストレージシステム
US10732893B2 (en) * 2017-05-25 2020-08-04 Western Digital Technologies, Inc. Non-volatile memory over fabric controller with memory bypass

Also Published As

Publication number Publication date
US11074010B2 (en) 2021-07-27
JP2019204463A (ja) 2019-11-28
US20200004463A1 (en) 2020-01-02

Similar Documents

Publication Publication Date Title
US10698818B2 (en) Storage controller caching using symmetric storage class memory devices
US8719520B1 (en) System and method for data migration between high-performance computing architectures and data storage devices with increased data reliability and integrity
US6151641A (en) DMA controller of a RAID storage controller with integrated XOR parity computation capability adapted to compute parity in parallel with the transfer of data segments
JP2007513435A (ja) データ組織化を管理するための方法、システム、及びプログラム
CN111435292A (zh) 利用自适应写缓冲区释放的存储介质编程
JP5102915B2 (ja) ストレージ装置及びそのデータ検証方法
JP5635621B2 (ja) ストレージシステム及びストレージシステムのデータ転送方法
JP6649989B2 (ja) ストレージシステム及びその制御方法
JP5426684B2 (ja) 独立ディスク冗長アレイ(raid)の書き込みキャッシュサブアセンブリ
US8327043B2 (en) Buffer management device which manages buffer transfer, storage apparatus comprising the same device, and buffer management method
US10802958B2 (en) Storage device, its controlling method, and storage system having the storage device
US20060143506A1 (en) RAID storage controller assist circuit, systems and methods
TWI782847B (zh) 用來在儲存伺服器中進行基於管線的存取管理的方法及設備
JP2007524932A (ja) パリティデータを生成するための方法、システム、及びプログラム
CN109753311B (zh) 包括命令优先级策略管理的半导体设备和相关系统
JP6764927B2 (ja) ストレージシステム、ストレージ装置、およびストレージシステムの制御方法
JP2023010314A (ja) ストレージシステム、データ書き込み制御方法、及びデータ書き込み制御プログラム
CN114637462A (zh) 用于存储装置的数据复制卸载的系统和方法
KR101569049B1 (ko) 패스 스루 스토리지 디바이스들
JP6318769B2 (ja) ストレージ制御装置、制御プログラム、および制御方法
US20240103756A1 (en) Non-volatile storage device offloading of host tasks
US20240103731A1 (en) Non-volatile storage device offloading of host tasks
US20240103765A1 (en) Non-volatile storage device offloading of host tasks
KR102435910B1 (ko) 스토리지 장치 및 그것의 동작 방법
JP2003006137A (ja) ストレージアクセスシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191029

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191218

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200117

R150 Certificate of patent or registration of utility model

Ref document number: 6649989

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150