JP2024060523A - ストレージシステム - Google Patents

ストレージシステム Download PDF

Info

Publication number
JP2024060523A
JP2024060523A JP2022167956A JP2022167956A JP2024060523A JP 2024060523 A JP2024060523 A JP 2024060523A JP 2022167956 A JP2022167956 A JP 2022167956A JP 2022167956 A JP2022167956 A JP 2022167956A JP 2024060523 A JP2024060523 A JP 2024060523A
Authority
JP
Japan
Prior art keywords
processor
protocol chip
address
request
protocol
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.)
Pending
Application number
JP2022167956A
Other languages
English (en)
Inventor
健太郎 島田
正法 高田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2022167956A priority Critical patent/JP2024060523A/ja
Priority to US18/120,827 priority patent/US20240232099A9/en
Publication of JP2024060523A publication Critical patent/JP2024060523A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Abstract

【課題】ストレージシステムにおいて、プロセッサが停止する場合にホスト装置からの要求に継続して応答する。【解決手段】プロトコルチップは、ホスト装置からの要求を第1のアドレス変換部を通じて第1のプロセッサに送信する。第1のプロセッサは、ホスト装置からの要求に対する応答を、第1のアドレス変換部を通じてプロトコルチップに送信する。第1のプロセッサが処理を停止するとき、ホスト装置からの要求を第2のプロセッサに送信する指示が、プロトコルチップに送信される。プロトコルチップは、ホスト装置からの要求を第2のプロセッサに送信する指示を受信したら、第2のアドレス変換部を通じて第2のプロセッサに送信する。第2のプロセッサは、ホスト装置からの要求に対する応答を、第2のアドレス変換部を通じてプロトコルチップに送信する。【選択図】図1

Description

本発明は、プロトコルチップとプロセッサを含むストレージシステムに関する。
ストレージシステムでは、信頼性を向上するため、システムの制御を司るストレージコントローラを複数設けて、いずれかのストレージコントローラで障害が発生して動作が停止しても、残ったストレージコントローラで動作を継続可能としている。このようなストレージコントローラの典型的な個数は2である。
例えば、特許文献1には、ストレージシステムのコントローラ部を2つのコントローラで構成する例が開示されている。この場合、各々のコントローラには、システムの制御を行うプロセッサがそれぞれ搭載されており、各プロセッサに接続されるスイッチには、非透過性ブリッジ(NTB: NON-TRANSPARENT BRIDGE)が備えられる。
このNTBが担う役割の一つは、各スイッチに接続されるプロセッサが用いるアドレスと、それ以外のアドレスとのアドレス変換機能である。特に2つのコントローラを接続する場合には、それぞれのプロセッサが用いるアドレスは、それぞれのプロセッサが制御・管理するため、互いに自コントローラのプロセッサが用いるアドレスを他コントローラのプロセッサが用いるアドレスに変換する必要がある。例えば、それぞれのプロセッサは、接続されるメモリやプロトコルチップなどに互いに自由なアドレスを割り振るので、そのまま接続して同じアドレスを用いることはできない。
また各プロセッサの停止時には、それぞれのプロセッサが用いていたアドレスは、制御するプロセッサが不在になるため、例えばどのメモリにどのアドレスを付与していたかが不明になり、利用が不可になる。
またストレージシステムにおいて、障害以外にもOS(OPERATING SYSTEM)のアップデート等でコントローラのプロセッサの停止が必要な場合がある。ストレージシステムでは、ホスト装置とのデータの入出力のためにIO通信を行っている。このホスト装置とのIO通信に使われるプロトコルは、例えばFIBRE CHANNELである。
ストレージシステムのコントローラには、プロセッサと共に、このようなIO通信に使われるプロトコルの制御を行うプロトコルチップが搭載される。このような状況において、コントローラのプロセッサを停止すると、当該プロトコルチップに接続されるプロセッサが不在となり、ホスト装置からのIO要求に無応答となる。ホスト装置からみると、一時的にストレージシステムがシステムダウンしたように見える。回復するためには、まだ稼働を続けている残ったコントローラにホスト装置を接続しなおす必要がある。
この課題の解決には、ストレージコントローラにおいて、自動的にホスト装置からのIO要求を障害やOSアップデート等で停止していないプロセッサを持つコントローラに接続し直すことが考えられる。
例えば特許文献1に記載されている構成では、システムの制御を行うプロセッサが2つ搭載されているので、一方のコントローラのプロセッサが停止した場合、ホストからのIO要求を他方のコントローラのプロセッサに伝達することが考えられる。しかし、特許文献1に記載の技術では、NTBが各コントローラに高々一つしか搭載されておらず、各プロトコルチップは、それぞれのコントローラのプロセッサが制御するアドレスを使用しており、他方のプロセッサが制御するアドレスは使用していない。そのため、当該コントローラのプロセッサの停止時にはそのアドレスが使用不可となるので、使用できるアドレスがなく、各プロトコルチップは、ホストからの要求を他方のプロセッサに伝えることができない。
また、特許文献2には、プロトコルチップからのアクセス先を自動的に各コントローラに振り分けることで、コントローラのプロセッサの停止時にもIO通信を自動的に切り替えることが可能な機能を持つローカルルータを備えるストレージシステムの例が開示されている。
しかし、このようなローカルルータは複雑な制御を必要とするので、何らかのプロセッサを搭載してプログラム制御を行う場合があり得る。その場合、ローカルルータ自体のOSのアップデート時にはローカルルータの停止・再起動が必要になる。またローカルルータ自体が障害を発生する場合もある。このような場合には、ローカルルータによるホスト装置とのIO通信を自動的に切り替える機能が利用できず、ホスト装置とのIO通信が切断される。
米国特許第8,700,856号 米国特許第8,423,677号
従って、ストレージコントローラのプロセッサが停止する場合に、ローカルルータのような特別な制御機能部を備えることなく、ホスト装置からのIO要求に継続して応答することを可能とする技術が望まれる。
本発明の一態様は、ホスト装置からの要求を処理するストレージシステムであって、前記ホスト装置との通信のプロトコルを制御するプロトコルチップと、前記ストレージシステムの制御を行う複数のプロセッサと、前記複数のプロセッサの内の第1のプロセッサが用いる第1のアドレスと、前記プロトコルチップが用いる第2のアドレスとを変換する第1のアドレス変換部と、前記複数のプロセッサの内の第2のプロセッサが用いる第3のアドレスと、前記プロトコルチップが用いる第2のアドレスとを変換する第2のアドレス変換部と、を含み、前記プロトコルチップは、前記ホスト装置からの要求を、前記第1のアドレス変換部を通じて、前記第1のプロセッサに送信し、前記第1のプロセッサは、前記プロトコルチップから送信された前記ホスト装置からの要求に対する応答を、前記第1のアドレス変換部を通じて、前記プロトコルチップに送信し、前記第1のプロセッサが処理を停止するとき、前記ホスト装置からの要求を前記第2のプロセッサに送信する指示が、前記プロトコルチップに送信され、前記プロトコルチップは、前記ホスト装置からの要求を前記第2のプロセッサに送信する指示を受信したら、前記ホスト装置からの要求を、前記第2のアドレス変換部を通じて、前記第2のプロセッサに送信し、前記第2のプロセッサは、前記第2のプロセッサに送信された前記ホスト装置からの要求に対する応答を、前記第2のアドレス変換部を通じて、前記プロトコルチップに送信する。
本発明の一態様は、ホスト装置からの要求を処理するストレージシステムであって、複数のストレージコントローラを含み、前記複数のストレージコントローラの内の第1のストレージコントローラは、前記ホスト装置との通信のプロトコルを制御する第1のプロトコルチップと、前記ストレージシステムの制御を行う第1のプロセッサと、前記第1のプロセッサが用いる第1のアドレスと、前記第1のプロトコルチップが用いる第2のアドレスとを変換する第1のアドレス変換部と、を含み、前記複数のストレージコントローラの内の第2のストレージコントローラは、前記ホスト装置との通信のプロトコルを制御する第2のプロトコルチップと、前記ストレージシステムの制御を行う第2のプロセッサと、前記第2のプロセッサが用いる第3のアドレスと、前記第2のプロトコルチップが用いる第4のアドレスとを変換する第2のアドレス変換部と、を含み、前記第1のストレージコントローラと、前記第2のストレージコントローラの少なくとも一方は、前記第1のプロトコルチップが用いる第2のアドレスと前記第2のプロトコルチップが用いる第4のアドレスを変換する第3のアドレス変換部、を含み、前記第1のプロトコルチップは、前記ホスト装置からの要求を、前記第1のアドレス変換部を通じて、前記第1のプロセッサに送信し、前記第1のプロセッサは、前記第1のプロトコルチップから送信された前記ホスト装置からの要求に対する応答を、前記第1のアドレス変換部を通じて、前記第1のプロトコルチップに送信し、前記第1のプロセッサが処理を停止するとき、前記ホスト装置からの要求を前記第2のプロセッサに送信する指示が、前記第1のプロトコルチップに送信され、前記第1のプロトコルチップは、前記ホスト装置からの要求を前記第2のプロセッサに送信する指示を受信すると、前記ホスト装置からの要求を、前記第3のアドレス変換部と前記第2のアドレス変換部とを通じて、前記第2のプロセッサに送信し、前記第2のプロセッサは、前記第1のプロトコルチップから前記第2のプロセッサに送信された前記ホスト装置からの要求に対する応答を、前記第2のアドレス変換部と前記第3のアドレス変換部とを通じて、前記第1のプロトコルチップに送信する。
本発明の一態様によれば、第1のプロセッサが処理を停止しても、第2のプロセッサがホスト装置からのIO要求を引継いで、継続して応答することができる。
図1は、ストレージシステムの第1の構成の例である。 図2は、第1の構成の例におけるホスト装置からの要求と応答を引継ぐ第1の処理シーケンスの例である。 図3は、第1の構成の例におけるホスト装置からの要求と応答を引継ぐ第2の処理シーケンスの例である。 図4は、ストレージシステムの第2の構成の例である。 図5は、第2の構成の例におけるホスト装置からの要求と応答を引継ぐ第3の処理シーケンスの例である。 図6は、第2の構成の例におけるホスト装置からの要求と応答を引継ぐ第4の処理シーケンスの例である。 図7は、ストレージシステムの第3の構成の例である。 図8は、第3の構成の例における割込み信号の送付先を変更する第5の処理シーケンスの例である。 図9は、第3の構成の例における割込み信号の送付先を変更する第6の処理シーケンスの例である。 図10は、ストレージシステムの第4の構成の例である。 図11は、第4の構成の例における割込み信号の送付先を変更する第7の処理シーケンスの例である。 図12は、第4の構成の例における割込み信号の送付先を変更する第8の処理シーケンスの例である。
図1及び図2を用いて、実施例1を説明する。図1は、実施例1に係るストレージシステムの構成の例である。図1において実施例1に係るストレージシステム1は、4つのプロトコルチップ101A~101Dと、2つのプロセッサ102A及び102Bと、メモリ103A及び103Bと、2つのアドレス変換部104A及び104Bと、スイッチ部105と、2つのバックエンドスイッチ106A及び106Bと、8つの記憶デバイス107A~107Hとを含む。
プロトコルチップ101A~101Dは、それぞれ図示しないホスト装置と接続し、ホスト装置との間のIO通信のプロトコル制御を行い、ホスト装置からのIOの要求を取り出し、またはホスト装置へIO要求に対する応答を返す。図1には、4つのプロトコルチップ101A~101Dを図示するが、プロトコルチップ101A~101Dの数は4つに限らず、1以上任意である。
プロセッサ102A及び102Bは、ストレージシステム1の全体の制御を行う。図1には2つのプロセッサ102A及び102Bを図示するが、プロセッサ102A及び102Bの数は2つに限らず、2以上の任意である。同様に、メモリ103A及び103Bは、それぞれプロセッサ102A及び102Bが実行するプログラムコードや、処理するデータを格納する。メモリ103A及び103Bは、典型的にはDRAM(Dynamic Random Access Memory)などの揮発性メモリである。図1には2つのメモリ103A及び103Bを図示するが、その数は2つに限らず、プロセッサ102A及び102Bの数の同数以上の任意である。
アドレス変換部104A及び104Bは、それぞれプロセッサ102A及び102Bが用いるアドレスと、プロトコルチップ101A~101Dが用いるアドレスとを相互に変換する。アドレス変換部104A及び104Bは、アドレスを相互に変換することによって、プロトコルチップ101A~101Dが送付するホスト装置からの要求をプロセッサ102A及び102Bに伝達し、プロセッサ102A及び102Bが返す応答を、プロトコルチップ101A~101Dに伝達する。
例えば、プロトコルチップ101A~101Dは、ホスト装置からの要求を表す通信データに、プロトコルチップ101A~101Dがプロセッサ102Aまたは102Bに伝達するために使用するアドレスを付与する。プロトコルチップ101A~101Dは、その通信データを、スイッチ部105を介してアドレス変換部104Aまたは104Bに送付する。アドレス変換部104Aまたは104Bは、プロトコルチップ101A~101Dが付与したアドレスを、それぞれプロセッサ102Aまたは102Bが使用するアドレスに変換することで、当該通信データをプロセッサ102Aまたは102Bに伝達する。
図1には、2つのアドレス変換部104A及び104Bを図示するが、アドレス変換部104A及び104Bの数は2つに限らず、プロセッサ102A及び102Bの数の同数以上の任意である。プロセッサ102A及び102Bのそれぞれに対して1以上のアドレス変換部が実装される。
スイッチ部105は、プロトコルチップ101A~101Dと、アドレス変換部104A及び104Bとの間の接続のスイッチングを行う。スイッチングの方式は、プロトコルチップ101A~101Dの内の高々一つをアドレス変換部104Aまたは104Bのいずれかに接続する回線交換方式でもよいし、プロトコルチップ101A~101Dとアドレス変換部104A及び104Bの間の通信データをパケットに分割して、パケット毎にスイッチングを行うパケット交換方式でもよい。
図1には、1つのスイッチ部105を図示するが、スイッチ部105の数は1つに限らず、任意である。設計によっては、スイッチ部105を設けず、プロトコルチップ101A~101Dと、アドレス変換部104A及び104Bとを直接接続してもよい。この場合、アドレス変換部104A及び104Bのそれぞれは、全てのプロトコルチップ101A~101Dと接続される。
また、バックエンドスイッチ106A及び106Bは、プロセッサ102A及び102Bと、記憶デバイス107A~107Hの間の接続のスイッチングを行う。このスイッチングの方式も、記憶デバイス107A~Hの内の高々一つをプロセッサ102Aまたは102Bに接続する回線交換方式でもよいし、記憶デバイス107A~107Hとプロセッサ102A及び102Bとの間の通信データをパケットに分割して、パケット毎にスイッチングを行うパケット交換方式でもよい。
このバックエンドスイッチ106A及び106Bのスイッチング方式は、記憶デバイス107A~107Hが用いる入出力のストレージプロトコルに応じて決めてもよい。記憶デバイス107A~107Hに用いられる典型的なストレージプロトコルの一つの例は、NVMe(Non-Volatile Memory express)である。NVMeは一般にPCIe(Peripheral Component Interconnect express)を利用してコマンド及び応答やデータの通信を行う。
PCIeはパケット通信型のプロトコルであるので、記憶デバイス107A~107HがNVMeを用いる場合、バックエンドスイッチ106A及び106Bは、パケット交換方式にすることが考えられる。また記憶デバイス107A~107Hに用いられる別のストレージプロトコルの例はSAS(Serial Attached Small computer system interface)である。
SASは回線交換方式のプロトコルであるので、記憶デバイス107A~107HがSASを用いる場合、バックエンドスイッチ106A及び106Bは、回線交換方式にすることが考えられる。またこの記憶デバイス107A~107HがSASを用いる場合、SASによるコマンド/応答/データ通信を制御するために、プロセッサ102A及び102Bに、SASプロトコルチップを付加してもよいし、プロセッサ102A及び102Bまたはバックエンドスイッチ106A及び106BにSASプロトコルチップの機能を持たせてもよい。
なお、図1には2つのバックエンドスイッチ106A及び106Bを図示するが、バックエンドスイッチ106A及び106Bの数は2つに限らず、任意である。よって、バックエンドスイッチ106A及び106Bを設けずに、プロセッサ102A及び102Bそれぞれを、記憶デバイス107A~107Hと直接接続してもよい。
記憶デバイス107A~107Hは、プロセッサ102A及び102Bより、バックエンドスイッチ106Aまたは106Bを経由して送付されるデータ読出しまたは格納の要求に応じてデータを出力または格納する。記憶デバイス107A~107Hの典型的な例は、記憶素子にフラッシュメモリを用いるSSD(Solid State Drive)である。記憶デバイス107A~107Hの別の例は、記憶素子に磁気ディスクを用いるHDD(Hard Disk Drive)である。
記憶デバイス107A~107Hは、一つの種類の記憶デバイスとしてもよいし、複数の種類の記憶デバイスを混在させてもよい。また図1には、8つの記憶デバイス107A~107Hを図示するが、記憶デバイス107A~107Hの数は8に限らず、任意である。
記憶デバイス107A~107Hをストレージシステム1内に搭載しなくてもよい。この場合、プロトコルチップ101A~101Dの先にホスト装置以外に別のストレージシステムを接続してよい。プロセッサ102Aまたは102Bは、データ読出しまたは格納の要求を、アドレス変換部104Aまたは104B、スイッチ部105を経由して、プロトコルチップ101A~101Dから、接続した別のストレージシステムに送付して、データ読出しまたは格納を行わせてもよい。
以上のように、プロトコルチップ101A~101D、スイッチ部105、アドレス変換部104A及び104B、プロセッサ102A及び102Bを接続することで、プロトコルチップ101A~101Dが用いるアドレスをプロセッサ102Aまたは102Bが用いるアドレスのいずれにも変換することができる。
このように、プロセッサ102A及び102Bそれぞれに、対応するアドレス変換部104A及び104Bを設けることで、プロセッサ102A及び102Bそれぞれが用いるアドレスと、プロトコルチップ101A~101Dが用いるアドレスとを分離する。よって、プロセッサ102Aまたは102Bのいずれかが停止しても、残った方のプロセッサ102Aまたは102Bとプロトコルチップ101A~101Dとの間で、ホスト装置からの要求やホスト装置への応答を伝達し合うことができる。結果として、プロセッサ102Aまたは102Bのいずれか一つが停止しても、ホスト装置からのIO要求に継続して応答することができる。
図1に示すストレージシステム1が、プロセッサ102Aまたは102Bのいずれか一つが停止しても、ホスト装置からのIO要求に継続して応答する動作の例を、図2を用いて説明する。
図2において、プロトコルチップ101Aは、図示しないホスト装置から要求(ホスト要求)を受信すると、これをスイッチ部105、アドレス変換部104Aを経由して、プロセッサ102Aに送付する(201)。アドレス変換部104Aは、プロトコルチップ101Aによって、プロセッサ102Aへの送信のためにホスト要求に付与されているアドレスを、プロセッサ102Aの使用するアドレスに変換する。
ホスト要求の典型的な例は、ストレージシステム1へのデータの格納である。この場合、格納するデータは、ホスト装置から、当該ホスト要求と共に送付してもよいし、一旦データ格納の要求だけ送付して、別途定める手順により、ホスト装置からデータ格納の要求とは別に、送付させてもよい。
またホスト要求の別の一つの例は、ストレージシステム1に格納されたデータの読み出しである。更にホスト要求の他の一つの例は、ストレージシステム1に格納されたデータの量や、まだ格納可能なデータの量の問い合わせである。更にストレージシステム1が正常に稼働しているか、ホスト装置とのデータの入出力が可能であるか、確認するホスト要求もあってもよい。
プロセッサ102Aは、プロトコルチップ101Aよりアドレス変換部104Aを介してホスト要求を受けると、受けたホスト要求に従って、記憶デバイス107Aを操作する記憶デバイスコマンドを生成し、バックエンドスイッチ106Aを経由して、記憶デバイス107Aに記憶デバイスコマンドを送付する(202)。
この記憶デバイスコマンドの一つの例はデータの格納である。この場合、格納するデータは当該の記憶デバイスコマンドと共に送付してもよいし、別途定める手順により、別に送付してもよい。また別の一つの例はデータの読み出しである。また記憶デバイスコマンドにも、ホスト装置からのホスト要求と同様に、記憶デバイス107Aに格納可能なデータの量や、記憶デバイス107Aが正常に稼働しているかどうか、確認する記憶デバイスコマンドもあってもよい。
記憶デバイス107Aは、プロセッサ102Aからの記憶デバイスコマンドを受信すると、再びバックエンドスイッチ106Aを経由して、プロセッサ102Aに記憶デバイス応答を返す(203)。
この記憶デバイス応答は、記憶デバイス107Aが動作ステップ202でデータ格納の記憶デバイスコマンドを受信した場合には、正常にデータを格納したことを示す応答である。また記憶デバイス107Aがステップ202において、データの読み出しの記憶デバイスコマンドを受信した場合には、正常にデータを読出したことを示す応答である。また読出したデータを当該の記憶デバイス応答と共に送付してもよい。あるいは、別途定める手順により、別に送付してもよい。
プロセッサ102Aは、記憶デバイス107Aより記憶デバイス応答を受信すると、これに応じてホスト応答を生成して、アドレス変換部104A、スイッチ部105を経由して、プロトコルチップ101Aにホスト応答を返す(204)。アドレス変換部104Aは、プロトコルチップ101Aへの送信のためにホスト応答にプロセッサ102Aによって付与されているアドレスを、プロトコルチップ101Aが使用するアドレスに変換する。この時、ステップ201において受信したホスト要求がデータの読み出しであった場合には、当該ホスト応答と共に読出したデータを送付してもよい。また読み出したデータの送付は、別途定める手順により、別に送付してもよい。
プロトコルチップ101Aはプロセッサ102Aからアドレス変換部104Aを介してホスト応答を受信すると、図示しないホスト装置へ応答を返却する。この時、最初にホスト装置から受けた要求がストレージシステム1に格納されたデータの読み出しであった場合には、読出したデータを併せて返却してもよいし、別途定める手順により、別に返却してもよい。
次に、本実施例1において、プロセッサ102Aが停止する際に、プロセッサ102Aがコマンド送付先の変更をプロトコルチップ101Aに送付する例を説明する。
引き続き、図2において、プロセッサ102Aは、要求送付先変更指示を生成し、アドレス変換部104A、スイッチ部105を経由してプロトコルチップ101Aへ送付する(205)。アドレス変換部104Aは、プロセッサ102Aによりプロトコルチップ101Aへの送信のために要求送付先変更指示に付与されているアドレスを、プロトコルチップ101Aが使用するアドレスに変換する。
要求送付の変更先は、当該変更指示の中で明示的に示してもよいし、要求送付変更先指示を受けたプロトコルチップ101Aに予め定める規則により自動的に選択させてもよい。あるいは、別途ストレージシステム1内に、要求送付の変更先を決定する仕組みを別途設けてもよい。
その後プロセッサ102Aは処理を停止する。この処理の停止の理由は、例えばOSのアップデートである。このような場合は、プロセッサ102Aは停止することが事前にわかるので、処理を停止する前に、ステップ205の通り要求送付先変更指示をプロトコルチップ101Aに送付することができる。
図2に示す例において、要求送付先変更指示を受信したプロトコルチップ101Aは、その後、図示しないホスト装置からの要求を受けると、該ホスト要求を、スイッチ部105、アドレス変換部104Bを経由して、プロセッサ102Bに送付する(206)。アドレス変換部104Bは、プロセッサ102Bへの送信のためにホスト要求にプロトコルチップ101Aによって付与されているアドレスを、プロセッサ102Bの使用するアドレスに変換する。プロセッサ102Bは、ホスト要求を受けると、記憶デバイスコマンドを生成して、バックエンドスイッチ106Bを経由して、記憶デバイス107Aへ送付する(207)。
記憶デバイス107Aは、記憶デバイスコマンドを受け取ると、所定の動作を行い、結果を記憶デバイス応答として、バックエンドスイッチ106Bを経由して、プロセッサ102Bに返却する(208)。記憶デバイス応答を受信したプロセッサ102Bは、その内容に従って、ホスト応答を生成し、アドレス変換部104B及びスイッチ部105を経由して、プロトコルチップ101Aに送付する(209)。アドレス変換部104Bは、プロセッサ102Bによりプロトコルチップ101Aへの送信のためにホスト応答に付与されているアドレスを、プロトコルチップ101Aが使用するアドレスに変換する。
プロトコルチップ101Aは、ホスト応答を受信すると、図示しないホスト装置へ応答を返却する。この206から209に至るホスト要求などの送付動作は、処理を行うプロセッサが102Aから102Bに代わり、それに伴いアドレス変換部104Aが104Bに、バックエンドスイッチが106Aから106Bに代わっただけで、ステップ201から204までの動作と同等である。
以上のように動作することにより、プロセッサ102Aが処理を停止しても、ストレージシステム1は、ホスト要求を継続して受信し、応答を返すことが可能である。
また、プロセッサ102Aが処理を再開する場合、ステップ205の動作と同様に、プロセッサ102Aへ要求送付先を変更する要求送付先変更指示をプロセッサ102Aからプロトコルチップ101Aに送信して、プロトコルチップ101Aからの要求送付先をプロセッサ102Aに戻してもよい。または、処理を引継いだプロセッサ102Bがプロセッサ102Aが処理を再開することを別途定める手段により検知して、205の動作と同様に、プロセッサ102Aへ要求送付先を変更する要求送付先変更指示をプロトコルチップ101Aに送信して、プロトコルチップ101Aからの要求送付先をプロセッサ102Aに戻してもよい。
あるいは、プロトコルチップ101Aからの要求は、そのまま引き続きプロセッサ102Bが処理を行い、処理を再開したプロセッサ102Aは、別のプロトコルチップ101B~101Dのいずれかの要求を処理するようにしてもよい。このようにすることで、プロセッサ102Aが処理を再開する場合も滞りなく、ホスト装置からの要求を処理することができる。
次に図3を用いて、実施例2を説明する。実施例2において、ストレージシステムの構成の例は、実施例1で説明した図1に示すストレージシステム1の構成と同じである。図1に示したストレージシステム1の構成を用いて、図2に示した実施例1と異なる動作を行うので、以下においては、その相違点を主に説明する。
図3は、実施例2におけるストレージシステム1の動作の例である。図3において、プロトコルチップ101Aは、図示しないホスト装置からの要求を受けると、該ホスト要求を、スイッチ部105、アドレス変換部104Aを経由して、プロセッサ102Aに送付する(301)。アドレス変換部104Aは、プロトコルチップ101Aによってプロセッサ102Aへの送信のためにホスト要求に付与されているアドレスを、プロセッサ102Aの使用するアドレスに変換する。
プロセッサ102Aは、ホスト要求を受けると、記憶デバイスコマンドを生成して、バックエンドスイッチ106Aを経由して、記憶デバイス107Aへ送付する(302)。記憶デバイス107Aは、記憶デバイスコマンドを受け取ると、所定の動作を行い、結果を記憶デバイス応答として、バックエンドスイッチ106Aを経由して、プロセッサ102Aに返却する(303)。
記憶デバイス応答を受信したプロセッサ102Aは、その内容に従って、ホスト応答を生成し、アドレス変換部104A及びスイッチ部105を経由して、プロトコルチップ101Aに送付する(304)。アドレス変換部104Aは、プロセッサ102Aによりプロトコルチップ101Aへの送信のためにホスト応答に付与されているアドレスを、プロトコルチップ101Aが使用するアドレスに変換する。
プロトコルチップ101Aは、ホスト応答を受信すると、図示しないホスト装置へ応答を返却する。このステップ301からステップ304に至るホスト要求などの送付動作は、図2に示したステップ201からステップ204までの動作と同じである。
次に、図3において、プロセッサ102Aが処理を停止するものとする。この場合、処理の停止は、OSアップデートのように事前に分かり、計画可能な要因によるものだけでなく、障害のように事前にはわからない要因で停止する場合も含んでもよい。事前に処理を停止することがわからない場合は、プロセッサ102Aは、先に図2のステップ205で説明したような、送付先変更指示を処理停止前にプロトコルチップ101Aに送付することはできない。
図3の例では、プロセッサ102Aが処理を停止することはプロセッサ102A自体では事前に知ることはできないが、プロセッサ102Aが停止することをプロセッサ102Bが検出することができるものとする。よってプロセッサ102Aが処理を停止すると、プロセッサ02Bがこれを検知する(305)。
プロセッサ102Bは、プロセッサ102Aが処理を停止したことを検知すると、これまでプロセッサ102Aにホスト要求を送付していたプロトコルチップ101Aに対し、要求送付先変更指示を、アドレス変換部104B、スイッチ部105を経由して送付する(306)。アドレス変換部104Bは、プロセッサ102Bによりプロトコルチップ101Aへの送信のために要求送付先変更指示に付与されているアドレスを、プロトコルチップ101Aが使用するアドレスに変換する。
要求送付先変更指示を受信したプロトコルチップ101Aは、その後、図示しないホスト装置からの要求を受けると、該ホスト要求を、スイッチ部105、アドレス変換部104Bを経由して、プロセッサ102Bに送付する(307)。アドレス変換部104Bは、プロトコルチップ101Aによってプロセッサ102Bへの送信のためにホスト要求に付与されているアドレスを、プロセッサ102Bの使用するアドレスに変換する。
プロセッサ102Bは、ホスト要求を受けると、記憶デバイスコマンドを生成して、バックエンドスイッチ106Bを経由して、記憶デバイス107Aへ送付する(308)。記憶デバイス107Aは、記憶デバイスコマンドを受け取ると、所定の動作を行い、結果を記憶デバイス応答として、バックエンドスイッチ106Bを経由して、プロセッサ102Bに返却する(309)。記憶デバイス応答を受信したプロセッサ102Bは、その内容に従って、ホスト応答を生成し、アドレス変換部104B及びスイッチ部105を経由して、プロトコルチップ101Aに送付する(310)。アドレス変換部104Bは、プロセッサ102Bにより、プロトコルチップ101Aへの送信のためにホスト応答に付与されているアドレスを、プロトコルチップ101Aが使用するアドレスに変換する。
プロトコルチップ101Aは、ホスト応答を受信すると、図示しないホスト装置へ応答を返却する。このステップ307から310に至るホスト要求などの送付動作は、図2に示したステップ206から209までの動作と同じである。
以上のように動作することにより、プロセッサ102Aが事前に処理を停止することがわからなくても、プロセッサ102Bが、プロセッサ102Aの処理停止を検出して、ホスト要求を引継いで処理する。これにより、ストレージシステム1は、ホスト要求を継続して受信し、応答を返すことができる。
また、プロセッサ102Aが処理を再開する場合、ステップ306の動作と同様に、プロセッサ102Aは、プロセッサ102Aへ要求送付先を変更する要求送付先変更指示を、プロセッサ102Aからプロトコルチップ101Aに送信して、プロトコルチップ101Aからの要求送付先をプロセッサ102Aに戻してもよい。
または、処理を引継いだプロセッサ102Bが、プロセッサ102Aが処理を再開することを別途定める手段により検知して、ステップ306の動作と同様に、プロセッサ102Aへ要求送付先を変更する要求送付先変更指示をプロトコルチップ101Aに送信して、プロトコルチップ101Aからの要求送付先をプロセッサ102Aに戻してもよい。
あるいはプロトコルチップ101Aからの要求は、そのまま引き続きプロセッサ102Bが処理を行い、処理を再開したプロセッサ102Aは、別のプロトコルチップ101B~101Dのいずれかの要求を処理するようにしてもよい。このようにすることで、プロセッサ102Aが処理を再開する場合も滞りなく、ホスト装置からの要求を処理することができる。
図4及び図5を用いて、実施例3を説明する。図4は、実施例3に係るストレージシステムの構成の例である。図4において実施例3に係るストレージシステム2は、2つのストレージコントローラ401Aと401B、8つの記憶デバイス107A~107Hを含む。
ストレージコントローラ401Aは、2つのプロトコルチップ101A及び101Bと、1つプロセッサ102Aと、1つのメモリ103Aと、1つのアドレス変換部104Aと、1つのスイッチ部405Aと、1つの中央アドレス変換部404Aと、1つのバックエンドスイッチ106Aを含む。
ストレージコントローラ401Bは、2つのプロトコルチップ101C及び101Dと、1つプロセッサ102Bと、1つのメモリ103Bと、1つのアドレス変換部104Bと、1つのスイッチ部405Bと、1つの中央アドレス変換部404Bと、1つのバックエンドスイッチ106Bを含む。
図4には、2つのストレージコントローラ401A及び401Bを図示するが、ストレージコントローラの数は2に限らず、2以上の任意である。またそれぞれのストレージコントローラ401A及び401Bに含まれるプロトコルチップ、プロセッサ、メモリ、アドレス変換部、スイッチ部、中央アドレス変換部、バックエンドスイッチは、図4に示した数とは異なっていてよい。
記憶デバイス107A~107Hは、図1に示した実施例1の記憶デバイス107A~107Hと同じである。記憶デバイス107A~107Hの数も図1に示した実施例1と同じく、8に限らず、任意である。あるいは、図1に示した実施例1の場合と同様に、記憶デバイス107A~107Hをストレージシステム2内に搭載しなくてもよい。この場合、プロトコルチップ101A~101Dの先にホスト装置以外に別のストレージシステムを接続してよい。プロセッサ102Aまたは102Bは、データ読出しまたは格納の要求を、アドレス変換部104Aまたは104B、スイッチ部405Aまたは405Bを経由して、プロトコルチップ101A~101Dから、接続した別のストレージシステムに送付して、データ読出しまたは格納を行わせてもよい。
それぞれのストレージコントローラ401A及び401Bに含まれるプロトコルチップ101A~101D、プロセッサ102A及び102B、メモリ103A及び103B、アドレス変換部104A及び104B、バックエンドスイッチ106A及び106Bは、図1に示した実施例1のプロトコルチップ101A~101D、プロセッサ102A及び102B、メモリ103A及び103B、アドレス変換部104A及び104B、バックエンドスイッチ106A及び106Bと同じである。
但し、アドレス変換部104Aは、プロトコルチップ101A及び101Bが用いるアドレスと、プロセッサ102Aが用いるアドレスを変換する。同様にアドレス変換部104Bは、プロトコルチップ101C及び101Dが用いるアドレスをプロセッサ102Bが用いるアドレスに変換する。
図1に示した実施例1のスイッチ部105は、プロトコルチップ101A~101Dと、アドレス変換部104A及び104Bとの間のスイッチングを行う。これと比較して、スイッチ部405Aは、プロトコルチップ101A及び101Bと、アドレス変換部104Aとのスイッチングに加えて、これらと中央アドレス変換部404A及び404Bとの間のスイッチングを行う。また、スイッチ部405Bは、プロトコルチップ101C及び101Dと、アドレス変換部104Bとのスイッチングに加えて、これらと中央アドレス変換部404A及び404Bとの間のスイッチングを行う。
ここでスイッチ部405A及び405Bは、それぞれ中央アドレス変換部404A及び404Bの両方に接続される。このようにすることによって、ストレージコントローラ401A及び401Bの構成を対象(同一)にすることができ、ストレージコントローラ401A及び401Bの制御方式を同一とすることができる。
よって、ストレージコントローラ401A及び401Bは、まったく同一に構成できることになり、図1に示した構成に対して、図4に示した構成では、ストレージシステム2を構成する場合にストレージコントローラ401A及び401Bを繰り返し構造で構成できるので、ストレージシステム2の規模を拡大したり、ストレージコントローラ401Aまたは401Bの単位で交換が容易な構成にすることが可能である。その他、スイッチ部405A及び405Bのスイッチング方式は、図1の実施例1のスイッチ部105と同様に、回線交換方式でもよいし、パケット交換方式でもよい。
中央アドレス変換部404A及び404Bは、互いに同じストレージコントローラ401Aまたは401B内のスイッチ部405Aまたは405Bと、異なるストレージコントローラのスイッチ部405Bまたは405Aと接続し、プロトコルチップ101A及び101Bが用いるアドレスと、プロトコルチップ101C及び101Dが用いるアドレスとを変換する。
このようにすることによって、プロセッサ102Aが処理を停止する場合、プロセッサ102Bが用いるアドレスをアドレス変換部104Bがプロトコルチップ101C及び101Dが用いるアドレスに変換し、中央アドレス変換部404Aまたは404Bが更にプロトコルチップ101A及び101Bが用いるアドレスに変換することができる。これにより、プロトコルチップ101Aまたは101Bが受けるホスト装置からの要求を、継続してプロセッサ102Bで処理を行って応答を返すことができる。
またプロセッサ102Bが処理を停止する場合、プロセッサ102Aが用いるアドレスをアドレス変換部104Aがプロトコルチップ101A及び101Bが用いるアドレスに変換し、中央アドレス変換部404Aまたは404Bが更にプロトコルチップ101C及び101Dが用いるアドレスに変換することができる。これにより、プロトコルチップ101Cまたは101Dが受けるホスト装置からの要求を、継続してプロセッサ102Aで処理を行って応答を返すことができる。なお、中央アドレス変換部404Aまたは404Bの一方が省略されていてもよい。
図4に示すストレージシステム2が、プロセッサ102Aまたは102Bのいずれか一つが停止しても、ホスト装置からのIO要求に継続して応答する動作の例を、図5を用いて説明する。
図5において、プロトコルチップ101Aは、図示しないホスト装置からの要求を受けると、該ホスト要求を、スイッチ部405A、アドレス変換部104Aを経由して、プロセッサ102Aに送付する(501)。アドレス変換部104Aは、プロトコルチップ101Aによってプロセッサ102Aへの送信のためにホスト要求に付与されているアドレスを、プロセッサ102Aの使用するアドレスに変換する。
プロセッサ102Aは、ホスト要求を受けると、記憶デバイスコマンドを生成して、バックエンドスイッチ106Aを経由して、記憶デバイス107Aへ送付する(502)。記憶デバイス107Aは、記憶デバイスコマンドを受け取ると、所定の動作を行い、結果を記憶デバイス応答として、バックエンドスイッチ106Aを経由して、プロセッサ102Aに返却する(503)。
記憶デバイス応答を受信したプロセッサ102Aは、その内容に従って、ホスト応答を生成し、アドレス変換部104A及びスイッチ部405Aを経由して、プロトコルチップ101Aに送付する(504)。アドレス変換部104Aは、プロセッサ102Aにより、プロトコルチップ101Aへの送信のためにホスト応答に付与されているアドレスを、プロトコルチップ101Aが使用するアドレスに変換する。
プロトコルチップ101Aは、ホスト応答を受信すると、図示しないホスト装置へ応答を返却する。このステップ501から504に至るホスト要求などの送付動作は、図2に示したステップ201から204までの動作と同等である。
次に、本実施例3において、プロセッサ102Aが停止する際に、プロセッサ102Aがコマンド送付先の変更をプロトコルチップ101Aに送付する例を説明する。
引き続き、図5において、プロセッサ102Aは、要求送付先変更指示を生成し、アドレス変換部104A、スイッチ部405Aを経由してプロトコルチップ101Aへ送付する(505)。このステップ505の動作は、図2に示したステップ205と同等である。
その後プロセッサ102Aは処理を停止する。この処理の停止の理由の例は、図2と同じく、例えばOSのアップデートである。このような場合は、プロセッサ102Aは停止することが事前にわかるので、処理を停止する前に、動作505の通り要求送付先変更指示をプロトコルチップ101Aに送付することができる。
図5に示す例において、要求送付先変更指示を受信したプロトコルチップ101Aは、その後、図示しないホスト装置からの要求を受けると、該ホスト要求を、スイッチ部405A、中央アドレス変換部404B、スイッチ部405B、アドレス変換部104Bを経由して、プロセッサ102Bに送付する(506)。中央アドレス変換部404Bは、プロトコルチップ101Aがプロセッサ102Bへ送付するために付与したアドレスを、プロトコルチップ101C、101Dが使用するアドレスに変換する。アドレス変換部104Bは、プロトコルチップ101C、101Dが使用するアドレスに変換された、プロセッサ102Bへ送付するためのアドレスを、更にプロセッサ102Bが使用するアドレスに変換する。
プロセッサ102Bは、ホスト要求を受けると、記憶デバイスコマンドを生成して、バックエンドスイッチ106Bを経由して、記憶デバイス107Aへ送付する(507)。記憶デバイス107Aは、記憶デバイスコマンドを受け取ると、所定の動作を行い、結果を記憶デバイス応答として、バックエンドスイッチ106Bを経由して、プロセッサ102Bに返却する(508)。
記憶デバイス応答を受信したプロセッサ102Bは、その内容に従って、ホスト応答を生成し、アドレス変換部104B、スイッチ部405B、中央アドレス変換部404B、及びスイッチ部405Aを経由して、プロトコルチップ101Aに送付する(509)。アドレス変換部104Bは、プロセッサ102Bがプロトコルチップ101Aに送付するために付与したアドレスをプロトコルチップ101C、101Dが使用するアドレスに変換する。中央アドレス変換部404Bは、プロトコルチップ101C、101Dが使用するアドレスに変換された、プロトコルチップ101Aに送付するためのアドレスを、更にプロトコルチップ101A、101Bが使用するアドレスに変換する。
プロトコルチップ101Aは、ホスト応答を受信すると、図示しないホスト装置へ応答を返却する。このステップ506から509に至るホスト要求などの送付動作は、ステップ501から504までの動作と同等であり、以下の点が異なる。処理を行うプロセッサが102Aから102Bに代わり、それに伴いアドレス変換部104Aが104Bに、バックエンドスイッチが106Aから106Bに代わっている。さらに、プロトコルチップ101Aとプロセッサ102Bとの間の要求及び応答の伝達に新たに2つのスイッチ部405A及び405Bと、中央アドレス変換部404Bの経由が加わっている。
以上のように動作することにより、プロセッサ102Aが処理を停止しても、ストレージシステム2は、ホスト要求を継続して受信し、応答を返すことが可能である。
また、プロセッサ102Aが処理を再開する場合、ステップ505の動作と同様に、プロセッサ102Aへ要求送付先を変更する要求送付先変更指示をプロセッサ102Aからプロトコルチップ101Aに送信して、プロトコルチップ101Aからの要求送付先をプロセッサ102Aに戻してもよい。
または、処理を引継いだプロセッサ102Bが、プロセッサ102Aが処理を再開することを別途定める手段により検知してもよい。ステップ505の動作と同様に、プロセッサ102Bは、プロセッサ102Aへ要求送付先を変更する要求送付先変更指示をプロトコルチップ101Aに送信して、プロトコルチップ101Aからの要求送付先をプロセッサ102Aに戻してよい。このようにすることで、プロセッサ102Aが処理を再開する場合も滞りなく、ホスト装置からの要求を処理することができる。
次に図6を用いて、実施例4を説明する。実施例4において、ストレージシステムの構成の例は、実施例3で説明した図4に示すストレージシステム2の構成と同じである。図4に示したストレージシステム2の構成を用いて、図5に示した実施例3と異なる動作を行うので、以下においては、その相違点を主に説明する。
図6は、実施例4におけるストレージシステム2の動作の例である。図6において、プロトコルチップ101Aは、図示しないホスト装置からの要求を受けると、該ホスト要求を、スイッチ部405A、アドレス変換部104Aを経由して、プロセッサ102Aに送付する(601)。アドレス変換部104Aは、プロトコルチップ101Aによってプロセッサ102Aへ送信するためにホスト要求に付与されているアドレスを、プロセッサ102Aの使用するアドレスに変換する。
プロセッサ102Aは、ホスト要求を受けると、記憶デバイスコマンドを生成して、バックエンドスイッチ106Aを経由して、記憶デバイス107Aへ送付する(602)。記憶デバイス107Aは、記憶デバイスコマンドを受け取ると、所定の動作を行い、結果を記憶デバイス応答として、バックエンドスイッチ106Aを経由して、プロセッサ102Aに返却する(603)。
記憶デバイス応答を受信したプロセッサ102Aは、その内容に従って、ホスト応答を生成し、アドレス変換部104A及びスイッチ部405Aを経由して、プロトコルチップ101Aに送付する(604)。アドレス変換部104Aは、プロセッサ102Aにより、プロトコルチップ101Aへの送信のためにホスト応答に付与されているアドレスを、プロトコルチップ101Aが使用するアドレスに変換する。プロトコルチップ101Aは、ホスト応答を受信すると、図示しないホスト装置へ応答を返却する。このステップ601から604に至るホスト要求などの送付動作は、図5に示したステップ501から504までの動作と同じである。
次に、図6において、プロセッサ102Aが処理を停止するものとする。この場合、処理の停止は、OSアップデートのように事前に分かり、計画可能な要因によるものだけでなく、障害のように事前にはわからない要因で停止する場合も含んでもよい。事前に処理を停止することがわからない場合は、プロセッサ102Aは、先に図5の動作505で説明したような、送付先変更指示を処理停止前にプロトコルチップ101Aに送付することはできない。
図6の例では、プロセッサ102Aが処理を停止することはプロセッサ102A自体では事前に知ることはできないが、プロセッサ102Aが停止することをプロセッサ102Bが検出することができるものとする。よって、プロセッサ102Aが処理を停止すると、プロセッサ02Bがこれを検知する(605)。
プロセッサ102Bは、プロセッサ102Aが処理を停止したことを検知すると、これまでプロセッサ102Aにホスト要求を送付していたプロトコルチップ101Aに対し、要求送付先変更指示を、アドレス変換部104B、スイッチ部405B、中央アドレス変換部404B、スイッチ部405Aを経由して送付する(606)。アドレス変換部104Bは、プロセッサ102Bによりプロトコルチップ101Aへの送信のために要求送付先変更指示に付与されているアドレスを、プロトコルチップ101C、101Dが使用するアドレスに変換する。さらに、中央アドレス変換部404Bは、プロトコルチップ101C、101Dが使用するアドレスに変換された、プロトコルチップ101Aへ送信するためのアドレスを、プロトコルチップ101A、101Bが使用するアドレスに変換する。
要求送付先変更指示を受信したプロトコルチップ101Aは、その後、図示しないホスト装置からの要求を受けると、該ホスト要求を、スイッチ部405A、中央アドレス変換部404B、スイッチ部405B、アドレス変換部104Bを経由して、プロセッサ102Bに送付する(607)。中央アドレス変換部404Bは、プロトコルチップ101Aがプロセッサ102Bへの送信のためにホスト要求に付与したアドレスを、プロトコルチップ101C、101Dが使用するアドレスに変換する。アドレス変換部104Bは、さらに、プロトコルチップ101C、101Dが使用するアドレスに変換された、プロセッサ102Bへ送信するためのアドレスを、プロセッサ102Bが使用するアドレスに変換する。
プロセッサ102Bは、ホスト要求を受けると、記憶デバイスコマンドを生成して、バックエンドスイッチ106Bを経由して、記憶デバイス107Aへ送付する(608)。
記憶デバイス107Aは、記憶デバイスコマンドを受け取ると、所定の動作を行い、結果を記憶デバイス応答として、バックエンドスイッチ106Bを経由して、プロセッサ102Bに返却する(609)。記憶デバイス応答を受信したプロセッサ102Bは、その内容に従って、ホスト応答を生成し、アドレス変換部104B及びスイッチ部405B、中央アドレス変換部404B、スイッチ部405Aを経由して、プロトコルチップ101Aに送付する(610)。
アドレス変換部104Bは、プロセッサ102Bがプロトコルチップ101Aへの送信のためにホスト応答に付与したアドレスを、プロトコルチップ101C、101Dが使用するアドレスに変換する。中央アドレス変換部404Bは、さらに、プロトコルチップ101C、101Dが使用するアドレスに変換された、プロトコルチップ101Aへ送信するためのアドレスを、プロトコルチップ101A、101Bが使用するアドレスに変換する。プロトコルチップ101Aは、ホスト応答を受信すると、図示しないホスト装置へ応答を返却する。この607から610に至るホスト要求などの送付動作は、図5に示したステップ506から509までの動作と同じである。
以上のように動作することにより、プロセッサ102Aが事前に処理を停止することがわからなくても、プロセッサ102Bが、プロセッサ102Aが処理を停止することを検出して、ホスト要求を引継いで処理するので、ストレージシステム2は、ホスト要求を継続して受信し、応答を返すことができる。
また、プロセッサ102Aが処理を再開する場合、ステップ606の動作と同様に、プロセッサ102Aへ要求送付先を変更する要求送付先変更指示をプロセッサ102Aからプロトコルチップ101Aに送信して、プロトコルチップ101Aからの要求送付先をプロセッサ102Aに戻してもよい。
または、処理を引継いだプロセッサ102Bが、プロセッサ102Aが処理を再開することを別途定める手段により検知してもよい。プロセッサ102Bは、ステップ606の動作と同様に、プロセッサ102Aへ要求送付先を変更する要求送付先変更指示をプロトコルチップ101Aに送信して、プロトコルチップ101Aからの要求送付先をプロセッサ102Aに戻してもよい。これらのようにすることで、プロセッサ102Aが処理を再開する場合も滞りなく、ホスト装置からの要求を処理することができる。
図7及び図8を用いて、実施例5を説明する。図7は実施例5におけるストレージシステム3の構成の例である。図7に示したストレージシステム3の構成は、実施例1における図1に示したストレージシステム1の構成の例に対し、更に割込み制御プロセッサ701を持つ。またスイッチ部705は、割込み制御プロセッサ701、プロトコルチップ101A~101D、アドレス変換部104A、104Bの間のスイッチングを行う。
図7には1つの割込み制御プロセッサ701を図示するが、割込み制御プロセッサの数は1に限らず、任意である。特に割込み制御プロセッサ701をスイッチ部705に含めてもよい。ストレージシステム3のその他の構成は、図1に示したストレージシステム1と同じである。
割込み制御プロセッサ701は、プロトコルチップ101A~101Dが割込み信号を送信する場合に、割込み信号をプロセッサ102Aまたは102Bに割込み信号を送信する機能を備える。更に、割込み制御プロセッサ701は、スイッチ部705を経由して接続されるプロトコルチップ101A~101Dが用いるアドレスを管理・制御する機能、例えば各プロトコルチップ101A~101Dが用いるアドレスを決定し、付与する機能を持ってもよい。また、割込み制御プロセッサ701が使用するアドレスは、プロトコルチップ101A~101Dと共通でよい。このような割込み信号の送信機能や、アドレスを管理・制御する機能は、すべて割込み制御プロセッサ701のハードウェアで実現してもよいし、割込み制御プロセッサ701が所定のプログラムを実行することで実現してもよい。
またプロセッサ102Aは、実施例1で説明したように、処理を停止する場合に、割込み信号送信先をプロセッサ102Aからプロセッサ102Bに変更する割込み送付先変更指示を割込み制御プロセッサ701に送信する。この動作の例を図8により、説明する。
図8において、プロトコルチップ101Aが割込み信号を、スイッチ部705を経由して割込み制御プロセッサ701に送信する(801)。プロトコルチップ101Aからの割込み信号を受信した割込み制御プロセッサ701は、割込み信号を複製し、スイッチ部705及びアドレス変換部104Aを経由して、プロセッサ102Aに送信する(802)。この時、割込み制御プロセッサ701は、割込み信号を複製した上で、プロセッサ102Aが処理を行い易いように割込み信号を加工したり、別の信号を付加してもよい。
なお、ここで、割込み信号は、割込み信号であることを表す特定の通信データに、プロトコルチップ101Aがスイッチ部705を経由して割込み制御プロセッサ701に送付するために用いるアドレスを付与して送付してもよい。あるいは、特に図示しない専用信号線を設けて、プロトコルチップ101Aから割込み制御プロセッサ701に割込み信号を直接送付してもよい。
同様に、割込み制御プロセッサ701は、割込みであることを示す特定の通信データに、割込み制御プロセッサ701がプロセッサ102Aに送付するために用いるアドレスを付与して送付してもよい。この場合、割込み制御プロセッサ701がプロセッサ102Aに送付するために付与したアドレスは、アドレス変換部104Aにて、プロセッサ102Aが用いるアドレスに変換される。あるいは、特に図示しない専用信号線を設けて、割込み制御プロセッサ701からプロセッサ102Aに割込み信号を直接送付してもよい。
プロセッサ102Aは、処理を停止する時、割込み送付先変更指示を、アドレス変換部104A及びスイッチ部705を経由して、割込み制御プロセッサ701へ送付する(803)。アドレス変換部104Aは、プロセッサ102Aが割込み制御プロセッサ701への送信のために割込み送付先変更指示に付与したアドレスを割込み制御プロセッサ701が使用するアドレスに変換する。
割込み送付先変更指示を割込み制御プロセッサ701へ送付したプロセッサ102Aは、処理を停止する。この処理の停止の理由は、図2と同じく、例えばOSのアップデートである。このような場合は、プロセッサ102Aは停止することが事前にわかるので、処理を停止する前に、ステップ803の通り割込み送付先変更指示を割込み制御プロセッサ701に送付することができる。
図8において、割込み送付先変更指示を受信した割込み制御プロセッサ701は、その後、プロトコルチップ101Aから、スイッチ部705を経由して割込み信号を受信すると(804)、ステップ802と同様に割込み信号を複製し、スイッチ部705、アドレス変換部104Bを経由して、プロセッサ102Bに送信する(805)。
このとき、ステップ802と同様に、割込み制御プロセッサ701は、割込み信号を複製した上で、プロセッサ102Bが処理を行い易いように割込み信号を加工する、または別の信号を付加してもよい。
また同様に、割込み制御プロセッサ701は、割込みであることを示す特定の通信データに、割込み制御プロセッサ701がプロセッサ102Bに送付するために用いるアドレスを付与して送付してもよい。この場合、割込み制御プロセッサ701が付与したアドレスは、アドレス変換部104Bにて、プロセッサ102Bが用いるアドレスに変換される。あるいは、特に図示しない専用信号線を設けて、割込み制御プロセッサ701からプロセッサ102Bに割込み信号を直接送付してもよい。
以上のようにすることによって、プロトコルチップ101Aが割込み信号を送信する場合、プロセッサ102Aが処理を停止しても、プロセッサ102Bに割込み信号を送信することで、継続してプロトコルチップ101Aの割込み信号をプロセッサ102Bにおいて受信し、これに応じた割込み処理を行うことができる。
また、プロセッサ102Aが処理を再開する場合、ステップ803の動作と同様に、プロセッサ102Aへ割込み送付先を変更する割込み送付先変更指示をプロセッサ102Aから割込み制御プロセッサ701に送信して、割込み送付先をプロセッサ102Aに戻してもよい。または、処理を引継いだプロセッサ102Bが、プロセッサ102Aが処理を再開することを別途定める手段により検知してもよい。ステップ803の動作と同様に、プロセッサ102Bは、プロセッサ102Aへ割込み送付先を変更する割込み送付先変更指示を割込み制御プロセッサ701に送信して、割込み送付先をプロセッサ102Aに戻してよい。このようにすることで、プロセッサ102Aが処理を再開する場合も滞りなく、プロトコルチップ101Aからの割込み信号を処理することができる。
次に図9を用いて、実施例6を説明する。実施例3において、ストレージシステムの構成の例は、実施例5で説明した図7に示すストレージシステム3の構成と同じである。図7に示したストレージシステム3の構成を用いて、図8に示した実施例5と異なる動作を行うので、以下においては、その相違点を主に説明する。
図9は、実施例6におけるストレージシステム3の動作の例である。図9において、プロトコルチップ101Aが割込み信号を、スイッチ部705を経由して割込み制御プロセッサ701に送信する(901)。
プロトコルチップ101Aからの割込み信号を受信した割込み制御プロセッサ701は、割込み信号を複製し、スイッチ部705及びアドレス変換部104Aを経由して、プロセッサ102Aに送信する(902)。この時、割込み制御プロセッサ701は、割込み信号を複製した上で、プロセッサ102Aが処理を行い易いように割込み信号を加工したり、別の信号を付加してもよい。
また、割込み制御プロセッサ701は、割込みであることを示す特定の通信データに、割込み制御プロセッサ701がプロセッサ102Aに送付するために用いるアドレスを付与して送付してもよい。この場合、割込み制御プロセッサ701がプロセッサ102Aに送付するために付与したアドレスは、アドレス変換部104Aにて、プロセッサ102Aが用いるアドレスに変換される。あるいは、特に図示しない専用信号線を設けて、割込み制御プロセッサ701からプロセッサ102Aに割込み信号を直接送付してもよい。このステップ901から902における動作は、図8に示したステップ801から802における動作と同じである。
次に、図9において、プロセッサ102Aが処理を停止するものとする。この場合、実施例2と同じく、処理の停止は、OSアップデートのように事前に分かり、計画可能な要因によるものだけでなく、障害のように事前にはわからない要因で停止する場合も含んでもよい。事前に処理を停止することがわからない場合は、プロセッサ102Aは、先に図8のステップ803で説明したような、割込み送付先変更指示を処理停止前に割込み制御プロセッサ701に送付することはできない。
図9の例では、プロセッサ102Aが処理を停止することはプロセッサ102A自体では事前に知ることはできないが、プロセッサ102Aが停止することをプロセッサ102Bが検出することができるものとする。よって、プロセッサ102Aが処理を停止すると、プロセッサ102Bがこれを検知する(903)。
プロセッサ102Bは、プロセッサ102Aが処理を停止したことを検知すると、これまでプロセッサ102Aに割込み信号を送付していた割込み制御プロセッサ701に対し、割込み送付先変更指示を、アドレス変換部104B、スイッチ部705を経由して送付する(904)。割込み送付先変更指示を割込み制御プロセッサ701へ送信するためにプロセッサ102Bによって付与されているアドレスは、アドレス変換部104Bにて、割込み制御プロセッサ701が使用するアドレスに変換される。
図9において、割込み送付先変更指示を受信した割込み制御プロセッサ701は、その後、プロトコルチップ101Aから、スイッチ部705を経由して割込み信号を受信すると(905)、ステップ902と同様に割込み信号を複製し、スイッチ部705、アドレス変換部104Bを経由して、プロセッサ102Bに送信する(906)。
このとき、ステップ902と同様に、割込み制御プロセッサ701は、割込み信号を複製した上で、プロセッサ102Bが処理を行い易いように割込み信号を加工したり、別の信号を付加してもよい。また、割込み制御プロセッサ701は、割込みであることを示す特定の通信データに、割込み制御プロセッサ701がプロセッサ102Bに送付するために用いるアドレスを付与して送付してもよい。この場合、プロセッサ102Bへ送信するために割込み制御プロセッサ701によって付与されたアドレスは、アドレス変換部104Bによって、プロセッサ102Bにより使用されるアドレスに変換される。あるいは、特に図示しない専用信号線を設けて、割込み制御プロセッサ701からプロセッサ102Bに割込み信号を直接送付してもよい。
以上のようにすることによって、プロセッサ102Aが事前に処理を停止することがわからなくても、プロセッサ102Bが、プロセッサ102Aが処理を停止することを検出して割込み信号の送信先をプロセッサ102Bに変更できる。これにより、継続してプロトコルチップ101Aの割込み信号をプロセッサ102Bにおいて受信し、これに応じた割込み処理を行うことができる。
また、プロセッサ102Aが処理を再開する場合、ステップ904の動作と同様に、プロセッサ102Aへ割込み送付先を変更する割込み送付先変更指示を、プロセッサ102Aから割込み制御プロセッサ701に送信して、割込み送付先をプロセッサ102Aに戻してもよい。
または、処理を引継いだプロセッサ102Bが、プロセッサ102Aが処理を再開することを別途定める手段により検知してもよい。ステップ904の動作と同様に、プロセッサ102Bは、プロセッサ102Aへ割込み送付先を変更する割込み送付先変更指示を割込み制御プロセッサ701に送信して、割込み送付先をプロセッサ102Aに戻してよい。このようにすることで、プロセッサ102Aが処理を再開する場合も滞りなく、プロトコルチップ101Aからの割込み信号を処理することができる。
図10及び図11を用いて、実施例7を説明する。図10は実施例7におけるストレージシステム4の構成の例である。図10に示したストレージシステム4の構成は、実施例3における図4に示したストレージシステム2の構成の例に対し、更にストレージコントローラ411Aが割込み制御プロセッサ412Aを持ち、ストレージコントローラ411Bが割込み制御プロセッサ412Bを持つ。
また、スイッチ部415Aは、割込み制御プロセッサ412A、プロトコルチップ101A及び101B、アドレス変換部104A、並びに中央アドレス変換部404A及び404Bの間のスイッチングを行う。同様に、スイッチ部415Bは、割込み制御プロセッサ412B、プロトコルチップ101C及び101D、アドレス変換部104B、並びに中央アドレス変換部404A及び404Bの間のスイッチングを行う。
図10にはストレージコントローラ411A及び411Bにそれぞれ1つずつの割込み制御プロセッサ412A及び412Bを図示するが、割込み制御プロセッサの数は、任意である。特に割込み制御プロセッサ412Aまたは412Bと同等の機能をスイッチ部415Aまたは415Bに含めてもよい。ストレージシステム4のその他の構成は、図4に示したストレージシステム2と同じである。
割込み制御プロセッサ412Aは、プロトコルチップ101A及び101Bが割込み信号を送信する場合に、割込み信号をプロセッサ102Aまたは102Bに割込み信号を送信する機能を備える。更に、割込み制御プロセッサ412Aは、スイッチ部415Aを経由して接続されるプロトコルチップ101A及び101Bが用いるアドレスを管理・制御する機能、例えば各プロトコルチップ101A及び101Bが用いるアドレスを決定し、付与する機能を持ってもよい。
また、割込み制御プロセッサ412Aが使用するアドレスは、プロトコルチップ101A、101Bが使用するアドレスと共通でよい。このような割込み信号の送信機能や、アドレスを管理・制御する機能は、すべて割込み制御プロセッサ412Aのハードウェアで実現してもよいし、割込み制御プロセッサ412Aが所定のプログラムを実行することで実現してもよい。
割込み制御プロセッサ412Bは、プロトコルチップ101C及び101Dが割込み信号を送信する場合に、割込み信号をプロセッサ102Aまたは102Bに割込み信号を送信する機能を備える。更に、割込み制御プロセッサ412Bは、スイッチ部415Bを経由して接続されるプロトコルチップ101C及び101Dが用いるアドレスを管理・制御する機能、例えば各プロトコルチップ101C及び101Dが用いるアドレスを決定し、付与する機能を持ってもよい。また、割込み制御プロセッサ412Bが使用するアドレスは、プロトコルチップ101C、101Dが使用するアドレスと共通でよい。このような割込み信号の送信機能や、アドレスを管理・制御する機能は、すべて割込み制御プロセッサ412Bのハードウェアで実現してもよいし、割込み制御プロセッサ412Bが所定のプログラムを実行することで実現してもよい。
またプロセッサ102Aは、実施例3で説明したように、処理を停止する場合に、割込み信号送信先をプロセッサ102Aからプロセッサ102Bに変更する割込み送付先変更指示を割込み制御プロセッサ412Bに送信する。この動作の例を図11により、説明する。
図11において、プロトコルチップ101Aが割込み信号を、スイッチ部415Aを経由して割込み制御プロセッサ412Aに送信する(811)。プロトコルチップ101Aからの割込み信号を受信した割込み制御プロセッサ701は、割込み信号を複製し、スイッチ部415A及びアドレス変換部104Aを経由して、プロセッサ102Aに送信する(812)。この時、割込み制御プロセッサ412Aは、割込み信号を複製した上で、プロセッサ102Aが処理を行い易いように割込み信号を加工したり、別の信号を付加してもよい。
なお、ここで、割込み信号は、割込み信号であることを表す特定の通信データに、プロトコルチップ101Aがスイッチ部415Aを経由して割込み制御プロセッサ412Aに送付するために用いるアドレスを付与して送付してもよい。あるいは、特に図示しない専用信号線を設けて、プロトコルチップ101Aから割込み制御プロセッサ412Aに割込み信号を直接送付してもよい。
同様に、割込み制御プロセッサ412Aは、割込みであることを示す特定の通信データに、割込み制御プロセッサ412Aがプロセッサ102Aに送付するために用いるアドレスを付与して送付してもよい。この場合、割込み制御プロセッサ412Aが付与したアドレスは、アドレス変換部104Aにて、プロセッサ102Aが用いるアドレスに変換される。あるいは、特に図示しない専用信号線を設けて、割込み制御プロセッサ412Aからプロセッサ102Aに割込み信号を直接送付してもよい。
プロセッサ102Aは、処理を停止する時、割込み送付先変更指示を、アドレス変換部104及びスイッチ部415Aを経由して、割込み制御プロセッサ412Aへ送付する(813)。プロセッサ102Aが、割込み制御プロセッサ412Aへの送信のために割込み送付先変更指示に付与したアドレスは、割込み制御プロセッサ412Aが使用するアドレスに変換される。
割込み送付先変更指示を割込み制御プロセッサ412Aへ送付したプロセッサ102Aは、処理を停止する。この処理の停止の理由は、図8と同じく、例えばOSのアップデートである。このような場合は、プロセッサ102Aは停止することが事前にわかるので、処理を停止する前に、ステップ813の通り割込み送付先変更指示を割込み制御プロセッサ412Aに送付することができる。
図11において、割込み送付先変更指示を受信した割込み制御プロセッサ412Aは、その後、プロトコルチップ101Aから、スイッチ部415Aを経由して割込み信号を受信すると(814)、ステップ812と同様に割込み信号を複製し、スイッチ部415A、中央アドレス変換部404B、スイッチ部415B、及びアドレス変換部104Bを経由して、プロセッサ102Bに送信する(815)。このとき、ステップ812と同様に、割込み制御プロセッサ412Aは、割込み信号を複製した上で、プロセッサ102Bが処理を行い易いように割込み信号を加工したり、別の信号を付加してもよい。
また同様に、割込み制御プロセッサ412Aは、割込みであることを示す特定の通信データに、割込み制御プロセッサ412Aがプロセッサ102Bに送付するために用いるアドレスを付与して送付してもよい。この場合、割込み制御プロセッサ412Aが付与したアドレスは、中央アドレス変換部404Bにて一旦プロトコルチップ101C及び101Dが用いるアドレスに変換される。その後、さらに、プロトコルチップ101C及び101Dが用いるアドレスに変換された、プロセッサ102Bへ送付するためのアドレスは、アドレス変換部104Bにて、プロセッサ102Bが用いるアドレスに変換される。あるいは、特に図示しない専用信号線を設けて、割込み制御プロセッサ412Aからプロセッサ102Bに割込み信号を直接送付してもよい。
以上のようにすることによって、プロトコルチップ101Aが割込み信号を送信する場合、プロセッサ102Aが処理を停止しても、プロセッサ102Bに割込み信号を送信することで、継続してプロトコルチップ101Aの割込み信号をプロセッサ102Bにおいて受信し、これに応じた割込み処理を行うことができる。
また、プロセッサ102Aが処理を再開する場合、ステップ813の動作と同様に、プロセッサ102Aへ割込み送付先を変更する割込み送付先変更指示をプロセッサ102Aから割込み制御プロセッサ412Aに送信して、割込み送付先をプロセッサ102Aに戻してもよい。
または、処理を引継いだプロセッサ102Bが、プロセッサ102Aが処理を再開することを別途定める手段により検知してもよい。プロセッサ102Bは、ステップ813の動作と同様に、プロセッサ102Aへ割込み送付先を変更する割込み送付先変更指示を割込み制御プロセッサ412Aに送信して、割込み送付先をプロセッサ102Aに戻してよい。このようにすることで、プロセッサ102Aが処理を再開する場合も滞りなく、プロトコルチップ101Aからの割込み信号を処理することができる。
次に図12を用いて、実施例8を説明する。実施例8において、ストレージシステムの構成の例は、実施例7で説明した図10に示すストレージシステム4の構成と同じである。図10に示したストレージシステム4の構成を用いて、図11に示した実施例7と異なる動作を行うので、以下においては、その相違点を主に説明する。
図12は、実施例8におけるストレージシステム4の動作の例である。図12において、プロトコルチップ101Aが割込み信号を、スイッチ部415Aを経由して割込み制御プロセッサ412Aに送信する(911)。プロトコルチップ101Aからの割込み信号を受信した割込み制御プロセッサ412Aは、割込み信号を複製し、スイッチ部415A及びアドレス変換部104Aを経由して、プロセッサ102Aに送信する(912)。
この時、割込み制御プロセッサ412Aは、割込み信号を複製した上で、プロセッサ102Aが処理を行い易いように割込み信号を加工したり、別の信号を付加してもよい。また、割込み制御プロセッサ412Aは、割込みであることを示す特定の通信データに、割込み制御プロセッサ412Aがプロセッサ102Aに送付するために用いるアドレスを付与して送付してもよい。
この場合、割込み制御プロセッサ412Aがプロセッサ102Aに送付するために付与したアドレスは、アドレス変換部104Aにて、プロセッサ102Aが用いるアドレスに変換される。あるいは、特に図示しない専用信号線を設けて、割込み制御プロセッサ412Aからプロセッサ102Aに割込み信号を直接送付してもよい。このステップ911から912における動作は、図11に示したステップ811から812における動作と同じである。
次に、図12において、プロセッサ102Aが処理を停止するものとする。この場合、実施例6と同じく、処理の停止は、OSアップデートのように事前に分かり、計画可能な要因によるものだけでなく、障害のように事前にはわからない要因で停止する場合も含んでもよい。事前に処理を停止することがわからない場合は、プロセッサ102Aは、先に図11のステップ813で説明したような、割込み送付先変更指示を処理停止前に割込み制御プロセッサ412Aに送付することはできない。
図12の例では、プロセッサ102Aが処理を停止することはプロセッサ102A自体では事前に知ることはできないが、プロセッサ102Aが停止することをプロセッサ102Bが検出することができるものとする。よって、プロセッサ102Aが処理を停止すると、プロセッサ102Bがこれを検知する(913)。
プロセッサ102Bは、プロセッサ102Aが処理を停止したことを検知すると、これまでプロセッサ102Aに割込み信号を送付していた割込み制御プロセッサ412Aに対し、割込み送付先変更指示を、アドレス変換部104B、スイッチ部415B、中央アドレス変換部404B、スイッチ部415Aを経由して送付する(914)。
プロセッサ102Bが割込み制御プロセッサ412Aに送付するために割込み送付先変更指示に付与したアドレスは、アドレス変換部104Bにて、一旦、プロトコルチップ101C、101Dが使用するアドレスへ変換される。その後、さらに、プロトコルチップ101C、101Dが使用するアドレスへ変換された、割込み制御プロセッサ412Aに送付するためのアドレスは、中央アドレス変換部404Bにて割込み制御プロセッサ412Aが使用するアドレスに変換される。
図12において、割込み送付先変更指示を受信した割込み制御プロセッサ412Aは、その後、プロトコルチップ101Aから、スイッチ部415Aを経由して割込み信号を受信すると(915)、ステップ912と同様に割込み信号を複製し、スイッチ部415A、中央アドレス変換部404B、スイッチ部415B、及びアドレス変換部104Bを経由して、プロセッサ102Bに送信する(916)。
このとき、ステップ912と同様に、割込み制御プロセッサ412Aは、割込み信号を複製した上で、プロセッサ102Bが処理を行い易いように割込み信号を加工したり、別の信号を付加してもよい。また、割込み制御プロセッサ412Aは、割込みであることを示す特定の通信データに、割込み制御プロセッサ412Aがプロセッサ102Bに送付するために用いるアドレスを付与して送付してもよい。
この場合、割込み制御プロセッサ412Aがプロセッサ102Bに送付するために付与したアドレスは、中央アドレス変換部404Bにて一旦プロトコルチップ101C、101Dが用いるアドレスに変換される。その後、さらに、プロトコルチップ101C、101Dが用いるアドレスに変換された、プロセッサ102Bに送付するためのアドレスは、アドレス変換部104Bにて、プロセッサ102Bが用いるアドレスに変換される。あるいは、特に図示しない専用信号線を設けて、割込み制御プロセッサ412Aからプロセッサ102Bに割込み信号を直接送付してもよい。
以上のようにすることによって、プロセッサ102Aが事前に処理を停止することが分からなくても、プロセッサ102Bがプロセッサ102Aの処理停止を検出し、プロセッサ102Bに割込み信号を送信することで、継続してプロトコルチップ101Aの割込み信号をプロセッサ102Bにおいて受信し、これに応じた割込み処理を行うことができる。
また、プロセッサ102Aが処理を再開する場合、ステップ914の動作と同様に、プロセッサ102Aへ割込み送付先を変更する割込み送付先変更指示をプロセッサ102Aから割込み制御プロセッサ412Aに送信して、割込み送付先をプロセッサ102Aに戻してもよい。
または、処理を引継いだプロセッサ102Bが、プロセッサ102Aが処理を再開することを別途定める手段により検知してもよい。ステップ914の動作と同様に、プロセッサ102Bは、プロセッサ102Aへ割込み送付先を変更する割込み送付先変更指示を割込み制御プロセッサ412Aに送信して、割込み送付先をプロセッサ102Aに戻してよい。これらのようにすることで、プロセッサ102Aが処理を再開する場合も滞りなく、プロトコルチップ101Aからの割込み信号を処理することができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD等の記録装置、または、ICカード、SDカード等の記録媒体に置くことができる。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。
1、2、3、4:ストレージシステム
101A~D:プロトコルチップ
102A、102B:プロセッサ
103A、103B:メモリ
104A、104B:アドレス変換部
105、405A、405B、705、415A、415B:スイッチ部
106A、106B:バックエンドスイッチ
107A~H:記憶デバイス
401A、401B、411A、411B:ストレージコントローラ
404A、404B:中央アドレス変換部
701、412A、412B:割込み制御プロセッサ

Claims (12)

  1. ホスト装置からの要求を処理するストレージシステムであって、
    前記ホスト装置との通信のプロトコルを制御するプロトコルチップと、
    前記ストレージシステムの制御を行う複数のプロセッサと、
    前記複数のプロセッサの内の第1のプロセッサが用いる第1のアドレスと、前記プロトコルチップが用いる第2のアドレスとを変換する第1のアドレス変換部と、
    前記複数のプロセッサの内の第2のプロセッサが用いる第3のアドレスと、前記プロトコルチップが用いる第2のアドレスとを変換する第2のアドレス変換部と、を含み、
    前記プロトコルチップは、前記ホスト装置からの要求を、前記第1のアドレス変換部を通じて、前記第1のプロセッサに送信し、
    前記第1のプロセッサは、前記プロトコルチップから送信された前記ホスト装置からの要求に対する応答を、前記第1のアドレス変換部を通じて、前記プロトコルチップに送信し、
    前記第1のプロセッサが処理を停止するとき、前記ホスト装置からの要求を前記第2のプロセッサに送信する指示が、前記プロトコルチップに送信され、
    前記プロトコルチップは、前記ホスト装置からの要求を前記第2のプロセッサに送信する指示を受信したら、前記ホスト装置からの要求を、前記第2のアドレス変換部を通じて、前記第2のプロセッサに送信し、
    前記第2のプロセッサは、前記第2のプロセッサに送信された前記ホスト装置からの要求に対する応答を、前記第2のアドレス変換部を通じて、前記プロトコルチップに送信する、ストレージシステム。
  2. 請求項1に記載されたストレージシステムであって、
    前記第1のプロセッサが処理を停止するとき、前記第1のプロセッサが、前記ホスト装置からの要求を前記第2のプロセッサに送信する指示を、前記第1のアドレス変換部を通じて前記プロトコルチップに送信した後、前記第1のプロセッサが停止する、ストレージシステム。
  3. 請求項1に記載されたストレージシステムであって、
    前記第1のプロセッサが処理を停止するとき、前記第2のプロセッサが、前記第1のプロセッサの処理が停止することを検出し、前記ホスト装置からの要求を前記第2のプロセッサに送信する指示を、前記第2のアドレス変換部を通じて前記プロトコルチップに送信する、ストレージシステム。
  4. 請求項1に記載されたストレージシステムであって、
    更に、前記第2のアドレスを用いる第3のプロセッサを含み、
    前記プロトコルチップは割込み信号を前記第3のプロセッサに送信し、
    前記第3のプロセッサは、前記プロトコルチップからの割込み信号を受信すると、割込み信号を、前記第1のプロセッサに送信し、
    前記第1のプロセッサが処理を停止するとき、前記割込み信号を前記第2のプロセッサに送信する指示が前記第3のプロセッサに送信され、
    前記第3のプロセッサは、前記割込み信号を前記第2のプロセッサに送信する指示を受信した後、前記プロトコルチップから割込み信号を受信すると、前記第2のプロセッサに割込み信号を送信する、ストレージシステム。
  5. 請求項4に記載されたストレージシステムであって、
    前記第1のプロセッサが処理を停止するとき、前記第1のプロセッサが、前記割込み信号を前記第2のプロセッサに送信する指示を、前記第1のアドレス変換部を通じて前記第3のプロセッサに送信した後、前記第1のプロセッサが停止する、ストレージシステム。
  6. 請求項4に記載されたストレージシステムであって、
    前記第1のプロセッサが処理を停止するとき、前記第2のプロセッサが、前記第1のプロセッサの処理が停止することを検出し、前記割込み信号を前記第2のプロセッサに送信する指示を、前記第2のアドレス変換部を通じて前記第3のプロセッサに送信する、ストレージシステム。
  7. ホスト装置からの要求を処理するストレージシステムであって、
    複数のストレージコントローラを含み、
    前記複数のストレージコントローラの内の第1のストレージコントローラは、
    前記ホスト装置との通信のプロトコルを制御する第1のプロトコルチップと、
    前記ストレージシステムの制御を行う第1のプロセッサと、
    前記第1のプロセッサが用いる第1のアドレスと、前記第1のプロトコルチップが用いる第2のアドレスとを変換する第1のアドレス変換部と、を含み、
    前記複数のストレージコントローラの内の第2のストレージコントローラは、
    前記ホスト装置との通信のプロトコルを制御する第2のプロトコルチップと、
    前記ストレージシステムの制御を行う第2のプロセッサと、
    前記第2のプロセッサが用いる第3のアドレスと、前記第2のプロトコルチップが用いる第4のアドレスとを変換する第2のアドレス変換部と、を含み、
    前記第1のストレージコントローラと、前記第2のストレージコントローラの少なくとも一方は、前記第1のプロトコルチップが用いる第2のアドレスと前記第2のプロトコルチップが用いる第4のアドレスを変換する第3のアドレス変換部、を含み、
    前記第1のプロトコルチップは、前記ホスト装置からの要求を、前記第1のアドレス変換部を通じて、前記第1のプロセッサに送信し、
    前記第1のプロセッサは、前記第1のプロトコルチップから送信された前記ホスト装置からの要求に対する応答を、前記第1のアドレス変換部を通じて、前記第1のプロトコルチップに送信し、
    前記第1のプロセッサが処理を停止するとき、前記ホスト装置からの要求を前記第2のプロセッサに送信する指示が、前記第1のプロトコルチップに送信され、
    前記第1のプロトコルチップは、前記ホスト装置からの要求を前記第2のプロセッサに送信する指示を受信すると、前記ホスト装置からの要求を、前記第3のアドレス変換部と前記第2のアドレス変換部とを通じて、前記第2のプロセッサに送信し、
    前記第2のプロセッサは、前記第1のプロトコルチップから前記第2のプロセッサに送信された前記ホスト装置からの要求に対する応答を、前記第2のアドレス変換部と前記第3のアドレス変換部とを通じて、前記第1のプロトコルチップに送信する、ストレージシステム。
  8. 請求項7に記載されたストレージシステムであって、
    前記第1のプロセッサが処理を停止するとき、前記第1のプロセッサが、前記ホスト装置からの要求を前記第2のプロセッサに送信する指示を、前記第1のアドレス変換部を通じて前記第1のプロトコルチップに送信した後、前記第1のプロセッサが停止する、ストレージシステム。
  9. 請求項7に記載されたストレージシステムであって、
    前記第1のプロセッサが処理を停止するとき、前記第2のプロセッサが、前記第1のプロセッサの処理が停止することを検出し、前記ホスト装置からの要求を前記第2のプロセッサに送信する指示を、前記第2のアドレス変換部と前記第3のアドレス変換部とを通じて前記第1のプロトコルチップに送信する、ストレージシステム。
  10. 請求項7に記載されたストレージシステムであって、
    前記第1のストレージコントローラは、更に、前記第2のアドレスを用いる第3のプロセッサを含み、
    前記第1のプロトコルチップは割込み信号を前記第3のプロセッサに送信し、
    前記第3のプロセッサは、前記第1のプロトコルチップからの割込み信号を受信すると、割込み信号を、前記第1のプロセッサに送信し、
    前記第1のプロセッサが処理を停止するとき、前記割込み信号を前記第2のプロセッサに送信する指示が前記第3のプロセッサに送信され、
    前記第3のプロセッサは、前記割込み信号を前記第2のプロセッサに送信する指示を受信した後、前記第1のプロトコルチップから割込み信号を受信すると、前記第2のプロセッサに割込み信号を送信する、ストレージシステム。
  11. 請求項10に記載されたストレージシステムであって、
    前記第1のプロセッサが処理を停止するとき、前記第1のプロセッサが、前記割込み信号を前記第2のプロセッサに送信する指示を、前記第1のアドレス変換部を通じて前記第3のプロセッサに送信した後、前記第1のプロセッサが停止する、ストレージシステム。
  12. 請求項10に記載されたストレージシステムであって、
    前記第1のプロセッサが処理を停止するとき、前記第2のプロセッサが、前記第1のプロセッサの処理が停止することを検出し、前記割込み信号を前記第2のプロセッサに送信する指示を、前記第2のアドレス変換部と前記第3のアドレス変換部とを通じて前記第3のプロセッサに送信する、ストレージシステム。
JP2022167956A 2022-10-19 2022-10-19 ストレージシステム Pending JP2024060523A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022167956A JP2024060523A (ja) 2022-10-19 2022-10-19 ストレージシステム
US18/120,827 US20240232099A9 (en) 2022-10-19 2023-03-13 Storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022167956A JP2024060523A (ja) 2022-10-19 2022-10-19 ストレージシステム

Publications (1)

Publication Number Publication Date
JP2024060523A true JP2024060523A (ja) 2024-05-02

Family

ID=90828755

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022167956A Pending JP2024060523A (ja) 2022-10-19 2022-10-19 ストレージシステム

Country Status (1)

Country Link
JP (1) JP2024060523A (ja)

Also Published As

Publication number Publication date
US20240134806A1 (en) 2024-04-25

Similar Documents

Publication Publication Date Title
US10789196B2 (en) Storage system
US7849248B2 (en) Method and system for combining multiple serial attached small computer system interface (SAS) expanders
US8077605B2 (en) Method for providing path failover for multiple SAS expanders operating as a single SAS expander
US8321596B2 (en) SAS paired subtractive routing
US7913023B2 (en) Specifying lanes for SAS wide port connections
JP5111754B2 (ja) 記憶制御システム
US7844852B2 (en) Data mirror cluster system, method and computer program for synchronizing data in data mirror cluster system
US8495014B2 (en) Asynchronous remote copy system and storage control method
JP2003263352A (ja) Ipネットワーク上の遠隔データファシリティ
JP2008065561A (ja) ストレージシステムおよびストレージシステムの制御方法
US10191685B2 (en) Storage system, storage device, and data transfer method
US5802333A (en) Network inter-product stacking mechanism in which stacked products appear to the network as a single device
US8255676B2 (en) Non-disruptive methods for updating a controller of a storage system
US6944684B1 (en) System for selectively using different communication paths to transfer data between controllers in a disk array in accordance with data transfer size
WO2018198325A1 (ja) ストレージシステム
WO2005031577A1 (en) Logical partitioning in redundantstorage systems
JP2024060523A (ja) ストレージシステム
US20200409885A1 (en) Redundant paths to single port storage devices
US20240232099A9 (en) Storage system
US11836386B2 (en) Storage system and method of controlling storage system that set ports associated with a logical unit
US10719391B2 (en) Storage system and storage control apparatus
JP3719976B2 (ja) 二重化コントローラ構成ディスク記憶システム向けコントローラ、及び同コントローラが二重化されたディスク記憶システム
JP6606235B1 (ja) ストレージシステム
JP2008225643A (ja) サーバ間ミラーディスクコントローラ、拡張カード
JP4179303B2 (ja) 記憶装置システム