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

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

Info

Publication number
JP4958641B2
JP4958641B2 JP2007142426A JP2007142426A JP4958641B2 JP 4958641 B2 JP4958641 B2 JP 4958641B2 JP 2007142426 A JP2007142426 A JP 2007142426A JP 2007142426 A JP2007142426 A JP 2007142426A JP 4958641 B2 JP4958641 B2 JP 4958641B2
Authority
JP
Japan
Prior art keywords
logical volume
charge
logical
storage
primary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007142426A
Other languages
English (en)
Other versions
JP2008299434A (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 JP2007142426A priority Critical patent/JP4958641B2/ja
Priority to US11/968,363 priority patent/US7865676B2/en
Priority to EP08250194.1A priority patent/EP2015168B1/en
Publication of JP2008299434A publication Critical patent/JP2008299434A/ja
Priority to US12/954,938 priority patent/US8706986B2/en
Application granted granted Critical
Publication of JP4958641B2 publication Critical patent/JP4958641B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1012Load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms

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)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、記憶制御装置及びその制御方法に関し、特に、ホスト計算機からのデータの入出力を制御するマイクロプロセッサが複数のコア(計算機エンジン)からなる記憶制御装置に適用して好適なものである。
記憶制御装置は、記憶装置が提供する記憶領域上にデータを入出力するための論理的な領域でなる複数の論理ボリュームを作成し、作成した論理ボリュームをホスト計算機に提供する機能を有する。このような記憶制御装置は、ホスト計算機からの要求に応じて、論理ボリュームに対するデータの入出力を制御するコントローラを備えて構成される。
従来より、この種の記憶制御装置に対して、ホスト計算機から与えられるコマンドに対する処理の信頼性及び応答性の向上が求められている。そこで、近年では、記憶制御装置に複数のコントローラを設け、これら複数のコントローラによって処理を分散して実行する技術が提案されている。
特許文献1には、一方のコントローラが受信したコマンドに基づく処理を、そのコマンドを受信したコントローラが備えるロプロセッサと、他方のコントローラが備えるプロセッサとの両方のプロセッサを利用して実行する技術が開示されている。また特許文献2には、デュアルコントローラ構成の記憶制御装置が記載されている。
特開平9−146842号公報 特開平11−312058号公報
これら特許文献1及び2では、多重化したコントローラを備える記憶制御装置について開示されている。各コントローラには、そのコントローラがデータ入出力処理等を担当すべき論理ボリュームが対応付けられており、コントローラが担当外の論理ボリュームを対象とするコマンドをホスト計算機から受信した場合、そのコントローラはそのコマンドに応じた処理をかかる論理ボリュームを担当するコントローラに依頼する。
ところが、このように複数のコントローラを記憶制御装置に設けた場合、ホスト計算機からのデータ入出力要求が各コントローラに均等に発行されていても、そのデータ入出力処理自体は対象となる論理ボリュームを担当するコントローラによって行なわれるため、特定の論理ボリュームにアクセスが集中するような場合に、負荷がその論理ボリュームを担当するコントローラに偏ってしまう問題があった。そして、このように負荷が特定のコントローラに偏った場合、そのコントローラが担当する論理ボリュームに対するデータ入出力処理の処理速度が低下することとなる。
また上述のように複数のコントローラを記憶制御装置に設けた場合、論理ボリューム間でデータをコピーする際に、コピー元である正側の論理ボリュームと、コピー先である副側の論理ボリュームとを異なるコントローラが担当することもあり得る。しかしながら、このようにコピー元の論理ボリュームを担当するコントローラと、コピー先の論理ボリュームを担当するコントローラとが異なる場合、コピー処理の際にコントローラ間での通信が必要となり、その分コントローラの負荷が増加する問題があった。そしてこのようなコントローラの負荷の増加は、そのコントローラが担当する論理ボリュームに対するデータ入出力処理の処理速度の低下を引き起こす原因ともなり得る。
従って、上述のようなデータ入出力処理の処理速度の低下を防止するためには、コントローラ間で負荷の偏りが生じないように、またコピー元の論理ボリューム及びコピー先の論理ボリュームを同じコントローラが担当するように、論理ボリュームに対する担当のコントローラを設定する必要があり、この設定作業のために多くの労力及び時間を要する問題があった。
本発明は以上の点を考慮してなされたもので、コントローラ間の負荷の偏り等に起因するデータ入出力処理性能の劣化を有効かつ簡易に防止し得る記憶制御装置及びその制御方法を提供しようとするものである。
かかる課題を解決するため本発明においては、記憶装置が提供する記憶領域上にデータを入出力するための論理的な領域でなる複数の論理ボリュームを作成し、作成した前記論理ボリュームをホスト計算機に提供すると共に、前記ホスト計算機からの要求に応じて、前記論理ボリュームに対するデータの入出力を制御する記憶制御装置において、それぞれ自己が担当する前記論理ボリュームに対するデータの入出力を制御する複数の制御部と、各前記制御部の負荷状況を監視する負荷監視部と、前記負荷監視部の監視結果に基づいて、各前記制御部の負荷を均等化するように、前記論理ボリュームの担当を他の前記制御部に切り替える切替え部とを備えることを特徴とする。
また本発明においては、記憶装置が提供する記憶領域上にデータを入出力するための論理的な領域でなる複数の論理ボリュームを作成し、作成した前記論理ボリュームをホスト計算機に提供すると共に、前記ホスト計算機からの要求に応じて、前記論理ボリュームに対するデータの入出力を制御する記憶制御装置の制御方法において、前記記憶制御装置は、それぞれ自己が担当する前記論理ボリュームに対するデータの入出力を制御する複数の制御部を備え、各前記制御部の負荷状況を監視する第1のステップと、監視結果に基づいて、各前記制御部の負荷を均等化するように、前記論理ボリュームの担当を他の前記制御部に切り替える第2のステップとを備えることを特徴とする。
本発明によれば、各制御部の負荷を均等化することができ、制御部間の負荷の偏り等に起因するデータ入出力処理性能の劣化を有効かつ簡易に防止し得る記憶制御装置及びその制御方法を実現できる。
以下図面について、本発明の一実施の形態を詳述する。
(1)ストレージシステムの構成
図1は、本実施の形態によるストレージシステムを示す。このストレージシステム1は、ホスト計算機2A,2Bが記憶制御装置3を介して複数の記憶装置4A〜4Dに接続されることにより構成されている。
ホスト計算機2A,2Bは、例えばCPU(Central Processing Unit)やメモリなどの情報処理資源を備えたコンピュータであり、具体的にはパーソナルコンピュータ、ワークステーション又はメインフレームなどから構成される。ホスト計算機2A,2Bは、記憶制御装置3にアクセスするための通信ポート(例えばLANカードやホストバスアダプタに設けられたポート)を備えており、この通信ポートを介してデータの入出力要求コマンドを記憶制御装置3に送信することができる。
記憶制御装置3は、それぞれ異なるホスト計算機2A,2Bが接続された0系及び1系のコントローラ6A,6Bと、これらコントローラ6A,6B間を通信可能な状態に接続するコントローラ間接続経路5とから構成される。
コントローラ間接続経路5としては、例えば最大8レーンで1レーン当たりのデータ転送量が2〔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には、複数のマイクロプロセッサとの間で通信を行い得るマルチCPU機能が搭載されている。これによりホスト通信プロトコルチップ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,12Aにも書き込む(二重書き)。
またデータ転送制御部11A,11Bは、後述する自系及び他系のローカルメモリ14A,14B内の共有領域42A,42B(図4)に格納された情報が常に同じとなるように、一方の共有領域42A,42B内の情報を更新したときには、他方の共有領域42B,42A内の情報も同様に更新する。
ブリッジ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は、それぞれ複数のコア18A(18AX,18AY),18B(18BX,18BY)を備える。図1の例においては、マイクロプロセッサ15AはXコア18AXとYコア18AYとを備えており、マイクロプロセッサ15BXはコア18BXとYコア18BYとを備えている。各コア18A,18Bは適切なソフトウェア環境において複数のソフトウェア・スレッドを並列に実行する。各コア18A,18Bには、それぞれ自マイクロプロセッサの担当論理ボリュームのうちの1又は2以上の論理ボリュームが割り当てられる。そして各コア18A,18Bは、自己に割り当てられた論理ボリュームに対するデータの入出力処理の制御等を担当する。
各コア18A,18Bに対する論理ボリュームの割り当ては、各コア18A,18Bの負荷状況や、ホスト計算機2A,2Bから与えられる、論理ボリュームとその論理ボリュームに対するコマンドに応じた処理を担当すべきコア(以下、これを担当コアと呼ぶ)18A,18Bとを指定した担当指定コマンドの受信等によって動的に変更することが可能である。また、各コア18A,18Bに対する論理ボリュームの割り当ては、記憶制御装置3及びホスト計算機2A,2B間の接続経路や、記憶制御装置3及び記憶装置4A〜4D間の接続経路等における障害発生の有無によっても動的に変更することができる。
ローカルメモリ14A,14Bは、各種制御プログラムを格納するために用いられるほか、ホスト計算機2A,2Bから与えられるリードコマンドやライトコマンド等の各種コマンドを一時的に保持するために用いられる。マイクロプロセッサ15A,15Bは、このローカルメモリ14A,14Bに格納されたリードコマンドやライトコマンドを、当該ローカルメモリ14A,14Bに格納された順番で処理する。マイクロプロセッサ15A,15B自体を制御するマイクロプログラムは同じコントローラ6A,6B内のローカルメモリ14A,14Bに保存される。
このローカルメモリ14A,14Bは、ホスト計算機2A,2Bから送信されるコマンドを順番に処理するためのキュー構造を備える。このキュー構造について、図2を用いて詳しく説明する。図2は、コントローラ6Aにおけるキュー構造の概要を示している。図2では、1系のコントローラ6Bと、この1系のコントローラ6Bに接続されるコントローラ間接続経路5と、記憶装置4A〜4Dとが省略されている。ローカルメモリ6Aに対する以下の説明は、他系のローカルメモリ6Bにそのまま適用可能である。
かかるキュー構造は、ホスト通信制御部10Aのホスト通信プロトコルチップ21Aが受領したホスト計算機2Aからのコマンドを格納するための受領キュー200と、プロセッサ15AのXコア18AX又はYコア18AYが処理すべきコマンドを格納するためのコマンドキュー202とを備える。
受領キュー200は、ホスト通信制御部10Aの各通信ポート20Aにそれぞれ対応させて設けられており、これら通信ポート20Aに対してホスト計算機2Aが発行したコマンドがその通信ポート20Aと対応付けられた受領キュー200に格納される。例えば図2において、「a」という受領キュー200には、ホスト計算機2Aが「A」という通信ポート20Aに対して発行したコマンドが格納される。また「b」という受領キュー200には、ホスト計算機2Aが「B」という通信ポート20Aに対して発行したコマンドが格納され、「c」という受領キュー200には、ホスト計算機2Aが「C」という通信ポート20Aに対して発行したコマンドが格納される。さらに「d」という受領キュー200には、ホスト計算機2Aが通信ポート20Aに対して発行したコマンドが格納される。このような受領キュー200へのコマンドの格納は、ホスト通信プロトコルチップ21Aによって行なわれる。
各受領キュー200に格納されたコマンドは、その受領キュー200と対応付けられた通信ポート20Aの担当として設定されたコア18Aによって処理される。すなわち、受領キュー200ごとにその受領キュー200に格納されたコマンドを処理するコア18Aが予め設定されている。例えば図2では、「A」及び「B」という受領キュー200に格納されたコマンドはXコア18AXによって処理され、「C」及び「D」という受領キュー200に格納されたコマンドはYコア18AYによって処理される。Xコア18AX及びYコア18AYは、自己が担当する通信ポート20Aと対応付けられた受領キュー200からコマンドを順に読み出して、そのコマンドがいずれの論理ボリュームLUに対するコマンドであるか、いずれのコア18Aが実行すべきコマンドであるかなどの分析を行い、そのコマンドを対応するコマンドキュー202に格納する。
コマンドキュー202は、1つの論理ボリュームLUに対して複数設けられる。そして、論理ボリュームLUに対するコマンドがその論理ボリュームLUに対応付けられたコマンドキュー202に格納される。例えば図2の例では、LUNが「0」である論理ボリュームLUに対して「A」及び「B」というコマンドキュー202が設けられ、当該論理ボリュームLUに対するコマンドがこれら「A」及び「B」というコマンドキュー202に格納される。また、LUNが「1」である論理ボリュームLUには「C」及び「D」というコマンドキュー202が設けられ、当該論理ボリュームLUに対するコマンドがこれら「C」及び「D」というコマンドキュー202に格納される。LUNが「0」である論理ボリュームLUに対するリード又はライトコマンドの処理はXコア18AXが担当し、LUNが「1」である論理ボリュームLUに対するコマンドの処理はYコア18AYが担当する。
各コマンドキュー202へのコマンドの移動がどのコア18Aによって行なわれるか、さらに各コマンドキュー202に格納されたコマンドの処理を担当するコア18Aは、ローカルメモリ14Aに格納された特性表204に従う。
このように、本実施の形態においては、論理ボリュームLUごとにコマンド処理を行うコア18Aが定められているため、Xコア18AXとYコア18AYとが同一の論理ボリュームLUへの処理について競合することなく、Xコア18AXとYコア18AYとがそれぞれ独立して異なる論理ボリュームLUへのIOアクセスを処理できる。かくするにつき、例えば、1つの論理ボリュームLUに対する処理が2つのコア18Aで競合し、処理の負荷が掛かっていない一方のコア18Aが他方のコア18Aの処理を待たなければならないといった状況を避けることができるため、コントローラ6A,6B全体としてのホスト計算機2A,2Bからのコマンドを高速・高効率で処理することができる。
図1に戻りさらに説明を続ける。キャッシュメモリ12A,12Bは、主としてホスト計算機2A,2B及び記憶装置4A〜4D間や、0系及び1系のコントローラ6A,6B間で転送されるデータを一時的に記憶するために用いられる。
記憶装置通信制御部16A,16Bは、各記憶装置4A〜4Dとの通信を制御するインタフェースであり、記憶装置通信プロトコルチップ22A,22Bを備える。この記憶装置通信プロトコルチップ22A,22Bとしては、例えば記憶装置4A〜4DとしてFCハードディスクドライブを適用する場合にはFCプロトコルチップ、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の記憶制御装置3において行われるコマンド処理について説明する。このストレージシステム1の場合、記憶制御装置3を構成する0系及び1系の各コントローラ6A,6Bのメモリ空間には、それぞれ自系のコントローラ6A,6B内のメモリ領域に加えて、他系のコントローラ6B,6A内のメモリ領域もマッピングされている。これにより本実施の形態においては、0系及び1系のコントローラ6A,6Bが他系のコントローラ6B,6A内のメモリ領域にも直接アクセスできるようになされている。
そして、0系及び1系のコントローラ6A,6B内のマイクロプロセッサ15A,15Bの各コア18AX,18BXは、ホスト計算機2A,2Bから他系のコントローラ6B,6Aに割り当てられている論理ボリュームを対象とするライトコマンドやリードコマンドが与えられたときには、かかるライトコマンド又はリードコマンドを他系のローカルメモリ14B,14Aに書き込むようにして当該他系のコントローラ6B,6Aに転送する。
このようにこのストレージシステム1においては、ホスト計算機2A,2Bから0系又は1系のコントローラ6A,6Bに対して他系のコントローラ6B,6Aが実行すべきライトコマンドやリードコマンドが与えられたときに、そのライトコマンドやリードコマンドを他系のローカルメモリ14B,14Aに直接書き込むようにして中継するため、当該ライトコマンド又はリードコマンドの受け渡しのために0系及び1系のコントローラ6A,6B同士が通信を行なう必要がなく、その分迅速なライトコマンド処理又はリードコマンド処理を行うことができる。
図3(A)は、0系(CTL0)及び1系(CTL1)のマイクロプロセッサ15A,15Bがそれぞれ認識するコントローラ6A,6Bにおけるメモリ空間でのメモリマップを示す。また図3(B)は、0系及び1系のホスト通信プロトコルチップ10A,10Bがそれぞれ認識するメモリ空間のメモリマップを示す。
図3(A)において、0系のマイクロプロセッサ15Aが認識するメモリ空間は、「CTL0 Memory Map(CTL0プロセッサ側)」のフィールド30Bに登録されたメモリ又はレジスタがそれぞれ提供する記憶領域(「ADR」フィールド30Aに格納されたアドレス範囲の領域)からなるメモリ空間であり、1系のマイクロプロセッサ15Bが認識するメモリ領域は、「CTL1 Memory Map(CTL1 プロセッサ側)」のフィールド30Cに登録されたメモリ又はレジスタがそれぞれ提供する記憶領域(「ADR」フィールド30Aに格納されたアドレス範囲の領域)からなるメモリ空間である。
また図3(B)において、0系のホスト通信プロトコルチップ10Aが認識するメモリ空間は、「CTL0 Memory Map(CTL0 ホスト通信プロトコルチップ側)」のフィールド31Bに登録されたメモリやレジスタがそれぞれ提供する記憶領域(「ADR」フィールド31Aに格納されたアドレス範囲の領域)からなるメモリ空間であり、1系のホスト通信プロトコルチップ10Bが認識するメモリ領域は、「CTL1 Memory Map(CTL1 ホスト通信プロトコルチップ側)」のフィールド31Cに登録されたメモリがそれぞれ提供する記憶領域(「ADR」フィールド31Aに格納されたアドレス範囲の領域)からなるメモリ空間である。
図3(A)及び(B)のメモリマップのデータのうち、自系のローカルメモリ14A,14Bのアドレス(「0x0_00000000-0x0_7FFFFFFF」)及び自系のブリッジ13A,13Bのアドレス(「0x0_80000000-0x0_FFFFFFFF」)は、それぞれ自系のマイクロプロセッサ15A,15Bに接続された図示しないフラッシュメモリに第1のアドレス情報として予め格納され、図3(A)のこれ以外のアドレスは自系のデータ転送制御部11A,11B内に設けられた図示しないレジスタに第2のアドレス情報として予め格納されている。
そして、0系及び1系の各マイクロプロセッサ15A,15B及びホスト通信プロトコルチップ21A,21Bは、それぞれこれらフラッシュメモリ及びレジスタに格納された第1及び第2のアドレス情報に基づいてメモリ空間を図3(A)や図3(B)のようにそれぞれ認識でき、この認識結果に基づいて、自系内のローカルメモリ14A,14B及びキャッシュメモリ12A,12B等に加えて、他系のローカルメモリ14A,14Aやキャッシュメモリ12B,12Aなどにもアクセスすることができる。
図4(A)及び(B)は、それぞれ0系及び1系のコントローラ6A,6Bにおけるローカルメモリ14A,14Bのメモリ構成をそれぞれ示す。この図4(A)及び(B)に示すように、コントローラ6A,6Bは、かかる0系及び1系のローカルメモリ14A,14Bの記憶領域を、自系コントローラ受領コマンド格納領域40A,40B、他系コントローラ受領コマンド格納領域41A,41B及び共有領域42A,42Bの別個の3つの記憶領域に分けて管理している。自系コントローラ受領コマンド領域40A,40Bは、さらに自Xコア用領域40AX,40BXと自Yコア用領域40AY,40BYとに分けて管理され、他系コントローラ受領コマンド格納領域41A,41Bも同様に他Xコア用領域41AX,41BXと他Yコア用領域41AY,41BYとに分けて管理される。
このうち自系コントローラ受領コマンド格納領域40A,40Bでは、自Xコア用領域40AX,40BX内に制御情報格納領域40AXA,40BXAが設けられると共に、自Yコア用領域40AY,40BY内に制御情報格納領域40AYA,40BYAが設けられており、自系のホスト通信制御部10A,10Bが受信したライトコマンドやリードコマンド等の各種コマンドがこれら制御情報格納領域40AXA,40BXA,40AYA,40BYAに格納される。
また他系コントローラ受領コマンド格納領域41A,41Bでは、他Xコア用領域41AX,41BX内に制御情報格納領域41AXA,41BXAが設けられると共に、他Yコア用領域41AY,41BY内に制御情報格納領域41AYA,41BYAが設けられており、他系のコントローラ6B,6Aのホスト通信制御部10B,10Aが受信した一般的なコマンド及び制御情報がこれら制御情報格納領域41AXA,41AYB,41BXA,41BYAに格納される。
さらに他系コントローラ受領コマンド格納領域41A,41Bでは、他Xコア用領域41AX,41BX内に実行処理格納領域41AXB,41BXBが設けられると共に、他Yコア用領域41AY,41BY内に実行処理格納領域41AYB,41BYBが設けられており、他系コントローラ6B,6Aの担当論理ボリュームに関する処理を自系コントローラ6A,6Bが新たに担当する際に、他系コントローラ6B,6A内で受信コマンドが解析された後の実行処理内容がこれらの実行処理格納領域41AXB,41BXB,41AYB,41BYBに格納される。これは他系コントローラ6Bのマイクロプロセッサ15A,15Bが障害などによって閉塞したような場合に行なわれる。
さらに共有領域32A,32Bには、担当管理テーブル43A,43B、内部コピーペア管理テーブル44A,44B、スナップショットペア管理テーブル45A,45B、非同期リモートコピーペア管理テーブル46A,46B、リモートコピーペア管理テーブル47A,47B及びプール管理テーブル48A,48Bが格納される。これらテーブルの詳細については、後述する。
(2)負荷分散機能
(2−1)各種テーブルの構成
次に、かかる記憶制御装置3に搭載された負荷分散機能について説明する。本実施の形態の場合、記憶制御装置3には、例えばペアを構成する論理ボリューム同士のように、同じコア18A,18Bが担当することが望ましい相互に関連する複数の論理ボリュームについては、コピーペアの作成時に、これら複数の論理ボリュームの担当を一括して1つのコア18A,18Bに切り替える第1の負荷分散機能が搭載されている。
また本実施の形態の場合、記憶制御装置3には、各コントローラ6A,6Bのマイクロプロセッサ15A,15Bの各コア18A,18Bの負荷状況を監視し、各コア18A,18Bの負荷を均等化するように、負荷の大きいコア18A,18Bに割り当てられた論理ボリュームの担当を、負荷の少ないコア18A,18Bに切り替える第2の負荷分散機能が搭載されている。この際、記憶制御装置3は、同じコア18A,18Bが担当することが望ましい相互に関連する複数の論理ボリュームについては、第1の負荷分散機能と同様に、これら複数の論理ボリュームの担当を一括して1つのコア18A,18Bに切り替える。
このような第1及び第2の負荷分散機能を実現するための手段として、記憶制御装置3の各コントローラ6A,6Bのローカルメモリ14A,14Bにおける共有領域42A,42Bには、それぞれ上述のように担当管理テーブル43A,43B、内部コピーペア管理テーブル44A,44B、スナップショットペア管理テーブル45A,45B、非同期リモートコピーペア管理テーブル46A,46B、リモートコピーペア管理テーブル47A,47B及びプール管理テーブル48A,48Bが格納される。
担当管理テーブル43A,43Bは、記憶装置4A〜4D内に形成された各論理ボリュームの担当コントローラ6A,6B及び担当コアを管理するためのテーブルであり、論理ボリュームごとにその生成時に作成される。各コア18A,18Bは、これら各論理ボリュームの担当管理テーブル43A,43Bに基づいて、自コアがその論理ボリュームの担当であるか否かを認識する。
この担当管理テーブル43A,43Bは、図5に示すように、「担当コントローラ」欄43CA及び「担当コア」欄43CBから構成される。このうち「担当コントローラ」欄43CAには、その論理ボリュームに対するリードコマンドやライトコマンドなどのコマンドに応じた処理(コマンド処理)を担当するコントローラ(以下、これを担当コントローラと呼ぶ)6A,6Bに付与された識別番号が格納される。また「担当コア」欄43CBには、そのコントローラ6A,6B内のマイクロプロセッサ15A,15Bが備える18A,18Bのうち、その論理ボリュームの担当コア18A,18Bに付与された識別番号が格納される。
内部コピーペア管理テーブル44A,44Bは、内部コピーを行う論理ボリュームのペア(以下、これを内部コピーペアと呼ぶ)を管理するためのテーブルであり、論理ボリュームごとに作成される。なお、内部コピーとは、同じ記憶装置4A〜4D内の論理ボリューム間で行われるデータのコピーのことをいう。この内部コピーペア管理テーブル44A,44Bは、図6に示すように、「ペア状態」欄44CA、「ペア属性」欄44CB、「相手LUN」欄44CC、「ミラー番号」欄CD、「コピースピード」欄44CE、「グループ種別」欄44CF、「グループID」欄44CG及び「副LUN」欄44CHから構成される。
「ペア状態」欄44CAには、その論理ボリュームが形成するコピーペアのペア状態を表すコードが格納される。このようなペア状態としては、その論理ボリュームについて内部コピーペアのペア定義がされていない状態(「SMPL」)と、初期コピー中又は再同期コピー中の状態(「COPY」)と、内部コピーペアの正側及び副側のデータ内容が一致した状態(「PAIR」)と、内部コピーペアの正側の内容が副側に反映されない状態(「PSUS」)となどがある。
また「ペア属性」欄44CBには、その論理ボリュームがコピーペアを形成している場合に、その論理ボリュームのペア属性(正側又は副側)を表すコードが格納される。さらに「相手LUN」欄44CCには、その論理ボリュームが内部コピーペアの副側に設定されている場合に、正側の論理ボリュームの論理ボリューム番号が格納される。この「相手LUN」欄44CCは、その論理ボリュームが内部コピーペアの正側であるときには参照できない。
さらに本実施の形態の場合、内部コピーペアについては、最大8個までの副側を設定できる。そして、その論理ボリュームの副側としての順位を表す番号が「ミラー番号」欄44CDに格納される。また「コピースピード」欄44CEには、内部コピーにおける初期コピーや再同期コピーの際のコピースピードとして設定されたスピードに応じたコードが格納される。
さらに本実施の形態の場合、複数の内部コピーペアを1つのグループとして設定できる。そして「グループ種別」欄44CFには、その設定が有効か無効かを表すコードが格納される。また、その論理ボリュームがいずれかのグループに属する場合には、そのグループに付与されたIDが「グループID」欄44CGに格納される。
なお、「ミラー番号」欄44CD、「コーススピード」欄44CE、「グループ種別」欄44CF及び「グループID」欄44CGに格納された数値は、対応する論理ボリュームが内部コピーペアの副側に設定されているときにのみ有効値となる。
さらに「副LUN」欄44CHには、その論理ボリュームが内部コピーペアの正側に設定されている場合に、副側の論理ボリュームの論理ボリューム番号が格納される。なお、上述のように本実施の形態においては、内部コピーペアの副側を最大8個まで設定することができるため、「副LUN」欄44CHには、副側として設定された各論理ボリュームの論理ボリューム番号がそれぞれ格納されることとなる。
一方、スナップショットペア管理テーブル45A,45Bは、論理ボリュームと、その論理ボリュームのスナップショットのデータ(更新前のデータ)を格納するプールボリュームとのペア(以下、これをスナップショットペアと呼ぶ)を管理するためのテーブルであり、論理ボリュームごとに作成される。このスナップショットペア管理テーブル45A,45Bは、図7に示すように、「ペア状態」欄45CA、「ペア属性」欄45CB、「相手LUN」欄45CC、「副LU数」欄45CD、「副LUN」欄45CE、「ミラー番号」欄45CF、「グループID種別」欄45CG、「グループID」欄45CH及び「プールボリューム番号」欄45Iから構成される。
「ペア状態」欄45CAには、その論理ボリュームのスナップショットペアに関するペア状態を表すコードが格納される。また「ペア属性」欄45CBには、その論理ボリュームが他の論理ボリュームとスナップショットペアに設定されている場合に、当該論理ボリュームのペア属性(正側又は副側)を表すコードが格納される。
さらに「相手LUN」欄45CCには、その論理ボリュームがスナップショットペアの副側(つまりプールボリューム)に設定されている場合に、正側の論理ボリュームの論理ボリューム番号が格納される。この「相手LUN」欄45CCは、その論理ボリュームがスナップショットペアの正側であるときには参照できない。
さらに「副LU数」欄45CDには、その論理ボリュームと共にスナップショットペアを形成している副側の論理ボリューム(つまりプールボリューム)の数が格納される。本実施の形態の場合、かかるスナップショットペアの副側として、最大32個の論理ボリュームを設定することができる。また「副LUN」欄45CEには、その論理ボリュームが形成するスナップショットペアの副側の論理ボリュームの論理ボリューム番号が格納される。この「副LUN」欄45CEは、対応する論理ボリュームのペア属性が正側である場合にのみ参照することができる。
さらに「ミラー番号」欄45CFには、その論理ボリュームがスナップショットペアの副側である場合に、当該論理ボリュームの副側としての順位を表す番号が格納される。さらに本実施の形態の場合、複数のスナップショットペアを1つのグループとして設定できる。そして「グループID種別」欄45CGには、その設定が有効か無効かを表すコードが格納される。また、その論理ボリュームがいずれかのグループに属する場合には、そのグループに付与されたIDが「グループID」欄45CHに格納される。
さらに「POOL番号」欄45CIには、その論理ボリュームがスナップショットペアの正側である場合に、副側の論理ボリューム(プールボリューム)の識別番号であるプールボリューム番号が格納される。この「POOL番号」欄45CIは、対応する論理ボリュームがスナップショットペアの正側である場合にのみ参照することができる。
非同期リモートコピーペア管理テーブル46A,46Bは、非同期リモートコピーを行う論理ボリュームのペア(以下、これを非同期リモートコピーペアと呼ぶ)を管理するためのテーブルであり、論理ボリュームごとに作成される。ここで非同期リモートコピーとは、正側及び副側の各論理ボリュームがそれぞれ異なる記憶装置4A〜4D内に作成され、正側の論理ボリュームに対するデータの書き込みとは非同期に正側及び副側の各論理ボリューム間でデータをコピーするコピー方法である。この場合、正側及び副側の記憶装置4A〜4Dでは、それぞれ正側の論理ボリュームや副側の論理ボリュームのスナップショットを定期的に作成する。
かかる非同期リモートコピーペア管理テーブル46A,46Bは、「ペア状態」欄46CA、「ペア属性」欄46CB、「コンシステンシグループID」欄46CC、「相手LUN」欄46CD、「コピースピード」欄46CE及び「プール番号」欄46CFから構成される。
このうち「ペア状態」欄46CAには、対応する論理ボリュームの非同期リモートコピーに関するペア状態を表すコードが格納される。また「ペア属性」欄46CBには、その論理ボリュームが他の論理ボリュームと非同期リモートコピーペアに設定されている場合に、当該論理ボリュームのペア属性(正側又は副側)を表すコードが格納される。
さらに「コンシステンシグループID」欄46CCには、その論理ボリュームが形成するコンシステンシグループに付与された識別番号(コンシステンシグループ番号)が格納される。なお、コンシステンシグループとは、例えばデータベースの目次データが格納された論理ボリュームと、そのデータベースの検索データが格納された論理ボリュームと、ログデータが格納された論理ボリュームとなどのように、関連するデータがそれぞれ格納された複数の論理ボリュームをまとめたグループをいう。
「相手LUN」欄46CDには、その論理ボリュームが非同期リモートコピーペアの副側に設定されている場合に、正側の論理ボリュームの論理ボリューム番号が格納され、「コピースピード」欄46CEには、非同期リモートコピーにおける初期コピーや再同期コピーの際のコピースピードとして設定されたスピードに応じたコードが格納される。さらに「プールボリューム番号」欄46CFには、その論理ボリュームのスナップショットのデータが保存されるプールボリュームのプールボリューム番号が格納される。
リモートコピーペア管理テーブル47A,47Bは、リモートコピーを行う論理ボリュームのペア(以下、これをリモートコピーペアと呼ぶ)を管理するためのテーブルであり、論理ボリュームごとに作成される。ここでリモートコピーとは、正側の記憶装置4A〜4D内に設けられた正側の正側の論理ボリュームに書き込まれたデータを、当該論理ボリュームへのデータ書き込みと同期して、副側の記憶装置4A〜4D内に作成された副側の論理ボリュームにコピーするコピー方法である。このとき正側及び副側の記憶装置4A〜4Dでは、それぞれ正側又は副側の論理ボリュームのスナップショットを定期的に作成する。
なお、かかるリモートコピーペア管理テーブル47A,47Bは、非同期リモートコピーペア管理テーブル46A,46Bと同様の構成を有するものであるため、ここでの説明は省略する。
他方、プール管理テーブル48A,48Bは、プールボリュームを形成する論理ボリュームを管理するためのテーブルであり、いずれかのプールボリュームに属する論理ボリュームごとに作成される。このプール管理テーブル48A,48Bは、図9に示すように、「論理ボリューム番号」欄48CA、「先頭プールフラグ」欄48CB及び「所属プール番号」欄48CCから構成される。
そして「論理ボリューム番号」欄48CAには、対応するプールボリュームに所属する各論理ボリュームの論理ボリューム番号が格納され、「先頭プールフラグ」欄48CBには、その論理ボリュームがそのプールボリュームにおいける先頭部分のアドレスが割り振られた論理ボリュームであるか否かを表すコードが格納される。また「所属プールボリューム番号」欄48CCには、その論理ボリュームが所属するプールボリュームのプール番号が格納される。
(2−2)第1の負荷分散機能に関するコアの処理
図10は、上述の第1の負荷分散機能に関する各コア18A,18Bの具体的な処理内容を示している。
各コア18A,18Bは、ホスト計算機2A,2Bから内部コピーペア、スナップショットペア、リモートコピーペア又は非同期リモートコピーペアを形成すべき旨のコマンドが与えられると、ローカルメモリ14A,14Bに格納された対応する制御プログラムに基づいてこの図10に示すペア形成処理を開始し、まず、正側となる論理ボリュームの担当管理テーブル43A,43Bと、副側となる論理ボリュームの担当管理テーブル43A,43Bとを参照して、これら正側の論理ボリューム及び副側の論理ボリュームの担当コントローラ6A,6B及び担当コア18A,18Bの識別番号を取得する(SP1)。
続いてコア18A,18Bは、正側又は副側の論理ボリュームの担当を変更すべきか否かを判断する(SP2)。具体的に、コア18A,18Bは、かかるペア作成コマンドが内部コピーペアを作成すべき旨のコマンドであった場合には、正側の論理ボリュームの担当コア18A,18Bと、副側の論理ボリュームの担当コア18A,18Bとが同じであるか否かを判断する。またコア18A,18Bは、かかるペア作成コマンドがスナップショットペアを作成すべき旨のコアンドであった場合には、正側の論理ボリュームの担当コア18A,18Bと、そのスナップショットのデータを格納する副側のプールボリュームの担当コア18A,18Bとが同じであるか否かを判断する。さらにコア18A,18Bは、かかるペア作成コマンドが非同期リモートコピーペア又はリモートコピーペアを作成すべき旨のコマンドであった場合には、自己が担当する正側又は副側の論理ボリュームの担当コア18A,18Bと、その論理ボリュームのスナップショットのデータを格納するプールボリュームの担当コア18A,18Bとが同じであるか否かを判断する。
そしてコア18A,18Bは、この判断において肯定結果を得るとステップSP4に進み、これに対して否定結果を得ると、対応する正側又は副側の論理ボリュームの担当コア18A,18Bを副側又は正側の論理ボリュームの担当コア18A,18Bに切り替える(SP3)。
具体的にコア18A,18Bは、かかるペア作成コマンドが内部コピーペアを作成すべき旨のコマンドであった場合には、論理ボリューム切替えテーブル43A,43B(図5)上の副側の論理ボリュームの担当コントローラ6A,6B及び担当コア18A,18Bを、正側の論理ボリュームの担当コントローラ6A,6B及び担当コア18A,18Bと同じ担当コントローラ6A,6B及び担当コア18A,18Bに変更する。またコア18A,18Bは、かかるペア作成コマンドがスナップショットペアを作成すべき旨のコマンドであった場合には、論理ボリューム切替えテーブル43A,43B上の正側の論理ボリュームの担当コントローラ6A,6B及び担当コア18A,18Bを、副側であるプールボリュームの論理ボリュームの担当コントローラ6A,6B及び担当コア18A,18Bと同じ担当コントローラ6A,6B及び担当コア18A,18Bに変更する。さらにコアは、かかるペア作成コマンドが非同期リモートコピーペア又はリモートコピーペアを作成すべき旨のコマンドであった場合には、自己が担当する正側又は副側の論理ボリュームの担当コントローラ6A,6B及び担当コア18A,18Bを、その論理ボリュームのスナップショットのデータを格納するプールボリュームの担当コントローラ6A,6B及び担当コア18A,18Bに変更する。
そしてコア18A,18Bは、この後、対応する記憶装置4A〜4Dを制御して正側の論理ボリュームのデータを副側の論理ボリュームに初期コピーさせる(内部コピーペアの場合)などの所定のペア形成処理を実行し、この後このペア形成処理を終了する。
(2−3)第2の負荷分散機能に関するコアの処理
一方、図11は、上述の第2の負荷分散機能に関する各コア18A,18Bの具体的な処理内容を示すフローチャートである。各コア18A,18Bは、ローカルメモリ14A,14Bに格納された対応する制御プログラムに基づき、周期的(以下、5秒毎とする)にこの図11に示す第2の負荷分散処理を実行する。
実際上、コア18A,18Bは、この第2の負荷分散処理を開始すると、まず、ストレージシステム1が自コアに割り当てられた論理ボリュームを他のコア18A,18Bの担当に切り替えるための前提条件を満たしているか否かを判断する(SP10)。
本実施の形態の場合、かかる前提条件として、性能モニタの対象項目に対する監視設定がすべてオン(つまりすべての対象項目について性能データを取得する設定)になっていることや、いずれかの論理ボリュームの担当コア18A,18Bを切り替えてから1分を超えていることなどが規定されている。前者は、負荷分散処理を行う場合、かかる対象項目すべてを監視する必要があるからであり、後者は、頻繁に論理ボリュームの担当コア18A,18Bの切り替えが発生すると、担当コア18A,18Bの切替え処理時におけるオーバヘッドにより逆に性能が劣化するおそれがあるからである。なお、性能モニタは、マイクロプロセッサ15A,15Bが常時行っているデータ入出力性能に関する監視処理であり、この性能モニタの対象項目としては、自マイクロプロセッサ15A,15B内の各コア18A,18Bがそれぞれ担当している各論理ボリュームごとの1秒当たりのデータ入出力回数(IOPS)や、自マイクロプロセッサ15A,15B内の各コア18A,18Bの1秒当たりの使用率(=処理時間/モニタ時間)などがある。
コア18A,18Bは、ステップSP10の判断において否定結果を得るとこの第2の負荷分散処理を終了し、これに対して肯定結果を得ると、かかる性能モニタにより得られた各対象項目の性能データの中から自コアの負荷状況を表すデータを取得し、このデータに基づいて自コアの負荷状況を数値化する(SP11)。具体的に、コア18A,18Bは、かかる性能モニタにより得られた自コアの1秒ごとの使用率を5秒ごとに平均化したもの(以下、これを平均使用率と呼ぶ)を、過去3分間分算出する。
その後コア18A,18Bは、ステップSP11において算出した自コアの過去3分間の平均使用率が、予め定められた第1の切替え条件を満たしているか否かを判断する(SP12)。本実施の形態の場合、かかる第1の切替え条件として、第1に、過去3分間における5秒毎の自コアの平均使用率(合計36個)のうち、値が80%以上であるものが8個以上あること、第2に、過去3分間における1分ごとのすべての期間において自コアの平均使用率が80%を超える期間がなかったこと、第3に、過去3分間において5秒毎の自コアの平均使用率の平均が70%以上であることなどが規定されている。
そしてコア18A,18Bは、自コアの過去3分間における5秒後との平均使用率がかかる第1の切替え条件のいずれも満たさない場合には、この第2の負荷分散処理を終了する。
これに対してコア18A,18Bは、自コアの過去3分間における5秒ごとの平均使用率がかかる第1の切替え条件のいずれか1つでも満たす場合には、他のコア18A,18B(他のコントローラ6B,6A内のマイクロプロセッサ15B,15Aが備えるコア18B,18Aを含む)の中から自コアが担当している論理ボリュームの担当切替え先とするコア18A,18Bを決定する(SP13〜SP15)。
具体的には、コア18A,18Bは、まず、他のコア18A,18B(自プロセッサ内の他のコア18A,18Bも含む)のそれぞれについて、その過去3分間における5秒後との平均使用率をステップSP11と同様に算出する(SP13)。
続いてコア18A,18Bは、これら他のコア18A,18Bの中に予め定められた第2の切替え条件を満たすコア18A,18Bが存在するか否かを判断する(SP14)。本実施の形態の場合、かかる第2の切替え条件として、第1に、そのコア18A,18Bの過去3分間における5秒ごとの平均使用率のうち80%となったものが1つもないこと、第2に、そのコア18A,18Bの過去3分間における5秒ごとの平均使用率の平均が40%以下であることが規定されている。
そしてコア18A,18Bは、他のコア18A,18Bの中にかかる第2の切替え条件をすべて満たすコア18A,18Bが存在する場合には、そのコア18A,18Bを、自コアの担当論理ボリュームの担当切替え先として決定する(SP15)。
なおコア18A,18Bは、ステップSP14の判断においてかかる第2の切替え条件をすべて満たす他のコア18A,18Bが複数存在したときには、自コントローラ6A,6B内の他のコア18A,18Bを優先的に担当切替え先として決定する。これはコア18A,18B間の担当切替え処理がコントローラ6A,6B間での担当切替え処理に比べてオーバヘッドが少ないからである。またコア18A,18Bは、かかる他のコア18A,18Bが自コントローラ6A,6B内に存在しないときには、他のコントローラ6B,6A内のマイクロプロセッサ15B,15Aが備える他のコア18B,18Aのうち、過去3分間における5秒ごとの平均使用率が最も低いコア18B,18Aを担当切替え先として決定する。これは他のコントローラ6B,6Aの場合、かかる平均使用率が最も低いコア18B,18Aを担当切替え先とした方が負荷分散を図れるからである。
続いてコア18A,18Bは、自己が担当する論理ボリュームの中から、ステップSP15において決定した他のコア18A,18Bに担当を切り替える論理ボリュームの候補を選択する(SP16〜SP19)。
この場合において、かかる候補を選択する方法としては、そのコア18A,18Bが担当している各論理ボリュームについて、その論理ボリュームに対するそのコア18A,18Bの使用率(=(その論理ボリュームに関する処理時間)/モニタ時間)をそれぞれ算出し、この使用率(以下、これをコア使用率と呼ぶ)が最も大きい論理ボリュームを選択する方法が考えられる。しかしながら、現状では論理ボリュームごとのコア使用率を取得することは難しく、また論理ボリュームごとのコア使用率を取得しようとすると、数多くの場所に情報取得用の処理を追加する必要があり、性能的に問題が発生する。
そこで、本実施の形態においては、かかる候補の論理ボリュームを選択する方法として、現状の性能モニタで採用している論理ボリュームごとの1秒当たりのデータ入出力数の比率から、そのコア18A,18Bが担当している論理ボリュームごとのコア使用率の近似値を算出する(SP16、SP17)。
具体的には、コア18A,18Bは、自己が担当する各論理ボリュームについて、次式
Figure 0004958641
によりコア使用率をスコア化する(SP16)。この(1)式において、その論理ボリュームに格納されたデータについてリードミスした(当該データが読出し対象のデータがキャッシュメモリ12A,12Bに格納されていなかった)1秒当たりの回数の過去1分間での平均値、Rhはリードヒットした(読出し対象のデータがキャッシュメモリ12A,12Bに格納されていた)1秒当たりの回数の過去1分間での平均値、Wはその論理ボリュームにデータを書き込んだ1秒当たりの回数の過去1分間での平均値、Thはリードヒットのオーバヘッド係数、Twはライトのオーバヘッド係数をそれぞれ表す。
なお、本実施の形態の場合、Thについては0.3が適用される。またTwについては、記憶装置4A〜4DのRAIDレベルやその論理ボリュームが形成するコピーペアのペア状態に応じた値が適用される。例えばRAIDレベルが「1」のときには2.5、「5」のときには5、「0」のときには1が適用される。ただし、その論理ボリュームが内部コピーペア、リモートコピーペア又は非同期リモートコピーペアの正側であり、かつその内部コピーペア、リモートコピーペア又は非同期リモートコピーペアのペア状態が正側及び副側のデータが一致している状態(「PAIR」)である場合には、上記値にそれぞれ2、1.5又は4を乗じた値がTwとして適用される。また、その論理ボリュームがスナップショットコピーペアの正側であり、かつそのスナップショットコピーペアのペア状態がスプリット状態(「PSUS」)である場合には、上記値に4を乗じた値がTwとして適用される。
続いてコア18A,18Bは、ステップSP16において算出した論理ボリュームごとのスコアに基づいて、これら論理ボリュームごとのスコアの比率と、自コア全体の使用率とからかかる論理ボリュームごとのコア使用率を算出する(SP17)。
そしてコア18A,18Bは、この後、上述のようにして得られた論理ボリュームごとのコア使用率に基づいて、担当を切り替える論理ボリュームを選択する(SP18)。具体的にコア18A,18Bは、担当を切り替える論理ボリュームとして、担当を切り替えた後の担当切替え元のコア使用率及び担当切替え先のコア使用率を均一化するため、そのコア使用率が、担当切替え元のコア(自コア)の過去1分間のコア使用率と、担当切替え先のコアの過去1分間のコア使用率との差の半分に最も近いという要件(以下、これを対象論理ボリューム選択要件と呼ぶ)を満たす論理ボリュームを選択する。
この際、コア18A,18Bは、そのとき対象としている論理ボリュームの内部コピーペア管理テーブル44A,44B(図6)、スナップショットペア管理テーブル45A,45B(図7)、非同期リモートコピーペア管理テーブル47A,46B(図8)及びリモートコピーペア管理テーブル48A,48B(図4)をそれぞれ参照して、その論理ボリュームが内部コピーペア、スナップショットペア、非同期リモートコピーペア又はリモートコピーペアのいずれかを構成しているか否かと、その論理ボリュームがコンシステンシグループを構成しているか否かとを判定する。
そしてコア18A,18Bは、その論理ボリュームがいずれかのコピーペアを構成していたり、コンシステンシグループを構成しているときには、かかるコピーペアの相手側の論理ボリュームや、かかるコンシステンシグループを構成する他の論理ボリューム、さらに相手側の論理ボリュームがプールボリュームであるときにはそのプールボリュームにマッピングされた他の論理ボリュームなど、その論理ボリュームと相互に関連する他の論理ボリュームを1つの論理ボリューム群として、かかる対象論理ボリューム選択要件を満たす論理ボリューム群を選択する。
ただし、この対象論理ボリューム選択要件を満たす論理ボリューム又は論理ボリューム群であっても、±3%以内のクロス論理ボリューム(リードコマンドやライトコマンドの90%以上が、担当でないコントローラ6B,6A側からきている論理ボリューム)が存在する場合には、担当でないコントローラ6B,6Aを担当コントローラ6A,6Bにすることを優先するため、このクロス論理ボリュームの中から最も近いものを選択する。
その後コア18A,18Bは、ステップSP18において選択した論理ボリューム又は論理ボリューム群全部の担当をステップSP15において選択したコア18A,18Bに切り替えることができるか否かを判断する(SP19)。具体的には、本実施の形態に場合、その論理ボリューム又は論理ボリューム群全部の担当を切り替えた後の切替え先のコア18A,18Bの使用率が、切り替え前の切替え元のコア18A,18Bの使用率の−10%以上になると予想される場合には担当を切り替えることができない。これは、例えばかかる切替え元のコア18A,18Bの使用率が70%、切替え先のコア18A,18Bの使用率が40%であるものとすると、切替え対象の論理ボリューム又は論理ボリューム群としてそのコア使用率(論理ボリューム群のときには当該論理ボリューム群全体でのコア使用率)が30%の論理ボリューム又は論理ボリューム群を選択した場合、担当を切り替えた後も負荷バランスが不均衡であることに変わりがないからである。
そしてコア18A,18Bは、ステップSP19の判断において否定結果を得ると、5つ目の候補を選択し終えたか否かを判断する(SP20)。そしてコア18A,18Bは、この判断において否定結果を得ると、同様の処理を最大5回繰り返す(SP18〜SP20−SP19)。最大回数を設けた理由は、同様の処理をさらに続けると処理時間が長くなることから、これを回避するためのである。なお、この最大回数は5回以外であっても良い。そしてコア18A,18Bは、ステップSP18〜ステップSP20の処理を5回繰り返しても担当切替え条件を満たす論理ボリューム又は論理ボリューム群を選択できなかった場合には、担当切替え対象となる論理ボリューム又は論理ボリューム群が存在しないものとして所定のエラー処理を行った後(SP21)、この第2の負荷分散処理を終了する。
一方、コア18A,18Bは、かかるステップSP18〜ステップSP20の処理により切替え対象の論理ボリューム又は論理ボリューム群を選択できた場合には、その論理ボリューム又は論理ボリューム群の担当をステップSP15において決定したコア18A,18Bに切り替えることができるか否かを判断する(SP22)
この場合において、例えばステップSP24について後述する担当切替え抑止時間内ではかかる担当の切り替えを行なえないため、このステップSP22において否定結果を得ることになる。かくしてこのときコア18A,18Bは、かかる担当の切り替えを行なうことなく、この第2の負荷分散処理を終了する。
これに対してコア18A,18Bは、ステップSP22の判断において肯定結果を得ると、かかる担当の切り替えを行なう。具体的は、コア18A,18Bは、他コントローラ6B,6Aのローカルメモリ14B,14Aの共有領域42A,42B(図4)に格納されている、その論理ボリューム又はその論理ボリューム群を構成する各論理ボリュームの担当管理テーブル43A,43B(図5)上の「担当コア」欄43CAに格納されたコードと、「担当コントローラ」欄43CBに格納されたコードとを、それぞれステップSP15において選択したコア18A,18Bのコードと、当該コア18A,18Bを備えるマイクロプロセッサ15A,15Bが属するコントローラ6A,6Bのコードとに書き換える。またコア18A,18Bは、これと併せて、他コントローラ6B,6Aのローカルメモリ14B,14Aの共有領域42B,42Aに格納されている担当管理テーブル43B,43Aについても同様に更新する。
そしてコア18A,18Bは、この後記憶制御装置3内のすべてのコア18A,18Bについて、上述のように論理ボリュームの担当を切り替える処理を一定時間(これを担当切替え抑止時間と呼ぶ)だけ抑止するための設定を行い(SP24)、この後この第2の負荷分散処理を終了する。
(3)コマンド発行分担機能
次に、本実施の形態による記憶制御装置の各コントローラに搭載されたもう1つの特徴的な機能であるコマンド発行分担機能について説明する。
従来、複数のコントローラを備える記憶制御装置では、リモートコピーを行う場合に、イニシエータ側(コマンド発行側)の記憶装置4A〜4Dを制御する処理と、ターゲット側(コマンド受領側)の記憶装置4A〜4Dを制御する処理との双方の処理を行う。この場合において、従来の記憶制御装置では、イニシエータ側の記録装置4A〜4Dを制御する処理のうち、SCSIコマンドの発行は、正側の論理ボリュームの担当コントローラ(より具体的には担当コア)が行い、それ以外のリンクサービス系のコマンドの発行は、そのコマンドをターゲット側の記憶装置4A〜4Dに送信する際に使用する通信ポート20Aを担当しているコントローラ(より具体的には担当コア)が行なっている。
しかしながら、本実施の形態のストレージシステム1では、正側の論理ボリュームの担当コントローラ6A,6Bでないコントローラ6A,6Bが担当している通信ポート20Aを介してSCSIコマンドを発行することが可能であり、実際上、負荷や障害等の影響によりそのようなケースが発生することもあり得る。
このような状況のもと、リンクサービス系のコマンドのうち、SCSIコマンドと関連して発行されるコマンドについてまでも、当該コマンドを送信する際に使用する通信ポート20Aを担当しているコントローラ6A,6Bが行なうものとすると、正側の論理ボリュームの担当コントローラ6A,6Bと、そのコマンドを発行する通信ポート20Aを担当するコントローラ6B,6Aとが異なる場合に、これらコントローラ6A,6B間でコマンドの受け渡しのための通信が発生し、その分の負荷がコントローラ6A,6Bに発生する問題がある。
そこで、本実施の形態の記憶制御装置には、リンクサービス系のコマンドのうち、SCSIコマンドと関連して発行されるコマンドについては正側の論理ボリュームの担当コントローラ6A,6Bが発行し、リンクサービス系のこれ以外のコマンド(特にポート単位の処理に関するコマンド)については、そのコマンドをターゲット側の記憶装置4A〜4Dに送信する際に使用する通信ポート20Aを担当しているコントローラ6B,6Aが発行を担当するコマンド発行分担機能が搭載されている。
具体的には、例えば発行したSCSIコマンドに関してタイムアウトが発生した場合などに、ターゲット側の記憶装置4A〜4DにそのSCSIコマンドに基づく処理を強制終了させる目的で使用されるABTS(Abort Sequence)コマンドについては、正側の論理ボリュームの担当コントローラ6A,6Bが発行を担当する。一方、ABTSコマンドを発行しても繰り返しタイムアウトになった場合などに、ターゲット側の記憶装置4A〜4Dに対応する通信ポート20Aをリセットさせる目的で使用されるPLOGI(Port Log In)コマンドについては、当該PLOGIコマンドをターゲット側に送信する際に使用する通信ポート20Aを担当するコントローラ6B,6Aが発行を担当する。
このような本実施の形態によるコマンド発行分担機能に関する具体的な記憶制御装置内での一連の処理の流れを図12に示す。なお、以下においては、これから形成しようとするコピーペアの正側の論理ボリュームの担当コントローラは1系のコントローラ6Bであり、0系のコントローラ6Aが担当している通信ポート20Aを介して記憶制御装置3がイニシエータ側の記憶装置4A〜4Dにログインしようとしているものとする。また以下においては、処理主体を0系又は1系のコントローラ6A,6Bとして説明するが、より具体的にはその0系又は1系のコントローラ6A,6B内のコア18A,18Bが処理を行うことは言うまでもない。
図12(A)は、0系のコントローラ6Aがかかる通信ポート(「0A」)20Aを介してイニシエータ側の記憶装置4A〜4DにログインするためのPLOGINコマンド(「PLOGI」)を発行し、この結果、その記憶装置4A〜4Dの所定のポートにログインした状態を示している。0系のコントローラ6Aは、かかるログインを完了すると、ログイン先の記憶装置4A〜4DのIDや当該記憶装置4A〜4Dにおけるログイン先のポートID及びフレームサイズなどのログイン情報を自コントローラ内のローカルメモリ14Aの共有領域42Aと、1系のコントローラ6B内のローカルメモリ14Bの共有領域42Bとにそれぞれ格納する。なお、図12(A)において、ログイン管理テーブル50は、0系のコントローラ6Aが「0A」という通信ポート20Aを介して1又は複数のイニシエータ側の記憶装置4A〜4Bにログインしている場合における、これらログインに関するログイン情報が格納されている自コントローラ内のローカルメモリ14Aの共有領域42A上のアドレスを管理するためのテーブルである。
このとき1系のコントローラ6Bは、図12(B)に示すように、自コントローラ内のローカルメモリ14Bの共有領域42Bを参照して、0系のコントローラ6Aがターゲット側の記憶装置4A〜4Bにログインしたか否かをチェックしている(「ログインチェック」)。そして1系のコントローラ6Bは、共有領域42Bに格納されたログイン情報に基づいてかかるログインを確認すると、記憶制御装置3内において使用しているターゲットIDをファイバーチャネル規格に応じたIDに変換する変換処理等の必要な処理(「ID変換等」)を行う。さらに1系のコントローラ6Bは、この後、これからSCSIコマンドを送信することを意味するSCSIコマンド(「VU(Vender Unique)コマンド」)を0系のコントローラ6A内のローカルメモリの共有領域及び1系のコントローラ内のローカルメモリの共有領域に書き込む。この結果、このSCSIコマンドが0系のコントローラ6Aによりかかる通信ポート20Bを介してイニシエータ側の記憶装置4A〜4Dに送信される。
一方、この後、かかるSCSIコマンドについてタイムアウトが発生した場合、図12(C)に示すように、1系のコントローラ6Bは、かかるSCSIコマンドに対する処理をリセットし、これと併せてかかるSCSIコマンドに基づく処理を中断させるためのABTSコマンドを0系のコントローラ6Aのローカルメモリ14Aの共有領域42Aに書き込む。この結果、かかるABTSコマンドが0系のコントローラ6Aによりかかる通信ポート20Aを介してイニシエータ側の記憶装置4A〜4Dに送信される。またかかるABTSコマンドによりイニシエータ側の記憶装置4A〜4DがかかるSCSIコマンドに対する処理を中断した場合、1系のコントローラ6Bは、RRQコマンドを0系のコントローラ6Aのローカルメモリ14Aの共有領域42Aに書き込む。この結果、かかるABTSコマンドが0系のコントローラ6Aによりかかる通信ポート20Aを介してイニシエータ側の記憶装置4A〜4Dに送信される。
これに対して、かかるABTSコマンドやRRQコマンドについてタイムアウトが発生した場合、図12(D)に示すように、1系のコントローラ6Bは最終的な手段として、リセットとしての意味合いをもつPLOGIコマンドをイニシエータ側の記憶装置4A〜4Dに発行するように0系のコントローラ6Aに依頼する。かくしてこの依頼を受けた0系のコントローラ6Aは、自己が管理する対応するかかる通信ポート20Aを介してイニシエータ側の記憶装置4A〜4DにPLOGIコマンドを発行する。
(4)本実施の形態の効果
以上のように本実施の形態によるストレージシステム1では、記憶制御装置3の各コントローラ6A,6Bのマイクロプロセッサ15A,15Bを構成する各コア18A,18Bが、それぞれ自己の負荷状況を監視し、負荷が大きくなったときには自己が担当する論理ボリュームの担当を負荷の小さい他のコア18A,18Bに切り替えるため、コア18A,18B間における負荷の均等化を図ることができる。かくするにつき、コア18A,18B間の負荷の偏り等に起因するデータ入出力処理性能の劣化を有効かつ簡易に防止することができる。
また本実施の形態によるストレージシステム1では、コピーペアの形成時や上述のようにして負荷分散を図るときに、相互に関連する複数の論理ボリュームの担当を一括して1つのコア18A,18Bに切り替えるため、コピー処理の際にコントローラ6A,6B間での通信が発生せず、かかる通信に起因するコントローラ6A,6Bの負荷の発生を未然に防止することができる。かくするにつき、このような負荷の発生によるデータ入出力性能の劣化を有効かつ簡易に防止することができる。
さらに本実施の形態によるストレージシステム1では、リンクサービス系のコマンドのうち、SCSIコマンドと関連して発行されるコマンドについては正側の論理ボリュームの担当コントローラ6A,6Bが発行し、リンクサービス系のポート単位の処理に関するコマンドについては、そのコマンドをターゲット側の記憶装置4A〜4Dに送信する際に使用する通信ポート20Aを担当しているコントローラ6B,6Aが発行を担当するため、これらコントローラ6A,6B間でコマンドの受け渡しのための通信が発生するのを未然に回避することができる。かくするにつき、かかる通信に起因するコントローラ6A,6Bの負荷の発生を未然に防止し、このような負荷の発生によるデータ入出力性能の劣化を有効かつ簡易に防止することができる。
(5)他の実施の形態
なお上述の実施の形態においては、本発明を、マイクロプロセッサ15A,15Bがそれぞれ2つのコア(18AX,18AY,18BX,18BY)により構成された記憶制御装置3に適用するようにした場合について述べたが、本発明はこれに限らず、マイクロプロセッサ15A,15Bが1つのコアから構成された記憶制御装置や、マイクロプロセッサ15A,15Bが3つ以上のコアから構成された記憶制御装置にも広く適用することができる。
また上述の実施の形態においては、本発明を、コントローラ6A,6Bが2つ設けられた記憶制御装置3に適用するようにした場合について述べたが、本発明はこれに限らず、マイクロプロセッサが複数のコアから構成されている場合には、コントローラが1つだけ設けられた記憶制御装置3にも本発明を広く適用することができる。
さらに上述の実施の形態においては、自己が担当する論理ボリュームに対するデータの入出力を制御する制御部と、各制御部の負荷状況を監視する負荷監視部と、負荷監視部の監視結果に基づいて、各制御部の負荷を均等化するように、論理ボリュームの担当を他の制御部に切り替える切替え部とを同じ1つのコア18A,18Bにより構成するようにした場合について述べたが、本発明はこれに限らず、各コア18A,18Bの負荷状況をそれぞれ監視する負荷監視部としての機能を有するコアをかかるコア18A,18Bとは別に設け、その負荷監視部の監視結果に基づいて各コア18A,18Bが上述の切替え部としての処理を実行するようにしても良い。
さらに上述の実施の形態においては、本発明を図1のように構成された記憶制御装置3に適用するようにした場合について述べたが、本発明はこれに限らず、記憶装置が提供する記憶領域上に作成した論理ボリュームをホスト計算機に提供すると共に、当該論理ボリュームに対するデータの入出力を制御する種々の構成の記憶制御装置に広く適用することができる。
本実施の形態によるストレージシステムの全体構成を示すブロック図である。 記憶制御装置のローカルメモリにおけるキュー構造の説明に供する概念図である。 (A)は、0系及び1系のマイクロプロセッサが認識するメモリ空間の一例を示す図表であり、(B)は、0系及び1系のホスト通信プロトコルチップがそれぞれ認識するメモリ空間の一例を示す図表である。 (A)は0系のローカルメモリのメモリ構造を示す概念図であり、(B)は1系のローカルメモリのメモリ構造を示す概念図である。 担当管理テーブルの説明に供する概念図である。 内部コピーペア管理テーブルの説明に供する概念図である。 スナップショットコピーペア管理テーブルの説明に供する概念図である。 非同期リモートコピーペア管理テーブルの説明に供する概念図である。 プール管理テーブルの説明に供する概念図である。 第1の負荷分散処理の説明に供するフローチャートである。 第2の負荷分散処理の説明に供するフローチャートである。 コマンド発行分担機能の説明に供する概念図である。
符号の説明
1……ストレージシステム、2A,2B……ホスト計算機、3……記憶制御装置、4A〜4D……記憶装置、6A,6B……コントローラ、14A,14B……ローカルメモリ、15A,15B……マイクロプロセッサ、18A,18AX,18AY,18B,18BX,18BY……コア、20A,20B……通信ポート、40A,40B……自系コントローラ受領コマンド格納領域、41A,41B……他系コントローラ受領コマンド格納領域、42A,42B……共有領域、43A,43B……担当管理テーブル、44A,44B……内部コピーペア管理テーブル、45A,45B……スナップショットペア管理テーブル、46A,46B……非同期リモートコピーペア管理テーブル、47A,47B……リモートコピーペア管理テーブル、48A,48B……プール管理テーブル。

Claims (18)

  1. 記憶装置が提供する記憶領域上にデータを入出力するための論理的な領域でなる複数の論理ボリュームを作成し、作成した前記論理ボリュームをホスト計算機に提供すると共に、前記ホスト計算機からの要求に応じて、前記論理ボリュームに対するデータの入出力を制御する記憶制御装置において、
    それぞれ自己が担当する前記論理ボリュームに対するデータの入出力を制御する複数の制御部と、
    各前記制御部の負荷状況を監視する負荷監視部と、
    前記負荷監視部の監視結果に基づいて、各前記制御部の負荷を均等化するように、前記論理ボリュームの担当を他の前記制御部に切り替える切替え部と
    を備え、
    前記切替え部は、
    コピーペアの作成時に、当該コピーペアを形成する前記論理ボリュームの担当と、当該論理ボリュームと相互に関連する他の前記論理ボリュームの担当とが異なるときには、一方の前記コピーペアを形成する論理ボリューム又は前記他の論理ボリュームの担当を、他方の前記他の論理ボリューム又は前記コピーペアを形成する論理ボリュームを担当する前記制御部に切り替える
    ことを特徴とする記憶制御装置。
  2. 前記論理ボリュームごとの担当の前記制御部を規定した担当情報を記憶する記憶部を備え、
    前記制御部は、
    前記担当情報に基づいて自己が担当する前記論理ボリュームを認識し、
    前記切替え部は、
    前記担当情報における対応する前記論理ボリュームの担当を変更するようにして、当該論理ボリュームの担当を他の前記制御部に切り替える
    ことを特徴とする請求項1に記載の記憶制御装置。
  3. 前記論理ボリュームに対するデータの入出力を制御する複数のコントローラを備え、
    前記制御部は、
    各前記コントローラにそれぞれ設けられたマイクロプロセッサを構成するコアである
    ことを特徴とする請求項1に記載の記憶制御装置。
  4. 前記切替え部は、いずれかの前記論理ボリュームの担当を他の前記制御部に切り替えた後、所定時間内における前記論理ボリュームの担当の切り替えを抑止する
    ことを特徴とする請求項1に記載の記憶制御装置。
  5. 前記切替え部は、
    担当切替え候補の論理ボリュームと相互に関連する他の前記論理ボリュームが存在するときには、担当切替え候補の論理ボリューム及び当該他の論理ボリュームの担当を一括して同じ前記他の制御部に切り替える
    ことを特徴とする請求項1に記載の記憶制御装置。
  6. 前記切替え部は、
    前記コピーペアが内部コピーを行う前記論理ボリューム同士のペアであるときには、副側の前記論理ボリュームの担当を、正側の前記論理ボリュームを担当する前記制御部に切り替える
    ことを特徴とする請求項に記載の記憶制御装置。
  7. 前記切替え部は、
    前記コピーペアが前記論理ボリュームと、当該論理ボリュームのスナップショットのデータを格納するプールボリュームとのペアであるときには、正側の前記論理ボリュームの担当を、前記プールボリュームを担当する前記制御部に切り替える
    ことを特徴とする請求項に記載の記憶制御装置。
  8. 前記切替え部は、
    前記コピーペアが、正側及び副側の各前記論理ボリュームがそれぞれ異なる記憶装置内に作成され、正側の前記論理ボリュームに対するデータの書き込みとは非同期に正側及び副側の各前記論理ボリューム間でデータをコピーする非同期リモートコピーのペアであるときには、正側の前記論理ボリュームの担当を、当該正側の論理ボリュームのスナップショットのデータを格納するプールボリュームの担当の前記制御部に切り替え、副側の前記論理ボリュームの担当を、当該副側の論理ボリュームのスナップショットのデータを格納するプールボリュームを担当する前記制御部に切り替える
    ことを特徴とする請求項に記載の記憶制御装置。
  9. 前記記憶装置と通信するための通信ポートを備え、
    正側及び副側の各前記論理ボリュームがそれぞれ異なる記憶装置内に作成され、前記ホスト計算機から正側の前記論理ボリュームに対するデータの書き込みと同期して、当該データを正側及び副側の各前記論理ボリューム間でコピーするリモートコピーの正側の前記論理ボリュームを担当する前記制御部と、前記リモートコピーの正側の論理ボリュームが設けられた前記記憶装置と通信するための前記通信ポートを担当する前記制御部とが異なる場合、リンクサービス系のコマンド単位の処理を実行させるためのコマンドについては、前記リモートコピーの正側の前記論理ボリュームを担当する前記制御部が発行し、前記リンクサービス系のポート単位の処理を実行させるためのコマンドについては、当該通信ポートを担当する前記制御部が発行する
    ことを特徴とする請求項1に記載の記憶制御装置。
  10. 記憶装置が提供する記憶領域上にデータを入出力するための論理的な領域でなる複数の論理ボリュームを作成し、作成した前記論理ボリュームをホスト計算機に提供すると共に、前記ホスト計算機からの要求に応じて、前記論理ボリュームに対するデータの入出力を制御する記憶制御装置の制御方法において、
    前記記憶制御装置は、それぞれ自己が担当する前記論理ボリュームに対するデータの入出力を制御する複数の制御部を備え、
    各前記制御部の負荷状況を監視する第1のステップと、
    監視結果に基づいて、各前記制御部の負荷を均等化するように、前記論理ボリュームの担当を他の前記制御部に切り替える第2のステップと
    を備え、
    コピーペアの作成時に、当該コピーペアを形成する前記論理ボリュームの担当と、当該論理ボリュームと相互に関連する他の前記論理ボリュームの担当とが異なるときには、一方の前記コピーペアを形成する論理ボリューム又は前記他の論理ボリュームの担当を、他方の前記他の論理ボリューム又は前記コピーペアを形成する論理ボリュームを担当する前記制御部に切り替える
    ことを特徴とする記憶制御装置の制御方法。
  11. 前記記憶制御装置は、前記論理ボリュームごとの担当の前記制御部を規定した担当情報を記憶する記憶部を備え、
    前記制御部は、前記担当情報に基づいて自己が担当する前記論理ボリュームを認識し、
    前記第2のステップでは、
    前記担当情報における対応する前記論理ボリュームの担当を変更するようにして、当該論理ボリュームの担当を他の前記制御部に切り替える
    ことを特徴とする請求項10に記載の制御方法。
  12. 前記記憶制御装置は、前記論理ボリュームに対するデータの入出力を制御する複数のコントローラを備え、
    前記制御部は、各前記コントローラにそれぞれ設けられたマイクロプロセッサを構成するコアである
    ことを特徴とする請求項10に記載の制御方法。
  13. いずれかの前記論理ボリュームの担当を他の前記制御部に切り替えた後、所定時間内における前記論理ボリュームの担当の切り替えを抑止する第3のステップを備える
    ことを特徴とする請求項10に記載の制御方法。
  14. 前記第2のステップでは、
    担当切替え候補の前記論理ボリュームと相互に関連する他の前記論理ボリュームが存在するときには、担当切替え候補の論理ボリューム及び当該他の論理ボリュームの担当を一括して同じ前記他の制御部に切り替える
    ことを特徴とする請求項10に記載の制御方法。
  15. 前記コピーペアが内部コピーを行う前記論理ボリューム同士のペアであるときには、副側の前記論理ボリュームの担当を、正側の前記論理ボリュームを担当する前記制御部に切り替える
    ことを特徴とする請求項10に記載の制御方法。
  16. 前記コピーペアが前記論理ボリュームと、当該論理ボリュームのスナップショットのデータを格納するプールボリュームとのペアであるときには、正側の前記論理ボリュームの担当を、前記プールボリュームを担当する前記制御部に切り替える
    ことを特徴とする請求項10に記載の制御方法。
  17. 前記コピーペアが、正側及び副側の各前記論理ボリュームがそれぞれ異なる記憶装置内に作成され、正側の前記論理ボリュームに対するデータの書き込みとは非同期に正側及び副側の各前記論理ボリューム間でデータをコピーする非同期リモートコピーのペアであるときには、正側の前記論理ボリュームの担当を、当該正側の論理ボリュームのスナップショットのデータを格納するプールボリュームの担当の前記制御部に切り替え、副側の前記論理ボリュームの担当を、当該副側の論理ボリュームのスナップショットのデータを格納するプールボリュームを担当する前記制御部に切り替える
    ことを特徴とする請求項10に記載の制御方法。
  18. 前記記憶制御装置は、前記記憶装置と通信するための通信ポートを備え、
    正側及び副側の各前記論理ボリュームがそれぞれ異なる記憶装置内に作成され、前記ホスト計算機から正側の前記論理ボリュームに対するデータの書き込みと同期して、当該データを正側及び副側の各前記論理ボリューム間でコピーするリモートコピーの正側の前記論理ボリュームを担当する前記制御部と、前記リモートコピーの正側の論理ボリュームが設けられた前記記憶装置と通信するための前記通信ポートを担当する前記制御部とが異なる場合、リンクサービス系のコマンド単位の処理を実行させるためのコマンドについては、前記リモートコピーの正側の前記論理ボリュームを担当する前記制御部に発行させ、前記リンクサービス系のポート単位の処理を実行させるためのコマンドについては、当該通信ポートを担当する前記制御部に発行させる
    ことを特徴とする請求項10に記載の制御方法。
JP2007142426A 2007-05-29 2007-05-29 記憶制御装置及びその制御方法 Active JP4958641B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2007142426A JP4958641B2 (ja) 2007-05-29 2007-05-29 記憶制御装置及びその制御方法
US11/968,363 US7865676B2 (en) 2007-05-29 2008-01-02 Load equalizing storage controller and control method for the same
EP08250194.1A EP2015168B1 (en) 2007-05-29 2008-01-15 Storage controller and control method for the same
US12/954,938 US8706986B2 (en) 2007-05-29 2010-11-29 Load equalizing storage controller and control method for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007142426A JP4958641B2 (ja) 2007-05-29 2007-05-29 記憶制御装置及びその制御方法

Publications (2)

Publication Number Publication Date
JP2008299434A JP2008299434A (ja) 2008-12-11
JP4958641B2 true JP4958641B2 (ja) 2012-06-20

Family

ID=39527022

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007142426A Active JP4958641B2 (ja) 2007-05-29 2007-05-29 記憶制御装置及びその制御方法

Country Status (3)

Country Link
US (2) US7865676B2 (ja)
EP (1) EP2015168B1 (ja)
JP (1) JP4958641B2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4919851B2 (ja) * 2007-03-23 2012-04-18 株式会社日立製作所 ファイルレベルの仮想化を行う中間装置
JP4958641B2 (ja) * 2007-05-29 2012-06-20 株式会社日立製作所 記憶制御装置及びその制御方法
WO2010137070A1 (en) * 2009-05-27 2010-12-02 Hitachi, Ltd. Storage system and processing efficiency improving method of storage system
JP5391277B2 (ja) * 2009-05-27 2014-01-15 株式会社日立製作所 ストレージシステム及びストレージシステムの処理効率向上方法
JP5236078B2 (ja) * 2009-06-18 2013-07-17 株式会社日立製作所 記憶制御装置及び記憶制御装置の制御方法
JP5406363B2 (ja) * 2009-10-27 2014-02-05 株式会社日立製作所 プール領域の一部の領域を動的にデータ格納領域として割り当てる記憶制御装置及び記憶制御方法
US8667227B2 (en) * 2009-12-22 2014-03-04 Empire Technology Development, Llc Domain based cache coherence protocol
JP5549243B2 (ja) * 2010-01-29 2014-07-16 富士通株式会社 ストレージ装置、ストレージ装置の制御方法及びストレージ装置の制御プログラム
JP2011197804A (ja) * 2010-03-17 2011-10-06 Fujitsu Ltd 負荷解析プログラム、負荷解析方法、および負荷解析装置
US8756381B2 (en) * 2011-06-01 2014-06-17 Hitachi, Ltd. Storage subsystem and load distribution method for executing data processing using normal resources even if an abnormality occurs in part of the data processing resources that intermediate data processing between a host computer and a storage device
US8713577B2 (en) 2011-06-03 2014-04-29 Hitachi, Ltd. Storage apparatus and storage apparatus management method performing data I/O processing using a plurality of microprocessors
US8839030B2 (en) 2011-09-09 2014-09-16 Lsi Corporation Methods and structure for resuming background tasks in a clustered storage environment
US8683170B1 (en) 2011-09-23 2014-03-25 Netapp, Inc. Consistent distributed storage communication protocol semantics in a clustered storage system
US9203900B2 (en) 2011-09-23 2015-12-01 Netapp, Inc. Storage area network attached clustered storage system
US9058120B2 (en) * 2011-11-09 2015-06-16 International Business Machines Corporation Setting optimal space allocation policy for creating dependent snapshots to enhance application write performance and reduce resource usage
US9323468B2 (en) 2012-02-06 2016-04-26 Hitachi, Ltd. Computer system and data input/output method
WO2013158817A1 (en) * 2012-04-20 2013-10-24 Violin Memory, Inc. Lun management with distributed raid controllers
US20140101394A1 (en) * 2012-10-04 2014-04-10 Hitachi, Ltd. Computer system and volume management method for the computer system
JP2014130387A (ja) * 2012-12-27 2014-07-10 Fujitsu Ltd ストレージコントローラ選択システム、ストレージコントローラ選択方法、およびストレージコントローラ選択プログラム
US9720716B2 (en) * 2013-03-12 2017-08-01 Intel Corporation Layered virtual machine integrity monitoring
JP6021759B2 (ja) * 2013-08-07 2016-11-09 株式会社東芝 メモリシステムおよび情報処理装置
US9519580B2 (en) 2013-11-11 2016-12-13 Globalfoundries Inc. Load balancing logical units in an active/passive storage system
US9213753B2 (en) * 2013-11-18 2015-12-15 Hitachi, Ltd. Computer system
US9317210B2 (en) 2013-12-13 2016-04-19 International Business Machines Corporation Balancing traffic through logical unit range partitioning
WO2015132973A1 (ja) * 2014-03-07 2015-09-11 株式会社日立製作所 計算機システム
US10002025B2 (en) * 2014-08-29 2018-06-19 Hitachi, Ltd. Computer system and load leveling program
US10402361B2 (en) * 2017-04-28 2019-09-03 Hitachi, Ltd. Storage system
JP6899852B2 (ja) * 2019-01-15 2021-07-07 株式会社日立製作所 ストレージ装置
CN115495288B (zh) * 2022-11-17 2023-03-10 苏州浪潮智能科技有限公司 一种数据备份方法、装置、设备及计算机可读存储介质
CN115629717B (zh) * 2022-12-08 2023-03-21 四川汉唐云分布式存储技术有限公司 一种基于分布式存储的负载均衡方法和存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3772369B2 (ja) * 1995-11-20 2006-05-10 株式会社日立製作所 記憶サブシステム
JP4272275B2 (ja) * 1998-04-28 2009-06-03 株式会社日立製作所 記憶サブシステム
US6675268B1 (en) * 2000-12-11 2004-01-06 Lsi Logic Corporation Method and apparatus for handling transfers of data volumes between controllers in a storage environment having multiple paths to the data volumes
JP4341897B2 (ja) * 2002-08-29 2009-10-14 株式会社日立製作所 記憶装置システム及びデータ複製方法
JP2004227098A (ja) * 2003-01-20 2004-08-12 Hitachi Ltd 記憶デバイス制御装置の制御方法、及び記憶デバイス制御装置
EP1486862A3 (en) * 2003-06-13 2008-10-08 Hitachi, Ltd. Storage system and data reproduction method
JP4325849B2 (ja) * 2003-06-27 2009-09-02 株式会社日立製作所 記憶システム、バックアップシステム及びバックアップ方法
JP4969791B2 (ja) * 2005-03-30 2012-07-04 株式会社日立製作所 ディスクアレイ装置およびその制御方法
JP4790372B2 (ja) * 2005-10-20 2011-10-12 株式会社日立製作所 ストレージのアクセス負荷を分散する計算機システム及びその制御方法
KR100691444B1 (ko) 2005-11-19 2007-03-09 삼성전기주식회사 질화물 반도체 발광소자
US8677014B2 (en) * 2006-11-27 2014-03-18 Cisco Technology, Inc. Fine granularity exchange level load balancing in a multiprocessor storage area network
JP2008134775A (ja) * 2006-11-28 2008-06-12 Hitachi Ltd 記憶サブシステム及びこれを利用したリモートコピーシステム
JP4958641B2 (ja) 2007-05-29 2012-06-20 株式会社日立製作所 記憶制御装置及びその制御方法

Also Published As

Publication number Publication date
EP2015168A2 (en) 2009-01-14
EP2015168A3 (en) 2011-04-27
US8706986B2 (en) 2014-04-22
US20110072228A1 (en) 2011-03-24
US7865676B2 (en) 2011-01-04
EP2015168B1 (en) 2014-03-12
JP2008299434A (ja) 2008-12-11
US20080301385A1 (en) 2008-12-04

Similar Documents

Publication Publication Date Title
JP4958641B2 (ja) 記憶制御装置及びその制御方法
US8108562B2 (en) Storage subsystem and remote copy system using said subsystem
EP1837751B1 (en) Storage system, storage extent release method and storage apparatus
US7849260B2 (en) Storage controller and control method thereof
US8904058B2 (en) Selecting direct memory access engines in an adaptor input/output (I/O) requests received at the adaptor
US8285929B2 (en) Management computer
US20080162735A1 (en) Methods and systems for prioritizing input/outputs to storage devices
US7716419B2 (en) Storage system and load balancing method thereof
JP5635621B2 (ja) ストレージシステム及びストレージシステムのデータ転送方法
JP6068676B2 (ja) 計算機システム及び計算機システムの制御方法
US11556391B2 (en) CPU utilization for service level I/O scheduling
US7562111B2 (en) Multi-processor architecture with high capacity I/O
US11513849B2 (en) Weighted resource cost matrix scheduler
US9239681B2 (en) Storage subsystem and method for controlling the storage subsystem
US11016698B2 (en) Storage system that copies write data to another storage system
JP2012146280A (ja) 記憶操作のためのキュー及び作業負荷による選択インタフェースの方法及び装置
US11513690B2 (en) Multi-dimensional I/O service levels
US11435954B2 (en) Method and system for maximizing performance of a storage system using normalized tokens based on saturation points
JP5856665B2 (ja) ストレージシステム及びストレージシステムのデータ転送方法
US20140122792A1 (en) Storage system and access arbitration method

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111206

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120201

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

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

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

Free format text: PAYMENT UNTIL: 20150330

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150