JP5057755B2 - 記憶制御装置及びその制御方法 - Google Patents

記憶制御装置及びその制御方法 Download PDF

Info

Publication number
JP5057755B2
JP5057755B2 JP2006319807A JP2006319807A JP5057755B2 JP 5057755 B2 JP5057755 B2 JP 5057755B2 JP 2006319807 A JP2006319807 A JP 2006319807A JP 2006319807 A JP2006319807 A JP 2006319807A JP 5057755 B2 JP5057755 B2 JP 5057755B2
Authority
JP
Japan
Prior art keywords
data
controller
storage
command
host
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.)
Expired - Fee Related
Application number
JP2006319807A
Other languages
English (en)
Other versions
JP2008134776A (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 JP2006319807A priority Critical patent/JP5057755B2/ja
Priority to US11/698,022 priority patent/US7849260B2/en
Publication of JP2008134776A publication Critical patent/JP2008134776A/ja
Application granted granted Critical
Publication of JP5057755B2 publication Critical patent/JP5057755B2/ja
Expired - Fee Related 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/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/0658Controller construction arrangements
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、記憶制御装置及びその制御方法に関し、特に、ホスト計算機からの情報の入出力要求を制御する複数のマイクロプロセッサを備えるストレージ装置に適用して好適なものである。
従来、ストレージ装置においては、信頼性及び応答性の向上が求められている。これに対して、複数コントローラ間でデータを冗長に記憶し、データ処理を分散して実行する技術が知られている。下記特許文献1には、一方のコントローラが受信したコマンドに基づく処理を、そのコマンドを受信したコントローラが備えるロプロセッサと、他方のコントローラが備えるプロセッサとの両方のプロセッサを利用して実行する技術が開示されている。
特開平9−146842号公報
ところで、かかる特許文献1に開示された記憶サブシステムでは、多重化したコントローラを備える記憶サブシステムについて開示している。各コントローラのプロセッサにはそれぞれ担当する論理ボリュームが対応付けられており、担当外の論理ボリュームを対象とするコマンドを受信した場合には、その論理ボリュームに対応付けられたプロセッサに対する依頼処理を実行する。
しかしながら、この記憶サブシステムでは、コントローラがホスト計算機から担当外の論理ボリュームを対象とするコマンドを受信した場合にも、当該コマンドに基づくホスト計算機及びキャッシュメモリの間のデータ転送は、かかるコマンドを受信したコントローラ内のプロセッサによって処理されていた。このため、かかる記憶サブシステムでは、多重化された複数のコントローラの間で受信するコマンド数が偏った場合、多くのコマンドを受信したコントローラに負荷が集中する問題があった。
また、かかる記憶サブシステムでは、コントローラが担当外の論理ボリュームを対象とするコマンドを受信した場合、そのコントローラがコマンドを解析したり、その論理ボリュームに対応付けられたコントローラと通信を行なって当該コントローラにそのコマンドに応じた処理を依頼することになるため、その分かかる担当外の論理ボリュームを対象とするコマンドを受信したコントローラに余計な負荷が生じたり、当該コマンドに対する記憶サブシステム全体としての処理時間の遅延が発生するという問題があった。
従って、かかる記憶サブシステムにおいて、コマンドに対する記憶サブシステム全体としての処理時間の高速化を図るためには、そのとき対象となる論理ボリュームを担当するマイクロプロセッサやコントローラに対してコマンドを発行するようにホスト計算機を設定する必要があり、この設定作業のために多くの労力及び時間を要する問題があった。
本発明は以上の点を考慮してなされたもので、担当外の論理ボリュームを対象とするコマンドを受信したマイクロプロセッサの負荷を低減させながら、簡易にコマンドに対する処理時間を高速化させ得る記憶制御装置及びその制御方法を提案しようとするものである。
かかる課題を解決するため本発明においては、上位装置としてのホスト計算機と、前記ホスト計算機に対してデータを読み書きするための記憶領域でなる複数の論理ユニットを提供する記憶装置との間において、前記論理ユニットに対するデータの入出力を制御する記憶制御装置において、前記ホスト計算機から与えられるコマンドを保持するローカルメモリを有し、当該ローカルメモリに保持した前記コマンドに基づいて、対応する前記論理ユニットに対するデータの入出力を制御する複数のコントローラと、前記複数のコントローラ間を通信可能な状態に接続するコントローラ間接続経路とを有し、前記ローカルメモリには、前記論理ユニット及び前記コントローラの対応関係を表す対応付け情報と、自系及び他系の各前記コントローラ内の前記ローカルメモリのアドレス情報とが格納され、前記各コントローラは、前記ローカルメモリに保持された前記コマンドに基づき必要に応じて、自己に対応付けられた前記論理ユニットに対するデータの入出力を制御するマイクロプロセッサと、自系の前記コントローラに接続された前記ホスト計算機との通信時におけるプロトコル制御を行うと共に、自系及び他系の前記マイクロプロセッサとの間で通信可能なホスト通信制御部と、前記ホスト計算機及び前記記憶装置間で転送されるデータを一時的に記憶するために用いられるキャッシュメモリと、自系及び他系の前記コントローラ間のデータ転送を制御すると共に、自系内の各要素間でのデータ転送を制御するデータ転送制御部とを備え、前記ホスト通信制御部は、前記ホスト計算機から送信されたコマンドを受信したときに、対象とする前記論理ユニットが自系及び他系のいずれの前記マイクロプロセッサと対応付けられているかを前記対応付け情報に基づいて判断し、対象とする前記論理ユニットが他系の前記マイクロプロセッサと対応付けられている場合には、前記コマンドを前記コントローラ間接続径路を介して他系の前記ローカルメモリに格納し、前記マイクロプロセッサは、他系の前記ホスト通信制御部により自系の前記ローカルメモリに前記コマンドが格納されると、当該コマンドに応じたデータを転送するよう他系の前記ホスト通信制御部に指示し、当該指示を受けた前記ホスト通信制御部は、自系の前記キャッシュメモリに格納されている対応するデータを他系の前記キャッシュメモリに複写することを特徴とする。
この結果、この記憶制御装置では、コントローラが他系のコントローラ内のマイクロプロセッサと対応付けられた論理ユニットを対象とするコマンドを受信した場合に、コマンドを受信したコントローラのマイクロプロセッサがかかる他系のマイクロプロセッサと通信を行なって当該他系のマイクロプロセッサにそのコマンドに応じた処理を依頼するという処理が不要となる。かくするにつき、かかるコマンドの受け渡しの際に、かかる通信に起因するコマンドを受信したコントローラのマイクロプロセッサに余計な負荷が生じたり、当該コマンドに対する処理時間の遅延が発生するのを有効に防止できる。またこの場合において、ホスト計算機に何らの設定をも行う必要がない。
また本発明においては、上位装置としてのホスト計算機と、前記ホスト計算機に対してデータを読み書きするための記憶領域でなる複数の論理ユニットを提供する記憶装置との間において、前記論理ユニットに対するデータの入出力を制御する記憶制御装置の制御方法において、前記記憶制御装置は、前記ホスト計算機から与えられるコマンドを保持するローカルメモリを有し、当該ローカルメモリに保持した前記コマンドに基づいて、対応する前記論理ユニットに対するデータの入出力を制御する複数のコントローラと、前記複数のコントローラ間を通信可能な状態に接続するコントローラ間接続経路とを有し、前記ローカルメモリには、前記論理ユニット及び前記コントローラの対応関係を表す対応付け情報と、自系及び他系の各前記コントローラ内の前記ローカルメモリのアドレス情報とが格納され、前記各コントローラは、前記ローカルメモリに保持された前記コマンドに基づき必要に応じて、自己に対応付けられた前記論理ユニットに対するデータの入出力を制御するマイクロプロセッサと、自系の前記コントローラに接続された前記ホスト計算機との通信時におけるプロトコル制御を行うと共に、自系及び他系の前記マイクロプロセッサとの間で通信可能なホスト通信制御部と、前記ホスト計算機及び前記記憶装置間で転送されるデータを一時的に記憶するために用いられるキャッシュメモリと、自系及び他系の前記コントローラ間のデータ転送を制御すると共に、自系内の各要素間でのデータ転送を制御するデータ転送制御部とを有し、前記ホスト通信制御部が、前記ホスト計算機から送信されたコマンドを受信したときに、対象とする前記論理ユニットが自系及び他系のいずれの前記マイクロプロセッサと対応付けられているかを前記対応付け情報に基づいて判断し、対象とする前記論理ユニットが他系の前記マイクロプロセッサと対応付けられている場合には、前記コマンドを前記コントローラ間接続径路を介して他系の前記ローカルメモリに格納する第1のステップと、前記マイクロプロセッサが、他系の前記ホスト通信制御部により自系の前記ローカルメモリに前記コマンドが格納されると、当該コマンドに応じたデータを転送するよう他系の前記ホスト通信制御部に指示する第2のステップと、当該指示を受けた前記ホスト通信制御部が、自系の前記キャッシュメモリに格納されている対応するデータを他系の前記キャッシュメモリに複写する第3のステップとを備えることを特徴とする。
この結果、この制御方法によれば、コントローラが他系のコントローラ内のマイクロプロセッサと対応付けられた論理ユニットを対象とするコマンドを受信した場合に、コマンドを受信したコントローラのマイクロプロセッサがかかる他系のマイクロプロセッサと通信を行なって当該他系のマイクロプロセッサにそのコマンドに応じた処理を依頼するという処理が不要となる。かくするにつき、かかるコマンドの受け渡しの際に、かかる通信に起因するコマンドを受信したコントローラのマイクロプロセッサに余計な負荷が生じたり、当該コマンドに対する処理時間の遅延が発生するのを有効に防止できる。またこの場合において、ホスト計算機に何らの設定をも行う必要がない。
本発明によれば、担当外の論理ボリュームを対象とするコマンドを受信したコントローラ内のマイクロプロセッサの負荷を低減させながら、簡易にコマンドに対する処理時間を高速化させ得る記憶制御装置及びその制御方法を実現できる。
以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
(1−1)本実施の形態による記憶システムの構成
図1において、1は全体として本実施の形態による記憶システムを示す。この記憶システム1は、ホスト計算機2A,2Bが記憶制御装置3を介して複数の記憶装置4A〜4Dに接続されることにより構成されている。
ホスト計算機2A,2Bは、例えばCPU(Central Processing Unit)やメモリなどの情報処理資源を備えたコンピュータであり、具体的にはパーソナルコンピュータ、ワークステーション又はメインフレームなどから構成される。ホスト計算機2A,2Bには、記憶制御装置3にアクセスするための通信ポート(例えばLANカードやホストバスアダプタに設けられたポート)が設けられており、この通信ポートを介してデータの入出力要求コマンドを記憶制御装置3に送信することができるようになされている。
記憶制御装置3は、それぞれ異なるホスト計算機が接続された0系及び1系のコントローラ6A,6Bと、これらコントローラ6A,6B間を通信可能な状態に接続するコントローラ間接続経路5とから構成される。
コントローラ間接続経路5としては、例えば1レーン片方向当たり(最大8レーン)のデータ転送量が2.5〔Gbit/sec〕と高速なデータ通信を実現するPCI(Peripheral Component Interconnect)−Express規格に準拠したバスが適用される。0系及び1系のコントローラ6A,6B間における後述のようなデータや各種情報の送受は、すべてこのコントローラ間接続経路5を介して行なわれる。
各コントローラ6A,6Bは、それぞれ自コントローラに接続されたホスト計算機2A,2Bからの要求に応じて記憶装置4A〜4Dに対するデータの読み書きを制御するもので、ホスト通信制御部10A,10B、データ転送制御部11A,11B、キャッシュメモリ12A,12B、ブリッジ13A,13B、ローカルメモリ14A,14B、マイクロプロセッサ15A,15B、記憶装置通信制御部16A,16B及び記憶装置側スイッチ17A,17Bなどを備える。
このうちホスト通信制御部10A,10Bは、ホスト計算機2A,2Bとの通信制御を行なうインタフェースであり、複数の通信ポート20A,20B及びホスト通信プロトコルチップ21A,21Bを有する。
通信ポート20A,20Bは、そのコントローラ6A,6Bをネットワークやホスト計算機2A,2Bに接続するためのものであり、例えばIP(Internet Protocol)アドレスやWWN(World Wide Name)などの固有のネットワークアドレスがそれぞれ割り当てられる。
またホスト通信プロトコルチップ21A,21Bは、ホスト計算機2A,2Bとの間の通信時におけるプロトコル制御を行う。このためホスト通信プロトコルチップ21A,21Bとしては、例えばホスト計算機2A,2Bとの間の通信プロトコルがファイバーチャネル(FC:Fibre Channel)プロトコルである場合にはファイバーチャネル変換プロトコルチップ、かかる通信プロトコルがiSCSIプロトコルである場合にはiSCSIプロトコルチップというように、ホスト計算機2A,2Bとの間の通信プロトコルに適合したものが適用される。
さらにホスト通信プロトコルチップ21A,21Bには、複数のマイクロプロセッサとの間で通信を行い得るマルチマイクロプロセッサ機能が搭載されており、これによりホスト通信プロトコルチップ21A,21Bが必要時に0系のコントローラ6A内のマイクロプロセッサ15Aと、1系のコントローラ6B内のマイクロプロセッサ15Bとの双方と通信を行い得るようになされている。
データ転送制御部11A,11Bは、0系及び1系のコントローラ6A,6B間のデータ転送と、0系又は1系のコントローラ6A,6B内の各要素間でのデータ転送を制御する機能を備える。またデータ転送制御部11A,11Bは、自系のマイクロプロセッサ15A,15Bからの指示により、ホスト計算機2A,2Bから与えられたライトデータを指定されたキャッシュメモリ12A,12Bに複写(多重書き)する機能を備える。具体的には、0系又は1系のマイクロプロセッサ15A,15Bが自系のキャッシュメモリ12A,12Bにデータを格納した場合、このデータを他系のキャッシュメモリ12B,13Aにも書き込む(二重書き)。
またデータ転送制御部11A,11Bは、後述する自系及び他系のローカルメモリ14A,14B内の共有領域32A,32B(図2)に格納された情報が常に同じとなるように、一方の共有領域32A,32B内の情報が更新されたときには、他方の共有領域32B,32A内の情報も同様に更新する。
ブリッジ13A,13Bは、自系のマイクロプロセッサ15A,15B及びローカルメモリ14A,14Bをそれぞれ自系のデータ転送制御部11A,11Bに接続する中継装置であり、ホスト通信制御部10A,10B、データ転送制御部11A,11B、記憶装置通信制御部16A,16B及びキャッシュメモリ12A,12B間を接続するバスを流れるデータのうちの対応するデータのみを抽出してマイクロプロセッサ15A,15Bやローカルメモリ14A,14Bに転送する。
マイクロプロセッサ15A,15Bは、それぞれ自系のコントローラ6A,6B全体の動作制御を司る機能を有する。これらマイクロプロセッサ15A,15Bは、後述のようにローカルメモリ14A,14Bに格納されたライトコマンドやリードコマンドに応じて、予め自己に対して排他的に割り当てられた論理ボリューム(以下、これを担当論理ボリュームと呼ぶ)に対するデータの読み書き等の処理を行う。
このような各マイクロプロセッサ15A,15Bに対する担当論理ボリュームの割り当ては、各マイクロプロセッサ15A,15Bの負荷状況や、ホスト計算機2A,2Bから与えられる論理ボリュームごとの担当マイクロプロセッサを指定する担当マイクロプロセッサ指定コマンドの受信によって動的に変更することが可能である。また、各マイクロプロセッサ15A,15Bに対する担当論理ボリュームの割り当ては、記憶制御装置3及びホスト計算機2A,2B間の接続経路や、記憶制御装置3及び記憶装置4A〜4D間の接続経路等における障害発生の有無によっても動的に変更することができる。
ローカルメモリ14A,14Bは、各種制御プログラムを格納するために用いられるほか、ホスト計算機2A,2Bから与えられるリードコマンドやライトコマンド等の各種コマンドを一時的に保持するために用いられる。マイクロプロセッサ15A,15Bは、このローカルメモリ14A,14Bに格納されたリードコマンドやライトコマンドを、当該ローカルメモリ14A,14Bに格納された順番で処理する。
キャッシュメモリ12A,12Bは、主としてホスト計算機2A,2B及び記憶装置4A〜4D間や、0系及び1系のコントローラ6A,6B間で転送されるデータを一時的に記憶するために用いられる。
記憶装置通信制御部16A,16Bは、各記憶装置4A〜4Dとの通信を制御するインタフェースであり、記憶装置通信プロトコルチップ22A,22Bを備える。この記憶装置通信プロトコルチップ22A,22Bとしては、例えば記憶装置4A〜4DとしてFCハードディスクドライブを適用する場合にはFCプロトコルチップを適用でき、記憶装置4A〜4DとしてSASハードディスクドライブを適用する場合にはSASプロトコルチップを適用できる。また記憶装置4A〜4DとしてSATAハードディスクドライブを適用する場合には、記憶装置通信プロトコルチップ22A,22Bとして、FCプロトコルチップ又はSASプロトコルチップを適用でき、SATAハードディスクドライブにはSATAプロトコル変換チップを介して接続する構成とすることもできる。
記憶装置側スイッチ17A,17Bは、通信相手となる記憶装置4A〜4Dを切り替えるためのスイッチであり、例えばSAS−ExpanderやFCループスイッチを適用することができる。また記憶装置側スイッチ17A,17Bに代えて、例えばFCループで記憶装置4A〜4Dと接続する構成とすることもできる。
記憶装置4A〜4Dは、例えば複数のハードディスクドライブ、具体的にはFCハードディスクドライブ、SASハードディスクドライブ及び又はSATAハードディスクドライブ等が搭載されたディスクアレイ装置として構成される。これら複数のハードディスクドライブが提供する記憶領域上には、データを読み書きするための論理的な記憶領域である論理ユニットを複数設定することができる。
論理ユニットの設定においては、複数の記憶装置4A〜4D間でRAID技術を適用することで信頼性及び応答性を高めることができる。具体的には、「RAID0」、「RAID1」、「RAID3」、「RAID5」、「RAID6」又は「RAID0+1」等の様々なRAIDレベルを論理ユニットごとに設定することができる。
さらに記憶装置4A〜4Dに搭載する記憶デバイスとして、ハードディスクドライブに代えて、フラッシュメモリ等の半導体メモリや、光ディスク装置を適用することができる。またフラッシュメモリとしては、安価で書込み速度が比較的低速であり、かつライト回数制限が低い第1のタイプのものと、高価でライトコマンド処理が当該第1のタイプよりも高速であり、かつライト回数制限が第1のタイプよりも高い第2のタイプとのいずれのタイプのフラッシュメモリを用いることもできる。
さらにこれら第1及び又は第2のタイプのフラッシュメモリと、ハードディスクドライブとを記憶デバイスとして記憶装置4A〜4Dに混載する構成とすることもできる。
(1−2)記憶システムにおけるコマンド処理
(1−2−1)メモリ構成及びテーブル構成
次に、かかる記憶システム1の記憶制御装置3において行われるコマンド処理について説明する。
この記憶システム1の場合、記憶制御装置3を構成する0系及び1系の各コントローラ6A,6Bのメモリ空間には、それぞれ自系のコントローラ6A,6B内のメモリ領域に加えて、他系のコントローラ6B,6A内のメモリ領域もがマッピングされており、これによりこれら0系及び1系のコントローラ6A,6Bが他系のコントローラ6B,6A内のメモリ領域にも直接アクセスできるようになされている。
そして、0系及び1系のコントローラ6A,6B内のマイクロプロセッサ15A,15Bは、ホスト計算機2A,2Bから他系のコントローラ6B,6Aに割り当てられている論理ユニットを対象とするライトコマンドやリードコマンドが与えられたときには、かかるライトコマンド又はリードコマンドを他系のローカルメモリ14B,14Aに書き込むようにして当該他系のコントローラ6B,6Aに転送する。
このようにこの記憶システム1においては、ホスト計算機2A,2Bから0系又は1系のコントローラ6A,6Bに対して他系のコントローラ6B,6Aが実行すべきライトコマンドやリードコマンドが与えられたときに、そのライトコマンドやリードコマンドを他系のローカルメモリ14B,14Aに直接書き込むようにして中継するため、当該ライトコマンド又はリードコマンドの受け渡しのために0系及び1系のコントローラ6A,6B同士が通信を行なう必要がなく、その分迅速なライトコマンド処理又はリードコマンド処理を行うことができる。
ここで、図2(A)は、0系(CTL0)及び1系(CTL1)のマイクロプロセッサ15A,15Bがそれぞれ認識するメモリ空間のメモリマップを示し、図2(B)は、0系及び1系のホスト通信プロトコルチップ10A,10Bがそれぞれ認識するメモリ空間のメモリマップを示している。
図2(A)において、0系のマイクロプロセッサ15Aが認識するメモリ空間は、「CTL0 Memory Map(CTL0 プロセッサ)」のフィールド30に登録されたメモリ又はレジスタがそれぞれ提供する記憶領域(「ADR」フィールド30Aに格納されたアドレス範囲の領域)からなるメモリ空間であり、1系のマイクロプロセッサ15Bが認識するメモリ領域は、「CTL1 Memory Map(CTL1 プロセッサ)」のフィールド30Cに登録されたメモリ又はレジスタがそれぞれ提供する記憶領域(「ADR」フィールド30Aに格納されたアドレス範囲の領域)からなるメモリ空間である。
また図2(B)において、0系のホスト通信プロトコルチップ10Aが認識するメモリ空間は、「CTL0 Memory Map(CTL0 ホスト通信プロトコルチップ)」のフィールド31Aに登録されたメモリやレジスタがそれぞれ提供する記憶領域(「ADR」フィールド31Aに格納されたアドレス範囲の領域)からなるメモリ空間であり、1系のホスト通信プロトコルチップ10Bが認識するメモリ領域は、「CTL1 Memory Map(CTL1 ホスト通信プロトコルチップ)」のフィールド31Cに登録されたメモリがそれぞれ提供する記憶領域(「ADR」フィールド31Aに格納されたアドレス範囲の領域)からなるメモリ空間である。
図2(A)及び(B)のメモリマップのデータのうち、自系のローカルメモリ14A,14Bのアドレス(「0x0_00000000-0x0_7FFFFFFF」)及び自系のブリッジ13A,13Bのアドレス(「0x0_80000000-0x0_FFFFFFFF」)は、それぞれ自系のマイクロプロセッサ15A,15Bに接続された図示しないフラッシュメモリに第1のアドレス情報として予め格納され、図2(A)のこれ以外のアドレスは自系のデータ転送制御部11A,11B内に設けられた図示しないレジスタに第2のアドレス情報として予め格納されている。
そして、0系及び1系の各マイクロプロセッサ15A,15Bは、それぞれこれらフラッシュメモリ及びレジスタに格納された第1及び第2のアドレス情報に基づいてメモリ空間を図2(A)や図2(A)のようにそれぞれ認識でき、この認識結果に基づいて、自系内のローカルメモリ14A,14B及びキャッシュメモリ12A,12B等に加えて、他系のローカルメモリ14A,14Aやキャッシュメモリ12B,12Aなどにもアクセスすることができる。
一方、図3(A)及び(B)は、0系及び1系のコントローラ6A,6Bにおけるローカルメモリ14A,14Bのメモリ構成をそれぞれ示す。この図3(A)及び(B)に示すように、記憶システム1では、かかる0系及び1系のローカルメモリ14A,14Bの記憶領域を、自系コントローラ受信コマンド格納領域40A,340B、他系コントローラ受信コマンド格納領域41A,341B及び共有領域42A,42Bの別個の3つの記憶領域に分けて管理している。
このうち自系コントローラ受信コマンド格納領域40A,40B内には、制御情報格納領域40AX,40BXが設けられており、自系のホスト通信制御部10A,10Bが受信したライトコマンドやリード等のコマンドがこの制御情報格納領域40AX,40BXに格納される。
また他系コントローラ受信コマンド格納領域41A,41Bには、制御情報格納領域41AX,41BX及び実行処理格納領域41AY,41BYが設けられており、他系のコントローラ6B,6Aのホスト通信制御部10B,10Aが受信した一般的なコマンド及び制御情報が制御情報格納領域41AX,41BXに格納される。さらに実行処理格納領域41AY,41BYには、他系コントローラ6B,6Aの担当論理ユニットに関する処理を自系コントローラ6A,6Bが新たに担当する際に、他系コントローラ6B,6A内で受信コマンドが解析された後の実行処理内容が格納される。
さらに共有領域32A,32Bには、論理ユニット/プロセッサ対応付けテーブル43A,43B、ローカルメモリ情報テーブル44A,44B及びキャッシュメモリ情報テーブル45A,45Bが格納される。これら論理ユニット/プロセッサ対応付けテーブル43A,43B、ローカルメモリ情報テーブル44A,44B及びキャッシュメモリ情報テーブル45A,45Bについては、後述する。
他方、図4(A)及び(B)は、0系及び1系の各コントローラ6A,6Bにおけるキャッシュメモリ12A,12Bのメモリ構成をそれぞれ示す。この図4(A)及び(B)に示すように、記憶システム1では、かかる0系及び1系のキャッシュメモリ12A,12Bの記憶領域を、自系プロセッサ領域50A,50B及び他系プロセッサ領域51A,51Bの別個の2つの記憶領域に分けて管理している。
自系プロセッサ領域50A,50Bは、主として自系のマイクロプロセッサによって使用される領域であり、ホスト計算機2A,2Bと記憶装置4A〜4Dとの間のデータ転送の際にデータを一時的に記憶するデータ格納領域50AY,50BYと、データ格納領域50AY,50BYに格納されるデータの管理情報を格納するデータ管理情報格納領域50AX,50BXとから構成される。
データ格納領域50AY,50BYに格納されたデータや、データ管理情報格納領域50AX,50BXに格納された管理情報は、その後、データ転送制御部11A,11Bによって他系のキャッシュメモリ12B,12Aの他系マイクロプロセッサ格納領域51B,51A内の対応するデータ格納領域51BY,51AY又はデータ管理情報格納領域51BX,51AXに複写(二重書き)される。
また他系マイクロプロセッサ格納領域51A,51Bは、他系のキャッシュメモリ12B,12A内の自系コントローラ格納領域50B,50Aに格納した情報を複写(二重書き)するための領域である。
なお、管理情報は、キャッシュメモリ12A,12Bに格納されたデータを管理するための情報であり、かかるデータがリードデータであるかライトデータであるかを示す情報と、マイクロプロセッサ15A,15B及びホスト通信プロトコルチップ21A,21B間でデータ保障を行うためのデータ保証コードとなどから構成される。
図5〜図7は、それぞれ上述の論理ユニット/プロセッサ対応付けテーブル43A,43B、ローカルメモリ情報テーブル44A,44B及びキャッシュメモリ情報テーブル45A,45Bを示している。
このうち論理ユニット/プロセッサ対応付けテーブル43A,43Bは、各論理ユニットと、当該論理ユニットに関する処理を担当するマイクロプロセッサ15A,15B(以下、適宜、これを担当マイクロプロセッサと呼ぶ)との対応関係を管理するためのテーブルであり、図5に示すように、「LUN(Logical unit number)」フィールド43C、「担当コントローラ番号」フィールド43D、「担当プロセッサ番号」フィールド43E及び「処理フラグ」フィールド43Fから構成される。
そして「LUN」フィールド43Cには、記憶装置4A〜4D内に定義された各論理ユニットのLUNがそれぞれ格納され、「担当コントローラ番号」フィールド43Dには、その論理ユニットに関する処理を担当するコントローラ6A,6B(以下、適宜、これを担当コントローラと呼ぶ)の識別子が格納される。
また「担当プロセッサ番号」フィールド43Eには、対応する論理ユニットの担当マイクロプロセッサの識別子が格納される。なお、この「担当プロセッサ番号」フィールド43Eは、担当コントローラ内に複数のマイクロプロセッサ15A,15Bが存在するときに、そのうちのどれが担当マイクロプロセッサであるかを管理するために設けられたものである。ただし、本実施の形態においては、0系及び1系のコントローラ6A,6Bにはいずれも1つのマイクロプロセッサ15A,15Bしか存在しないため、担当コントローラ及び担当マイクロプロセッサは1対1で対応する。
さらに「処理フラグ」フィールド43Fには、対応する論理ユニットのデータの整合性を管理するための処理フラグが格納される。例えば「ホスト0−0」は、識別子が「0」のホスト計算機2A,2Bから与えられた、対応する論理ユニットを対象とした0番目のコマンドに関する処理が実行中であることを示し「ホスト1−0」は、識別子が「1」のホスト計算機2A,2Bから与えられた、対応する論理ユニットを対象とした0番目のコマンドに関する処理が実行中であることを示す。
従って、例えば図5の例では、LUNが「0」、「2」及び「4」の各論理ユニットの担当コントローラは0系のコントローラ6A,6B、担当マイクロプロセッサは識別子が「0」のマイクロプロセッサ15A,15Bであり、LUNが「0」の論理ユニットについては、現在、識別子が「0」のホスト計算機2A,2Bから与えられた、その論理ユニットを対象とした0番目のコマンドに関する処理が実行中であることが示されている。
また図5の例では、LUNが「1」、「3」及び「5」の各論理ユニットの担当コントローラ及び担当マイクロプロセッサは、それぞれ1系のコントローラ6A及び当該コントローラ6A内の識別子が「1」のマイクロプロセッサ15A,15Bであり、LUNが「1」の論理ユニットについては、現在、識別子が「0」のホスト計算機2A,2Bから与えられた、その論理ユニットを対象とした1番目のコマンドに関する処理が実行中であることが示されている。
そしてこの記憶システム1では、例えばこの図5の状態のときに、LUNが「0」の論理ユニットに対してホスト計算機2A,2Bから「0」番目以外の新たなコマンドが与えられた場合には、かかる「0」番目のコマンドに関する処理が完了するまでは、かかる新たなコマンドに関する処理を実行せず、かかる「0」番目のコマンドに関する処理が完了してから新たなコマンドに関する処理を実行するように制御される。このような制御により、複数のホスト計算機2A,2Bが論理ユニットを共有する場合等に、各論理ユニットへのデータ入出力処理を整合性を維持して行うことが可能となる。
一方、ローカルメモリ情報テーブル44A,44Bは、0系のコントローラ6A内のローカルメモリ14Aと、1系のコントローラ6B内のローカルメモリ14Bとにそれぞれアクセスするために必要なアドレス情報等を管理するためのテーブルであり、図6に示すように、「メモリ識別子」フィールド44C、「メモリアドレス」フィールド44D、「セグメントブロック識別子」フィールド44E、「先頭セグメントアドレス」フィールド44F及び「開放フラグ」フィールド44Gから構成される。
このうち「メモリ識別子」フィールド44Aには、対応するローカルメモリ14A,14Bに付与された固有の識別子が格納される。また「メモリアドレス範囲」フィールド44Dには、対応するローカルメモリ14A,14Bが提供する記憶領域上の各領域にそれぞれ付与されたアドレスの範囲が格納される。この場合において、かかるアドレスは、0系及び1系のコントローラ6A,6B内の各ローカルメモリ14A,14Bがそれぞれ提供する記憶領域と、0系及び1系のコントローラ6A,6B内の各キャッシュメモリ12A.12Bが提供する記憶領域とを通じて重複しないように割り当てられる。
また「セグメントブロック識別子」フィールド44Eには、対応するローカルメモリ14A,14Bが提供する記憶領域を所定単位で分割してなる各分割領域(以下、これをセグメントと呼ぶ)の識別子が格納される。この識別子は、0系及び1系のコントローラ6A,6B内の各ローカルメモリ14A,14Bがそれぞれ提供する記憶領域内に定義された各セグメントと、0系及び1系のコントローラ6A,6B内の各キャッシュメモリ12A,12B内に定義された各セグメントとを通じて重複しないように割り当てられる。
さらに「先頭セグメントアドレス」フィールド44Fには、対応するセグメントの先頭アドレスが格納され、「開放フラグ」フィールド44Gには、そのセグメントへのデータ書込みの可否を表すフラグ(以下、これを開放フラグと呼ぶ)が格納される。具体的に、「開放フラグ」フィールド44Gには、対応するセグメントに対するデータの書き込みが可能であるときには、開放フラグ(「1」)が格納され、当該セグメントに対するデータの書き込みができない(既にデータが格納されている)ときには、「0」が格納される。
従って、図6の例では、「LM0」という識別子が付与された0系のコントローラ6A内に設けられたローカルメモリ14Aが提供する記憶領域はアドレス範囲が「LA000」〜「LA999」であり、当該記憶領域はそれぞれ先頭アドレスがそれぞれ「LA100」、「LA200」、……のセグメントに分割されていることが示されている。また、この図6の例では、識別子が「a」及び「c」のセグメントについては、現在、データの書き込みが禁止されており、識別子が「b」のセグメントについては、現在、データの書き込みが可能であることが示されている。
同様に、図6の例では、「LM1」という識別子が付与された1系のコントローラ6B内に設けられたローカルメモリ14Bが提供する記憶領域はアドレス範囲が「L000」〜「L999」であり、当該記憶領域はそれぞれ先頭アドレスが「L100」、「L200」、……のセグメントに分割されていることが示されている。また、この図6の例では、識別子が「d」及び「e」のセグメントについては、現在、データの書き込みが可能であり、識別子が「f」のセグメントについては、現在、データの書き込みが禁止されていることが示されている。
このように記憶システム1では、このローカルメモリ情報テーブル44A,44Bを参照することによって、0系及び1系のコントローラ6A,6Bが自系のローカルメモリ14A,14Bのみならず他系のローカルメモリ14B,14Aの情報をも取得することができるため、これら0系及び1系のコントローラ6A,6B内のマイクロプロセッサ15A,15B及びホスト通信プロトコルチップ21A,21Bがそれぞれ自系だけでなく、他系のローカルメモリ14B,14Aにもアクセスすることができる。
他方、キャッシュメモリ情報テーブル45A,45Bは、0系のコントローラ6A内のローカルメモリ14Aと、1系のコントローラ6B内のローカルメモリ14Bとにそれぞれアクセスするための情報を記憶したテーブルであり、図7に示すように、「メモリ識別子」フィールド45C、「メモリアドレス範囲」フィールド45D、「セグメントブロック識別子」フィールド45E、「先頭セグメントアドレス」フィールド45F、「タイムスタンプ」フィールド45G及び「ダーティフラグ」フィールド45Hから構成される。
そして「メモリ識別子」フィールド45Cには、対応するキャッシュメモリ12A,12Bに付与された固有の識別子が格納される。また「メモリアドレス範囲」フィールド45Dには、対応するキャッシュメモリ12A,12Bが提供する記憶領域上の各領域にそれぞれ付与されたアドレスの範囲が格納される。
さらに「セグメントブロック識別子」フィールド45Eは、対応するキャッシュメモリ12A,12B内の各セグメントの識別子が格納され、「先頭セグメントアドレス」フィールド45Fには、これらセグメントのうちの対応するセグメントの先頭アドレスが格納される。
さらに「タイムスタンプ」フィールド45Gには、対応するセグメントにデータが格納された時刻を表すタイムスタンプが格納され、「ダーティフラグ」フィールド45Hには、キャッシュメモリ12A,12B上の対応するセグメントに格納されたデータを記憶装置4A〜4Dに格納済みであるか否かを表すフラグ(以下、これをダーティフラグと呼ぶ)が格納される。具体的に、「ダーティフラグ」フィールド45Hには、かかるデータを記憶装置4A〜4Dに格納済みである場合にはダーティフラグ(「1」)が格納され、かかるデータを未だ記憶装置4A〜4Dに格納していない場合には「0」が格納される。
従って、図7の例では、「CM0」という識別子が付与された0系のコントローラ6A内に設けられたキャッシュメモリ12Aが提供する記憶領域はアドレス範囲が「CA000」〜「CA999」であり、当該記憶領域はそれぞれ先頭アドレスがそれぞれ「CA100」、「CA200」、……のセグメントに分割されていることが示されている。また、この図7の例では、識別子が「A」のセグメントについては、当該セグメントに格納されているデータを未だ記憶装置4A〜4Dに格納しておらず、識別子が「B」及び「C」のセグメントについては、これらのセグメントに格納されているデータを既に記憶装置4A〜4Dに格納し終えていることが示されている。
同様に、図7の例では、「CM1」という識別子が付与された1系のコントローラ6B内に設けられたキャッシュメモリ12Bが提供する記憶領域はアドレス範囲が「CB000」〜「CB999」であり、当該記憶領域はそれぞれ先頭アドレスが「CB100」、「CB200」、……のセグメントに分割されていることが示されている。また、この図7の例では、識別子が「D」及び「F」の各セグメントについては、これらセグメントに格納されているデータを未だ記憶装置4A〜4Dに格納しておらず、識別子が「E」のセグメントについては、当該セグメントに格納されているデータを既に記憶装置4A〜4Dに格納し終えていることが示されている。
このように記憶システム1では、このキャッシュメモリ情報テーブル45A,45Bを参照することによって、0系及び1系のコントローラ6A,6Bが自系のキャッシュメモリ12A,12Bのみならず他系のキャッシュメモリ12B,12Aの情報をも取得することができるため、これら0系及び1系のコントローラ6A,6B内のマイクロプロセッサ15A,15B及びホスト通信プロトコルチップ21A,21Bがそれぞれ自系だけでなく、他系のキャッシュメモリ12B,12Aにもアクセスすることができる。
なお、ローカルメモリ14A、14Bの共有領域42A,42B(図3(A)及び(B)参照に格納される論理ユニット/プロセッサ対応付けテーブル43A,43B、ローカルメモリ情報テーブル44A,44B及びキャッシュメモリ情報テーブル45A,45Bの一方が変更された場合には他方にも当該変更が反映され、0系及び1系のコントローラ6A,6Bの間で整合性の取れた処理が実行される。
また、ローカルメモリ情報テーブル44A,44Bに格納された情報のうち、0系のローカルメモリ14Aに関する情報のみ記憶した第1のローカルメモリ情報テーブル(図示せず)を0系のローカルメモリ14Aに格納し、1系のローカルメモリ14Bに関する情報のみ記憶した第2のローカルメモリ情報テーブル(図示せず)を1系のローカルメモリ14Bに格納しておき、代わりにかかる第1のローカルメモリ情報テーブルの格納先アドレスを1系のローカルメモリ14Bに格納し、かかる第2のローカルメモリ情報テーブルの格納先アドレスを0系のローカルメモリ14Aに格納する構成とすることもできる。このようにすることによって、処理ごとに開放フラグを自系のローカルメモリ14A,14Bの他に他系のローカルメモリ14B,14Aにも二重に格納する必要がなくなり、処理速度の向上及び処理負荷の軽減という効果を得ることができる。
同様に、キャッシュメモリ情報テーブル45A,45Bについても、0系のキャッシュメモリ12Aに関する情報のみ記憶した第1のキャッシュメモリ情報テーブル(図示せず)を0系のローカルメモリ14Aに格納し、1系のキャッシュメモリ12Bに関する情報のみ記憶した第2のキャッシュメモリ情報テーブル(図示せず)を1系のローカルメモリ14Bに格納しておき、それぞれのアドレス情報のみ他方のローカルメモリ14B,14Aに格納する構成をとることができる。
さらにキャッシュメモリ情報テーブル45A,45Bの「タイムスタンプ」フィールド45Gに格納されたタイムスタンプを用いて格納可能な領域のうち最古の時刻に情報/データが更新された領域を優先して、格納先とする構成をとることも可能である。これによって新しく更新されたデータがキャッシュメモリ12A,12B上に残ることとなり、キャッシュヒット率の向上が可能となる。
(1−2−2)ライトコマンド処理
次に、記憶システム1におけるライトコマンド処理の具体的な処理内容について、図8〜図10を参照して説明する。ここでは、0系のコントローラ6Aがホスト計算機2Aからのライトコマンドを受信した場合について説明する。
0系のコントローラ6Aのホスト通信プロトコルチップ21Aは、ホスト計算機2Aからのライトコマンドを受信すると(SP1)、自系のローカルメモリ14Aに格納されている論理ユニット/プロセッサ対応付けテーブル43A(図5)及びローカルメモリ情報テーブル44A(図6)を参照して、対象となる論理ユニットの担当マイクロプロセッサが自系(0系)のマイクロプロセッサ15Aであるか否かを判断する(SP2)。
そして、ホスト通信プロトコルチップ21Aは、この判断において否定結果を得ると、ステップSP1において受信したライトコマンドを1系のローカルメモリ14Bに転送する(SP3)。この結果、このライトコマンドは、かかるローカルメモリ14Bにおける図3について上述した他系コントローラ受信コマンド格納領域41A(図3)内の制御情報格納領域41AX(図3)に格納される。
この際、0系の通信ホストプロトコルチップ21Aは、自系のローカルメモリ14Aに格納されたローカルメモリ情報テーブル44Aに基づいて、1系のローカルメモリ14B上のかかる制御情報格納領域41AXの中で開放フラグが立っているセグメントを書込み先として指定してライトコマンドを1系のローカルメモリ14Bに転送する。これによって、1系のローカルメモリ14B内の情報を破壊することなく、0系及び1系のコントローラ6A,6B間においてライトコマンドの受け渡しを行うことができる。
一方、1系のマイクロプロセッサ15Bは、定期的なポーリングにより自系のローカルメモリ14Bを監視しており、当該ローカルメモリ14Bにかかるライトコマンドが格納されたことを認識すると(SP4)、このライトコマンドを解析し、ライトデータを自系のキャッシュメモリ12Bに格納するためのDMA(Direct Memory Access)リスト50(図8参照)を作成して、これを自系のローカルメモリ14Bにおける他系コントローラ受信コマンド格納領域41A(図3)内の制御情報格納領域41AX(図3)に格納する(SP5)。
このDMAリスト50の作成に際しては、かかるローカルメモリ14Bに格納されたキャッシュメモリ情報テーブル45B(図7)が参照され、データ格納先アドレスとして、例えばダーティフラグが0であり、かつタイムスタンプが最古のセグメントの先頭アドレスが指定される。このとき1系のマイクロプロセッサ15Bは、自系のローカルメモリ14Bに格納されているキャッシュメモリ情報テーブル45B上のそのセグメントに対応する「ダーティフラグ」フィールド45H(図7)にダーティフラグを格納(「1」を格納)する。
この後、1系のマイクロプロセッサ15Bは、0系のコントローラ6A内のホスト通信プロトコルチップ21Aのレジスタを設定することにより、当該ホスト通信プロトコルチップ21Aを起動し、当該ホスト通信プロトコルチップ21Aに対してステップSP5において作成したDMAリスト50に従ったデータ転送を指示する(SP6)。
かかる指示を受けた0系のホスト通信プロトコルチップ21Aは、1系のローカルメモリ14BからDMAリスト50を読み出す(SP7)。また、かかるホスト通信プロトコルチップ21Aは、このDMAリスト50に基づいて、ホスト計算機2Aから送信されるライトデータを受信して自系のキャッシュメモリ12Aに格納すると共に、自系のデータ転送制御部11AにDMAアドレス50を通知するなどの処理を実行する(SP8)。
そして0系のデータ転送制御部11Aは、上述のように自系のホスト通信プロトコルチップ21AからDMAアドレスが通知されると、自系のキャッシュメモリ12Aに格納されたライトデータを読み出して1系のコントローラ6Bに転送する。この結果、このライトデータが1系のコントローラ6B内のキャッシュメモリ12Bにも格納され、これにより当該ライトデータが二重化される(SP9)。
また0系のホスト通信プロトコルチップ21Aは、かかるライトデータの二重化が完了すると、1系のマイクロプロセッサ15Bにデータ転送(二重化)が完了した旨の通知(以下、これをデータ転送完了通知と呼ぶ)をPCI規格の割込み通知機能であるMSI(Message signal Interrupt)により送信する(SP10)。このようにホスト通信プロトコルチップ21Aからマイクロプロセッサ15Bへの通知方法としてMSIを適用することにより、自系及び他系のコントローラ6A,6B間の通信処理が必要なくなり、システム性能の低下を回避することができる。
1系のマイクロプロセッサ15Bは、かかるデータ転送完了通知を受信すると、0系のホスト通信プロトコルチップ21Aに対して、ライトコマンド処理が終了した旨の通知を対応するホスト計算機2Aに送信すべき旨の指示を与える。そして、この指示を受けた0系のホスト通信プロトコルチップ21Aは、かかるライトコマンドを送信してきたホスト計算機2Aに対してライトデータの書き込みが完了した旨の報告を行う(SP11)。
この後、1系のマイクロプロセッサ15Bは、自系のキャッシュメモリ12Bに格納されたライトデータを、対応する記憶装置4A〜4D内の指定された論理ボリュームLU1に移動(デステージング)させると共に、自系のローカルメモリ14Bに格納されているキャッシュメモリ情報テーブル45B上の対応する「ダーティフラグ」フィールド45Hに格納されているダーティフラグを「0」とする(SP12)。
一方、0系のホスト通信プロトコルチップ21Aは、上述のステップSP2の判断において肯定結果を得たときには、そのライトコマンドを自系のローカルメモリ14Aにおける自系コントローラ受信コマンド格納領域40A(図3)内に格納する(SP13)。この結果、かかるローカルメモリ14Aに格納されたライトコマンドは、やがて定期的なポーリングにより0系のマイクロプロセッサ15Aに認識される(SP14)。
そしてマイクロプロセッサ15Aは、かかるライトコマンドが与えられたことを認識すると、このライトコマンドを解析し、対応するライトデータを自系のキャッシュメモリ12Aに格納するために、当該ライトデータを書き込むべきキャッシュメモリ12A上のアドレスと、当該ライトデータのデータ長とが格納されたDMAリスト50(図8)を作成し、これを自系のローカルメモリ14Aにおける自系コントローラ受信コマンド格納領域40A(図3)に格納する(SP15)。
このDMAリスト50の作成に際しては、かかるローカルメモリ14Aに格納されたキャッシュメモリ情報テーブル45Aが参照され、データ格納先アドレスとして、例えばダーティフラグが0であり、かつタイムスタンプが最古のセグメントの先頭アドレスが指定される。このとき0系のマイクロプロセッサ15Aは、自系のローカルメモリ14Aに格納されているキャッシュメモリ情報テーブル45A上のそのセグメントに対応する「ダーティフラグ」フィールド45H(図7)にダーティフラグを格納(「1」を格納)する。
続いて0系のマイクロプロセッサ15Aは、自系のホスト通信プロトコルチップ21Aを起動し、当該ホスト通信プロトコルチップ21Aに対してステップSP15において作成したDMAリスト50に従ったデータ転送を指示する(SP16)。
かくして、かかる0系のホスト通信プロトコルチップ21Aは、自系のローカルメモリ14AからDMAリスト50を読み出す(SP17)。また、かかるホスト通信プロトコルチップ21Aは、このDMAリスト50に基づいて、ホスト計算機2Aから送信されるライトデータを受信して自系のキャッシュメモリ12Aに格納すると共に、自系のデータ転送制御部11AにDMAアドレスを通知するなどの処理を実行する(SP18)。
そして0系のデータ転送制御部11Aは、上述のように自系のホスト通信プロトコルチップ21AからDMAアドレスが通知されると、自系のキャッシュメモリ12Aに格納されたライトデータを読み出して1系のコントローラ6Bに転送する。この結果、このライトデータが1系のコントローラ6B内のキャッシュメモリ12Bにも格納され、これにより当該ライトデータが二重化される(SP19)。
さらに0系のマイクロプロセッサ15Aは、自系のホスト通信プロトコルチップ21Aに対して、ライトコマンド処理が終了した旨の通知を対応するホスト計算機2Aに送信すべき旨の指示を与える。かくして、この指示を受けた0系のホスト通信プロトコルチップ21Aは、対応するホスト計算機2Aに対してライトデータの書き込みが完了した旨の報告を行う(SP20)。
この後、0系のマイクロプロセッサ15Aは、自系のキャッシュメモリ12Aに格納されたライトデータを、対応する記憶装置4A〜4D内の指定された論理ボリュームLU1に移動(デステージング)させると共に、自系のローカルメモリ14Aに格納されているキャッシュメモリ情報テーブル45A上の対応する「ダーティフラグ」フィールド45Hに格納されているダーティフラグを「0」とする(SP21)。
なお、このようなライトコマンド処理の過程において、0系及び1系のマイクロプロセッサ15A,15Bは、自系又は他系のローカルメモリ14A,14Bに情報を格納する際には、対応するローカルメモリ情報テーブル14A,14B上の対応する「開放フラグ」フィールド44Gに格納された開放フラグを「0」とし、その後その情報が後の処理で不必要となったときには、かかる開放フラグを「1」とする。
また、ここでは0系のコントローラ6Aがホスト計算機2Aからのライトコマンドを受信した場合について説明したが、1系のコントローラ6Bがホスト計算機2Bからのライトコマンドを受信した場合も同様である。
(1−2−3)リードコマンド処理
次に、記憶システム1におけるリードコマンド処理について、図11〜図13を参照して説明する。ここでは、0系のコントローラ6Aがホスト計算機2Aからのリードコマンドを受信した場合について説明する。
0系のコントローラ6Aのホスト通信プロトコルチップ21Aは、ホスト計算機2Aからのリードコマンドを受信すると(SP30)、自系のローカルメモリ14Aに格納されている論理ユニット/プロセッサ対応付けテーブル43A(図5)及びローカルメモリ情報テーブル44A(図6)を参照して、対象となる論理ユニットの担当マイクロプロセッサが自系(0系)のマイクロプロセッサ15Aであるか否かを判断する(SP31)。
そして、ホスト通信プロトコルチップ21Aは、この判断において否定結果を得ると、ステップSP1において受信したリードコマンドを1系のローカルメモリ14Bに転送する(SP32)。この結果、このライトコマンドは、かかるローカルメモリ14Bにおける図3について上述した他系コントローラ受信コマンド格納領域41A(図3)内の制御情報格納領域41AX(図3)に格納される。
この際、0系の通信ホストプロトコルチップ21Aは、自系のローカルメモリ14Aに格納されたローカルメモリ情報テーブル44Aに基づいて、1系のローカルメモリ14B上のかかる制御情報格納領域41AXの中で開放フラグが立っているセグメントを書込み先として指定してリードコマンドを1系のローカルメモリ14Bに転送する。これによって、1系のローカルメモリ14B内の情報を破壊することなく、0系及び1系のコントローラ6A,6B間においてリードコマンドの受け渡しを行うことができる。
一方、1系のマイクロプロセッサ15Bは、定期的なポーリングにより自系のローカルメモリ14Bを監視しており、当該ローカルメモリ14Bにかかるリードコマンドが格納されたことを認識すると(SP33)、このリードコマンドを解析し、対象とするリードデータが1系のキャッシュメモリ12B内に存在するか否かを判断する。
そしてマイクロプロセッサ15Bは、かかるリードデータがキャッシュメモリ12B内に存在する場合にはステップSP38に進み、これに対して存在しない場合にはリードデータを対応する記憶装置4A〜4Dから読み出してキャッシュメモリ12Bに格納(ステージング)する(SP34)。
キャッシュメモリ12Bに格納されたリードデータは、この後、1系のデータ転送制御部11Bによって0系のコントローラ6Aに転送され、当該コントローラ6A内のキャッシュメモリ12Aのデータ格納領域50AY(図4)に格納される。これにより、かかるリードデータが二重書きされる(SP35)。
また、このリードデータの管理情報も、1系のマイクロプロセッサ15Bにより自系のキャッシュメモリ12Bにおけるデータ管理情報格納領域50B(図4(B))に格納されるが(SP36)、この管理情報も0系のキャッシュメモリ12Aに転送されて、当該キャッシュメモリ12Aにおけるデータ管理情報格納領域50Aに格納される。これにより、リードデータの管理情報も二重書きされる(SP37)。
この後、1系のマイクロプロセッサ15Bは、図9のステップSP5について上述した方法と同様の方法によりDMAリスト50(図8)を作成すると共に、作成したDMAリスト50を自系のローカルメモリ14Bに格納する(SP38)。またこのマイクロプロセッサ15Bは、0系のホスト通信プロトコルチップ21Aを起動し、当該ホスト通信プロトコルチップ21Aに対してステップSP38において作成したDMAリスト50に従ったデータ転送を、MSIを利用して指示する(SP39)。
かかる指示を受けた0系のホスト通信プロトコルチップ21Aは、1系のローカルメモリ14BからDMAリスト50を読み出し(SP40)、このDMAリスト50に基づいて、必要なDMAアドレスを自系のデータ転送制御部11Aに通知する(SP41)。また、この通知を受けたデータ転送制御部11Aは、与えられたDMAアドレスに従ってリードデータの管理情報を自系のホスト通信プロトコルチップ21Aに転送する。
一方、かかる管理情報を受信した0系のホスト通信プロトコルチップ21Aは、この管理情報に基づいて保障コードの確認及びそのデータがリードデータである旨の確認を行い(SP42)、この後、リードデータを自系のキャッシュメモリ12Aから自系のホスト通信プロトコルチップ21Aに転送させる(SP43)。なお、リードデータを1系のキャッシュメモリ12Bから送信する構成とすることもできる。そしてホスト通信プロトコルチップ21Aは、この後このリードデータを対応するホスト計算機2Aに送信する(SP44)。
一方、0系のホスト通信プロトコルチップ21Aは、上述のステップSP31の判断において肯定結果を得たときには、そのリードコマンドを自系のローカルメモリ14Aにおける自系コントローラ受信コマンド格納領域40A(図3)内に格納する(SP45)。この結果、かかるローカルメモリ14Aに格納されたリードコマンドは、やがて定期的なポーリングにより0系のマイクロプロセッサ15Aに認識される(SP46)。
かくして、この後、図12のステップSP34〜ステップSP44について上述した処理と同様の処理が第1のコントローラ6Aにおいて行われ、これによりリードコマンドによって指定されたリードデータが対応する論理ユニットから読み出されてホスト計算機2Aに送信される(SP47〜SP57)。
なお、ここでは0系のコントローラ6Aがホスト計算機2Aからのリードコマンドを受信した場合について説明したが、1系のコントローラ6Bがホスト計算機2Bからのリードコマンドを受信した場合も同様である。
(1−2−4)データ転送制御部及びブリッジにおけるアービトレーション機能
次に、データ転送制御部11A,11B及びブリッジ13A,13Bに搭載されたアービトレーション(調停)機能について説明する。
図1について上述のように、本実施の形態の記憶システム1では、0系及び1系の各コントローラ6A,6Bにおいて、データ転送制御部11A,11Bには、ホスト通信制御部10A,10B、キャッシュメモリ12A,12B、ブリッジ13A,13B及び記憶装置通信制御部16A,16Bが所定のバスを介して接続されると共に、コントローラ間接続経路5を構成するバスも接続される。また0系及び1系の各コントローラ6A,6Bにおいて、ブリッジ13A,13Bには、ローカルメモリ14A,14B、マイクロプロセッサ15A,15B及びデータ転送制御部11A,11Bが所定のバスを介して接続される。従って、これらデータ転送制御部11A,11Bやブリッジ13A,13Bには、各バスを通じて種々のコマンドの転送要求が与えられる。
そこで、これらデータ転送制御部11A,11Bやブリッジ13A,13Bは、複数のコマンドの転送要求が与えられた場合、これらの転送要求に対する処理をその要求が到着した順番で行う。またデータ転送制御部11A,11Bやブリッジ13A,13Bは、同時に複数の転送要求が到着した場合、優先度の高いコマンドから順番に転送処理を行う。
この場合において、本実施の形態の記憶システム1では、データ転送制御部11A,11Bやブリッジ13A,13Bを通過するコマンドとしては、マイクロプロセッサ15A,15Bから自系のコントローラ6A,6B内の各要素に与えられる各種コマンド、ローカルメモリ14A,14Bに対するリフレッシュ要求コマンド、他系のコントローラ6B,6Aからコントローラ間接続経路5を介して与えられるキャッシュメモリ12A,12Bに対するアクセスコマンド、上述のようなDMAに関する各種のコマンドがあり、これらコマンドの優先度が、種々の事情を勘案して、この順番で定められている。
このためこの記憶システム1では、何らの手当てもしなければ、優先度の高い要求がデータ転送制御部11A,11Bやブリッジ13A,13Bに順次与えられた結果、優先度が低く設定されたDMAに関するコマンドに対する転送処理の転送が待たされ続けてしまうことになる。
そこで、この実施の形態による記憶システム1では、データ転送制御部11A,11Bやブリッジ13A,13Bにバスからの要求を均一に処理するアービトレーション(調停)機能が搭載されており、これにより順位の高い要求がデータ転送制御部11A,11Bやブリッジ13A,13Bに順次与えられた場合においても、優先度が低く設定された上述のDMAに関する各種コマンドの転送要求が待たされ続けるのを未然に防止し得るようになされている。
(1−3)本実施の形態の効果
以上のように本実施例の記憶システム1では、1系のコントローラ6Bを担当コントローラとする論理ユニットを対象としたライトコマンドやリードコマンドを0系のコントローラ6Aが受信した場合、0系のマイクロプロセッサ15Aがこのライトコマンド又はリードコマンドを1系のローカルメモリ14Bに転送して直接書き込むようにしているため、0系及び1系のコントローラ6A,6B間における当該ライトコマンド又はリードコマンドの受け渡しの際に0系及び1系のマイクロプロセッサ15A,15B間の通信が不要となる。
従って、この記憶システム1では、かかる通信に起因するコマンドを受信したコントローラ6A,6Bに余計な負荷が生じたり、当該コマンドに対する処理時間の遅延が発生するのを有効に防止でき、担当外の論理ボリュームを対象とするコマンドを受信したコントローラの負荷を低減させながら、コマンドに対する処理時間を高速化させることができる。
また本実施の形態による記憶システム1では、かかるライトコマンドやリードコマンドを、比較的アクセス速度の高い自系のローカルメモリ15Bに書き込むようにしているため、例えば比較的アクセス速度の低いキャッシュメモリ12Bを介してライトコマンドやリードコマンドをやり取りする場合に比べて、処理速度を向上させる効果を得ることができる。さらに0系のマイクロプロセッサ15Aを介入させることなく1系のマイクロプロセッサ15B側が主体となって一連の処理行うことが可能なため、例えば0系のマイクロプロセッサ15Aの処理負荷が高く1系のマイクロプロセッサ15Bの処理負荷が低い場合にも、0系のマイクロプロセッサ15Aの処理負荷がネックとなって応答性能が低下するという事態を回避することができる。
また本実施の形態による記憶システム1では、ホスト計算機2A,2Bからのライトコマンドやリードコマンドを受信した0系又は1系のコントローラ6A,6Bが他系のコントローラ6B,6Aに処理を依頼するジョブを新しく生成する必要がなくなり、ホスト計算機2A,2Bから送信されるコマンドを0系のコントローラ6Aで受信しても1系のコントローラ6Bで受信してもほぼ同じ処理効率で実行することが可能となる。
かくするにつき、この記憶システム1では、そのとき対象とする論理ユニットの担当コントローラをホスト計算機2A,2Bに意識させる必要がなくなり、多数のホスト計算機2A,2Bから0系のコントローラ6A,6Bに対してライトコマンドやリードコマンドを受信しても高い処理速度で応答することができるため、構成自由度の向上、保守作業の低減を図ることができる。例えば、0系及び1系のマイクロプロセッサ15A,15B間で負荷状況に応じて担当する論理ユニットを動的に切り替える運用とした場合には、ホスト計算機2A,2Bに対して負荷バランスが適切となるように送信先のコントローラ6A,6Bを設定する設定作業が行われないときにも、処理効率の低下を防ぐことが可能となる。
(2)第2の実施の形態
(2−1)本実施の形態によるライトコマンド処理及びリードコマンド処理
図14は、第2の実施の形態による記憶システム60を示す。この記憶システム60は、記憶制御装置61を構成する0系のコントローラ62A内のホスト通信制御部63Aに設けられたホスト通信プロトコルチップ63AがマルチCPUサポート機能を備えておらず、単一のマイクロプロセッサとのみデータ通信が可能な点を除いて第1の実施の形態による記憶システム1(図1)と同様に構成されている。
図14〜図16は、この記憶システム60におけるライトコマンド処理の流れを示すフローチャートである。ここでは、第1の実施の形態と同様に、0系のコントローラ62Aがホスト計算機2Aからのライトコマンドを受信した場合について説明する。
この場合、この記憶システム60では、図8〜図10のステップSP1〜ステップSP5と同様にして、ホスト計算機2Aから0系のコントローラ62Aに与えられたライトコマンドが1系のコントローラ6Bに与えられ、このライトコマンドに基づいて1系のコントローラ6BにおいてDMAリスト50が作成されて1系のローカルメモリ14Bに格納される(SP60〜SP64)。
1系のマイクロプロセッサ15Bは、この後、この1系のローカルメモリ14Bに格納されているDMAリスト50を0系のローカルメモリ14Aにコピーする。この際、1系のマイクロプロセッサ15Bは、ローカルメモリ情報テーブル44B(図6)を参照して、0系のローカルメモリ14Aの他コントローラ受信コマンド格納領域41A内の制御情報格納領域41AX(図3)をDMAリスト50のコピー先として指定する(SP65)。これは、DMAリスト50を読み込むように0系のホスト通信プロトコルチップ64Aに対して起動をかけるのが0系のマイクロプロセッサ15Aであるからである。
一方、0系のマイクロプロセッサ15Aは、定期的なポーリングにより自系のローカルメモリ14Aを監視しており、当該ローカルメモリ14Aに上述のDMAリスト50が格納されたことを認識すると、このDMAリスト50を当該ローカルメモリ14Aの自コントローラ格納受信領域40A内の制御情報格納領域40AXにコピーする(SP66)。
またマイクロプロセッサ15Aは、この後、自系のホスト通信プロトコルチップ64Aを起動し、当該ホスト通信プロトコルチップ64Aに対してDMAリスト50に従ったデータ転送を指示する(SP67)。
かかる指示を受けたホスト通信プロトコルチップ64Aは、自系のローカルメモリ14Aにおける自コントローラ格納受信領域40A内の制御情報格納領域40AXに格納されているDMAリスト50を読み出し、自系のデータ転送制御部11AにDMAアドレス50を通知する(SP68)。
そして0系のデータ転送制御部11Aは、上述のように自系のホスト通信プロトコルチップ21AからDMAアドレスが通知されると、このDMAアドレスに従ってホスト計算機2Aからのライトデータを受信し、これを自系のキャッシュメモリ12Aに格納する(SP69)。
また0系のデータ転送制御部11Aは、自系のキャッシュメモリ12Aに格納したライトデータを1系のコントローラ6Bに転送する。この結果、このライトデータが1系のコントローラ6B内のキャッシュメモリ12Bにも格納され、これにより当該ライトデータが二重化される(SP70)。さらに0系のホスト通信プロトコルチップ21Aは、かかるライトデータの二重化が完了すると、1系のマイクロプロセッサ15Bにデータ転送完了通知をデータ転送制御部11Aに通知し、データ転送制御部11Aにより上述のMSIを生成して送信する(SP71)。
この後、0系のマイクロプロセッサ15Aは、自系のホスト通信プロトコルチップ64Aに対して、ライトコマンド処理が終了した旨の通知を対応するホスト計算機2Aに送信すべき旨の指示を与える。そして、この指示を受けた0系のホスト通信プロトコルチップ64Aは、かかるライトコマンドを送信してきたホスト計算機2Aに対してライトデータの書き込みが完了した旨の報告を行う(SP72)。
かくして1系のマイクロプロセッサ15Bは、この後、自系のキャッシュメモリ12Bに格納されたライトデータを、対応する記憶装置4A〜4D内の指定された論理ボリュームLU1に移動(デステージング)させると共に、自系のローカルメモリ14Bに格納されているキャッシュメモリ情報テーブル45B上の対応する「ダーティフラグ」フィールド45Hに格納されているダーティフラグを「0」とする(SP73)。
これに対して、0系のホスト通信プロトコルチップ64Aは、上述のステップSP61の判断において肯定結果を得たときには、図10のステップSP13〜ステップSP21と同様の手順により、ホスト計算機2Aからのライトデータを対応する記憶装置4A〜4D内の指定された論理ボリュームLU1に格納(デステージング)する(ステップSP74〜ステップSP82)。
なお、ここでは0系のコントローラ62Aがホスト計算機2Aからのライトコマンドを受信した場合について説明したが、1系のコントローラ6Bがホスト計算機2Bからのライトコマンドを受信した場合も同様である。
一方、図17〜図19は、かかる記憶システム60におけるリードコマンド処理の流れを示すフローチャートである。ここでは、第1の実施の形態と同様に、0系のコントローラ62Aがホスト計算機2Aからのリードコマンドを受信した場合を想定している。
この場合、この記憶システム60では、図11〜図13のステップSP30〜ステップSP38と同様にして、ホスト計算機2Aからのリード要求に応じたリードデータを記憶装置4A〜4Dから1系のキャッシュメモリ12Bにステージングされ、このリードデータ及びその管理情報が0系及び1系のキャッシュメモリ12A,12Bに二重書きされる。また記憶システム60では、このリードデータに対するDMAリスト50が1系のコントローラ21において作成され、これが1系のローカルメモリ14Bに格納される(SP90〜SP98)。
この後、1系のマイクロプロセッサ15Bは、ローカルメモリ14Bに格納したDMAリスト50を0系のローカルメモリ14Aに転送する。かくして、このDMAリスト50が、図3について上述した0系のローカルメモリ14Aの他系コントローラ受信コマンド格納領域41A内の制御情報格納領域41AXに格納される(SP99)。
この0系のローカルメモリ14Aに格納されたDMAリスト50は、この後、ローカルメモリ14A内の自系コントローラ受信コマンド格納領域40A内の制御情報格納領域40AX(図3)にコピーされる(SP100)。
この後、0系のマイクロプロセッサ15Aは、0系のホスト通信プロトコルチップ21Aを起動し(SP101)、当該ホスト通信プロトコルチップ21Aに対してステップSP98において作成したDMAリスト50に従ったデータ転送を指示する(SP101)。
かかる指示を受けた0系のホスト通信プロトコルチップ64Aは、自系のローカルメモリ14A内の制御情報格納領域自系コントローラ受信コマンド格納領域40AX(図3)からDMAリスト50を読み出し(SP102)、このDMAリスト50に基づいて、DMAアドレスを自系のデータ転送制御部11Aに通知する(SP103)。
また、この通知を受けたデータ転送制御部11Aは、与えられたDMAアドレスに従ってリードデータの管理情報を自系のホスト通信プロトコルチップ64Aに転送する。この後、0系のデータ転送制御部11Aは、送信されたDMAアドレスに従ってデータ管理情報を取得して整合性が取れているか否かをチェックする(SP104)。
次いで、0系のデータ転送制御部11Aは、0系のキャッシュメモリ12Aから自系のホスト通信プロトコルチップ64Aにリードデータを転送し(SP105)、ホスト通信プロトコルチップ21Aは、この後このリードデータを対応するホスト計算機2Aに送信する(SP106)。さらに0系のホスト通信プロトコルチップ64Aは、かかるホスト計算機2Aへのリードデータの転送を完了すると、自系のローカルメモリ14Aに完了情報を格納する。(SP107)。
この後、0系のホスト通信プロトコルチップ64Aは完了情報を1系のローカルメモリ14Bにコピーし(SP108)、ローカルメモリ14Bをモニタリングしているマイクロプロセッサ15Bは、この完了情報がローカルメモリ14Bによって完了処理が実行される(SP109)。
一方、0系のホスト通信プロトコルチップ21Aは、上述のステップSP31の判断において肯定結果を得たときには、図19に示すステップSP110〜SP122を図13について上述したステップSP45〜ステップSP57と同様に処理する。
なお、ここでは0系のコントローラ62Aがホスト計算機2Aからのリードコマンドを受信した場合について説明したが、1系のコントローラ6Bがホスト計算機2Bからのリードコマンドを受信した場合も同様である。
(2−2)本実施の形態の効果
以上のように本実施の形態による記憶システム60では、0系及び1系のコントローラ62A,6B間において、ローカルメモリ14A,14Bを経由して必要な情報のやり取りを行なうため、0系のコントローラ62A内のホスト通信プロトコルチップ64AがマルチCPUサポート機能を備えていない場合であっても0系及び1系のコントローラ62A,6B間でライトコマンドやリードコマンドをやり取りすることができ、処理の高速化が図れる。
さらに記憶システム60では、例えば1系のプロセッサ15Bが担当する論理ユニットを対象とするライトコマンドやリードコマンドがホスト計算機2Aから0系のコントローラ62Aに与えられた場合、DMAリスト50等の作成は1系のコントローラ6B側において行ない、0系のコントローラ6A内のプロセッサ15Aは自系のホスト通信プロトコルチップ64Aの起動のみを行なうように構成しているため、コマンド転送元、すなわちホスト計算機2Aからかかるライトコマンドやリードコマンドを受信した側のマイクロプロセッサ15Aの処理負担を軽減することが可能となる。
(3)他の実施の形態
なお上述の第1及び第2の実施の形態においては、0系及び1系のコントローラ6A,62A,6Bのホスト通信制御部10A,62A,10Bとして、それぞれホスト計算機2A,2Bとの間で同じ通信プロトコルに従った通信を行なうホスト通信制御部10A,63A,10Bを適用するようにした場合について述べたが、本発明はこれに限らず、例えば0系のコントローラ6A,62A側にはホスト計算機2Aとの間でFCプロトコルに従った通信を行うマルチマイクロプロセッサ機能を備えるホスト通信制御部を適用し、1系のコントローラ6B側にはホスト計算機2Bとの間でiSCSIプロトコルに従った通信を行なうシングルマイクロプロセッサ機能を備えるホスト通信制御部を適用するようにしても良い。
また上述の第1及び第2の実施の形態においては、本発明を、ホスト計算機2A,2B及び記憶制御装置3,61間を直接接続された記憶システム1,60に適用するようにした場合について述べたが、本発明はこれに限らず、これらホスト計算機2A,2B及び記憶制御装置3,61間がSAN(Storage Area Network)又はLAN(Local Area Network)などのネットワークを介して接続された記憶システムにも本発明を広く適用することができる。
さらに上述の第1及び第2の実施の形態においては、記憶システム1,60を構成する記憶装置4A〜4Dが4台である場合について述べたが、本発明はこれに限らず、記憶装置4A〜4Dの数としてはこれ以外の数を設けるようにしても良い。
さらに上述の第1及び第2の実施の形態においては、0系及び1系のコントローラ10A,62A,10Bを同一構成とするようにした場合について述べたが、本発明はこれに限らず、これら0系及び1系のコントローラ10A,62A,10Bを異なる構成とするようにしても良い。
さらに上述の第1及び第2の実施の形態においては、0系及び1系のコントローラ6A,62A,6Bにそれぞれホスト通信制御部10A,63A,10Bを1つずつ設けるようにした場合について述べたが、本発明はこれに限らず、かかるホスト通信制御部10A,63A,10Bを複数設けるようにしても良い。
本発明は、特に、ホスト計算機からの情報の入出力要求を制御する複数のマイクロプロセッサを備えるストレージ装置に適用できる。
第1の実施の形態による記憶システムの構成を示すブロック図である。 (A)は、0系及び1系のマイクロプロセッサが認識するメモリ空間の一例を示す図表であり、(B)は、0系及び1系のホスト通信プロトコルチップ10A,10Bがそれぞれ認識するメモリ空間の一例を示す図表である。 (A)は、0系のローカルメモリのメモリ構成を示す概念図であり、(B)は、1系のローカルメモリのメモリ構成を示す概念図である。 (A)は、0系のキャッシュメモリのメモリ構成を示す概念図であり、(B)は、1系のキャッシュメモリのメモリ構成を示す概念図である。 論理ユニット/プロセッサ対応付けテーブルの構成を示す概念図である。 ローカルメモリ情報テーブルの構成を示す概念図である。 キャッシュメモリ情報テーブルの構成を示す概念図である。 第1の実施の形態の記憶システムにおけるライトコマンド処理の説明に供するブロック図である。 第1の実施の形態の記憶システムにおけるライトコマンド処理の説明に供するフローチャートである。 第1の実施の形態の記憶システムにおけるライトコマンド処理の説明に供するフローチャートである。 第1の実施の形態の記憶システムにおけるリードコマンド処理の説明に供するブロック図である。 第1の実施の形態の記憶システムにおけるリードコマンド処理の説明に供するフローチャートである。 第1の実施の形態の記憶システムにおけるリードコマンド処理の説明に供するフローチャートである。 第2の実施の形態の記憶システムにおけるライトコマンド処理の説明に供するブロック図である。 第2の実施の形態の記憶システムにおけるライトコマンド処理の説明に供するフローチャートである。 第2の実施の形態の記憶システムにおけるライトコマンド処理の説明に供するフローチャートである。 第2の実施の形態の記憶システムにおけるリードコマンド処理の説明に供するブロック図である。 第2の実施の形態の記憶システムにおけるリードコマンド処理の説明に供するフローチャートである。 第2の実施の形態の記憶システムにおけるリードコマンド処理の説明に供するフローチャートである。
符号の説明
1、60……記憶システム、2A,2B……ホスト計算機、3……記憶制御装置、4A〜4D……記憶装置、5……コントローラ間接続経路、6A,6B,62A……コントローラ、10A,10B,63A……ホスト通信制御部、11A,11B……データ転送制御部、12A,12B……キャッシュメモリ、14A,14B……ローカルメモリ、15A,15B……マイクロプロセッサ、21A,21B,64A……ホスト通信プロトコルチップ、40A,40B……自系コントローラ受信コマンド格納領域、40AX,40BX,41AX,41BX……制御情報格納領域、41AY,41BY……実行処理格納領域、41A,41B……他系コントローラ受信コマンド格納領域、42A,42B……共有領域、43A,43B……論理ユニット/プロセッサ対応付けテーブル、44A,44B……ローカルメモリ情報テーブル、45A,45B‥‥キャッシュメモリ情報テーブル、50A,50B……自系プロセッサ領域、51A,51B……他系プロセッサ領域。

Claims (10)

  1. 上位装置としてのホスト計算機と、前記ホスト計算機に対してデータを読み書きするための記憶領域でなる複数の論理ユニットを提供する記憶装置との間において、前記論理ユニットに対するデータの入出力を制御する記憶制御装置において、
    前記ホスト計算機から与えられるコマンドを保持するローカルメモリを有し、当該ローカルメモリに保持した前記コマンドに基づいて、対応する前記論理ユニットに対するデータの入出力を制御する複数のコントローラと、
    前記複数のコントローラ間を通信可能な状態に接続するコントローラ間接続経路と
    有し
    前記ローカルメモリには、
    前記論理ユニット及び前記コントローラの対応関係を表す対応付け情報と、
    自系及び他系の各前記コントローラ内の前記ローカルメモリのアドレス情報とが格納され、
    前記各コントローラは、
    前記ローカルメモリに保持された前記コマンドに基づき必要に応じて、自己に対応付けられた前記論理ユニットに対するデータの入出力を制御するマイクロプロセッサと、
    自系の前記コントローラに接続された前記ホスト計算機との通信時におけるプロトコル制御を行うと共に、自系及び他系の前記マイクロプロセッサとの間で通信可能なホスト通信制御部と、
    前記ホスト計算機及び前記記憶装置間で転送されるデータを一時的に記憶するために用いられるキャッシュメモリと、
    自系及び他系の前記コントローラ間のデータ転送を制御すると共に、自系内の各要素間でのデータ転送を制御するデータ転送制御部と
    を備え、
    前記ホスト通信制御部は、前記ホスト計算機から送信されたコマンドを受信したときに、対象とする前記論理ユニットが自系及び他系のいずれの前記マイクロプロセッサと対応付けられているかを前記対応付け情報に基づいて判断し、対象とする前記論理ユニットが他系の前記マイクロプロセッサと対応付けられている場合には、前記コマンドを前記コントローラ間接続径路を介して他系の前記ローカルメモリに格納し、
    前記マイクロプロセッサは、他系の前記ホスト通信制御部により自系の前記ローカルメモリに前記コマンドが格納されると、当該コマンドに応じたデータを転送するよう他系の前記ホスト通信制御部に指示し、
    当該指示を受けた前記ホスト通信制御部は、自系の前記キャッシュメモリに格納されている対応するデータを他系の前記キャッシュメモリに複写する
    ことを特徴とする記憶制御装置。
  2. 前記ローカルメモリは、
    前記自系のコントローラが受信した、当該自系のコントローラに対応付けられた前記論理ユニットを対象とする前記ホスト計算機からの前記コマンドを格納する第1の記憶領域と、系の前記ホスト通信制御部から転送された、系の前記マイクロプロセッサに対応付けられた前記論理ユニットを対象とする前記ホスト計算機からの前記コマンドを格納する第2の記憶領域とが別個に設けられた
    ことを特徴とする請求項1に記載の記憶制御装置。
  3. 前記キャッシュメモリは、
    自系の前記ホスト通信制御部が受信した前記ホスト計算機又は前記記憶装置からの前記データを格納する第1のデータ記憶領域と、系の前記ホスト通信制御部により複写される前記データを格納する第2のデータ記憶領域とが別個に設けられた
    ことを特徴とする請求項に記載の記憶制御装置。
  4. 前記コントローラ間接続経路は、
    PCI(Peripheral Component Interconnect)−Express規格に準拠したバスである
    ことを特徴とする請求項1に記載の記憶制御装置。
  5. 前記ホスト通信制御部は、
    自系の前記キャッシュメモリに格納されている対応するデータを他系の前記キャッシュメモリに格納し終えると、他系の前記マイクロプロセッサにデータ転送完了通知をMSI(Message Signal Interrupt)により通知する
    ことを特徴とする請求項に記載の記憶制御装置。
  6. 上位装置としてのホスト計算機と、前記ホスト計算機に対してデータを読み書きするための記憶領域でなる複数の論理ユニットを提供する記憶装置との間において、前記論理ユニットに対するデータの入出力を制御する記憶制御装置の制御方法において、
    前記記憶制御装置は、
    前記ホスト計算機から与えられるコマンドを保持するローカルメモリを有し、当該ローカルメモリに保持した前記コマンドに基づいて、対応する前記論理ユニットに対するデータの入出力を制御する複数のコントローラと、
    前記複数のコントローラ間を通信可能な状態に接続するコントローラ間接続経路と
    有し
    前記ローカルメモリには、
    前記論理ユニット及び前記コントローラの対応関係を表す対応付け情報と、
    自系及び他系の各前記コントローラ内の前記ローカルメモリのアドレス情報とが格納され、
    前記各コントローラは、
    前記ローカルメモリに保持された前記コマンドに基づき必要に応じて、自己に対応付けられた前記論理ユニットに対するデータの入出力を制御するマイクロプロセッサと、
    自系の前記コントローラに接続された前記ホスト計算機との通信時におけるプロトコル制御を行うと共に、自系及び他系の前記マイクロプロセッサとの間で通信可能なホスト通信制御部と、
    前記ホスト計算機及び前記記憶装置間で転送されるデータを一時的に記憶するために用いられるキャッシュメモリと、
    自系及び他系の前記コントローラ間のデータ転送を制御すると共に、自系内の各要素間でのデータ転送を制御するデータ転送制御部と
    を有し、
    前記ホスト通信制御部が、前記ホスト計算機から送信されたコマンドを受信したときに、対象とする前記論理ユニットが自系及び他系のいずれの前記マイクロプロセッサと対応付けられているかを前記対応付け情報に基づいて判断し、対象とする前記論理ユニットが他系の前記マイクロプロセッサと対応付けられている場合には、前記コマンドを前記コントローラ間接続径路を介して他系の前記ローカルメモリに格納する第1のステップと、
    前記マイクロプロセッサが、他系の前記ホスト通信制御部により自系の前記ローカルメモリに前記コマンドが格納されると、当該コマンドに応じたデータを転送するよう他系の前記ホスト通信制御部に指示する第2のステップと、
    当該指示を受けた前記ホスト通信制御部が、自系の前記キャッシュメモリに格納されている対応するデータを他系の前記キャッシュメモリに複写する第3のステップと
    を備えることを特徴とする記憶制御装置の制御方法。
  7. 前記ローカルメモリは、
    前記自系のコントローラが受信した、当該自系のコントローラに対応付けられた前記論理ユニットを対象とする前記ホスト計算機からの前記コマンドを格納する第1の記憶領域と、系の前記ホスト通信制御部から転送された、系の前記マイクロプロセッサに対応付けられた前記論理ユニットを対象とする前記ホスト計算機からの前記コマンドを格納する第2の記憶領域とが別個に設けられた
    ことを特徴とする請求項6に記載の記憶制御装置の制御方法。
  8. 前記キャッシュメモリは、
    自系の前記ホスト通信制御部が受信した前記ホスト計算機又は前記記憶装置からの前記データを格納する第1のデータ記憶領域と、系の前記ホスト通信制御部により複写される前記データを格納する第2のデータ記憶領域とが別個に設けられた
    ことを特徴とする請求項に記載の記憶制御装置の制御方法。
  9. 前記コントローラ間接続経路は、
    PCI(Peripheral Component Interconnect)−Express規格に準拠したバスである
    ことを特徴とする請求項に記載の記憶制御装置の制御方法。
  10. 前記ホスト通信制御部が、自系の前記キャッシュメモリに格納されている対応するデータを他系の前記キャッシュメモリに格納し終えると、他系の前記マイクロプロセッサにデータ転送完了通知をMSI(Message Signal Interrupt)により通知する第4のステップを備える
    ことを特徴とする請求項に記載の記憶制御装置の制御方法。
JP2006319807A 2006-11-28 2006-11-28 記憶制御装置及びその制御方法 Expired - Fee Related JP5057755B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006319807A JP5057755B2 (ja) 2006-11-28 2006-11-28 記憶制御装置及びその制御方法
US11/698,022 US7849260B2 (en) 2006-11-28 2007-01-26 Storage controller and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006319807A JP5057755B2 (ja) 2006-11-28 2006-11-28 記憶制御装置及びその制御方法

Publications (2)

Publication Number Publication Date
JP2008134776A JP2008134776A (ja) 2008-06-12
JP5057755B2 true JP5057755B2 (ja) 2012-10-24

Family

ID=39465127

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006319807A Expired - Fee Related JP5057755B2 (ja) 2006-11-28 2006-11-28 記憶制御装置及びその制御方法

Country Status (2)

Country Link
US (1) US7849260B2 (ja)
JP (1) JP5057755B2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101396976B1 (ko) * 2007-07-26 2014-05-20 엘지전자 주식회사 영상기기 및 영상기기에서 디스플레이 특성 항목들을조절하는 방법
JP2010049502A (ja) 2008-08-21 2010-03-04 Hitachi Ltd ストレージサブシステム、及びこれを有するストレージシステム
US8671258B2 (en) * 2009-03-27 2014-03-11 Lsi Corporation Storage system logical block address de-allocation management
US8463976B2 (en) * 2009-06-23 2013-06-11 Lg Electronics Inc. Dual modem device and controlling method thereof
US20110296062A1 (en) * 2009-06-23 2011-12-01 Itaru Isobe Storage apparatus and method for controlling storage apparatus
JP2012133405A (ja) * 2009-07-24 2012-07-12 Hitachi Ltd ストレージ装置及びそのデータ転送制御方法
WO2011039802A1 (en) * 2009-09-29 2011-04-07 Hitachi,Ltd. Storage subsystem
WO2011058598A1 (en) * 2009-11-10 2011-05-19 Hitachi, Ltd. Storage system with multiple controllers
US20110282963A1 (en) * 2010-05-11 2011-11-17 Hitachi, Ltd. Storage device and method of controlling storage device
US10034300B2 (en) * 2010-06-10 2018-07-24 Cisco Technology, Inc Load based probe response scheduling
WO2013171809A1 (en) * 2012-05-18 2013-11-21 Hitachi, Ltd. Computer system and control method thereof
US20140136648A1 (en) * 2012-11-13 2014-05-15 Hitachi, Ltd. Storage apparatus, network interface apparatus, and storage control method
JP6079347B2 (ja) * 2013-03-21 2017-02-15 富士通株式会社 制御装置、ストレージシステム、及び制御プログラム
JP2015169956A (ja) * 2014-03-04 2015-09-28 富士通株式会社 ストレージ装置、情報処理装置、キャッシュ制御プログラム及びキャッシュ制御方法
US9807813B2 (en) 2015-04-15 2017-10-31 Cisco Technology, Inc. Probe response suppression
JP6649989B2 (ja) * 2018-05-25 2020-02-19 株式会社日立製作所 ストレージシステム及びその制御方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790775A (en) * 1995-10-23 1998-08-04 Digital Equipment Corporation Host transparent storage controller failover/failback of SCSI targets and associated units
JP3772369B2 (ja) * 1995-11-20 2006-05-10 株式会社日立製作所 記憶サブシステム
US5822251A (en) * 1997-08-25 1998-10-13 Bit Microsystems, Inc. Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers
US5975738A (en) * 1997-09-30 1999-11-02 Lsi Logic Corporation Method for detecting failure in redundant controllers using a private LUN
JP4272275B2 (ja) 1998-04-28 2009-06-03 株式会社日立製作所 記憶サブシステム
US6601138B2 (en) * 1998-06-05 2003-07-29 International Business Machines Corporation Apparatus system and method for N-way RAID controller having improved performance and fault tolerance
US7315911B2 (en) * 2005-01-20 2008-01-01 Dot Hill Systems Corporation Method for efficient inter-processor communication in an active-active RAID system using PCI-express links
JP4794194B2 (ja) * 2005-04-01 2011-10-19 株式会社日立製作所 ストレージシステム及び記憶制御方法
JP2008134775A (ja) * 2006-11-28 2008-06-12 Hitachi Ltd 記憶サブシステム及びこれを利用したリモートコピーシステム

Also Published As

Publication number Publication date
JP2008134776A (ja) 2008-06-12
US20080126668A1 (en) 2008-05-29
US7849260B2 (en) 2010-12-07

Similar Documents

Publication Publication Date Title
JP5057755B2 (ja) 記憶制御装置及びその制御方法
JP2008134775A (ja) 記憶サブシステム及びこれを利用したリモートコピーシステム
JP4219602B2 (ja) 記憶制御装置および記憶制御装置の制御方法
US7127557B2 (en) RAID apparatus and logical device expansion method thereof
JP4958641B2 (ja) 記憶制御装置及びその制御方法
US8074017B2 (en) On-disk caching for raid systems
JP5512833B2 (ja) ストレージの仮想化機能と容量の仮想化機能との両方を有する複数のストレージ装置を含んだストレージシステム
WO2013046254A1 (en) Management server and data migration method
US8190815B2 (en) Storage subsystem and storage system including storage subsystem
US20110167189A1 (en) Storage apparatus and its data transfer method
WO2012017493A1 (ja) 計算機システム及びデータ移行方法
JP2008181382A (ja) ストレージ装置及び負荷分散方法
US11782634B2 (en) Dynamic use of non-volatile ram as memory and storage on a storage system
WO2018051505A1 (ja) ストレージシステム
US20120311275A1 (en) Storage subsystem and load distribution method
US10831684B1 (en) Kernal driver extension system and method
WO2017124948A1 (zh) 一种数据备份的方法及装置
JP6649989B2 (ja) ストレージシステム及びその制御方法
EP2093656B1 (en) Storage system and access instruction sending method
WO2016194162A1 (ja) 計算機システム
JP6013609B2 (ja) ストレージ装置及びデータ入出力方法
JP5344258B2 (ja) ディスクアレイ装置及び領域割当て方法
JP6825263B2 (ja) ストレージ制御装置、およびストレージシステム
US20120185554A1 (en) Data transfer device and data transfer method
JP7089681B2 (ja) サーバーに装着され、ブロックレベルストレージ及びリソースを共有するモジュール

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090220

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090812

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111004

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120731

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5057755

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees