JP6955159B2 - ストレージシステム、ストレージ制御装置およびプログラム - Google Patents

ストレージシステム、ストレージ制御装置およびプログラム Download PDF

Info

Publication number
JP6955159B2
JP6955159B2 JP2017223621A JP2017223621A JP6955159B2 JP 6955159 B2 JP6955159 B2 JP 6955159B2 JP 2017223621 A JP2017223621 A JP 2017223621A JP 2017223621 A JP2017223621 A JP 2017223621A JP 6955159 B2 JP6955159 B2 JP 6955159B2
Authority
JP
Japan
Prior art keywords
path
storage
port
storage device
external
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
JP2017223621A
Other languages
English (en)
Other versions
JP2019095971A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017223621A priority Critical patent/JP6955159B2/ja
Priority to US16/173,136 priority patent/US10514856B2/en
Publication of JP2019095971A publication Critical patent/JP2019095971A/ja
Application granted granted Critical
Publication of JP6955159B2 publication Critical patent/JP6955159B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明はストレージシステム、ストレージ制御装置およびプログラムに関する。
データの保存にストレージ装置が利用されている。ストレージ装置は、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの記憶デバイスを複数搭載可能であり、大容量の記憶領域を提供する。ストレージ装置は、例えば、記憶デバイスに対するデータの書き込みや読み出しのアクセス制御を行うストレージ制御装置を内蔵する。
例えば、ループ接続されたディスクに対してコマンドを発行するディスクコントローラと、発行されたコマンドをディスクに対して中継する中継装置とを備えるストレージ装置が提案されている。提案のストレージ装置では、中継装置が、ループに対するコマンドの発行数を監視し、監視結果に基づいて、ディスクコントローラによるコマンドの発行数を制御することで、中継装置が処理するコマンド数の偏りが出ないようにする。
また、コントロールユニットを2重化した記憶制御装置の提案もある。提案の記憶制御装置では、コントローラ間のパスを利用して、ホストからのIO(Input/Output)要求を受領したコントローラが、他のコントロールユニットのイニシエータにIO要求を発行する。そして、当該IO要求を受領したイニシエータが、IO要求に基づき、接続経路を介して目的とする記憶デバイスにアクセスする。これにより、コントロールユニットから記憶デバイスへのアクセスを交代パスに切り替える場合でも、ホストからのIO要求を中断することなく、記憶デバイスへのIOアクセスを継続可能にする。
なお、他のストレージ仮想化装置との情報交換により各ストレージポート内の処理未完コマンド総数を管理するストレージ仮想化装置の提案がある。提案のストレージ仮想化装置は、アクセス対象ストレージポートに関する処理未完コマンド総数が規定数を超えていなかった場合、アクセス対象ストレージポートに対するコマンドの発行処理を含むアクセス要求応答処理をその完了を遅らせずに実行する。また、ストレージ仮想化装置は、処理未完コマンド総数が規定数を超えている場合には、アクセス要求応答処理をその完了を遅らせる形で実行する。これにより、ストレージポートのQueue Fullの発生を抑制する。
特開2010−211428号公報 特開2007−280258号公報 特開2014−10476号公報
ところで、あるストレージ装置に別のストレージ装置(外部ストレージ装置と称する)を直接または中継装置を介して接続することが考えられる。この場合、ストレージ装置は、ホスト装置から外部ストレージ装置に対するアクセス要求を受信し、当該アクセス要求に応じて、外部ストレージ装置に対するアクセスを実行し、アクセス結果をホスト装置に応答する。こうして、ホスト装置に提供する記憶領域を拡張し得る。
このとき、ストレージ装置から外部ストレージ装置への通信経路を複数用意し、通信経路を切り替えて、複数の通信経路にアクセスを分散することで、データアクセスの高速化を図ることが考えられる。しかし、ストレージ装置は、例えば、外部ストレージ装置が備える物理構成(ストレージ制御装置、ストレージ装置との通信用のポートおよび記憶デバイスなど)の動作状況を監視できない。このため、ストレージ装置側で、外部ストレージ装置の動作状態の変化を観測して通信経路の切り替えのタイミングを判断することは難しい。そこで、通信経路の切り替えのタイミングをストレージ装置側でどのように判断するかが問題となる。
1つの側面では、本発明は、適切なタイミングで通信経路の切り替えを行うことを目的とする。
1つの態様では、ストレージシステムが提供される。ストレージシステムは、第1のストレージ装置と第2のストレージ装置とを有する。第1のストレージ装置は、第1のストレージ制御装置と第2のストレージ制御装置とを有する。第1のストレージ制御装置は、データの入出力を指示するコマンドの送信に用いられる第1のポートを備え、情報処理装置から受信したアクセス要求に応じてコマンドを送信する。第2のストレージ制御装置は、コマンドの送信に用いられる第2のポートを備える。第2のストレージ装置は、第1および第2のポートとの間で複数の通信経路を形成する複数の第3のポートを備え、何れかの第3のポートを介してコマンドを受信し、コマンドに基づいてデータの入出力を実行する。第1のストレージ制御装置は、複数の通信経路のうち、第2のストレージ装置へのコマンドの送信に現在使用中の第1の通信経路を介した入出力の処理状況に基づいて、第2のストレージ装置への次のコマンドの送信に使用するポートを、第2の通信経路に属するポートに切り替える。第1のストレージ制御装置は、第1の通信経路を介して送信済であるコマンドのうち、応答を未受信であるコマンドの数が第1の閾値に達している場合に、第2のストレージ装置への次のコマンドの送信に使用するポートの切り替えを行い、数が第1の閾値に達していない場合に、切り替えを行わない。
また、1つの態様では、ストレージ制御装置が提供される。ストレージ制御装置は、第1のポートと処理部とを有する。第1のポートは、自装置が属する第1のストレージ装置以外の第2のストレージ装置に対してデータの入出力を指示するコマンドの送信に用いられる。処理部は、第1のポートと第2のストレージ装置が備える複数の第3のポートとの間および第1のストレージ装置に属する他のストレージ制御装置が備える第2のポートと複数の第3のポートとの間の複数の通信経路のうち、第2のストレージ装置へのコマンドの送信に現在使用中の第1の通信経路を介した入出力の処理状況に基づいて、第2のストレージ装置への次のコマンドの送信に使用するポートを、第2の通信経路に属するポートに切り替える。処理部は、第1の通信経路を介して送信済であるコマンドのうち、応答を未受信であるコマンドの数が第1の閾値に達している場合に、第2のストレージ装置への次のコマンドの送信に使用するポートの切り替えを行い、数が第1の閾値に達していない場合に、切り替えを行わない。
また、1つの態様では、プログラムが提供される。プログラムは、自装置が属する第1のストレージ装置以外の第2のストレージ装置に対してデータの入出力を指示するコマンドの送信に用いられる第1のポートと第2のストレージ装置が備える複数の第3のポートとの間、および、第1のストレージ装置に属する他のストレージ制御装置が備える第2のポートと複数の第3のポートとの間の複数の通信経路を示す情報を取得し、複数の通信経路のうち、第2のストレージ装置へのコマンドの送信に現在使用中の第1の通信経路を介した入出力の処理状況に基づいて、第2のストレージ装置への次のコマンドの送信に使用するポートを、第2の通信経路に属するポートに切り替え、第2のストレージ装置への次のコマンドの送信に使用するポートの切り替えでは、第1の通信経路を介して送信済であるコマンドのうち、応答を未受信であるコマンドの数が第1の閾値に達している場合に、第2のストレージ装置への次のコマンドの送信に使用するポートの切り替えを行い、数が第1の閾値に達していない場合に、切り替えを行わない、処理をコンピュータに実行させる。
1つの側面では、適切なタイミングで通信経路の切り替えを行える。
第1の実施の形態のストレージシステムを示す図である。 第2の実施の形態のストレージシステムの例を示す図である。 ストレージ装置のハードウェア例を示す図である。 外部ストレージ装置に対するアクセス例を示す図である。 パスの例を示す図である。 CMの機能例を示す図である。 CMおよびポートの識別情報の例を示す図である。 外部LU#0に対する推奨パス情報の取得例を示す図である。 外部LU#0に対するアクセスパス設定の例を示す図である。 外部LUパス情報の例を示す図である。 IO管理テーブルの例を示す図である。 パス選択論理の例を示す図である。 パス選択の例を示すフローチャートである。 他CM経由のパスの選択の例を示すフローチャートである。 IO発行待ちキューのデキュー処理の例を示すフローチャートである。 CM間通信待ちキューのデキュー処理の例を示すフローチャートである。 性能閾値テーブルの例を示す図である。 IO性能に応じたパス切り替えの例を示すフローチャートである。 パス復旧制御の例を示すフローチャートである。
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態のストレージシステムを示す図である。ストレージシステム1は、ストレージ装置10,20を有する。ストレージ装置10,20は、HDDやSSDなどの記憶デバイスを複数搭載可能である。ストレージ装置10,20は、情報処理装置30の処理に用いられる各種のデータを記憶する。ストレージ装置20は、ストレージ装置10の外部に接続された外部ストレージ装置である。なお、ここで示すストレージシステムは、別々のストレージ装置を統合管理するものであり、マスタのストレージ装置もしくはマスタのストレージ制御筐体が複数のデバイス筐体を一元管理するものとは接続構成や管理方法が異なる。
ストレージ装置10および情報処理装置30は、ネットワーク40に接続されている。ストレージ装置10,20は、複数の通信経路で接続されている。
ストレージ装置10は、ストレージ制御装置11,12および収納部13を有する。ストレージ制御装置11,12は、収納部13に収納された複数の記憶デバイスに対するデータの書き込みや読み出しを行う。ストレージ制御装置11,12それぞれが平常時にアクセスを担当するボリューム(例えば、論理的なボリューム)は予め定められる。収納部13は、記憶デバイス13a,13b,13c,・・・を搭載する筐体である。記憶デバイス13a,13b,13c,・・・は、例えば、HDDである。HDDに代えて、または、HDDと合わせてSSDなどの他の種類の記憶デバイスを用いることもできる。
ストレージ制御装置11は、記憶部11a、処理部11bおよびポート11c,11d,11eを有する。記憶部11aは、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、フラッシュメモリなどの不揮発性記憶装置でもよい。処理部11bは、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。処理部11bはプログラムを実行するプロセッサでもよい。「プロセッサ」は、複数のプロセッサの集合(マルチプロセッサ)も含み得る。
記憶部11aは、ストレージ装置10,20の間の複数の通信経路を示す第1の経路情報をストレージ装置20内のボリューム毎に記憶する。第1の経路情報は、該当のボリュームにアクセスするための通信経路毎の優先度の情報を含む。優先度は、ストレージ制御装置11から該当のボリュームにアクセスするために経由するストレージ制御装置の数が小さいほど高い。経由するストレージ制御装置の数が小さいほど、アクセスに伴うオーバーヘッドが小さいからである。
処理部11bは、情報処理装置30から所定のボリュームに対するデータの書き込み、または、データの読み出しのアクセス要求を受け付ける。アクセス要求で指定されたアクセス先がストレージ装置10内の記憶デバイスに対応するボリュームであれば、処理部11bは、ストレージ装置10内の当該ボリュームへのアクセスを行い、情報処理装置30にアクセス結果を応答する。一方、アクセス要求で指定されたアクセス先がストレージ装置20内の記憶デバイスに対応するボリュームであれば、処理部11bは、該当のボリュームに対するデータの入出力のコマンドを生成し、ストレージ装置20に送信する。処理部11bは、送信したコマンドに応じたアクセス結果をストレージ装置20から受信し、情報処理装置30に応答する。
また、処理部11bは、ストレージ装置20に対してコマンドを送信する場合に、記憶部11aに記憶された第1の経路情報に基づいて、コマンドの送信に用いるポートを決定する。
ポート11c,11dは、ストレージ装置20と接続される通信用のポートである。ポート11eは、ストレージ制御装置12と接続される通信用のポートである。
ストレージ制御装置12は、記憶部12a、処理部12bおよびポート12c,12d,12eを有する。記憶部12aは、記憶部11aと同様に、第2の経路情報を記憶する。ただし、第2の経路情報に含まれる通信経路毎の優先度は、ストレージ制御装置12からストレージ装置20内のボリュームにアクセスするときの優先度であり、第1の経路情報に含まれる優先度とは異なる。
処理部12bは、処理部11bと同様に、情報処理装置30からのアクセス要求に応じて、ストレージ装置10内のボリュームへのアクセスまたはストレージ装置20へのコマンドの送信を行う。処理部12bは、ストレージ制御装置11からストレージ装置20に対するコマンドの送信を指示されることもある。
ポート12c,12dは、ストレージ装置20と接続される通信用のポートである。ポート12eは、ストレージ制御装置11と接続される通信用のポートである。例えば、ポート11e,12eはケーブルを介して(あるいは、ストレージ装置10が備える所定の中継装置を介して)接続される。
ストレージ装置20は、ストレージ制御装置21,22および収納部23を有する。ストレージ制御装置21,22は、収納部23に収納された複数の記憶デバイスに対するデータの書き込みや読み出しを行う。ストレージ制御装置21,22それぞれが平常時にアクセスを担当するボリュームは予め定められる。収納部23は、収納部13と同様に、HDDやSSDなどの記憶デバイス23a,23b,23c,・・・を搭載する筐体である。
ストレージ制御装置21は、記憶部21a、処理部21bおよびポート21c,21d,21eを有する。記憶部21aは、処理部21bの処理に用いられる情報を記憶する。処理部21bは、ストレージ装置10から受信したコマンドに応じて、ストレージ制御装置21がアクセスを担当するボリュームに対するアクセスを実行し、アクセス結果をストレージ装置10に応答する。処理部21bは、ストレージ装置10から受信したコマンドのアクセス先がストレージ制御装置22により担当される場合、当該コマンドをストレージ制御装置22に転送する。
ポート21c,21dは、ストレージ装置10と接続される通信用のポートである。例えば、ポート11c,21cはケーブルを介して接続される。また、ポート12c,21dはケーブルを介して接続される。ポート21eは、ストレージ制御装置22と接続される通信用のポートである。
ストレージ制御装置22は、記憶部22a、処理部22bおよびポート22c,22d,22eを有する。記憶部22aは、処理部22bの処理に用いられる情報を記憶する。処理部22bは、ストレージ装置10から受信したコマンドに応じて、ストレージ制御装置22がアクセスを担当するボリュームに対するアクセスを実行し、アクセス結果をストレージ装置10に応答する。処理部22bは、ストレージ装置10から受信したコマンドのアクセス先がストレージ制御装置21により担当される場合、当該コマンドをストレージ制御装置21に転送する。
ポート22c,22dは、ストレージ装置10と接続される通信用のポートである。例えば、ポート11d,22cはケーブルを介して接続される。また、ポート12d,22dはケーブルを介して接続される。ポート22eは、ストレージ制御装置21と接続される通信用のポートである。ポート21e,22eはケーブルを介して(あるいは、ストレージ装置20が備える所定の中継装置を介して)接続される。
なお、記憶部12a,21a,22aは、記憶部11aと同様に、例えばRAMまたはフラッシュメモリである。また、処理部12b,21b,22bは、処理部11bと同様に、CPU、DSP、ASIC、FPGAなどでもよいし、プログラムを実行するプロセッサ(マルチプロセッサを含む)でもよい。
上記のように、ストレージ装置20は、ストレージ制御装置11のポート11c,11dおよびストレージ制御装置12のポート12c,12dとの間で複数の通信経路を形成するポート21c,21d,22c,22dを備える。ストレージ装置20は、ポート21c,21d,22c,22dの何れかのポートを介してストレージ装置10からコマンドを受信し、当該コマンドに基づいて収納部23に格納された記憶デバイスに対するデータの入出力を実行する。
ここで、一例として、ストレージ装置20内に存在するボリュームV1に対するアクセスをストレージ制御装置21が担当する場合を考える。更に、以下では、ストレージ制御装置11がボリュームV1に対するアクセス要求を情報処理装置30から受信する場合を例示する。ただし、ストレージ制御装置12もストレージ制御装置11と同様の機能を有する。
上記の各ポートの接続例によれば、ストレージ制御装置11からストレージ制御装置21へコマンドを送信する通信経路は全部で4つ存在する。
1つ目は、ポート11c,21cを経由する通信経路(通信経路Aとする)である。2つ目は、ポート11d,22c,22e,21eを経由する通信経路(通信経路Bとする)である。3つ目は、ポート11e,12e,12c,21dを経由する通信経路(通信経路Cとする)である。4つ目は、ポート11e,12e,12d,22d,22e,21eを経由する通信経路(通信経路Dとする)である。
処理部11bは、これらの4つの通信経路のうち、ボリュームV1へのアクセスに最も推奨されるパスを、例えば、所定のプロトコルによって特定する。当該プロトコルの一例として、SCSI(Small Computer System Interface)が考えられる。具体的には、処理部11bは、SCSIのREPORT TARTGET PORT GROUPSコマンドを、ボリュームV1を指定して、ストレージ装置20に対して発行する。
この場合、ストレージ装置20は、REPORT TARTGET PORT GROUPSコマンドに対し、ポート11c,21cを経由する通信経路Aおよびポート12c,21dを経由する通信経路(通信経路Cに相当)を推奨とする旨を応答する。一方、ストレージ装置20は、ポート11d,22cを経由する通信経路(通信経路Bに相当)およびポート12d,22dを経由する通信経路(通信経路Dに相当)を非推奨とする旨を応答する。
ストレージ装置20がこのような応答を返す理由は、ボリュームV1へのアクセスをストレージ制御装置21が担当しているためである。すなわち、ストレージ装置20は、ストレージ制御装置22ではなく、ストレージ制御装置21側のポートに外部から直接コマンドが入る通信経路を推奨として応答する。推奨として応答された通信経路は、該当のボリュームV1にアクセスするためにストレージ装置20側で経由するストレージ制御装置の数が最小になる通信経路であるといえる。
すると、処理部11bは、ストレージ装置20によるREPORT TARTGET PORT GROUPSコマンドに対する応答から、ボリュームV1へのアクセスを行う際に最も推奨されるポートを特定する。具体的には、処理部11bは、推奨と応答された通信経路A,Cに属するストレージ装置10のポート11c,12cのうち、処理部11bが属するストレージ制御装置11のポート11cを特定する。ポート11cは、ボリュームV1へのアクセス時のポート選択において、最も優先度が高いポートである。
次に、処理部11bは、ストレージ制御装置11のポート11dを、2番目に優先度が高いポートとする。ストレージ制御装置12を介さずにコマンド送信できた方が、ストレージ装置10内でのオーバーヘッドを低減できるからである。
次に、処理部11bは、ストレージ制御装置12のポート12cを、3番目に優先度が高いポートとする。ストレージ制御装置12のポート12c,21dを経由する通信経路およびポート12d,22dを経由する通信経路の中で、ポート12c,21dを経由する通信経路が、ストレージ装置20により推奨の応答を得ているからである。
そして、処理部11bは、残りのポート12dを、4番目に優先度が高い(ポート11c,11d,12c,12dの中で最も優先度が低い)ポートとする。
処理部11bは、通信経路および当該通信経路に属するポートの優先度の情報を記憶部11aに格納する。ボリュームV1へのアクセスにポート11cが最も優先されるので、通常、ボリュームV1にアクセスする際には、ポート11cが使用されることになる。
ここで、ストレージ装置10,20の間の複数の通信経路のうち、ストレージ装置20へのコマンドの送信に現在使用中の通信経路(例えば、ポート11cを経由する通信経路A)を、第1の通信経路と呼ぶこととする。
処理部11bは、第1の通信経路を介した入出力の処理状況に基づいて、ストレージ装置20への次のコマンドの送信に使用するポートを、複数の通信経路のうちの第2の通信経路に属するポートに切り替える。例えば、処理部11bは、ポート(例えば、ポート11c)に対して発行した応答未受信のコマンドの発行数により、該当のポートが属する通信経路(例えば、通信経路A)を介した入出力の処理状況を把握する。応答未受信のコマンドの発行数は、未完了のコマンドの数に相当する。処理部11bは、ポート11c,11d,11eそれぞれについて、応答未受信のコマンドの発行数をカウントし、記憶部11aに格納しておくことが考えられる。応答未受信のコマンドの発行数が多いほど、何らかの要因によって、該当の通信経路を介したデータ入出力の処理が滞っていることになる。
そこで、例えば、処理部11bは、該当のポートについて、応答未受信のコマンドの発行数が閾値に達している場合に、ストレージ装置20への次のコマンドの送信に使用するポートを、第2の通信経路に属するポートに切り替える。
より具体的には、処理部11bは、コマンドの送信に現在使用中である通信経路Aに属するポート11cについて、応答未受信のコマンドの発行数が閾値に達した場合、ポート11cよりも優先度の低いポート11d,12c,12dの何れかを、次のコマンドの送信に使用するポートとして決定する。このとき、処理部11bは、ポート毎の優先度に従って、次のコマンドの送信に使用するポートを決定してもよい。例えば、処理部11bは、応答未受信のコマンドの発行数が閾値に達していないポートを、次のコマンドの送信に使用するポートとして決定してもよい。ただし、ポート12c,12dは、ストレージ制御装置12のポートである。このため、処理部11bは、ポート11eにおける応答未受信のコマンドの発行数を基に、ストレージ制御装置12のポート12cまたはポート12dを経由してストレージ装置20に次のコマンドを送信するか否かを決定してもよい。
ここで、ストレージシステム1のように、ストレージ装置10からストレージ装置20への通信経路を複数用意し、通信経路を切り替えて、複数の通信経路にアクセスを分散することが考えられる。しかし、ストレージ装置10は、ストレージ装置20が備える物理構成(ストレージ制御装置21,22やストレージ装置10との通信用のポート21c,21d,22c,22dや記憶デバイス23a,23b,23c,・・・など)の動作状況を監視できない。このため、ストレージ装置10側で、ストレージ装置20の動作状態の変化を観測して通信経路の切り替えのタイミングを判断することは難しい。
そこで、ストレージ装置10は、現在使用中の第1の通信経路を介した入出力の処理状況に基づいて、次のコマンドの送信に使用するポートを、第1の通信経路とは異なる第2の通信経路に属するポートに切り替える。例えば、ストレージ装置10は、第1の通信経路に属するポートにおける応答未受信のコマンドの発行数により、何らかの要因によって、ストレージ装置20に対するデータの入出力処理に遅滞が生じる可能性があることを検出し、使用ポートの切り替えを行う。これにより、ストレージ装置10は、ストレージ装置20側の動作状況を直接把握できなくても、コマンド送信に使用するポート(あるいは通信経路)を、適切なタイミングで切り替えることができる。また、ストレージ装置20に対するデータの入出力処理に遅滞が生じる前に、別の通信経路(別のポート)に入出力処理を分散させることができる。
特に、応答未受信のコマンドの発行数が多いほど、各ポートのために使用されているメモリリソースの量も多くなる。一方、各ポートに対して割り当てられるメモリリソースには上限がある。このため、上記のようにしてストレージ装置20への通信経路を切り替えることで、ストレージ装置10の各ポートに対応するメモリリソースを分散して使用可能になるという利点もある。優先度の高い通信経路を優先して使用することで、ストレージ装置20に対するIO性能を確保し、また、ストレージ装置20へのアクセス流量をストレージ制御装置11により適切に制御し、ストレージ制御装置11のリソースを効率的に使用できる。
なお、ストレージ装置10,20は、それぞれ3以上のストレージ制御装置を備えてもよい。例えば、同一ストレージ装置内の3以上のストレージ制御装置は、所定の中継装置に接続される。すると、同一ストレージ装置内の2つのストレージ制御装置は、中継装置を介して相互に通信可能である。また、ストレージ装置10,20がそれぞれ3以上のストレージ制御装置を備える場合でも、ストレージ装置10,20の間に複数の通信経路を設けることができる。このため、ストレージ装置10は、3以上のストレージ制御装置を備える場合でも、現在使用中の第1の通信経路を介した入出力の処理状況に基づいて、次のコマンドの送信に使用するポートを、第2の通信経路に属するポートに切り替える制御を行える。また、ストレージ装置10の各ポートとストレージ装置20の各ポートとは、ケーブルで直接接続されてもよいし、スイッチを介して接続されてもよい。
次に、より具体的なストレージシステムを例示して、ストレージ装置10の機能を更に詳細に説明する。
[第2の実施の形態]
図2は、第2の実施の形態のストレージシステムの例を示す図である。第2の実施の形態のストレージシステムは、ストレージ装置100および外部ストレージ装置200を有する。外部ストレージ装置200は、ストレージ装置100に接続されている。ストレージ装置100は、SAN(Storage Area Network)50に接続されている。SAN50には、サーバ300が接続されている。例えば、SAN50やストレージ装置100と外部ストレージ装置200との間のインタフェースには、ファイバチャネル(FC:Fibre Channel)が用いられる。
ストレージ装置100は、サーバ300の処理に用いられるデータを記憶する。ストレージ装置100は、ストレージ装置100または外部ストレージ装置200により提供される論理ボリュームに対するアクセス要求をサーバ300から受信する。例えば、アクセス要求は、論理ボリュームに対するデータの書き込みや論理ボリュームからのデータの読み出しなどの要求である。
ストレージ装置100は、アクセス要求のアクセス先がストレージ装置100内の論理ボリュームである場合、当該論理ボリュームに対するアクセスを実行し、アクセス結果をサーバ300に応答する。
一方、アクセス要求のアクセス先が外部ストレージ装置200内の論理ボリュームである場合、ストレージ装置100は、該当の論理ボリュームに対するデータのIO(入出力)を指示するコマンド(IOコマンド)を発行し、外部ストレージ装置200に送信する。ストレージ装置100は、外部ストレージ装置200からIOコマンドに応じたアクセス結果を受信し、当該アクセス結果をサーバ300に応答する。すなわち、ストレージ装置100はイニシエータとして機能し、外部ストレージ装置200はターゲットとして機能する。なお、ストレージ装置100は、第1の実施の形態のストレージ装置10の一例である。
外部ストレージ装置200は、サーバ300の処理に用いられるデータを記憶する。外部ストレージ装置200は、ストレージ装置100からIOコマンドを受信し、IOコマンドに応じてデータにアクセスし、アクセス結果をストレージ装置100に送信する。外部ストレージ装置200は、第1の実施の形態のストレージ装置20の一例である。
サーバ300は、ストレージ装置100および外部ストレージ装置200に格納されたデータにアクセスするサーバコンピュータである。サーバ300は、第1の実施の形態の情報処理装置30の一例である。
図3は、ストレージ装置のハードウェア例を示す図である。ストレージ装置100は、コントローラモジュール(CM:Controller Module)110,120およびドライブ収納部130を有する。外部ストレージ装置200もストレージ装置100と同様のハードウェアを有する。
CM110,120は、ドライブ収納部130に収納された複数のHDDに対するアクセスを制御するストレージ制御装置である。例えば、ドライブ収納部130は、HDD131,132,133,・・・を有する。ドライブ収納部130は、HDDに代えて、または、HDDに加えて、SSDなどの他の種類の記憶デバイスを収納してもよい。
CM110,120は、ドライブ収納部130に収納された複数のHDDを組合せて、RAID(Redundant Arrays of Inexpensive Disks)の技術により、論理的な記憶領域を構築し、サーバ300の処理に用いられるデータを当該記憶領域に格納する。例えば、サーバ300は、論理的な記憶領域を1つの論理的なボリュームとして認識する。CM110,120は、サーバ300から指定されたアクセス先ボリュームの識別情報を、ストレージ装置100,200において管理される論理ユニット(LU:Logical Unit)の識別情報(LUN:Logical Unit Number)に対応付ける。
なお、CM110,120は、第1の実施の形態のストレージ制御装置11,12の一例である。
CM110は、プロセッサ111、RAM112、フラッシュメモリ113、DI(Drive Interface)114、ホストポート115、NA(Network Adapter)116、外部ストレージアクセスポート117、媒体リーダ118およびCM間通信ポート119を有する。これらのハードウェアは、CM110内のバスに接続されている。CM120もCM110と同様のハードウェアを有する。
プロセッサ111は、CM110の情報処理を制御するハードウェアである。プロセッサ111は、マルチプロセッサであってもよい。プロセッサ111は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ111は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
RAM112は、CM110の主記憶装置である。RAM112は、揮発性の半導体メモリである。RAM112として、例えば、SRAM(Static RAM)やDRAM(Dynamic RAM)などが用いられる。RAM112は、プロセッサ111により実行されるOSやファームウェアのプログラムの少なくとも一部を一時的に記憶する。また、RAM112は、プロセッサ111による処理に用いられる各種データを記憶する。
フラッシュメモリ113は、CM110の補助記憶装置である。フラッシュメモリ113は、不揮発性の半導体メモリであり、OSやファームウェアを含むプログラムや各種データなどを記憶する。
DI114は、ドライブ収納部130と通信するためのインタフェースである。例えば、DI114として、SAS(Serial Attached SCSI)などのインタフェースを用いることができる。
ホストポート115は、SAN50に接続される通信インタフェースである。ホストポート115は、SAN50を介して、SAN50に接続されているサーバ300と通信する。ホストポート115として、例えばFCのインタフェースを用いることができる。なお、CM110は、ホストポート115を複数有する。ホストポート115は、チャネルアダプタと呼ばれてもよい。
NA116は、LAN(Local Area Network)60を介して他のコンピュータと通信する通信インタフェースである。NA116として、例えばイーサネット(登録商標)のインタフェースを用いることができる。
外部ストレージアクセスポート117は、外部ストレージ装置200と接続される通信インタフェースである。外部ストレージアクセスポート117として、例えば、FCのインタフェースを用いることができる。また、外部ストレージアクセスポート117は、所定のスイッチ(例えば、FCスイッチ)を介して、外部ストレージ装置200と接続することもできる。なお、CM110は、外部ストレージアクセスポート117を複数有する。ここで、外部ストレージアクセスポート117は、ドライブ収納部130(内部ストレージ)と接続するためのDI114とは、異なるインタフェース(あるいは、DI114の種類とは異なる種類のインタフェース)である。外部ストレージアクセスポート117は、ホストポート(チャネルアダプタ)と呼ばれてもよい。
媒体リーダ118は、記録媒体70に記憶されたプログラムやデータを読み取る装置である。記録媒体70として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することができる。媒体リーダ118は、例えば、プロセッサ111からの命令に従って、記録媒体70から読み取ったプログラムやデータを、RAM112やフラッシュメモリ113に格納する。
CM間通信ポート119は、CM120と接続するためのインタフェースである。CM110は、CM間通信ポート119を介してCM120と通信することで、CM120と連携してデータアクセスを行える。例えば、CM110,120の両方を運用系として、CM110,120によりデータアクセスを分散して行う。一方の故障時には、他方でデータアクセスを引き継ぐことができ、ユーザの業務が停止されることを防げる。なお、以下の説明では、CM110に関して主に説明するが、CM120も、CM110と同様の機能を有する。
図4は、外部ストレージ装置に対するアクセス例を示す図である。CM110は、ホストポート115および外部ストレージアクセスポート117に加えて、ホストポート115aおよび外部ストレージアクセスポート117aを有する。
ここで、CM110は、RAM112の所定の記憶領域により実現されるキャッシュによりIO制御を行う。例えば、CM110は、サーバ300からの読み出しのアクセス要求(ホストIO)に対して、キャッシュに格納されたデータを読み出し、サーバ300に応答する。また、CM110は、サーバ300からの書き込みのアクセス要求に対して、書き込み対象のデータをキャッシュに書き込み、サーバ300に書き込み完了を応答する。この場合、CM110は、HDDなどの不揮発性記憶媒体へのデータ書き込みを、サーバ300によるアクセス要求とは非同期に実行する。
このようなIO制御を行うため、RAM112は、IO用の制御資源として、CM用IO制御資源112aおよびポート用IO制御資源112bを有する。
CM用IO制御資源112aは、CM110によるIO処理を行うためのメモリリソースの一単位である。
ポート用IO制御資源112bは、ホストポート115,115aおよび外部ストレージアクセスポート117,117aによるIO処理を行うためのメモリリソースの一単位である。
例えば、CM110がホストポート115によりホストIOを受信し、外部ストレージアクセスポート117aにより外部ストレージ装置200に対するIOアクセスを行う場合、次のように各資源が利用される。
第1に、ホストIOを受信したホストポート115は、IO処理を行うために、ポート用IO制御資源112bを1つ獲得する。
第2に、ホストポート115によりIO処理を依頼されたCM110は、内部でコマンドを処理するためにCM用IO制御資源112aを1つ獲得する。
第3に、外部ストレージ装置200へのIOアクセスを行うために、CM110は、外部ストレージアクセスポート117aに対してIO指示を依頼する。
第4に、IO指示の依頼を受けた外部ストレージアクセスポート117aは、IO発行のためにポート用IO制御資源112bを1つ獲得する。
このため、高頻度に使用される外部ストレージアクセスポートに対しては、比較的多くのポート用IO制御資源112bが割かれることになる。ただし、ポート用IO制御資源112bに割り当て可能なメモリリソースは有限であり、1つの外部ストレージアクセスポートで発行可能なIO数には上限がある。このため、特定の外部ストレージアクセスポートのみを使用し続けると、CM110において外部ストレージ装置200に対するIOアクセスを処理しきれない可能性がある。
図5は、パスの例を示す図である。外部ストレージ装置200は、CM210,220を有する。CM210,220は、CM210,220それぞれが備えるCM間通信IF(図示を省略している)によって相互に接続されている。CM210は、ホストポート215,215aを有する。CM220は、ホストポート225,225aを有する。
ストレージ装置100および外部ストレージ装置200は、ケーブルにより次のように接続されている。外部ストレージアクセスポート117とホストポート215とが接続されている。外部ストレージアクセスポート117aとホストポート225とが接続されている。外部ストレージアクセスポート127とホストポート215aとが接続されている。外部ストレージアクセスポート127aとホストポート225aとが接続されている。
ここで、各CMがアクセスを担当するLUは、予め定められている。CM210は、アクセスボリューム250(外部LU)に対するアクセスを担当するものとする。外部LUは、外部ストレージ装置200内に存在するLUである。
この場合、CM110からアクセスボリューム250に対してアクセスするためのパス(通信経路)は、パス#1,#2,#3,#4の4つである。
パス#1は、外部ストレージアクセスポート117およびホストポート215を経由するパスである。パス#2は、外部ストレージアクセスポート117aおよびホストポート225を経由するパスである。パス#3は、外部ストレージアクセスポート127およびホストポート215aを経由するパスである。パス#4は、外部ストレージアクセスポート127aおよびホストポート225aを経由するパスである。なお、外部ストレージ装置200からの応答も、アクセス時と同じパスを経由して返される。
あるCMから外部LUに対するアクセス性能を向上させるには、両者の間に介在するCMの数が少ない方が望ましい。ストレージ装置100内のCM110,120の間の通信や外部ストレージ装置200内のCM210,220の間の通信が生じると、これらの通信のオーバーヘッドによりアクセス性能が低下するためである。
図5の例において、CM110からアクセスボリューム250へアクセスする場合、パス#1を使用した場合、最もアクセス性能が高い。一方、パス#4を使用した場合、最もアクセス性能が低い。
例えば、CM110からアクセスボリューム250にアクセスするために、常にパス#1を使用することが考えられる。しかし、図4で説明したように、RAM112のメモリリソースは有限であるため、1つの外部ストレージアクセスポートで発行可能なIO数には上限が設けられている。このため、外部ストレージ装置200が高負荷状態にあるなどの何らかの理由により未処理のIOが増えたり、該当の外部LUへのアクセス数が高まったりして、当該上限を超えたアクセスが生じると、パス#1によるアクセス性能が低下する可能性がある。これに対し、CM110は、各外部ストレージアクセスポートをラウンドロビンで使用してアクセスボリューム250にアクセスすることも考えられる。しかし、上記のように、CM110からアクセスボリューム250までに経由するCMの数が多いほど、CM間の通信のオーバーヘッドによりアクセス性能が低下する。
また、CM110は、外部ストレージ装置200のハードウェア(例えば、CM210,220など)の動作状態を直接監視することはできない。このため、外部ストレージ装置200のハードウェアの負荷を監視して、外部LUへのIOアクセスに用いる外部ストレージアクセスポートを切り替えることは難しい。
そこで、CM110は、各外部LUへのIOアクセスに用いる外部ストレージアクセスポート117,117a,127,127aを適切なタイミングで切り替える機能を提供する。
図6は、CMの機能例を示す図である。CM110は、記憶部150、パス情報収集部160、パス制御部170およびIO処理部180を有する。記憶部150は、RAM112やフラッシュメモリ113の記憶領域を用いて実現される。パス情報収集部160、パス制御部170およびIO処理部180は、プロセッサ111により実現される。例えば、プロセッサ111は、RAM112に記憶されたプログラムを実行することで、パス情報収集部160、パス制御部170およびIO処理部180の機能を発揮する。あるいは、パス情報収集部160、パス制御部170およびIO処理部180は、FPGAやASICなどのハードワイヤードロジックにより実現されてもよい。
記憶部150は、各外部LUにアクセスするための複数のパスに関する外部LUパス情報を記憶する。また、記憶部150は、自CM(CM110)が備える外部ストレージアクセスポート117,117aのIO実行数およびCM間通信ポート119の通信実行数を記憶する。
また、記憶部150は、外部ストレージアクセスポート117,117aによるIOコマンドの発行待ちを管理するためのIO発行待ちキューを含む。更に、記憶部150は、CM120を介したIOコマンドの発行待ちを管理するためのCM間通信待ちキューを含む。
パス情報収集部160は、ストレージ装置100および外部ストレージ装置200の間に形成される複数のパスに関する情報を収集する。例えば、パス情報収集部160は、SCSIの所定のコマンドを用いて、複数のパスのうち、外部LUに対するアクセス用に推奨されるパスおよび推奨されないパスの情報(推奨パス情報)を外部ストレージ装置200から収集する。パス情報収集部160は、推奨パス情報を外部LU毎に収集する。具体的には、パス情報収集部160は、外部LUを指定したREPORT TARTGET PORT GROUPSコマンドを外部ストレージ装置200に対して送信することで、外部LU毎の推奨パス情報を収集することができる。
パス情報収集部160は、収集した推奨パス情報を基に、外部LUパス毎の外部LUパス情報を生成し、記憶部150に格納する。外部LUパス情報は、外部LUパスへのアクセスに利用可能なパスを示すパス情報を含む。また、外部LUパス情報は、異常パス情報を含む。異常パス情報は、アクセス異常(無応答や異常な応答がある場合など)やリンクダウンなどの異常が検出されたパスを示す情報である。
パス制御部170は、外部ストレージアクセスポート117,117aのIO実行数およびCM間通信ポート119の通信実行数を監視し、記憶部150に格納する。ここで、外部ストレージアクセスポートのIO実行数は、該当の外部ストレージアクセスポートに対して発行したIOコマンドのうち、外部ストレージ装置200からの応答を未取得であるIOコマンドの数に相当する。また、CM間通信ポート119の通信実行数は、CM間通信ポート119に対して発行したIOコマンドのうち、外部ストレージ装置200からの応答(CM120を介した応答となる)を未取得であるIOコマンドの数に相当する。
パス制御部170は、外部LUへのアクセス用のパスの切り替えを行う。パス制御部170は、記憶部150に記憶された外部LUパス情報、外部ストレージアクセスポート117,117aのIO実行数およびCM間通信ポート119の通信実行数に基づいて、パスの切り替えを行う。具体的には、パス制御部170は、外部ストレージ装置200内のある外部LUへのコマンドの送信に現在使用中のパスを介した入出力の処理状況に基づいて、外部ストレージ装置200内の当該外部LUへの次のコマンドの送信に使用する外部ストレージアクセスポートを、他のパスに属する他の外部ストレージアクセスポートに切り替える。
IO処理部180は、サーバ300のアクセス要求に応じて、ストレージ装置100に格納されたデータおよび外部ストレージ装置200の外部LUに格納されたデータへのアクセスを行う。IO処理部180は、ストレージ装置100に格納されたデータにアクセスすると、アクセス結果(読み出したデータやデータの書き込み結果など)をサーバ300に応答する。IO処理部180は、外部LUに格納されたデータにアクセスする場合、前述のように、イニシエータとして機能し、ターゲットとなる外部ストレージ装置200に、外部LUに対するIOコマンドを発行する。IO処理部180は、外部ストレージ装置200からIOコマンドに応じたアクセス結果を受信し、当該アクセス結果をサーバ300に応答する。
IO処理部180は、外部LUにアクセスする場合、通常は、当該外部LUに対する推奨パスを使用してIOコマンドを送信する。ここで、推奨パスは、現在、該当の外部LUに対するアクセス性能が最も高いと考えられるパスである。ただし、外部LUにアクセスするためのパスは、パス制御部170によって切り替えられることがある。その場合、IO処理部180は、切り替え後のパスを使用して、外部LUにアクセスするためのIOコマンドを、外部ストレージ装置200に送信する。
ここで、各CMおよび各ポートの識別情報を例示する。
図7は、CMおよびポートの識別情報の例を示す図である。ストレージ装置100におけるCM110の識別情報は、“CM#0”である。ストレージ装置100におけるCM120の識別情報は、“CM#1”である。外部ストレージ装置200におけるCM210の識別情報は、“CM#0”である。外部ストレージ装置200におけるCM220の識別情報は、“CM#1”である。
外部ストレージアクセスポート117の識別情報は、“Port0”である。外部ストレージアクセスポート117aの識別情報は“Port1”である。外部ストレージアクセスポート127の識別情報は、“Port2”である。外部ストレージアクセスポート127aの識別情報は、“Port3”である。
ホストポート215の識別情報は、“PortA”である。ホストポート215aの識別情報は、“PortB”である。ホストポート225の識別情報は、“PortC”である。ホストポート225aの識別情報は、“PortD”である。
ストレージ装置100の外部ストレージアクセスポート117,117a,127,127aと、外部ストレージ装置200のホストポート215,215a,225,225aとの間に形成される複数のパスは、各ポートの識別情報の組合せで表せる。
例えば、外部ストレージアクセスポート117とホストポート215とが属するパスは、“Port0−PortA”である。ここで、CM210がアクセスを担当する外部LUの1つを外部LU#0とする。すると、“Port0−PortA”のパスは、CM110から外部LU#0へのパス#1に相当する。
また、外部ストレージアクセスポート117aとホストポート225とが属するパスは、“Port1−PortC”である。“Port1−PortC”のパスは、CM110から外部LU#0へのパス#2に相当する。
また、外部ストレージアクセスポート127とホストポート215aとが属するパスは、“Port2−PortB”である。“Port2−PortB”のパスは、CM110から外部LU#0へのパス#3に相当する。
更に、外部ストレージアクセスポート127aとホストポート225aとが属するパスは、“Port3−PortD”である。“Port3−PortD”のパスは、CM110から外部LU#0へのパス#4に相当する。
図8は、外部LU#0に対する推奨パス情報の取得例を示す図である。パス情報収集部160は、REPORT TARTGET PORT GROUPSコマンドを外部LU#0を指定し、外部ストレージ装置200に送信する。外部ストレージ装置200は、外部LU#0に対する各パスの推奨/非推奨を示す推奨パス情報をパス情報収集部160に応答する。当該応答を、REPORT TARTGET PORT GROUPS応答と呼ぶ。
例えば、図7で例示したパス構成の場合、“Port0−PortA”のパスは、推奨である。“Port1−PortC”のパスは、非推奨である。“Port2−PortB”のパスは、推奨である。“Port3−PortD”のパスは、非推奨である。
このような応答を外部ストレージ装置200が返す理由は、外部ストレージ装置200では外部LU#0へのアクセスを担当するCMがCM210であり、CM210にIOコマンドが(CM220を介さずに)直接入力されるパスを推奨と判断するためである。すなわち、REPORT TARTGET PORT GROUPS応答では、外部LU#0へアクセスする際に、外部ストレージ装置200内でのCM間の通信によるオーバーヘッドがないパスが推奨となり、それ以外のパスが非推奨となる。推奨として応答されたパスは、外部ストレージ装置200内で経由するCMの数が最小のパスである。
パス情報収集部160は、REPORT TARTGET PORT GROUPS応答で推奨とされた“Port0−PortA”のパス、および、“Port2−PortB”のパスのうち、自CM(CM110)の外部ストレージアクセスポート117(“Port0”)を含むパス“Port0−PortA”を最高優先度のパスと決定する。
図9は、外部LU#0に対するアクセスパス設定の例を示す図である。パス情報収集部160は、ストレージ装置100と外部ストレージ装置200との間に形成される各パスに対して、次のように優先度を決定する。
まず、パス情報収集部160は、“Port0−PortA”のパスを最高優先度とする。ここで、一例として、優先度を1以上の整数値で表し、数値が小さいほど、優先度が高いものとする。したがって、最高優先度は“1”である。最高優先度のパスのパス名は、“自装置ストレート−外部ストレージストレート”である。ここでいう“自装置”とは、ストレージ装置100を示す。また、“自装置ストレート”とは、ストレージ装置100内でCM110,120間の通信が発生しないパスであることを示す。同様に、“外部ストレージストレート”とは、外部ストレージ装置200内でCM210,220間の通信が発生しないパスであることを示す。
次に、パス情報収集部160は、REPORT TARTGET PORT GROUPS応答で収集したパス(優先度“1”のパスを除く)のうち、CM110のポートが属する“Port1−PortC”のパスを、優先度“2”とする。“Port1−PortC”のパスのパス名は、“自装置ストレート−外部ストレージクロス”である。ここで、“外部ストレージクロス”とは、外部ストレージ装置200内でCM210,220間の通信を行うパスであることを示す。残りのパスのうち、“Port1−PortC”のパスを優先度“2”とする理由は、CM120を介さずにコマンド送信できた方が、ストレージ装置100内でのオーバーヘッドを低減できるからである。サーバ300に対してバックエンド側(外部ストレージ装置200)よりもフロントエンド側(ストレージ装置100)のオーバーヘッドを低減した方が、サーバ300のアクセス要求に対するレスポンスを高速化できる。
次に、パス情報収集部160は、REPORT TARTGET PORT GROUPS応答で収集したパス(優先度“1”、“2”のパスを除く)のうち、当該応答で推奨とされた“Port2−PortB”のパスを、優先度“3”とする。“Port2−PortB”のパスのパス名は、“自装置クロス−外部ストレージストレート”である。ここで、“自装置クロス”とは、ストレージ装置100内でCM110,120間の通信を行うパスであることを示す。残りのパスのうち、“Port2−PortB”のパスを優先度“3”とする理由は、外部ストレージ装置200側でのCM間の通信によるオーバーヘッドを発生させずに、外部LU#0にアクセスできるからである。
そして、パス情報収集部160は、REPORT TARTGET PORT GROUPS応答で収集したパス(優先度“1”、“2”、“3”のパスを除く)のうち、当該応答で非推奨とされた“Port3−PortD”のパスを、優先度“4”とする。“Port3−PortD”のパスのパス名は、“自装置クロス−外部ストレージクロス”である。
このように、パス情報収集部160は、複数のパスのうち、外部ストレージ装置200の外部LUへのアクセスのために推奨されるパスを示す推奨パス情報を外部LU毎に外部ストレージ装置200から取得する。パス情報収集部160は、推奨パス情報に基づいて、ポートの切り替え先を選択する際の複数のパスそれぞれの優先度を外部LU毎に決定する。
このとき、パス情報収集部160は、アクセス先の外部LUに到達するまでに経由するCMの数が少ないほど、優先度を高くする。また、パス情報収集部160は、複数のパスのうち、自CM(CM110)の外部アクセスポートを介するパスの優先度を、CM120の外部アクセスポートを介するパスの優先度よりも高くする。
パス情報収集部160は、こうして決定したパスに関する情報を、外部LU#0の識別情報に対応付けて、外部LUパス情報に登録する。パス情報収集部160は、外部LU毎に、外部LUパス情報を生成する。
図10は、外部LUパス情報の例を示す図である。外部LUパス情報151は、記憶部150に格納される。外部LUパス情報151は、一例として、外部LU#0に関する情報を示している。
例えば、外部LUパス情報151は、外部LU、“自装置ストレート−外部ストレージストレート”のパス情報、“自装置ストレート−外部ストレージクロス”のパス情報、“自装置クロス−外部ストレージストレート”のパス情報、“自装置クロス−外部ストレージクロス”のパス情報および異常パス情報のフィールドを含む。
外部LUのフィールドには、外部LU#0を示す識別情報が設定される。“自装置ストレート−外部ストレージストレート”のパス情報のフィールドには、当該パスに属するポートの組“Port0−PortA”および優先度“1”が設定される。“自装置ストレート−外部ストレージクロス”のパス情報のフィールドには、当該パスに属するポートの組“Port1−PortC”および優先度“2”が設定される。“自装置クロス−外部ストレージストレート”のパス情報のフィールドには、当該パスに属するポートの組“Port2−PortB”および優先度“3”が設定される。“自装置クロス−外部ストレージクロス”のパス情報のフィールドには、当該パスに属するポートの組“Port3−PortD”および優先度“4”が設定される。異常パス情報のフィールドには、外部LUへのアクセス異常やリンクダウンなどの物理的な切断事象を検出した外部ストレージアクセスポートが属するパスの識別情報が設定される。何れの外部ストレージアクセスポートも異常を検出していない場合、異常パス情報のフィールドは、設定なしとなる。
他の外部LUに関しても、外部LUパス情報151と同様の情報が記憶部150に格納される。
図11は、IO管理テーブルの例を示す図である。IO管理テーブル152は、記憶部150に格納される。IO管理テーブル152は、CM110の外部ストレージアクセスポート117,117aおよびCM間通信ポート119それぞれに対するIOコマンドの発行数を管理するための情報である。例えば、CM120は、外部ストレージアクセスポート127,127aおよびCM120のCM間通信ポートそれぞれに対するIOコマンドの発行数を管理するためのIO管理テーブルを保持する。
IO管理テーブル152は、CM間通信実行数、Port0−IO実行数、Port1−IO実行数、・・・、PortN−IO実行数のフィールドを含む(Nは1以上の整数であり、本例ではN=1である)。
CM間通信実行数のフィールドには、CM110からCM間通信ポート119に対して発行されたIOコマンドのうち、応答を未受信であるIOコマンドの数が記録される。Port0−IO実行数のフィールドには、CM110により外部ストレージアクセスポート117(Port0)を介して発行されたIOコマンドのうち、応答を未受信であるIOコマンドの数が記録される。Port1−IO実行数のフィールドには、CM110により外部ストレージアクセスポート117a(Port1)を介して発行されたIOコマンドのうち、応答を未受信であるIOコマンドの数が記録される。
なお、CM110が3以上の外部ストレージアクセスポートを有する場合にも、同様に、外部ストレージアクセスポート毎にIO実行数が記録される。
パス制御部170は、外部LUパス情報151およびIO管理テーブル152に基づいて、IOコマンドの送信に用いるパスを選択する。次に、パス制御部170によるパス選択論理を説明する。
図12は、パス選択論理の例を示す図である。パス選択論理表80は、パス制御部170によるパス選択処理の内容を表形式で示す。パス選択論理表80は、項番、優先パス、パスの状態、IO実行数、CM間通信実行数、使用パスおよび処理内容の列を含む。
項番の列には、1つの選択論理を示す番号が記載されている。優先パスの列には、現在選択されているパス(優先パスと称する)を示す識別情報が記載されている。パスの状態の列には、優先パスの状態が記載されている。優先パスの状態は、正常または異常である。IO実行数の列には、優先パスに属する外部ストレージアクセスポートのIO実行数に対する条件が記載されている。当該条件を用いない選択論理の場合、IO実行数の欄にはハイフン記号“−”が記載されている。CM間通信実行数の列には、優先パスに属するCM間通信ポートの通信実行数に対する条件が記載されている。当該条件を用いない選択論理の場合、CM間通信実行数の欄には、ハイフン記号“−”が記載されている。使用パスの列には、該当の選択論理において選択されるパスの識別情報が記載されている。該当の選択論理において選択されるパスがない場合、使用パスの欄にはハイフン記号“−”が記載されている。処理内容の列には、使用パスが選択されない(使用パスの欄の記載が“−”である)場合の処理内容が記載されている。使用パスが選択され、処理内容がない場合、処理内容の欄にはハイフン記号“−”が記載されている。
ここで、項番1,2,3の行は、優先パス=パス#1の場合の選択論理である。項番4,5,6,7の行は、優先パス=パス#2の場合の選択論理である。項番8,9の行は、優先パス=パス#3の場合の選択論理である。項番10,11の行は、優先パス=パス#4の場合の選択論理である。
項番1の行は、パス#1の状態が正常、かつ、外部ストレージアクセスポート117のIO実行数が上限未満の場合に、使用パスをパス#1とすることを示す。
項番2の行は、パス#1の状態が正常、かつ、外部ストレージアクセスポート117のIO実行数が上限以上の場合に、優先パスをパス#2に変更することを示す。
項番3の行は、パス#1の状態が異常の場合に、優先パスをパス#2に変更することを示す。
パス制御部170は、優先パスをパス#2に変更した場合、項番4,5,6,7の何れかの選択論理を実行する。
項番4の行は、パス#2の状態が正常、かつ、外部ストレージアクセスポート117aのIO実行数が上限未満の場合に、使用パスをパス#2とすることを示す。
項番5の行は、パス#2の状態が正常、かつ、外部ストレージアクセスポート117aのIO実行数が上限以上の場合に、今回のIOをIO発行待ちキューにキューイングすることを示す。
項番6の行は、パス#2の状態が異常、かつ、CM間通信ポート119のCM間通信実行数が上限未満の場合に、優先パスをパス#3に変更することを示す。
項番7の行は、パス#2の状態が異常、かつ、CM間通信ポート119のCM間通信実行数が上限以上の場合に、今回のIOをCM間通信待ちキューにキューイングすることを示す。
パス制御部170は、優先パスをパス#3に変更した場合、項番8,9の何れかの選択論理を実行する。
項番8の行は、パス#3の状態が正常の場合に、使用パスをパス#3とすることを示す。
項番9の行は、パス#3の状態が異常の場合に、優先パスをパス#4に変更することを示す。
パス制御部170は、優先パスをパス#4に変更した場合、項番10,11の何れかの選択論理を実行する。
項番10の行は、パス#4の状態が正常の場合に、使用パスをパス#4とすることを示す。
項番11の行は、パス#4の状態が異常の場合に、IO異常終了とすることを示す。
次に、CM110により外部LUにアクセスする際の処理手順を説明する。
図13は、パス選択の例を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。以下の手順は、CM110が外部LU#0をアクセス先とするアクセス要求をサーバ300から受信した際に実行される。ただし、他の外部LUをアクセス先とするアクセス要求を受信した場合も同様の手順となる。
(S11)パス制御部170は、外部LUパス情報151を参照して、“自装置ストレート−外部ストレージストレート”のパスがあるか否かを判定する。“自装置ストレート−外部ストレージストレート”のパスがある場合、パス制御部170は、ステップS12に処理を進める。“自装置ストレート−外部ストレージストレート”のパスがない場合、パス制御部170は、ステップS16に処理を進める。
(S12)パス制御部170は、“自装置ストレート−外部ストレージストレート”のパスを1つ選択し、外部LUパス情報151の異常パス情報を参照して、選択したパス(選択パス)が正常であるか否かを判定する。選択パスが正常である場合、パス制御部170は、ステップS15に処理を進める。選択パスが正常でない場合、パス制御部170は、ステップS13に処理を進める。
(S13)パス制御部170は、外部LUパス情報151を参照して、“自装置ストレート−外部ストレージストレート”の他パスがあるか否かを判定する。“自装置ストレート−外部ストレージストレート”の他パスがある場合、パス制御部170は、ステップS14に処理を進める。“自装置ストレート−外部ストレージストレート”の他パスがない場合、パス制御部170は、ステップS16に処理を進める。
(S14)パス制御部170は、“自装置ストレート−外部ストレージストレート”の他パスを1つ選択し、外部LUパス情報151の異常パス情報を参照して、選択したパス(選択パス)が正常であるか否かを判定する。選択パスが正常である場合、パス制御部170は、ステップS15に処理を進める。選択パスが正常でない場合、パス制御部170は、ステップS13に処理を進める。
(S15)パス制御部170は、IO管理テーブル152の選択パスに対するIO実行数を参照して、当該選択パスに対するIO実行数がIO発行上限に達しているか否かを判定する。IO実行数がIO発行上限に達している場合、パス制御部170は、ステップS13に処理を進める。IO実行数がIO発行上限に達していない場合、パス制御部170は、該当の選択パスを使用パスに確定して、パス選択処理を終了する。
(S16)パス制御部170は、外部LUパス情報151を参照して、“自装置ストレート−外部ストレージクロス”のパスがあるか否かを判定する。“自装置ストレート−外部ストレージクロス”のパスがある場合、パス制御部170は、ステップS17に処理を進める。“自装置ストレート−外部ストレージクロス”のパスがない場合、パス制御部170は、ステップS21に処理を進める。
(S17)パス制御部170は、“自装置ストレート−外部ストレージクロス”のパスを1つ選択し、外部LUパス情報151の異常パス情報を参照して、選択したパス(選択パス)が正常であるか否かを判定する。選択パスが正常である場合、パス制御部170は、ステップS20に処理を進める。選択パスが正常でない場合、パス制御部170は、ステップS18に処理を進める。
(S18)パス制御部170は、外部LUパス情報151を参照して、“自装置ストレート−外部ストレージクロス”の他パスがあるか否かを判定する。“自装置ストレート−外部ストレージクロス”の他パスがある場合、パス制御部170は、ステップS19に処理を進める。“自装置ストレート−外部ストレージクロス”の他パスがない場合、パス制御部170は、ステップS21に処理を進める。
(S19)パス制御部170は、“自装置ストレート−外部ストレージクロス”の他パスを1つ選択し、外部LUパス情報の異常パス情報を参照して、選択したパス(選択パス)が正常であるか否かを判定する。選択パスが正常である場合、パス制御部170は、ステップS20に処理を進める。選択パスが正常でない場合、パス制御部170は、ステップS18に処理を進める。
(S20)パス制御部170は、IO管理テーブル152の選択パスに対するIO実行数を参照して、当該選択パスに対するIO実行数がIO発行上限に達しているか否かを判定する。IO実行数がIO発行上限に達している場合、パス制御部170は、ステップS18に処理を進める。IO実行数がIO発行上限に達していない場合、パス制御部170は、該当の選択パスを使用パスに確定して、パス選択処理を終了する。
(S21)パス制御部170は、外部LUパス情報の異常パス情報を参照して、“自装置ストレート−外部ストレージストレート”のパス、および、“自装置ストレート−外部ストレージクロス”のパスのうち、IO発行可能な正常パスがあるか否かを判定する。“自装置ストレート−外部ストレージストレート”のパス、および、“自装置ストレート−外部ストレージクロス”のパスのうち、正常パスがある場合、パス制御部170は、ステップS22に処理を進める。“自装置ストレート−外部ストレージストレート”のパス、および、“自装置ストレート−外部ストレージクロス”のパスのうち、正常パスがない場合、パス制御部170は、ステップS23に処理を進める。
(S22)パス制御部170は、自CM(CM110)のIO発行待ちキューに外部LUに対するIOコマンドをエンキューする。そして、パス制御部170は、パス選択処理を終了する。
(S23)パス制御部170は、他CM(CM120)経由のパスの選択を行う。他CM経由のパスの選択の詳細は、後述される。
ここで、ステップS15,S20の判定に用いられるIO発行上限は、選択パスに属する外部ストレージアクセスポートに対して割り当てられたメモリリソースの上限に応じて予め設定される。
また、パス制御部170は、使用パスを確定した場合、当該使用パスを使用したIOコマンドの送信をIO処理部180に指示する。IO処理部180は、指示された使用パスを介して、アクセス先の外部LUに対するIOコマンドを、外部ストレージ装置200に送信する。
上記の手順によれば、CM110は、通常時は、利用可能なパスのうちの最高優先度のパスを使用することになる。そして、CM110は、当該パスを介して送信済であるIOコマンドのうち、応答を未受信であるIOコマンドの数が閾値(IO発行上限)に達している場合に、外部ストレージ装置200への次のIOコマンドの送信に使用するポートの切り替えを行う。一方、CM110は、当該数が閾値に達していない場合に、使用するポートの切り替えを行わない。
図14は、他CM経由のパスの選択の例を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。なお、以下に示す手順は、図13のステップS23に相当する。
(S31)パス制御部170は、外部LUパス情報151を参照して、アクセス先の外部LUに対する他CMを使用したアクセスパスがあるか否かを判定する。該当の外部LUに対する他CMを使用したアクセスパスがある場合、パス制御部170は、ステップS33に処理を進める。該当の外部LUに対する他CMを使用したアクセスパスがない場合、パス制御部170は、ステップS32に処理を進める。ここで、他CMを使用したアクセスパスは、“自装置クロス−外部ストレージストレート”のパス、または、“自装置クロス−外部ストレージクロス”のパスである。
(S32)パス制御部170は、エラー情報を作成し、IO処理を異常終了する。そして、パス制御部170は、他CM経由のパスの選択を終了する。
(S33)パス制御部170は、IO管理テーブル152を参照して、CM間通信実行数が上限に達しているか否かを判定する。CM間通信実行数が上限に達している場合、パス制御部170は、ステップS34に処理を進める。CM間通信実行数が上限に達していない場合、パス制御部170は、ステップS35に処理を進める。
(S34)パス制御部170は、自CM(CM110)のCM間通信待ちキューに外部LUに対するIOコマンドをエンキューする。そして、パス制御部170は、他CM経由のパスの選択を終了する。
(S35)パス制御部170は、外部LUパス情報を参照して、“自装置クロス−外部ストレージストレート”のパスがあるか否かを判定する。“自装置クロス−外部ストレージストレート”のパスがある場合、パス制御部170は、ステップS36に処理を進める。“自装置クロス−外部ストレージストレート”のパスがない場合、パス制御部170は、ステップS37に処理を進める。
(S36)パス制御部170は、“自装置クロス−外部ストレージストレート”のパスを使用パスとして選択する。そして、パス制御部170は、他CM経由のパスの選択を終了する。
(S37)パス制御部170は、“自装置クロス−外部ストレージクロス”のパスを使用パスとして選択する。そして、パス制御部170は、他CM経由のパスの選択を終了する。ただし、ステップS37において、“自装置クロス−外部ストレージクロス”のパスがない場合、パス制御部170は、IO処理を異常終了する。
上記の手順によれば、CM110は、アクセス先の外部LUに対して選択された推奨パス(使用パス)を優先的に使用し、推奨パスに対するIO発行数が上限に達したタイミングで、推奨パスよりも優先度の低いパスに切り替えて、外部LUにアクセス可能になる。
次に、図13のステップS22において、IO発行待ちキューにエンキューされたIOコマンドのデキュー処理の手順を説明する。
図15は、IO発行待ちキューのデキュー処理の例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
(S41)パス制御部170は、IO処理部180による外部LUに対するIO処理完了を検出し、当該IO処理が完了した外部ストレージアクセスポートのIO実行数(IO管理テーブル152に記録されているIO実行数)に所定数を減算する。パス制御部170は、今回検出したIO処理完了の検出数(1以上の数)を減算してもよい。
(S42)パス制御部170は、IO発行待ちキューにIOコマンドがあるか否かを判定する。IO発行待ちキューにIOコマンドがある場合、パス制御部170は、ステップS43に処理を進める。IO発行待ちキューにIOコマンドがない場合、パス制御部170は、IO発行待ちキューのデキュー処理を終了する。
(S43)パス制御部170は、IOコマンドのアクセス先の外部LUに対応する外部LUパス情報を参照して、“自装置ストレート−外部ストレージストレート”のパスがあるか否かを判定する。“自装置ストレート−外部ストレージストレート”のパスがある場合、パス制御部170は、ステップS44に処理を進める。“自装置ストレート−外部ストレージストレート”のパスがない場合、パス制御部170は、ステップS47に処理を進める。
(S44)パス制御部170は、アクセス先の外部LUに対応する外部LUパス情報を参照して、“自装置ストレート−外部ストレージストレート”の正常なパスを1つ選択する。パス制御部170は、IO管理テーブル152を参照して、当該パスに属する外部ストレージアクセスポートのIO実行数がIO発行上限に達しているか否かを判定する。IO実行数がIO発行上限に達している場合、パス制御部170は、ステップS46に処理を進める。IO実行数がIO発行上限に達していない場合、パス制御部170は、ステップS45に処理を進める。
(S45)パス制御部170は、IO処理部180によるIO処理を起動し、選択したパスに対応する外部ストレージアクセスポートのIO実行数(IO管理テーブル152に記録されているIO実行数)に所定数を加算する。例えば、パス制御部170は、IO処理部180により今回送信されるIOコマンドの数(1以上の数)を加算することができる。また、パス制御部170は、IO処理部180により今回送信されたIOコマンドを、IO発行待ちキューから削除する。そして、パス制御部170は、ステップS42に処理を進める。
(S46)パス制御部170は、IOコマンドのアクセス先の外部LUに対応する外部LUパス情報を参照して、“自装置ストレート−外部ストレージストレート”の他パスがあるか否かを判定する。“自装置ストレート−外部ストレージストレート”の他パスがある場合、パス制御部170は、ステップS44に処理を進める。“自装置ストレート−外部ストレージストレート”の他パスがない場合、パス制御部170は、ステップS47に処理を進める。
(S47)パス制御部170は、IOコマンドのアクセス先の外部LUに対応する外部LUパス情報を参照して、“自装置ストレート−外部ストレージクロス”のパスがあるか否かを判定する。“自装置ストレート−外部ストレージクロス”のパスがある場合、パス制御部170は、ステップS48に処理を進める。“自装置ストレート−外部ストレージクロス”のパスがない場合、パス制御部170は、ステップS50に処理を進める。
(S48)パス制御部170は、アクセス先の外部LUに対応する外部LUパス情報を参照して、“自装置ストレート−外部ストレージクロス”の正常なパスを1つ選択する。パス制御部170は、IO管理テーブル152を参照して、当該パスに属する外部ストレージアクセスポートのIO実行数がIO発行上限に達しているか否かを判定する。IO実行数がIO発行上限に達している場合、パス制御部170は、ステップS49に処理を進める。IO実行数がIO発行上限に達していない場合、パス制御部170は、ステップS45に処理を進める。
(S49)パス制御部170は、IOコマンドのアクセス先の外部LUに対応する外部LUパス情報を参照して、“自装置ストレート−外部ストレージクロス”の他パスがあるか否かを判定する。“自装置ストレート−外部ストレージクロス”の他パスがある場合、パス制御部170は、ステップS48に処理を進める。“自装置ストレート−外部ストレージクロス”の他パスがない場合、パス制御部170は、ステップS50に処理を進める。
(S50)パス制御部170は、着目するIOコマンドのエンキュー状態を維持する。
(S51)パス制御部170は、更にIO発行待ちキューにIOコマンドがあるか否かを判定する。IO発行待ちキューにIOコマンドがある場合、パス制御部170は、ステップS43に処理を進める。IO発行待ちキューにIOコマンドがない場合、パス制御部170は、IO発行待ちキューのデキュー処理を終了する。
このようにして、パス制御部170は、外部LUからのIO応答時に、IO発行待ちキューにキューイングされたIOコマンドのデキュー処理を行う。このとき、パス制御部170は、IO発行待ちキューの先頭にキューイングされているコマンドについては、自CM(CM110)の外部ストレージアクセスポートの中でIO実行数が閾値に達していないポートを選択する。
次に、図14のステップS34において、CM間通信待ちキューにエンキューされたIOコマンドのデキュー処理の手順を説明する。
図16は、CM間通信待ちキューのデキュー処理の例を示すフローチャートである。以下、図16に示す処理をステップ番号に沿って説明する。
(S61)パス制御部170は、IO処理部180によるCM間通信の完了を検出する。例えば、1つのIOコマンドは、1つのCM間通信に対応する。IO処理部180は、あるIOコマンドに対して、CM120から外部LUに対するアクセス結果を受信すると当該IOコマンドに対応するCM間通信の完了を検出する。パス制御部170は、1以上のCM間通信の完了を検出してもよい。
(S62)パス制御部170は、CM間通信待ちキューにIOコマンドがあるか否かを判定する。CM間通信待ちキューにIOコマンドがある場合、パス制御部170は、ステップS63に処理を進める。CM間通信待ちキューにIOコマンドがない場合、パス制御部170は、CM間通信待ちキューのデキュー処理を終了する。
(S63)パス制御部170は、CM間通信待ちキューからIOコマンドをデキューする。パス制御部170は、ステップS61で完了を検出したCM間通信の数に応じて、1以上のIOコマンドをデキューすることができる。
(S64)パス制御部170は、ステップS61で完了を検出したCM間通信の数の分だけ、IO管理テーブル152に記録されているCM間通信実行数を減算する。
(S65)パス制御部170は、IO処理部180によるIO処理を起動する。IO処理部180は、CM120に対してIOコマンドを送信し、当該IOコマンドによる外部LUに対するIO処理を依頼する。例えば、CM120は、IO処理の依頼を受け付けるとイニシエータとして機能し、外部LUに対するIO処理を実行する。
(S66)パス制御部170は、IO管理テーブル152に記録されているCM間通信実行数を加算する。パス制御部170は、ステップS63でデキューしたIOコマンドの数の分だけ、CM間通信実行数を加算する。そして、パス制御部170は、CM間通信待ちキューのデキュー処理を終了する。
このように、CM110は、CM110の外部ストレージアクセスポートを介した外部LUへのパスがある場合と、CM110の外部ストレージアクセスポートを介した外部LUへのパスがない場合とで、IOコマンドをキューイングするキューを別個にする。これにより、CM110において外部ストレージアクセスポートを利用可能である場合には、CM間通信によるオーバーヘッドを低減できる。また、CM110において外部ストレージアクセスポートを利用できない場合には、CM110は、CM120に対して適切にIO処理を依頼できる。
ここで、CM110によりIOコマンドを送信するための推奨パスを選択したとしても、当該推奨パスで伝送路の遅延などが発生することもある。この場合、必ずしも推奨パスを使用することが適切とは限らない。他のパスを選択した方が、IOコマンドに対する外部ストレージ装置200からの応答時間を短縮できる可能性もある。
そこで、CM110は、下記の機能により、推奨パスを動的に補正してもよい。
図17は、性能閾値テーブルの例を示す図である。性能閾値テーブルセット153および外部LU#0性能閾値テーブル154は、記憶部150に格納される。性能閾値テーブルセット153は、外部LU毎の性能閾値テーブルを含む集合である。外部LU#0性能閾値テーブル154は、性能閾値テーブルセット153の1つの要素である。
例えば、性能閾値テーブルセット153は、外部LU#0性能閾値テーブル154,外部LU#1性能閾値テーブル,・・・を含む。以下では、外部LU#0性能閾値テーブル154を主に説明するが、外部LU#1性能閾値テーブル,・・・などの性能閾値テーブルにも同様の情報が設定される。
外部LU#0性能閾値テーブル154は、各パスに対する性能閾値および推奨パス異常補正中フラグが設定されるテーブルである。性能閾値は、例えば、IOコマンドに対する応答時間(レスポンスタイム)として許容される上限値である。性能閾値は、READ(読み出し)およびWRITE(書き込み)のそれぞれに対して設定される。READに対する性能閾値をREAD性能閾値と称し、WRITEに対する性能閾値をWRITE性能閾値と称する。推奨パス異常補正中フラグは、推奨パスを補正中の状態であるか否かを示すフラグである。推奨パス異常補正中フラグ“on”は補正中を示す。推奨パス異常補正中フラグ“off”は補正中でないことを示す。推奨パス異常補正中フラグのデフォルト値は“off”である。
例えば、外部LU#0性能閾値テーブル154には、外部LU#0への“自装置ストレート−外部ストレージストレート”のパスに対するREAD性能閾値およびWRITE性能閾値が設定される。また、外部LU#0性能閾値テーブル154には、外部LU#0への“自装置ストレート−外部ストレージクロス”のパスに対するREAD性能閾値およびWRITE性能閾値が設定される。また、外部LU#0性能閾値テーブル154には、外部LU#0への“自装置クロス−外部ストレージストレート”のパスに対するREAD性能閾値およびWRITE性能閾値が設定される。また、外部LU#0性能閾値テーブル154には、外部LU#0への“自装置クロス−外部ストレージクロス”のパスに対するREAD性能閾値およびWRITE性能閾値が設定される。また、外部LU#0性能閾値テーブル154には、外部LU#0へのパスについて、推奨パスを補正中の状態であるか否かを示す推奨パス異常補正中フラグも設定されている。
パス制御部170は、性能閾値テーブルセット153に含まれる各外部LUに対応する性能閾値テーブルに基づいて、IOコマンドの送信に用いるパスを選択する。次に、当該選択の手順を説明する。
図18は、IO性能に応じたパス切り替えの例を示すフローチャートである。以下、図18に示す処理をステップ番号に沿って説明する。以下では、外部LU#0に対するIO処理を想定するが、他の外部LUでも同様の手順となる。
(S71)パス制御部170は、外部LU#0に対して現在使用中の推奨パス(現パス)でのIO性能の低下を検出する。例えば、パス制御部170は、外部LU#0へのIOコマンドの送信から応答までの時間(レスポンスタイム)をREAD/WRITE別個に計測する。READのIOコマンドのレスポンスタイムがREAD性能閾値を超過する場合、および、WRITEのIOコマンドのレスポンスタイムがWRITE性能閾値を超過する場合の少なくとも一方の場合に、パス制御部170は、現パスでのIO性能の低下を検出する。例えば、現パスがパス#1の場合、パス制御部170は、外部LU#0性能閾値テーブル154のうち、“自装置ストレート−外部ストレージストレート”のパスに対するREAD性能閾値およびWRITE性能閾値を用いて、IO性能の低下を検出する。
(S72)パス制御部170は、外部LU#0性能閾値テーブル154の推奨パス異常補正中フラグを“on”に設定する。
(S73)パス制御部170は、現パスを示す異常パス情報を、外部LUパス情報151に設定する。例えば、現パスがパス#1の場合、パス制御部170は、異常パス情報として、パス#1を示す情報を外部LUパス情報151に設定する。その結果、パス制御部170は、パス#1をパス選択の対象外とする。
(S74)パス制御部170は、残りのパス(未選択かつ正常なパス)を優先度に従って1つ選択する。例えば、優先度の高い方から順に各パスを並べると、“自装置ストレート−外部ストレージストレート”、“自装置ストレート−外部ストレージクロス”、“自装置クロス−外部ストレージストレート”、“自装置クロス−外部ストレージクロス”である。
(S75)パス制御部170は、選択したパスのREAD/WRITEのIO性能が外部LU#0性能閾値テーブル154に設定されたREAD/WRITEの性能閾値未満であるか否かを判定する。READ/WRITEのIO性能の両方が性能閾値未満の場合、パス制御部170は、ステップS79に処理を進める。READ/WRITEのIO性能の少なくとも一方が性能閾値以上の場合、パス制御部170は、ステップS76に処理を進める。
(S76)パス制御部170は、残りパス(現パス以外のパス)を全て検査済であるか否かを判定する。残りパスを全て検査済である場合、パス制御部170は、ステップS77に処理を進める。残りパスを全て検査済でない場合、パス制御部170は、ステップS74に処理を進める。
(S77)パス制御部170は、ステップS73で設定した外部LUパス情報151の異常パス情報および外部LU#0性能閾値テーブル154の異常補正中フラグをクリアする。その結果、外部LUパス情報151の異常パス情報からステップS73で設定したパスの情報が削除される。また、外部LU#0性能閾値テーブル154の推奨パス補正中フラグは、“off”となる。
(S78)パス制御部170は、元のパス(現パス)でIOを継続する。そして、パス制御部170は、IO性能に応じたパス切り替えを終了する。
(S79)パス制御部170は、IOに使用するパスを、現パスからステップS74で選択したパスに切り替える。そして、パス制御部170は、IO性能に応じたパス切り替えを終了する。
こうして、CM110は、推奨パスのIO性能が性能閾値を満たしていない場合に、IO性能が性能閾値を満たす別のパスに切り替えることで、外部ストレージ装置200に対するアクセスを高速化できる。ただし、CM110における各パスで観測したIO性能が性能閾値を超過している場合、アクセスを中断させないために、現パスを継続して使用する。
例えば、CM110は、図13の手順により最高優先度のパスを使用中に、当該パスのIO実行数が閾値(IO発行上限)に達していない場合でも、当該パスを介した外部ストレージ装置200に対する通信の応答時間が性能閾値に達している場合には、IOコマンドの送信に使用するポートの切り替えを行う。
また、前述のように、CM110は、なるべく優先度の高いパスを使用した方が、より高速なアクセスを実現可能である。そこで、CM110は、図18の手順により使用するパスを変更した後、下記のパス復旧制御を行う。
図19は、パス復旧制御の例を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。
(S81)パス制御部170は、推奨パス異常補正フラグonのパス(監視対象パス)について監視READコマンドにより該当の外部LUに対するレスポンスタイムの監視を実行する。監視READコマンドは、該当の外部LUに対するREADを行う監視用のコマンド(監視コマンド)である。パス制御部170は、監視対象パスに対して、監視READコマンドによる監視を定期的に行う。
(S82)パス制御部170は、外部LU#0性能閾値テーブル154を参照して、外部LU#0への監視対象パスを介したREAD性能(レスポンスタイム)が性能閾値未満であるか否かを判定する。READ性能が性能閾値未満である場合、パス制御部170は、ステップS83に処理を進める。READ性能が性能閾値以上の場合、パス制御部170は、ステップS81に処理を進める。
(S83)パス制御部170は、ステップS73で設定した外部LUパス情報151の異常パス情報および外部LU#0性能閾値テーブル154の異常補正中フラグをクリアする。その結果、外部LUパス情報151の異常パス情報からステップS73で設定したパスの情報が削除される。また、外部LU#0性能閾値テーブル154の推奨パス補正中フラグは、“off”となる。
(S84)パス制御部170は、外部LU#0に対して使用するパスを、監視対象パスに切り替える。パス制御部170は、IO処理部180によるIO処理を起動し、外部LU#0に対して該当パス(監視対象パスであったパス)を使用してIOコマンドを送信させる(IO実行)。
(S85)パス制御部170は、外部LU#0性能閾値テーブル154を参照して、READ/WRITE性能(READ性能およびWRITE性能の両方)が性能閾値未満であるか否かを判定する。READ性能およびWRITE性能の両方が性能閾値未満である場合、パス制御部170は、パス復旧制御を終了する。READ性能およびWRITE性能の少なくとも一方が性能閾値未満でない場合、パス制御部170は、ステップS86に処理を進める。
(S86)パス制御部170は、IO性能に応じたパス切り替えの処理(図18)を実行する。そして、パス制御部170は、パス復旧制御を終了する。
このように、CM110は、応答時間と性能閾値との比較結果に基づいて使用するポートの切り替えを行った場合、切り替え前のポートを介して監視コマンドを外部ストレージ装置200に送信して応答時間の監視を行う。CM110は、当該応答時間が性能閾値未満になると、外部ストレージ装置200へのIOコマンドの送信に使用するポートを、切り替え前のポートに戻す。こうして、CM110は、外部LUへのアクセスに関してオーバーヘッドが比較的小さいパスを用いることで、外部ストレージ装置200に対するアクセスを高速化できる。
ここで、第2の実施の形態のストレージシステムのように、ストレージ装置100から外部ストレージ装置200へのパスを複数用意し、パスを切り替えて、複数のパスにアクセスを分散することが考えられる。しかし、ストレージ装置100は、外部ストレージ装置200が備える物理構成(CM210,220、ホストポート215,215a,225,225aおよびHDDなど)の動作状況を監視できない。このため、ストレージ装置100側で、外部ストレージ装置200の動作状態の変化を観測してパスの切り替えのタイミングを判断することは難しい。
そこで、ストレージ装置100は、現在使用中の第1のパスを介した入出力の処理状況に基づいて、次のコマンドの送信に使用するポートを、第1のパスとは異なる第2のパスに属するポートに切り替える。例えば、ストレージ装置100は、第1のパスに属する外部ストレージアクセスポートにおける応答未受信のIOコマンドの発行数により、何らかの要因で外部ストレージ装置200に対するデータの入出力処理に遅滞が生じる可能性(前兆)があることを検出する。ストレージ装置100は、当該前兆の検出に応じて、使用ポートの切り替えを行う。これにより、ストレージ装置100は、外部ストレージ装置200側の動作状況を直接把握できなくても、コマンド送信に使用するポート(あるいはパス)を、適切なタイミングで切り替えることができる。特に、外部ストレージ装置200に対するデータの入出力処理に遅滞が生じる前に、別のパス(別の外部ストレージアクセスポートまたはCM間通信ポート)に入出力処理を分散させることができる。こうして、何らかの原因で使用中のパスを使用したI/O処理が溜まってきたことを判断し、他のパスに切り替えることで、パスの最適化を図れる。
また、応答未受信のコマンドの発行数(IO実行数)が多いほど、各ポートのために使用されているメモリリソース(RAM112のリソース)の量も多くなる。一方、各ポートに対して割り当てられるメモリリソースには上限がある。このため、上記のようにして外部ストレージ装置200へのパスを切り替えることで、ストレージ装置100の各ポートに対応するメモリリソースを分散して使用可能になる。更に、CM間通信のオーバーヘッドが小さいパス(優先度の高い)パスを優先して使用することで、外部ストレージ装置200に対するIO性能を確保し、また、外部ストレージ装置200へのアクセス流量をCM110により適切に制御できる。これにより、CM110のリソースを効率的に使用できる。
なお、第1の実施の形態の情報処理は、処理部11bにプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、プロセッサ111にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体70に記録できる。
例えば、プログラムを記録した記録媒体70を配布することで、プログラムを流通させることができる。記録媒体70として、フレキシブルディスク(FD:Flexible Disk)、CD(Compact Disc)、DVD(Digital Versatile Disc)およびBlu−ray(登録商標)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)などを使用してもよい。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体70に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM112やフラッシュメモリ113などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
1 ストレージシステム
10,20 ストレージ装置
11,12,21,22 ストレージ制御装置
11a,12a,21a,22a 記憶部
11b,12b,21b,22b 処理部
11c,11d,11e,12c,12d,12e,21c,21d,21e,22c,22d,22e ポート
13,23 収納部
13a,13b,13c,23a,23b,23c 記憶デバイス
30 情報処理装置
40 ネットワーク
V1 ボリューム

Claims (8)

  1. データの入出力を指示するコマンドの送信に用いられる第1のポートを備え、情報処理装置から受信したアクセス要求に応じて前記コマンドを送信する第1のストレージ制御装置と、前記コマンドの送信に用いられる第2のポートを備える第2のストレージ制御装置とを有する第1のストレージ装置と、
    前記第1および前記第2のポートとの間で複数の通信経路を形成する複数の第3のポートを備え、何れかの第3のポートを介して前記コマンドを受信し、前記コマンドに基づいて前記データの入出力を実行する第2のストレージ装置と、を有し、
    前記第1のストレージ制御装置は、前記複数の通信経路のうち、前記第2のストレージ装置への前記コマンドの送信に現在使用中の第1の通信経路を介した入出力の処理状況に基づいて、前記第2のストレージ装置への次の前記コマンドの送信に使用するポートを、第2の通信経路に属するポートに切り替え
    前記第1のストレージ制御装置は、前記第1の通信経路を介して送信済である前記コマンドのうち、応答を未受信である前記コマンドの数が第1の閾値に達している場合に、前記第2のストレージ装置への次の前記コマンドの送信に使用するポートの切り替えを行い、前記数が前記第1の閾値に達していない場合に、前記切り替えを行わない、
    ストレージシステム。
  2. 前記第1のストレージ制御装置は、前記数が前記第1の閾値に達していない場合でも、前記第1の通信経路を介した前記第2のストレージ装置に対する通信の応答時間が第2の閾値に達している場合には前記切り替えを行う、請求項記載のストレージシステム。
  3. 前記第1のストレージ制御装置は、前記応答時間と前記第2の閾値との比較結果に基づいて前記切り替えを行った場合、前記第1の通信経路を介して監視コマンドを前記第2のストレージ装置に送信して前記応答時間の監視を行い、前記応答時間が前記第2の閾値未満になると、前記第2のストレージ装置への前記コマンドの送信に使用するポートを、前記第1の通信経路に属するポートに戻す、請求項記載のストレージシステム。
  4. 前記第1のストレージ制御装置は、前記複数の通信経路のうち、前記第2のストレージ装置の論理ユニットへのアクセスのために推奨される通信経路を示す推奨パス情報を前記論理ユニット毎に前記第2のストレージ装置から取得し、前記推奨パス情報に基づいて、ポートの切り替え先を選択する際の前記複数の通信経路それぞれの優先度を前記論理ユニット毎に決定する、請求項1乃至の何れか1項に記載のストレージシステム。
  5. 前記第1のストレージ制御装置は、前記複数の通信経路のうち、前記第1のポートを介する通信経路の優先度を、前記第2のポートを介する通信経路の優先度よりも高くする、請求項記載のストレージシステム。
  6. 前記第2のストレージ装置は、第3のストレージ制御装置と前記論理ユニットに対する前記データの入出力を実行する第4のストレージ制御装置とを有し、
    前記第1のストレージ制御装置は、前記複数の通信経路のうち、前記第1のストレージ制御装置から前記第4のストレージ制御装置までに経由するストレージ制御装置の数が少ないほど、優先度を高くする、請求項または記載のストレージシステム。
  7. 自装置が属する第1のストレージ装置以外の第2のストレージ装置に対してデータの入出力を指示するコマンドの送信に用いられる第1のポートと、
    前記第1のポートと前記第2のストレージ装置が備える複数の第3のポートとの間および前記第1のストレージ装置に属する他のストレージ制御装置が備える第2のポートと前記複数の第3のポートとの間の複数の通信経路のうち、前記第2のストレージ装置への前記コマンドの送信に現在使用中の第1の通信経路を介した入出力の処理状況に基づいて、前記第2のストレージ装置への次の前記コマンドの送信に使用するポートを、第2の通信経路に属するポートに切り替える処理部と、
    を有し、
    前記処理部は、前記第1の通信経路を介して送信済である前記コマンドのうち、応答を未受信である前記コマンドの数が第1の閾値に達している場合に、前記第2のストレージ装置への次の前記コマンドの送信に使用するポートの切り替えを行い、前記数が前記第1の閾値に達していない場合に、前記切り替えを行わない、
    ストレージ制御装置。
  8. 自装置が属する第1のストレージ装置以外の第2のストレージ装置に対してデータの入出力を指示するコマンドの送信に用いられる第1のポートと前記第2のストレージ装置が備える複数の第3のポートとの間、および、前記第1のストレージ装置に属する他のストレージ制御装置が備える第2のポートと前記複数の第3のポートとの間の複数の通信経路を示す情報を取得し、
    前記複数の通信経路のうち、前記第2のストレージ装置への前記コマンドの送信に現在使用中の第1の通信経路を介した入出力の処理状況に基づいて、前記第2のストレージ装置への次の前記コマンドの送信に使用するポートを、第2の通信経路に属するポートに切り替え
    前記第2のストレージ装置への次の前記コマンドの送信に使用するポートの切り替えでは、前記第1の通信経路を介して送信済である前記コマンドのうち、応答を未受信である前記コマンドの数が第1の閾値に達している場合に、前記第2のストレージ装置への次の前記コマンドの送信に使用するポートの前記切り替えを行い、前記数が前記第1の閾値に達していない場合に、前記切り替えを行わない、
    処理をコンピュータに実行させるプログラム。
JP2017223621A 2017-11-21 2017-11-21 ストレージシステム、ストレージ制御装置およびプログラム Active JP6955159B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017223621A JP6955159B2 (ja) 2017-11-21 2017-11-21 ストレージシステム、ストレージ制御装置およびプログラム
US16/173,136 US10514856B2 (en) 2017-11-21 2018-10-29 Storage system and storage control apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017223621A JP6955159B2 (ja) 2017-11-21 2017-11-21 ストレージシステム、ストレージ制御装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2019095971A JP2019095971A (ja) 2019-06-20
JP6955159B2 true JP6955159B2 (ja) 2021-10-27

Family

ID=66533009

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017223621A Active JP6955159B2 (ja) 2017-11-21 2017-11-21 ストレージシステム、ストレージ制御装置およびプログラム

Country Status (2)

Country Link
US (1) US10514856B2 (ja)
JP (1) JP6955159B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10891064B2 (en) * 2018-03-13 2021-01-12 International Business Machines Corporation Optimizing connectivity in a storage system data
JP7207177B2 (ja) * 2019-06-03 2023-01-18 富士通株式会社 パケット処理装置およびネットワークシステム
JP7017546B2 (ja) * 2019-09-27 2022-02-08 株式会社日立製作所 ストレージシステム、パス管理方法、及びパス管理プログラム
US12010172B2 (en) * 2019-09-30 2024-06-11 EMC IP Holding Company LLC Host device with multi-path layer configured for IO control using detected storage port resource availability
WO2021187476A1 (ja) * 2020-03-18 2021-09-23 日本電気株式会社 クライアント、i/oサーバ、方法、および記録媒体
CN111782139B (zh) * 2020-06-17 2022-08-09 杭州宏杉科技股份有限公司 路径切换方法及装置
US11467765B2 (en) * 2021-01-20 2022-10-11 EMC IP Holding Company LLC Detection and mitigation of slow drain issues using response times and storage-side latency view
US11550511B2 (en) * 2021-05-21 2023-01-10 EMC IP Holding Company LLC Write pressure throttling based on service level objectives

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007280258A (ja) 2006-04-11 2007-10-25 Hitachi Ltd 記憶制御装置
JP4701267B2 (ja) * 2008-06-04 2011-06-15 株式会社日立製作所 ストレージシステムおよびその管理方法
JP2010211428A (ja) 2009-03-10 2010-09-24 Fujitsu Ltd ストレージ装置、中継装置、及びコマンド発行制御方法
US8443160B2 (en) * 2010-08-06 2013-05-14 Hitachi, Ltd. Computer system and data migration method
JP5987498B2 (ja) 2012-06-27 2016-09-07 富士通株式会社 ストレージ仮想化装置、ストレージ仮想化方法及びストレージ仮想化プログラム
JP6294569B2 (ja) * 2015-06-19 2018-03-14 株式会社日立製作所 ストレージシステム及びキャッシュ制御方法
US9385967B1 (en) * 2015-12-04 2016-07-05 International Business Machines Corporation Resource allocation for a storage area network

Also Published As

Publication number Publication date
US20190155532A1 (en) 2019-05-23
JP2019095971A (ja) 2019-06-20
US10514856B2 (en) 2019-12-24

Similar Documents

Publication Publication Date Title
JP6955159B2 (ja) ストレージシステム、ストレージ制御装置およびプログラム
JP4383132B2 (ja) 仮想化制御装置及び計算機システム
JP4903415B2 (ja) 記憶制御システム及び記憶制御方法
US8321622B2 (en) Storage system with multiple controllers and multiple processing paths
US8307170B2 (en) Information processing method and system
US7631218B2 (en) RAID system and Rebuild/Copy back processing method thereof
US7426588B2 (en) Storage apparatus
EP2133784A2 (en) Control method of device in storage system for virtualization
JP5959733B2 (ja) ストレージシステムおよびストレージシステムの障害管理方法
CN103019622B (zh) 一种数据的存储控制方法、控制器、物理硬盘,及系统
US20150293708A1 (en) Connectivity-Aware Storage Controller Load Balancing
JP4068798B2 (ja) 記憶サブシステム及びi/oインタフェースの制御方法ならびに情報処理システム
JPWO2008136075A1 (ja) ストレージ管理プログラム、ストレージ管理装置およびストレージ管理方法
JP5882557B2 (ja) 要求優先順位シーク・マネージャ
JP2017091456A (ja) 制御装置、制御プログラムおよび制御方法
JP2017049872A (ja) ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法
US10152242B1 (en) Host based hints
JP2009217475A (ja) ストレージシステム,ストレージ装置,ストレージシステムの制御方法および制御プログラム
JP2008192020A (ja) Raid制御装置及びその制御方法
JP2023015488A (ja) データ中継装置、中継制御方法およびストレージシステム
JP2009093225A (ja) ストレージ制御装置、方法及びプログラム並びにストレージ装置
JP4757320B2 (ja) コピー制御装置
US20060059302A1 (en) Disk array subsystem
JP4087387B2 (ja) 記憶制御装置
JP2014238771A (ja) ストレージ制御装置、アクセス制御方法、及び制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200807

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20200825

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200825

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210730

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210913

R150 Certificate of patent or registration of utility model

Ref document number: 6955159

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150