JP2019003586A - ストレージ制御装置およびパス切り替え制御プログラム - Google Patents

ストレージ制御装置およびパス切り替え制御プログラム Download PDF

Info

Publication number
JP2019003586A
JP2019003586A JP2017120360A JP2017120360A JP2019003586A JP 2019003586 A JP2019003586 A JP 2019003586A JP 2017120360 A JP2017120360 A JP 2017120360A JP 2017120360 A JP2017120360 A JP 2017120360A JP 2019003586 A JP2019003586 A JP 2019003586A
Authority
JP
Japan
Prior art keywords
path
virtual volume
virtual
access
volume
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.)
Ceased
Application number
JP2017120360A
Other languages
English (en)
Inventor
想 貴島
So Kijima
想 貴島
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 JP2017120360A priority Critical patent/JP2019003586A/ja
Priority to US16/005,737 priority patent/US20180364936A1/en
Publication of JP2019003586A publication Critical patent/JP2019003586A/ja
Ceased legal-status Critical Current

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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2005Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • 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
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

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

Abstract

【課題】通信エラーが検出される回数を減少させる。
【解決手段】制御部1bは、仮想ボリュームVL1,VL2,VL3,・・・のうち仮想ボリュームVL1に対するアクセス要求に応じて記憶装置2にアクセスしたときに通信エラーを検出した場合、仮想ボリュームVL1に対応する使用パスを切り替えて記憶装置2に再度アクセスするとともに、エラー検出情報11に基づいて仮想ボリューム群GP1,GP2の中から特定仮想ボリューム群GP1を特定する。ここで、仮想ボリューム群GP1,GP2のそれぞれは、仮想ボリュームVL1と設定値が一致する他の仮想ボリュームを、抽出条件として異なる設定項目をそれぞれ用いることによって抽出される。制御部1bは、特定仮想ボリューム群GP1に含まれる仮想ボリュームVL2,VL3のうち、通信エラーが検出されていないすべての仮想ボリュームについて、使用パスを切り替える。
【選択図】図1

Description

本発明は、ストレージ制御装置およびパス切り替え制御プログラムに関する。
仮想ボリュームは、記憶装置が備える物理記憶領域によって実現される仮想的な記憶領域である。ストレージシステムでは、仮想ボリュームを必要に応じて生成し、生成された仮想ボリュームに対するホスト装置からのアクセス要求を受け付けるようにすることで、物理記憶領域を効率的に使用できる。
仮想ボリュームに対応する物理記憶領域は、仮想ボリュームに対するアクセス要求を受け付ける制御装置の外部に接続された記憶装置に実装されていてもよい。この場合、制御装置は、仮想ボリュームに対するアクセス要求を受け付けると、記憶装置にアクセスして、仮想ボリュームに対応する物理記憶領域に対するIO(Input/Output)処理を実行する。
また、制御装置の外部に記憶装置が接続される構成では、制御装置と記憶装置との間のアクセスパスを冗長化することもできる。このような例として、複数のアクセスパスに優先度が付与され、使用中のアクセスパスに障害が発生すると、次に優先度の高いアクセスパスが選択されるストレージシステムが提案されている。
特開2006−178811号公報
ところで、仮想ボリュームに対するアクセス要求に応じて記憶装置にアクセスする際に検出される通信エラーとしては、アクセスの前に検出可能な通信エラーと、アクセスを実行した後に検出される通信エラーとがある。
後者の通信エラーが検出された場合、制御装置は、例えば、使用するアクセスパスを切り替えて記憶装置に再度アクセスする。また、後者の通信エラーとして、アクセスのリトライアウトによって検出される通信エラーもある。この場合には、制御装置は、通信エラーが検出されるまで複数回、記憶装置にアクセスする。いずれの場合でも、アクセスを実行した後に通信エラーが検出されると、制御装置から記憶装置へのアクセス回数が増加してしまう。その結果、仮想ボリュームに対するアクセスが要求されてから応答するまでの応答時間が長くなり、応答性能が低下するという問題がある。
したがって、制御装置から記憶装置へのアクセス回数を抑制するためには、アクセスを実行した後に通信エラーが検出される回数を減少させることが課題となる。
1つの側面では、本発明は、通信エラーが検出される回数を減少させることが可能なストレージ制御装置およびパス切り替え制御プログラムを提供することを目的とする。
1つの案では、記憶部と制御部とを有する次のようなストレージ制御装置が提供される。記憶部は、記憶装置の記憶領域を用いて実現される複数の仮想ボリュームのそれぞれに対するアクセス要求に応じて記憶装置にアクセスしたときに通信エラーが検出されたか否かを示す情報が、複数の仮想ボリュームのそれぞれについて登録されたエラー検出情報と、複数の設定項目のそれぞれに対応する設定値が、複数の仮想ボリュームのそれぞれについて登録された設定情報と、を記憶する。ここで、複数の設定項目は、複数のアクセスパスのうち記憶装置にアクセスする際に使用される使用パスに関するパス設定項目を含む。制御部は、複数の仮想ボリュームのそれぞれに対するアクセスが要求された場合、パス設定項目に対応する設定値に基づいて記憶装置にアクセスする。また、制御部は、複数の仮想ボリュームのうち第1の仮想ボリュームに対するアクセス要求に応じて記憶装置にアクセスしたときに通信エラーを検出した場合、第1の仮想ボリュームに対応する使用パスを切り替えて記憶装置に再度アクセスする。また、制御部は、エラー検出情報に基づいて複数の仮想ボリューム群の中から特定仮想ボリューム群を特定する。ここで、複数の仮想ボリューム群のそれぞれは、設定情報に基づき、複数の仮想ボリュームのうち第1の仮想ボリュームと設定値が一致する第2の仮想ボリュームを、抽出条件として複数の設定項目のうち異なる設定項目をそれぞれ用いることによって抽出される。また、制御部は、特定仮想ボリューム群に含まれる第2の仮想ボリュームのうち、通信エラーが検出されていないすべての仮想ボリュームについて、使用パスを切り替える。
また、1つの案では、上記のストレージ制御装置と同様の処理をコンピュータに実行させるパス切り替え制御プログラムが提供される。
1つの側面では、通信エラーが検出される回数を減少させることができる。
第1の実施の形態に係るストレージシステムの構成例および処理例を示す図である。 第2の実施の形態に係るストレージシステムの構成例を示す図である。 CMのハードウェア構成例を示す図である。 仮想ボリューム、RAIDグループおよびアクセスパスの構成例を示す図である。 CMが有する処理機能の構成例を示すブロック図である。 ある仮想ボリュームへのアクセスが要求された場合の処理手順についての比較例を示すシーケンス図である。 ボリューム管理テーブルのデータ構成例を示す図である。 仮想ボリュームのIO制御処理の例を示すフローチャート(その1)である。 仮想ボリュームのIO制御処理の例を示すフローチャート(その2)である。 経路異常によるエラー検出時に対応する事前パス切り替え処理の例を示すフローチャートである。 ボリューム異常によるエラー検出時に対応する事前パス切り替え処理の例を示すフローチャート(その1)である。 ボリューム異常によるエラー検出時に対応する事前パス切り替え処理の例を示すフローチャート(その2)である。 同一のRAIDグループに属する仮想ボリュームについてパス切り替えが行われる場合の例を示す図である。 同一の相手ポートを用いる仮想ボリュームについてパス切り替えが行われる場合の例を示す図である。 同一の自ポートを用いる仮想ボリュームについてパス切り替えが行われる場合の例を示す図である。
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るストレージシステムの構成例および処理例を示す図である。図1に示すストレージシステムは、ストレージ制御装置1と記憶装置2を有する。また、ストレージ制御装置1と記憶装置2とは、複数のアクセスパスを介して接続されている。例えば、ストレージ制御装置1は、記憶装置2と通信するためのポートPT1,PT2を有し、記憶装置2は、ストレージ制御装置1と通信するためのポートPT3〜PT6を有する。そして、ストレージ制御装置1と記憶装置2との間のアクセスパスとして、ポートPT1,PT3、ポートPT1,PT4、ポートPT2,PT5、ポートPT2,PT6をそれぞれ経由するアクセスパスが存在するものとする。
さらに、ストレージシステムにおいては、記憶装置2の記憶領域を用いて実現される仮想ボリュームVL1,VL2,VL3,・・・が設定されている。ストレージ制御装置1は、仮想ボリュームVL1,VL2,VL3,・・・に対するアクセス要求を受け付ける機能を有する。例えば、ストレージ制御装置1は、図示しないホスト装置から、仮想ボリュームVL1,VL2,VL3,・・・に対するアクセス要求を受け付ける。
ストレージ制御装置1は、記憶部1aと制御部1bを有する。記憶部1aは、例えば、ストレージ制御装置1が備える図示しない記憶装置の記憶領域として実装される。制御部1bは、例えば、ストレージ制御装置1が備える図示しないプロセッサとして実装される。
記憶部1aには、エラー検出情報11と設定情報12が記憶される。
エラー検出情報11には、仮想ボリュームVL1,VL2,VL3,・・・のそれぞれに対するアクセス要求に応じて記憶装置2にアクセスしたときに通信エラーが検出されたか否かを示す情報が、仮想ボリュームVL1,VL2,VL3,・・・のそれぞれについて登録されている。図1に示すエラー検出情報11の例では、仮想ボリュームVL1については通信エラーが検出されておらず、仮想ボリュームVL2については通信エラーが検出されていることが登録されている。
設定情報12には、複数の設定項目にそれぞれ対応する設定値が仮想ボリュームVL1,VL2,VL3,・・・のそれぞれについて登録されている。このような設定項目としては、少なくとも、記憶装置2との間の複数のアクセスパスのうち、記憶装置2にアクセスする際に使用される使用パスに関するパス設定項目が用いられる。換言すると、設定情報12には、少なくとも、記憶装置2との間の複数のアクセスパスのうち記憶装置2にアクセスする際に使用される使用パスに関する設定情報が、仮想ボリュームVL1,VL2,VL3,・・・のそれぞれについて設定されている。
図1に示す設定情報12の例では、「自ポート」および「相手ポート」という設定項目に対応する設定値が設定されている。「自ポート」は、使用パス上に含まれるポートのうちストレージ制御装置1側のポートを示し、「相手ポート」は、使用パス上に含まれるポートのうち記憶装置2側のポートを示す。したがって、「自ポート」、「相手ポート」のいずれも、使用パスに関するパス設定項目の1つである。
図1の例では、仮想ボリュームVL1の使用パスとして、ポートPT1,PT3を経由するアクセスパスが使用パスとして設定されているとする。この場合、図1に示すように、設定情報12では、仮想ボリュームVL1についての「自ポート」、「相手ポート」にそれぞれ「PT1」,「PT3」が設定される。また、図1の例では、仮想ボリュームVL2の使用パスとして、ポートPT2,PT5を経由するアクセスパスが使用パスとして設定されているとする。この場合、図示しないが、設定情報12では、仮想ボリュームVL1についての「自ポート」、「相手ポート」にそれぞれ「PT2」,「PT5」が設定される。
制御部1bは、仮想ボリュームVL1,VL2,VL3,・・・のそれぞれに対するアクセスが要求された場合、設定情報12の設定項目のうち使用パスに関するパス設定項目に対応する設定値に基づいて、記憶装置2にアクセスする。例えば、制御部1bは、仮想ボリュームVL1に対するアクセスが要求された場合、「自ポート」、「相手ポート」にそれぞれ設定された「PT1」、「PT3」に基づいて、ポートPT1,PT3を経由するアクセスパスを使用して記憶装置2にアクセスする。
次に、仮想ボリュームVL1,VL2,VL3,・・・に対するアクセス要求に応じて記憶装置2にアクセスしたときに通信エラーが検出された場合の制御部1bの処理について説明する。
制御部1bは、例えば、仮想ボリュームVL1に対するアクセス要求に応じて記憶装置2にアクセスしたときに、通信エラーを検出したとする(ステップS1)。この場合、制御部1bは、仮想ボリュームVL1に対応する使用パスを切り替えて、記憶装置2に再度アクセスする(ステップS2)。
これとともに、制御部1bは、エラー検出情報11に基づいて、複数の仮想ボリューム群の中から仮想ボリューム群を1つ特定する(ステップS3)。以下、特定された仮想ボリューム群を「特定仮想ボリューム群」と記載する。この複数の仮想ボリュームのそれぞれは、仮想ボリュームVL1,VL2,VL3,・・・のうち、通信エラーが検出された仮想ボリュームVL1と設定値が一致する他の仮想ボリュームを、抽出条件として設定情報12内の複数の設定項目のうち異なる設定項目をそれぞれ用いることによって抽出される。
例えば、抽出条件の少なくとも1つとして、使用パスに関するパス設定項目が用いられる。この場合の例としては、いずれもパス設定項目の1つである「自ポート」と「相手ポート」を抽出条件として用いることができる。この場合、「自ポート」に「PT1」が設定された仮想ボリュームのグループと、「相手ポート」に「PT3」が設定された仮想ボリュームのグループとが抽出される。また、例えば、抽出条件として用いられる設定項目として、仮想ボリュームVL1,VL2,VL3,・・・それぞれが属するRAID(Redundant Array of Inexpensive Disks)グループを用いることもできる。
制御部1bは、このようにして抽出される複数の仮想ボリューム群の中から、エラー検出情報11に基づいて特定仮想ボリューム群を特定する。そして、制御部1bは、上記手順で特定された特定仮想ボリューム群に含まれる仮想ボリュームのうち、通信エラーが検出されていないすべての仮想ボリュームについて、使用パスを切り替える(ステップS4)。
ここで、ステップS3では、エラー検出情報11を用いることで、制御部1bは、複数の仮想ボリューム群のそれぞれに含まれる仮想ボリュームにおける通信エラーの発生状況に基づいて、特定仮想ボリューム群を特定することができる。例えば、抽出された仮想ボリューム群の中に通信エラーが検出された仮想ボリューム群が多数含まれる場合、その仮想ボリューム群に含まれるその他の仮想ボリュームに対して今後アクセスが要求されたときに通信エラーが検出される可能性が高いと推定される。そのため、そのような仮想ボリューム群が特定仮想ボリューム群として特定される。
図1では一例として、仮想ボリューム群GP1,GP2が抽出された場合を示している。仮想ボリューム群GP1は、仮想ボリュームVL2,VL3を含む。また、エラー検出情報11によれば、仮想ボリューム群GP1に含まれる仮想ボリュームのうち2つにおいて、通信エラーが検出されている。このため、仮想ボリューム群GP1におけるエラー検出数は「2」となっている。一方、仮想ボリューム群GP2は、仮想ボリュームVL3〜VL5を含む。また、エラー検出情報11によれば、仮想ボリューム群GP2に含まれる仮想ボリュームのうち1つにおいて、通信エラーが検出されている。このため、仮想ボリューム群GP2におけるエラー検出数は「1」となっている。
例えば、仮想ボリューム群に含まれる仮想ボリュームのうち半数以上の仮想ボリュームで通信エラーが検出されている場合に、その仮想ボリューム群を特定仮想ボリューム群として特定するものとする。この場合、仮想ボリューム群GP1が特定仮想ボリューム群として特定される。
ところで、記憶装置2にアクセスする前でなく、アクセスした後に検出される通信エラーは、エラーの発生要因となった障害発生箇所を特定できない場合が多い。ステップS3の処理によれば、特定仮想ボリューム群を抽出するために抽出条件として用いられた設定項目は、障害発生箇所に関連している可能性が高い。例えば、ポートを示す設定項目が用いられた場合、その設定項目の設定値が示すポートまたはそのポートの近くで障害が発生している可能性が高い。このため、ステップS3の処理によれば、制御部1bは、通信エラーの検出によって障害発生箇所が特定できなくても、今後通信エラーが検出する可能性が高い仮想ボリュームを適切に推定できる。
したがって、ステップS4では、制御部1bは、今後通信エラーが検出される可能性が高い仮想ボリュームについて、使用パスを事前に切り替えておくことができる。これにより、その後に仮想ボリュームVL1,VL2,VL3,・・・に対するアクセス要求に応じて記憶装置2にアクセスしたときに、通信エラーが検出される可能性を低減することができる。
通信エラーの検出回数が減少することにより、ストレージ制御装置1から記憶装置2へのアクセス回数を減少させることができる。例えば、通信エラーが検出されるとステップS2のようにアクセスパスを切り替えて記憶装置2のアクセスが再度実行される。通信エラーの検出回数が減少することにより、このような再アクセスの実行回数も減少する。また、記憶装置2にアクセスしたときに検出される通信エラーとしては、アクセスのリトライアウトによって検出される通信エラーがある。この場合、通信エラーが検出されるまでの間に複数回、記憶装置2へのアクセスが行われる。通信エラーの検出回数が減少することにより、このように複数回アクセスが行われる機会が減少する。
〔第2の実施の形態〕
図2は、第2の実施の形態に係るストレージシステムの構成例を示す図である。図2に示すストレージシステムは、ストレージ装置100、外部ストレージ装置200,300およびホスト装置410,420を含む。ストレージ装置100は、CM(Controller Module)100a,100bを有する。外部ストレージ装置200は、CM210とDE(Drive Enclosure)220を有する。外部ストレージ装置300は、CM310とDE320を有する。
CM100a,100bとCM210,310との間は、ネットワーク510を介して接続されている。また、ホスト装置410,420とCM100a,100bとの間は、ネットワーク520を介して接続されている。ネットワーク510,520は、例えば、ファイバチャネル(FC:Fibre Channel)やiSCSI(Internet Small Computer System Interface)などを用いたSAN(Storage Area Network)である。
CM100a,100bは、ホスト装置410,420からの要求に応じて、DE220,320に搭載された記憶装置に対するアクセスを制御する制御装置である。CM210は、CM100a,100bからの要求に応じてDE220に搭載された記憶装置にアクセスする制御装置である。CM310は、CM100a,100bからの要求に応じてDE320に搭載された記憶装置にアクセスする制御装置である。
なお、CM100a,100bとCM210,310との間は、アクセスパスが冗長化された「マルチパス」によって接続されている。
DE220には、記憶装置として複数台のディスク221,222,223,・・・が搭載されている。ディスク221,222,223,・・・のそれぞれは、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性記憶装置である。DE320にも同様に、記憶装置として複数台のディスク321,322,323,・・・が搭載されている。ディスク321,322,323,・・・のそれぞれは、HDDやSSDなどの不揮発性記憶装置である。
このストレージシステムでは、ストレージ装置100のCM100a,100bは、ホスト装置410,420に対して仮想ボリュームを提供する。1つの仮想ボリュームは、DE220,320に搭載されたディスクによる物理記憶領域を用いて生成される仮想的な論理ボリュームである。以下の説明では、1つの仮想ボリュームに対しては、DE220,320のいずれかに搭載された1台以上のディスクによる物理記憶領域が割り当てられるものとする。また、ある仮想ボリュームの物理記憶領域を実現するDEが搭載された外部ストレージ装置を、「仮想ボリュームに対応する外部ストレージ装置」と略して記載する場合がある。
CM100a,100bのそれぞれには、どの仮想ボリュームに対するアクセス制御を担当するかが設定されている。ホスト装置410,420は、仮想ボリュームに対するアクセス要求を、CM100a,100bのうちその仮想ボリュームに対するアクセス制御を担当するCMに送信する。これによって、仮想ボリュームに対するアクセスが可能となる。
図3は、CMのハードウェア構成例を示す図である。図3では例として、CM100aについて示している。CM100aは、プロセッサ101、RAM(Random Access Memory)102、SSD103および通信インタフェース104,105を有する。
プロセッサ101は、CM100a全体を統括的に制御する。プロセッサ101は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。また、プロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM102は、CM100aの主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
SSD103は、CM100aの補助記憶装置として使用される。SSD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。
通信インタフェース104は、ネットワーク510を介してCM210,310との間で通信する。通信インタフェース105は、ネットワーク520を介してホスト装置410,420との間で通信する。
以上のハードウェア構成により、CM100aの処理機能が実現される。なお、CM100b,210,310も、CM100aと同様のハードウェア構成によって実現される。
次に、ストレージシステムに設定される仮想ボリュームおよびRAIDグループの構成、およびアクセスパスの構成について例示する。
図4は、仮想ボリューム、RAIDグループおよびアクセスパスの構成例を示す図である。なお、以下の説明では、仮想ボリュームを「LUN(Logical Unit Number)」と記載する場合がある。また、識別番号「x」のLUNを「LUN#x」と表し、識別番号「x」のRAIDグループを「RAIDグループ#x」と表し、識別番号「x」のポートを「ポート#x」と表す。
なお、RAIDグループとは、複数のディスクを用いた論理記憶領域である。LUN(仮想ボリューム)には、RAIDグループから切り出された論理記憶領域が割り当てられる。また、RAIDグループに割り当てられたLUNのデータは、設定されたRAIDレベルに応じたRAID制御により、複数のディスクに冗長化されて記録される。
図4に示すように、ストレージシステムにはLUN#0〜#6が設定されている。CM100aは、LUN#0〜#3に対するアクセス制御を担当する。CM100bは、LUN#4〜#6に対するアクセス制御を担当する。一方、外部ストレージ装置200には、RAIDグループ(GP)#0,#1が設定されている。また、外部ストレージ装置300には、RAIDグループ(GP)#2が設定されている。
そして、LUN#0〜#2はRAIDグループ#0に割り当てられている。したがって、ホスト装置410,420からLUN#0〜#2に対するアクセスが要求された場合、CM100aから外部ストレージ装置200へのアクセスが行われる。また、外部ストレージ装置200は、「LUN#0〜#2に対応する外部ストレージ装置」となる。
また、LUN#6はRAIDグループ#1に割り当てられている。したがって、ホスト装置410,420からLUN#6に対するアクセスが要求された場合、CM100bから外部ストレージ装置200へのアクセスが行われる。また、外部ストレージ装置200は、「LUN#6に対応する外部ストレージ装置」となる。
さらに、LUN#3〜#5はRAIDグループ#2に割り当てられている。したがって、ホスト装置410,420からLUN#3に対するアクセスが要求された場合、CM100aから外部ストレージ装置300へのアクセスが行われる。また、ホスト装置410,420からLUN#4,#5に対するアクセスが要求された場合、CM100bから外部ストレージ装置300へのアクセスが行われる。そして、外部ストレージ装置300は、「LUN#3〜#5に対応する外部ストレージ装置」となる。
次に、図4を用いて、CM100a,100bと外部ストレージ装置200,300との間のアクセスパスについて説明する。
CM100a,100bと外部ストレージ装置200,300とは、スイッチ511,512を介して接続されている。すなわち、CM100a,100bと外部ストレージ装置200,300との間のアクセスパスは、スイッチ511を経由するアクセスパスと、スイッチ512を経由するアクセスパスとに冗長化されている。
CM100aは、ポート#00とポート#01を有する。ポート#00はスイッチ511に接続され、ポート#01はスイッチ512に接続されている。また、CM100bは、ポート#10とポート#11を有する。ポート#10はスイッチ511に接続され、ポート#11はスイッチ512に接続されている。
外部ストレージ装置200は、ポート#20とポート#21を有する。ポート#20はスイッチ511に接続され、ポート#21はスイッチ512に接続されている。また、外部ストレージ装置300は、ポート#30とポート#31を有する。ポート#30はスイッチ511に接続され、ポート#31はスイッチ512に接続されている。なお、実際には、ポート#20,#21はCM210に備えられており、ポート#30,#31はCM310に備えられている。
このような構成により、CM100aと外部ストレージ装置200との間には、ポート#00、スイッチ511、ポート#20を介するアクセスパスと、ポート#01、スイッチ512、ポート#21を介するアクセスパスとが形成される。したがって、LUN#0〜#2のそれぞれに対しては、これらのアクセスパスの一方が通常時に使用される優先パスに設定され、他方が代替用の代替パスに設定される。
また、CM100aと外部ストレージ装置300との間には、ポート#00、スイッチ511、ポート#30を介するアクセスパスと、ポート#01、スイッチ512、ポート#31を介するアクセスパスとが形成される。したがって、LUN#3に対しては、これらのアクセスパスの一方が優先パスに設定され、他方が代替パスに設定される。
さらに、CM100bと外部ストレージ装置200との間には、ポート#10、スイッチ511、ポート#20を介するアクセスパスと、ポート#11、スイッチ512、ポート#21を介するアクセスパスとが形成される。したがって、LUN#6に対しては、これらのアクセスパスの一方が優先パスに設定され、他方が代替パスに設定される。
また、CM100bと外部ストレージ装置300との間には、ポート#10、スイッチ511、ポート#30を介するアクセスパスと、ポート#11、スイッチ512、ポート#31を介するアクセスパスとが形成される。したがって、LUN#4,#5のそれぞれに対しては、これらのアクセスパスの一方が優先パスに設定され、他方が代替パスに設定される。
本実施の形態では、仮想ボリューム(LUN)ごとに、2つのアクセスパスのうちどちらを優先パスにし、どちらを代替パスにするかが設定される。
図5は、CMが有する処理機能の構成例を示すブロック図である。CM100aは、記憶部110、ホストIO(Input/Output)制御部120およびパス切り替え制御部130を有する。記憶部110は、例えば、RAM102またはSSD103の記憶領域として実装される。ホストIO制御部120およびパス切り替え制御部130の処理は、プロセッサ101が所定のプログラムを実行することで実現される。
記憶部110には、仮想ボリュームごとのボリューム管理テーブル111が記憶される。ボリューム管理テーブル111に、仮想ボリュームが属するRAIDグループや外部ストレージ装置に対するアクセスパスの情報など、仮想ボリュームの構成に関する情報を保持する。これに加えて、ボリューム管理テーブル111には、仮想ボリュームに対応する外部ストレージ装置に対するアクセス時に検出されたエラーの種類や、エラーの発生に応じて実行されたアクセスパスの切り替えに関する情報を保持する。
ホストIO制御部120は、ホスト装置410,420からの要求に応じて、仮想ボリュームに対するアクセス制御を実行する。具体的には、ホストIO制御部120は、仮想ボリュームにアクセスするためのIOコマンドをホスト装置410,420から受信する。ホストIO制御部120は、仮想ボリュームに対応するボリューム管理テーブル111に基づいて、仮想ボリュームに対応する外部ストレージ装置を特定し、特定した外部ストレージ装置に対してIOコマンドを送信する。これにより、ホストIO制御部120は、仮想ボリュームに割り当てられた物理記憶領域に対するIO処理を実行する。
また、ホストIO制御部120は、ある仮想ボリュームへのアクセス要求に応じて、その仮想ボリュームに対応する外部ストレージ装置へアクセスしたときにエラーを検出した場合、その仮想ボリュームについてのアクセスパスを代替パスに切り替える。これとともに、ホストIO制御部120は、他のボリュームに関する事前パス切り替え処理の実行をパス切り替え制御部130に指示する。
パス切り替え制御部130は、ホストIO制御部120からの指示に応じて、他のボリュームに関する事前パス切り替え処理を実行する。この事前パス切り替え処理では、パス切り替え制御部130は、他の仮想ボリュームの中からアクセスパスを事前に切り替えておいた方がよいと推定される仮想ボリュームを特定し、特定した仮想ボリュームについてのアクセスパスを代替パスに切り替える。
ここで、図6は、ある仮想ボリュームへのアクセスが要求された場合の処理手順についての比較例を示すシーケンス図である。この図6を用いて比較例における問題点を説明する。
なお、図6では例として、CM100aがアクセス制御を担当する仮想ボリュームに対して、ホスト装置410からアクセスが要求された場合を示す。また、仮想ボリュームに対応する外部ストレージ装置は、外部ストレージ装置200であるものとする。
ホスト装置410は、CM100aに対して、仮想ボリュームにアクセスするためのIOコマンドを送信する(ステップS11)。送信されるIOコマンドは、例えば、リードコマンド、またはライトコマンドである。CM100aのホストIO制御部120は、仮想ボリュームに対応するボリューム管理テーブル111に基づいて、アクセスパスを選択する(ステップS12)。ここでは、優先パスが選択されるものとする。
ホストIO制御部120は、選択したアクセスパスを介してIOコマンドを送信するための準備処理を実行する。この過程で、ホストIO制御部120は、選択したアクセスパスを介して、エラー要因が「経路異常」であるエラー(以下、「経路異常によるエラー」と記載する)を検出することができる(ステップS13)。経路異常によるエラーとしては、例えば、アクセスパスにおいて通信リンクがダウンしているケースや、アクセスパス上のCM100a側のポートが異常によって動作していないケースがある。これらのケースでは、ホストIO制御部120は、IOコマンドを外部ストレージ装置200に送信する前に、上記の準備処理においてエラーの発生を検出できる。
ホストIO制御部120は、経路異常によるエラーを検出した場合には、アクセスパスを代替パスに変更し(ステップS14)、代替パスを介してIOコマンドを外部ストレージ装置200に送信する(ステップS15)。一方、ホストIO制御部120は、経路異常によるエラーを検出しなかった場合には、ステップS14をスキップし、優先パスを介してIOコマンドを外部ストレージ装置200に送信する(ステップS15)。
ホストIO制御部120は、外部ストレージ装置200から処理の完了通知を受信すると(ステップS16)、ホスト装置410に対して処理の完了通知を送信して応答する(ステップS17)。
ところで、仮想ボリュームに対応する外部ストレージ装置200へのアクセス時に発生するエラーとしては、ステップS15のように外部ストレージ装置200へのアクセス後(すなわち、IOコマンドの送信後)に検出されるものもある。例えば、IOコマンドの送信に対する応答内容から判別されるエラーや、IOコマンド送信のリトライアウトによるエラーがある。後者のリトライアウトによるエラーは、IOコマンドの送信に対する応答を一定時間内に受信できずに、IOコマンドを再送し、一定時間ごとの再送を所定回数繰り返しても応答を受信できない場合に検出される。以下、このように外部ストレージ装置200へのアクセス後に検出されるエラーを、「ボリューム異常によるエラー」と記載する。
経路異常によるエラーは、外部ストレージ装置200へのアクセス前に検出できる。このため、ホストIO制御部130は、経路異常によるエラーを検出した場合、アクセスパスを代替パスに切り替えてから外部ストレージ装置200に正常にアクセスできる。しかし、ボリューム異常によるエラーは、外部ストレージ装置200へアクセスした後にしか検出できない。このため、例えば、エラーを検出するとアクセスパスを変更して再度IOコマンドを送信する、という運用が行われる場合、1つの仮想ボリュームについてIOコマンドが最低2回送信されることになる。また、リトライアウトによるエラーが検出された場合には、エラーが検出されるまでにIOコマンドが複数回送信されることになる。
したがって、ボリューム異常によるエラーが頻発すると、外部ストレージ装置200へのIOコマンドの送信回数が増大し、CM100aと外部ストレージ装置200との間の通信負荷が高くなる。その結果、ホスト装置410からのアクセス要求に対する応答時間が長くなり、その応答性能が悪化するという問題がある。
以下、図5に戻って、本実施の形態についての説明を続ける。
上記の問題に対して、パス切り替え制御部130は、事前パス切り替え処理を実行することで、外部ストレージ装置へのIOコマンドの送信回数を減少させる。前述のように、事前パス切り替え処理は、ある仮想ボリュームに対応する外部ストレージ装置へのアクセス時にエラーが検出された場合に実行される。なお、以下の説明では、対応する外部ストレージ装置へのアクセス時にエラーが検出された仮想ボリュームを「エラーボリューム」と記載する。
事前パス切り替え処理では、パス切り替え制御部130は、エラーボリューム以外の他の仮想ボリュームの中から、同じ要因のエラーが発生する可能性の高い仮想ボリュームを特定する。パス切り替え制御部130は、特定したすべての仮想ボリュームについてのアクセスパスを代替パスに切り替える。これにより、特定された仮想ボリュームに対するホスト装置からのアクセス要求に応じて、対応する外部ストレージ装置にアクセスしたときに、エラーが発生する可能性が低減される。換言すると、事前パス切り替え処理により、対応する外部ストレージ装置へのアクセス時にエラーが発生する可能性が高いと推定される仮想ボリュームについて、事前にアクセスパスが代替パスに切り替えられる。
ただし、経路異常によるエラーとは異なり、リトライアウトによるエラーが発生した場合には、送信元のCMは、エラーの要因となった障害発生箇所を特定できない。また、IOコマンドに対する応答内容から判別されるエラーの中にも、障害発生箇所を特定できないものがある。このように障害発生箇所を特定できないため、パス切り替え制御部130は、事前パス切り替え処理において、他の仮想ボリュームのうちどの仮想ボリュームについてアクセスパスを切り替えるべきかを適切に判断できない。
そこで、パス切り替え制御部130は、ボリューム管理テーブル111の設定内容に基づいて、設定値がエラーボリュームと類似する仮想ボリューム群を、抽出条件として異なる設定項目をそれぞれ用いることで複数抽出する。パス切り替え制御部130は、ボリューム管理テーブル111を参照して、抽出された仮想ボリューム群ごとに、ボリューム異常によるエラーの発生状況を把握する。そして、パス切り替え制御部130は、仮想ボリューム群の中に、ボリューム異常によるエラーが多数の仮想ボリュームで検出されている仮想ボリューム群があった場合、この仮想ボリューム群に含まれるすべての仮想ボリュームについてのアクセスパスを代替パスに切り替える。
上記の抽出条件は、どの仮想ボリュームの範囲までをアクセスパスを一斉に切り替える対象とするかを示す「切り替え範囲」を決定するための条件である。抽出条件に応じた切り替え範囲には、次の切り替え範囲R1〜R4がある。
切り替え範囲R1は、エラーが検出された仮想ボリュームだけを含む。すなわち、切り替え範囲R1が適用された場合、エラーが検出された仮想ボリュームだけがパス切り替えの対象となる。この場合、エラーが検出された仮想ボリューム以外のその他の仮想ボリュームの抽出が行われない。したがって、実際には、事前パス切り替え処理では、以下の切り替え範囲R2〜R4が適用されることになる。
切り替え範囲R2は、同一のRAIDグループに属するという抽出条件によって抽出される仮想ボリュームの範囲である。切り替え範囲R2が適用された場合、エラーが検出された仮想ボリュームと同一のRAIDグループに属する仮想ボリュームが、パス切り替えの対象となる。
切り替え範囲R3は、優先パスとして同一の相手ポートを用いるという抽出条件によって抽出される仮想ボリュームの範囲である。切り替え範囲R3が適用された場合、エラーが検出された仮想ボリュームと同一の相手ポートを用いる仮想ボリュームが、パス切り替えの対象となる。ここで、「相手ポート」とは、外部ストレージ装置200,300が備えるポートを示す。
切り替え範囲R4は、優先パスとして同一の自ポートを用いるという抽出条件によって抽出される仮想ボリュームの範囲である。切り替え範囲R4が適用された場合、優先パスとして、エラーが検出された仮想ボリュームと同一の自ポートを用いる仮想ボリュームが、パス切り替えの対象となる。ここで、「自ポート」とは、ストレージ装置100のCM100a,100bのいずれかが備えるポートを示す。
パス切り替え制御部130は、上記のパス切り替え範囲R2〜R4の中から、各切り替え範囲に含まれる仮想ボリュームのエラー検出状況に基づいて、パスの切り替え対象とする切り替え範囲を特定する。これにより、すでにエラーが検出されている仮想ボリュームと、今後エラーが検出される可能性の高い仮想ボリュームとを含む切り替え範囲を適切に推定することができる。そして、パス切り替え制御部130は、特定された切り替え範囲に含まれるすべての仮想ボリュームについて、アクセスパスを代替パスに切り替える。
ここで、上記の切り替え範囲R2,R3,R4は、それぞれ「RAIDグループ」、「優先パス情報」の「相手ポート」、「優先パス情報」の「自ポート」という設定項目を抽出条件として用いることで抽出される仮想ボリュームの範囲である。これらのうち、RAIDグループは、実質的に外部ストレージ装置200,300内のディスクを特定する設定項目と言える。このため、これら3つの設定項目は、ストレージ装置100から外部ストレージ装置200,300内のディスクまでのパス上の構成に関する設定項目と言うことができる。
このような設定項目を抽出条件として用いることで、パス切り替え制御部130は、障害発生箇所に関連すると推定される仮想ボリュームを含む切り替え範囲を特定することができる。これにより、障害発生箇所を特定できないにもかかわらず、今後エラーが検出される可能性の高い仮想ボリュームを適切に特定して、それらの仮想ボリュームについてのアクセスパスを事前に代替パスに切り替えておくことができる。
次に、図5に示すように、CM210は、RAID制御部211を有する。RAID制御部211の処理は、例えば、CM210が備えるプロセッサが所定のプログラムを実行することで実現される。RAID制御部211は、DE220に搭載されたディスクを用いてRAIDグループを形成する。RAID制御部211は、形成されたRAIDグループに対するアクセス要求をCM100a,100bから受け付け、RAIDグループに設定されたRAIDレベルに応じてディスクに対するIO処理を実行する。
また、CM310は、RAID制御部311を有する。RAID制御部311の処理は、例えば、CM310が備えるプロセッサが所定のプログラムを実行することで実現される。RAID制御部311は、DE320に搭載されたディスクを用いてRAIDグループを形成する。RAID制御部311は、形成されたRAIDグループに対するアクセス要求をCM100a,100bから受け付け、RAIDグループに設定されたRAIDレベルに応じてディスクに対するIO処理を実行する。
図7は、ボリューム管理テーブルのデータ構成例を示す図である。前述のように、記憶部110には、仮想ボリュームごとに作成されたボリューム管理テーブル111が記憶される。
ボリューム管理テーブル111には、ボリュームID、ボリューム構成情報および切り替え制御情報が登録される。ボリュームIDは、仮想ボリュームの識別番号を示す。
ボリューム構成情報は、RAIDグループID、外部ストレージID、優先パス情報、代替パス情報、パスステータスの各項目を有する。
RAIDグループIDの項目には、仮想ボリュームが属するRAIDグループの識別番号が登録される。外部ストレージIDの項目には、RAIDグループが形成されている外部ストレージ装置の識別番号が登録される。
優先パス情報の項目には、優先パス上に含まれるデバイスの識別番号が登録される。優先パス情報の項目は、少なくとも、自ポートおよび相手ポートの各項目を含む。自ポートの項目には自ポートの識別番号が登録され、相手ポートの項目には相手ポートの識別番号が登録される。代替パス情報の項目には、代替パス上に含まれるデバイスの識別番号が登録される。代替パス情報の項目は、少なくとも、自ポートおよび相手ポートの各項目を含む。自ポートの項目には自ポートの識別番号が登録され、相手ポートの項目には相手ポートの識別番号が登録される。パスステータスの項目には、現在優先パスと代替パスのどちらが使用されているかを示すステータス情報が登録される。
なお、CM100a,100bは、各仮想ボリュームについての優先パスを、例えば、SCSI規格のALUA(Asymmetric Logical Unit Access)にしたがって決定する。あるいは、CM100a,100bは、各仮想ボリュームについての優先パスを、ユーザからの指定操作に応じて決定してもよい。
切り替え制御情報は、エラー要因、切り替え範囲の各項目を有する。
エラー要因の項目には、仮想ボリュームにおいてエラーが発生しているか否か、発生している場合、その要因は何かを示す情報が登録される。具体的には、エラー要因の項目には、「経路異常」、「ボリューム異常」、「エラーなし」のいずれかを示す情報が登録される。初期状態では、「エラーなし」を示す情報が登録される。
切り替え範囲の項目には、仮想ボリュームについてアクセスパスが代替パスに切り替えられた場合に、仮想ボリュームが前述の切り替え範囲R1〜R4のどれに含まれるかを示す情報が登録される。さらに、仮想ボリュームについてアクセスパスが代替パスに切り替えられていない場合、切り替え範囲の項目には、未切り替えであることを示す「R0」が登録される。初期状態では、「R0」が登録される。
なお、CM100a,100bは、共通のボリューム管理テーブル111を保持する。すなわち、CM100a,100bは、自装置がアクセス制御を担当する仮想ボリュームに対応するボリューム管理テーブル111だけでなく、他方のCMがアクセス制御を担当する仮想ボリュームに対応するボリューム管理テーブル111も保持する。
次に、CM100a,100bの処理について、フローチャートを用いて説明する。以下の説明では、CM100aの処理について説明するが、CM100bも同様の処理を実行可能である。
図8、図9は、仮想ボリュームのIO制御処理の例を示すフローチャートである。
[ステップS21]ホストIO制御部120は、ホスト装置から仮想ボリュームにアクセスするためのIOコマンド(例えば、ライトコマンドまたはリードコマンド)を受け付ける。ここでは例として、ホスト装置410から、LUN#0をアクセス先として指定したIOコマンドを受け付けたものとする。
[ステップS22]ホストIO制御部120は、LUN#0に対応するボリューム管理テーブル111を参照し、外部ストレージ装置へのアクセス時に使用するアクセスパスを選択する。
[ステップS23]ホストIO制御部120は、ステップS22で選択されたアクセスパスを用いて外部ストレージ装置にIOコマンドを送信するための準備処理を実行する。ホストIO制御部120は、この準備処理において経路異常によるエラーを検出した場合、ステップS24の処理を実行し、経路異常によるエラーを検出しなかった場合、図9のステップS31の処理を実行する。
なお、ステップS22で代替パスが選択された場合、ホストIO制御部120は、ステップS24の代わりに、アクセスが不可能であることを示す応答をホスト装置410に送信して、処理を終了する。
[ステップS24]ホストIO制御部120は、LUN#0に対応するボリューム管理テーブル111の登録情報を次のように更新する。ホストIO制御部120は、エラー要因の登録情報を「経路異常」に更新し、切り替え範囲の登録情報を「R4」に更新する。
[ステップS25]ホストIO制御部120は、アクセスに使用するアクセスパスを優先パスから代替パスに切り替える。また、ホストIO制御部120は、LUN#0に対応するボリューム管理テーブル111において、パスステータスの登録情報を、代替パスが使用されていることを示す情報に更新する。
[ステップS26]ホストIO制御部120は、パス切り替え制御部130に対して、経路異常によるエラー検出時に対応する事前パス切り替え処理の実行を指示する。このとき、ホストIO制御部120は、LUN#0でエラーが検出されたことをパス切り替え制御部130に通知する。これにより、エラーボリュームがLUN#0に設定された図10の処理が開始される。
[ステップS27]ホストIO制御部120は、ステップS25で切り替えられた代替パスを介して、外部ストレージ装置に対してIOコマンドを送信する。なお、送信先の外部ストレージ装置は、LUN#0に対応するボリューム管理テーブル111の外部ストレージIDから特定される。
[ステップS28]ホストIO制御部120は、外部ストレージ装置からIO処理の完了通知を受信すると、ホスト装置410に対して、IO処理が正常に完了したことを示す応答を送信する。
以下、図9を用いて説明を続ける。
[ステップS31]ホストIO制御部120は、ステップS22で選択されたアクセスパスを介して、外部ストレージ装置に対してIOコマンドを送信する。なお、ステップS27と同様に、送信先の外部ストレージ装置は、LUN#0に対応するボリューム管理テーブル111の外部ストレージIDから特定される。
[ステップS32]ホストIO制御部120は、ボリューム異常によるエラーが検出された場合、ステップS33の処理を実行し、ボリューム異常によるエラーが検出されなかった場合、ステップS37の処理を実行する。なお、IOコマンドに対する応答においてエラーが通知された場合に、ボリューム異常が検出される。あるいは、IOコマンドの送信に対する応答を一定時間内に受信できずに、IOコマンドを再送し、一定時間ごとの再送を所定回数繰り返しても応答を受信できない場合にも、ボリューム異常が検出される。
[ステップS33]ホストIO制御部120は、LUN#0に対応するボリューム管理テーブル111の登録情報を次のように更新する。ホストIO制御部120は、エラー要因の登録情報を「ボリューム異常」に更新し、切り替え範囲の登録情報を「R1」に更新する。
なお、ステップS22で代替パスが選択された場合、ホストIO制御部120は、ステップS33の代わりに、アクセスが不可能であることを示す応答をホスト装置410に送信して、処理を終了する。
[ステップS34]ホストIO制御部120は、アクセスに使用するアクセスパスを優先パスから代替パスに切り替える。また、ホストIO制御部120は、LUN#0に対応するボリューム管理テーブル111において、パスステータスの登録情報を、代替パスが使用されていることを示す情報に更新する。
[ステップS35]ホストIO制御部120は、パス切り替え制御部130に対して、ボリューム異常によるエラー検出時に対応する事前パス切り替え処理の実行を指示する。このとき、ホストIO制御部120は、LUN#0でエラーが検出されたことをパス切り替え制御部130に通知する。これにより、エラーボリュームがLUN#0に設定された図11の処理が開始される。
[ステップS36]ホストIO制御部120は、ステップS34で切り替えられた代替パスを介して、外部ストレージ装置に対してIOコマンドを送信する。なお、送信先の外部ストレージ装置は、LUN#0に対応するボリューム管理テーブル111の外部ストレージIDから特定される。
[ステップS37]ホストIO制御部120は、外部ストレージ装置からIO処理の完了通知を受信すると、ホスト装置410に対して、IO処理が正常に完了したことを示す応答を送信する。
図10は、経路異常によるエラー検出時に対応する事前パス切り替え処理の例を示すフローチャートである。ここでは、LUN#0でエラーが検出されたことがホストIO制御部120から通知されたものとする。なお、図10の処理は、ホストIO制御部120から実行が指示されると即座に実行されてもよいし、その指示タイミングとは非同期のタイミングで実行されてもよい。
[ステップS41]パス切り替え制御部130は、優先パスとしてLUN#0と同一の自ポートを用いる他の仮想ボリューム(LUN)を検索する。具体的には、パス切り替え制御部130は、LUN#0に対応するボリューム管理テーブル111から、優先パスに含まれる自ポートを特定する。パス切り替え制御部130は、他のボリューム管理テーブル111の中から、優先パスに含まれる自ポートが特定された自ポートと同じであるボリューム管理テーブル111を特定する。パス切り替え制御部130は、特定されたボリューム管理テーブル111に対応する仮想ボリュームを検索結果として出力する。これにより、切り替え範囲R4に含まれる、LUN#0以外の仮想ボリュームが特定される。
[ステップS42]パス切り替え制御部130は、該当する他の仮想ボリュームが存在する場合、ステップS43の処理を実行し、存在しない場合、処理を終了する。
[ステップS43]パス切り替え制御部130は、該当する仮想ボリュームに対応するボリューム管理テーブル111を次のように更新する。パス切り替え制御部130は、パスステータスを代替パスが使用されていることを示すように更新して、使用するアクセスパスを代替パスに切り替える。なお、すでに代替パスが使用されている場合には、パスステータスの登録情報はそのまま維持される。また、パス切り替え制御部130は、エラー要因の登録情報を「経路異常」に更新し、切り替え範囲の登録情報を「R4」に更新する。
以上の図10の処理によれば、優先パスとしてLUN#0と同一の自ポートを用いる他の仮想ボリュームのすべてについて、アクセスパスが代替パスに切り替えられる。これにより、これらの仮想ボリュームに対するアクセスが要求されたとき、経路異常によるエラーが検出されないようになり、IOコマンドの準備処理が高速化される。
図11、図12は、ボリューム異常によるエラー検出時に対応する事前パス切り替え処理の例を示すフローチャートである。ここでは、LUN#0でエラーが検出されたことがホストIO制御部120から通知されたものとする。なお、図11の処理は、ホストIO制御部120から実行が指示されると即座に実行されてもよいし、その指示タイミングとは非同期のタイミングで実行されてもよい。
[ステップS51]パス切り替え制御部130は、LUN#0以外の他の仮想ボリュームの中から、ボリューム異常によるエラーが検出されている仮想ボリュームを検索する。具体的には、パス切り替え制御部130は、他の仮想ボリュームに対応するボリューム管理テーブル111の中から、エラー要因として「ボリューム異常」が登録されたボリューム管理テーブル111を特定する。
[ステップS52]パス切り替え制御部130は、該当する他の仮想ボリュームが存在する場合、ステップS53の処理を実行し、存在しない場合、処理を終了する。
[ステップS53]パス切り替え制御部130は、ステップS51で検索された仮想ボリュームの中から、優先パスとしてLUN#0と同一の自ポートを用いる仮想ボリュームを検索する。具体的には、パス切り替え制御部130は、LUN#0に対応するボリューム管理テーブル111を参照し、優先パス情報に含まれる「自ポート」の項目から、優先パスに含まれる自ポートを特定する。パス切り替え制御部130は、ステップS51で特定されたボリューム管理テーブル111の中から、優先パスに含まれる自ポートが、特定された自ポートと同じであるボリューム管理テーブル111を特定する。パス切り替え制御部130は、特定されたボリューム管理テーブル111に対応する仮想ボリュームを検索結果として出力する。
パス切り替え制御部130は、該当する仮想ボリュームが存在する場合、ステップS54の処理を実行し、存在しない場合、図12のステップS61の処理を実行する。
[ステップS54]パス切り替え制御部130は、LUN#0以外の他の仮想ボリュームの中から、優先パスとしてLUN#0と同一の自ポートを用いる仮想ボリュームを検索する。具体的には、パス切り替え制御部130は、ステップS53で特定された、LUN#0に設定された優先パスに含まれる自ポートを取得する。パス切り替え制御部130は、他の仮想ボリュームに対応するボリューム管理テーブル111の中から、優先パスに含まれる自ポートが、取得した自ポートと同じであるボリューム管理テーブル111を特定する。
パス切り替え制御部130は、特定されたボリューム管理テーブル111の数に「1」を加算した数を、I1とする。このI1は、切り替え範囲R4に含まれる仮想ボリュームの総数を示す。一方、パス切り替え制御部130は、ステップS53で検索された仮想ボリュームの数を、I2とする。このI2は、切り替え範囲R4に含まれる仮想ボリュームのうち、ボリューム異常によるエラーが発生している仮想ボリュームの数を示す。
パス切り替え制御部130は、I2/I1が所定割合以上か(例えば、半数以上か)を判定する。パス切り替え制御部130は、I2/I1が所定割合以上の場合、ステップS55の処理を実行し、I2/I1が所定割合より小さい場合、図12のステップS61の処理を実行する。
[ステップS55]パス切り替え制御部130は、ステップS54で特定された、優先パスとしてLUN#0と同一の自ポートを用いる他の仮想ボリュームのすべてについて、対応するボリューム管理テーブル111を次のように更新する。なお、更新対象のボリューム管理テーブル111は、ステップS54で特定されたボリューム管理テーブル111となる。
パス切り替え制御部130は、パスステータスを代替パスが使用されていることを示すように更新して、使用するアクセスパスを代替パスに切り替える。なお、すでに代替パスが使用されている場合には、パスステータスの登録情報はそのまま維持される。また、パス切り替え制御部130は、エラー要因の登録情報を「ボリューム異常」に更新し、切り替え範囲の登録情報を「R4」に更新する。なお、すでにボリューム異常によるエラーが検出されている場合には、エラー要因の登録情報はそのまま維持される。
このステップS55の処理により、優先パスとしてLUN#0と同一の自ポートを用いる他の仮想ボリュームのすべてについて、アクセスパスが代替パスに切り替えられる。これにより、これらの仮想ボリュームに対するアクセス要求に応じて外部ストレージ装置にアクセスしたとき、ボリューム異常によるエラーが検出されないようになる。したがって、外部ボリュームに対する余計なアクセスが行われないようになり、その結果、外部ストレージ装置へのアクセス回数全体を減少させることができる。
以下、図12を用いて説明を続ける。
[ステップS61]パス切り替え制御部130は、ステップS51で検索された仮想ボリュームの中から、優先パスとしてLUN#0と同一の相手ポートを用いる仮想ボリュームを検索する。具体的には、パス切り替え制御部130は、LUN#0に対応するボリューム管理テーブル111を参照し、優先パス情報に含まれる「相手ポート」の項目から、優先パスに含まれる相手ポートを特定する。パス切り替え制御部130は、ステップS51で特定されたボリューム管理テーブル111の中から、優先パスに含まれる相手ポートが、特定された相手ポートと同じであるボリューム管理テーブル111を特定する。パス切り替え制御部130は、特定されたボリューム管理テーブル111に対応する仮想ボリュームを検索結果として出力する。
パス切り替え制御部130は、該当する仮想ボリュームが存在する場合、ステップS62の処理を実行し、存在しない場合、ステップS65の処理を実行する。
[ステップS62]パス切り替え制御部130は、LUN#0以外の他の仮想ボリュームの中から、優先パスとしてLUN#0と同一の相手ポートを用いる仮想ボリュームを検索する。具体的には、パス切り替え制御部130は、ステップS61で特定された、LUN#0に設定された優先パスに含まれる相手ポートを取得する。パス切り替え制御部130は、他の仮想ボリュームに対応するボリューム管理テーブル111の中から、優先パスに含まれる相手ポートが、取得した相手ポートと同じであるボリューム管理テーブル111を特定する。これにより、切り替え範囲R3に含まれる、LUN#0以外の仮想ボリュームが特定される。
また、パス切り替え制御部130は、特定された仮想ボリュームの中から、切り替え範囲R4に含まれる仮想ボリュームとしてアクセスパスを切り替え済みの仮想ボリュームを特定する。具体的には、パス切り替え制御部130は、特定された仮想ボリュームの中から、対応するボリューム管理テーブル111の切り替え範囲の項目に「R4」が登録された仮想ボリュームを特定する。
パス切り替え制御部130は、切り替え範囲R3に含まれる、LUN#0を含む仮想ボリュームの中から、特定された切り替え済みの仮想ボリュームを除外し、除外後の仮想ボリュームの総数をJ1とする。これとともに、パス切り替え制御部130は、ステップS61で特定された仮想ボリュームの中からも、特定された切り替え済みの仮想ボリュームを除外し、除外後の仮想ボリュームの総数に1を加算した数をJ2とする。このJ2は、J1個の仮想ボリュームのうち、ボリューム異常によるエラーが検出されている仮想ボリュームの数を示す。
[ステップS63]パス切り替え制御部130は、ボリューム異常によるエラーが検出されている仮想ボリュームの数が、全体の所定割合以上(例えば、半数以上)かを判定する。具体的には、パス切り替え制御部130は、J2/J1が所定割合以上かを判定する。パス切り替え制御部130は、J2/J1が所定割合以上の場合、ステップS64の処理を実行し、J2/J1が所定割合より小さい場合、ステップS65の処理を実行する。
[ステップS64]パス切り替え制御部130は、切り替え範囲R3に含まれる、LUN#0以外の他の仮想ボリュームのうち、ステップS62で特定された切り替え済みの仮想ボリュームを除く仮想ボリュームのすべてについて、対応するボリューム管理テーブル111を次のように更新する。
パス切り替え制御部130は、パスステータスを代替パスが使用されていることを示すように更新して、使用するアクセスパスを代替パスに切り替える。なお、すでに代替パスが使用されている場合には、パスステータスの登録情報はそのまま維持される。また、パス切り替え制御部130は、エラー要因の登録情報を「ボリューム異常」に更新し、切り替え範囲の登録情報を「R3」に更新する。なお、すでにボリューム異常によるエラーが検出されている場合には、エラー要因の登録情報はそのまま維持される。
このステップS64の処理により、優先パスとしてLUN#0と同一の相手ポートを用いる他の仮想ボリュームのうち、切り替え範囲R4に含まれない仮想ボリュームのすべてについて、アクセスパスが代替パスに切り替えられる。これにより、これらの仮想ボリュームに対するアクセス要求に応じて外部ストレージ装置にアクセスしたとき、ボリューム異常によるエラーが検出されないようになる。したがって、外部ボリュームに対する余計なアクセスが行われないようになり、その結果、外部ストレージ装置へのアクセス回数全体を減少させることができる。
[ステップS65]パス切り替え制御部130は、ステップS51で検索された仮想ボリュームの中から、LUN#0と同一のRAIDグループに属する仮想ボリュームを検索する。具体的には、パス切り替え制御部130は、LUN#0に対応するボリューム管理テーブル111を参照し、「RAIDグループID」の項目から、LUN#0が属するRAIDグループを特定する。パス切り替え制御部130は、ステップS51で特定されたボリューム管理テーブル111の中から、RAIDグループIDとして、特定されたRAIDグループのIDが登録されているボリューム管理テーブル111を特定する。パス切り替え制御部130は、特定されたボリューム管理テーブル111に対応する仮想ボリュームを検索結果として出力する。
パス切り替え制御部130は、該当する仮想ボリュームが存在する場合、ステップS66の処理を実行し、存在しない場合、処理を終了する。
[ステップS66]パス切り替え制御部130は、LUN#0以外の他の仮想ボリュームの中から、LUN#0と同一のRAIDグループに属する仮想ボリュームを検索する。具体的には、パス切り替え制御部130は、ステップS65で特定された、LUN#0が属するRAIDグループを取得する。パス切り替え制御部130は、他の仮想ボリュームに対応するボリューム管理テーブル111の中から、RAIDグループIDとして、取得したRAIDグループのIDが登録されているボリューム管理テーブル111を特定する。これにより、切り替え範囲R2に含まれる、LUN#0以外の仮想ボリュームが特定される。
また、パス切り替え制御部130は、特定された仮想ボリュームの中から、切り替え範囲R3,R4に含まれる仮想ボリュームとしてアクセスパスを切り替え済みの仮想ボリュームを特定する。具体的には、パス切り替え制御部130は、特定された仮想ボリュームの中から、対応するボリューム管理テーブル111の切り替え範囲の項目に「R3」、「R4」のいずれかが登録された仮想ボリュームを特定する。
パス切り替え制御部130は、切り替え範囲R2に含まれる、LUN#0を含む仮想ボリュームの中から、特定された切り替え済みの仮想ボリュームを除外し、除外後の仮想ボリュームの総数をK1とする。これとともに、パス切り替え制御部130は、ステップS65で特定された仮想ボリュームの中からも、特定された切り替え済みの仮想ボリュームを除外し、除外後の仮想ボリュームの総数に1を加算した数をK2とする。このK2は、K1個の仮想ボリュームのうち、ボリューム異常によるエラーが検出されている仮想ボリュームの数を示す。
[ステップS67]パス切り替え制御部130は、ボリューム異常によるエラーが検出されている仮想ボリュームの数が、全体の所定割合以上(例えば、半数以上)かを判定する。具体的には、パス切り替え制御部130は、K2/K1が所定割合以上かを判定する。パス切り替え制御部130は、K2/K1が所定割合以上の場合、ステップS68の処理を実行し、K2/K1が所定割合より小さい場合、処理を終了する。
[ステップS68]パス切り替え制御部130は、切り替え範囲R2に含まれる、LUN#0以外の他の仮想ボリュームのうち、ステップS66で特定された切り替え済みの仮想ボリュームを除く仮想ボリュームのすべてについて、対応するボリューム管理テーブル111を次のように更新する。
パス切り替え制御部130は、パスステータスを代替パスが使用されていることを示すように更新して、使用するアクセスパスを代替パスに切り替える。なお、すでに代替パスが使用されている場合には、パスステータスの登録情報はそのまま維持される。また、パス切り替え制御部130は、エラー要因の登録情報を「ボリューム異常」に更新し、切り替え範囲の登録情報を「R2」に更新する。なお、すでにボリューム異常によるエラーが検出されている場合には、エラー要因の登録情報はそのまま維持される。
このステップS68の処理により、LUN#0と同一のRAIDグループに属する他の仮想ボリュームのうち、切り替え範囲R3,R4のどちらにも含まれない仮想ボリュームのすべてについて、アクセスパスが代替パスに切り替えられる。これにより、これらの仮想ボリュームに対するアクセス要求に応じて外部ストレージ装置にアクセスしたとき、ボリューム異常によるエラーが検出されないようになる。したがって、外部ボリュームに対する余計なアクセスが行われないようになり、その結果、外部ストレージ装置へのアクセス回数全体を減少させることができる。
なお、上記の図11、図12では、切り替え範囲R4,R3,R2の順に優先度が付与され、優先度が高い順に切り替え範囲の判定が行われている。この例では、切り替え範囲を特定するための抽出条件としてストレージ装置100に近いハードウェアに関する設定項目が用いられた場合の方が、より広範囲の仮想ボリュームが切り替え範囲に入る可能性があり、影響度が大きいという考え方が用いられている。この考え方に基づき、以前に切り替え範囲R4に含まれる仮想ボリュームがパス切り替えの対象に決定されていた場合には、これらの仮想ボリュームは切り替え範囲R2,R3に含まれないように制御される。また、以前に切り替え範囲R3,R4のいずれかに含まれる仮想ボリュームがパス切り替えの対象に決定されていた場合には、これらの仮想ボリュームは切り替え範囲R2に含まれないように制御される。これにより、切り替え範囲を適切に設定できるようになる。
次に、図4に示した構成を基にして、実際のパス切り替えの実行例について説明する。
図13は、同一のRAIDグループに属する仮想ボリュームについてパス切り替えが行われる場合の例を示す図である。図13では、LUN#0に対するアクセス要求に応じて外部ストレージ装置200にアクセスした際に、ボリューム異常によるエラーが検出されたものとする。また、LUN#0の優先ポートとしては、ポート#00,#20が設定されており、LUN#0の代替ポートとしては、ポート#01,#21が設定されているものとする。
ホストIO制御部120は、LUN#0のアクセスパスを、ポート#00,#20を経由するパスからポート#01,#21を経由するパスに切り替える。また、パス切り替え制御部130は、LUN#0と同様にRAIDグループ#0に属している他の仮想ボリュームとして、LUN#1,#2を特定する。ここで、LUN#0〜#2のうちの所定割合の仮想ボリュームにおいてボリューム異常によるエラーが検出されていた場合、パス切り替え制御部130は、LUN#1,#2についてもアクセスパスを切り替える。図13では、LUN#1,#2についてもLUN#0と同様の優先ポートおよび代替ポートが設定されているものとする。この場合、パス切り替え制御部130は、LUN#1,#2のアクセスパスを、ポート#00,#20を経由するパスからポート#01,#21を経由するパスに切り替える。
このケースでは、例えば、RAIDグループ#0に割り当てられたディスクの少なくとも1つ、またはCM210によって実行されるRAIDグループ#0のIO制御において、障害が発生している可能性が高い。このため、RAIDグループ#0に属するすべての仮想ボリュームについてパス切り替えが行われることで、これらの仮想ボリュームにおけるエラーの発生を確実に抑えつつも、必要最小限の仮想ボリュームについてだけパス切り替えを行うことができる。
図14は、同一の相手ポートを用いる仮想ボリュームについてパス切り替えが行われる場合の例を示す図である。図14でも図13と同様に、LUN#0に対するアクセス要求に応じて外部ストレージ装置200にアクセスした際に、ボリューム異常によるエラーが検出されたものとする。したがって、ホストIO制御部120は、LUN#0のアクセスパスを、ポート#00,#20を経由するパスからポート#01,#21を経由するパスに切り替える。
また、パス切り替え制御部130は、優先パスに含まれる相手ポートが、LUN#0と同様にポート#20であるLUN#1,#2,#6を特定する。ここで、LUN#0〜#2,#6のうちの所定割合の仮想ボリュームにおいてボリューム異常によるエラーが検出されていた場合、パス切り替え制御部130は、LUN#1,#2,#6についてもアクセスパスを切り替える。具体的には、パス切り替え制御部130は、LUN#1,#2のアクセスパスをポート#01,#21を経由するパスに切り替える。また、LUN#6のアクセスパスをポート#11,#21を経由するパスに切り替える。
このケースでは、例えば、スイッチ511からポート#20までの経路上で障害が発生している可能性が高い。このため、優先パスにポート#20を含むすべての仮想ボリュームについてパス切り替えが行われることで、これらの仮想ボリュームにおけるエラーの発生を確実に抑えつつも、必要最小限の仮想ボリュームについてだけパス切り替えを行うことができる。
図15は、同一の自ポートを用いる仮想ボリュームについてパス切り替えが行われる場合の例を示す図である。図15でも図13、図14と同様に、LUN#0に対するアクセス要求に応じて外部ストレージ装置200にアクセスした際に、ボリューム異常によるエラーが検出されたものとする。したがって、ホストIO制御部120は、LUN#0のアクセスパスを、ポート#00,#20を経由するパスからポート#01,#21を経由するパスに切り替える。
また、パス切り替え制御部130は、優先パスに含まれる自ポートが、LUN#0と同様にポート#00であるLUN#1〜#3を特定する。ここで、LUN#0〜#3のうちの所定割合の仮想ボリュームにおいてボリューム異常によるエラーが検出されていた場合、パス切り替え制御部130は、LUN#1〜#3についてもアクセスパスを切り替える。具体的には、パス切り替え制御部130は、LUN#1,#2のアクセスパスをポート#01,#21を経由するパスに切り替える。また、LUN#3のアクセスパスをポート#01,#31を経由するパスに切り替える。
このケースでは、例えば、スイッチ511からポート#00までの経路上で障害が発生している可能性が高い。このため、優先パスにポート#00を含むすべての仮想ボリュームについてパス切り替えが行われることで、これらの仮想ボリュームにおけるエラーの発生を確実に抑えつつも、必要最小限の仮想ボリュームについてだけパス切り替えを行うことができる。
なお、上記の各実施の形態に示した装置(例えば、ストレージ制御装置1、CM100a,100b,210,310)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc-Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
以上の各実施の形態に関し、さらに以下の付記を開示する。
(付記1) 複数のアクセスパスを介して記憶装置と接続されたストレージ制御装置において、
前記記憶装置の記憶領域を用いて実現される複数の仮想ボリュームのそれぞれに対するアクセス要求に応じて前記記憶装置にアクセスしたときに通信エラーが検出されたか否かを示す情報が、前記複数の仮想ボリュームのそれぞれについて登録されたエラー検出情報と、複数の設定項目のそれぞれに対応する設定値が、前記複数の仮想ボリュームのそれぞれについて登録された設定情報と、を記憶し、前記複数の設定項目は、前記複数のアクセスパスのうち前記記憶装置にアクセスする際に使用される使用パスに関するパス設定項目を含む、記憶部と、制御部とを有し、
前記制御部は、
前記複数の仮想ボリュームのそれぞれに対するアクセスが要求された場合、前記パス設定項目に対応する設定値に基づいて前記記憶装置にアクセスし、
前記複数の仮想ボリュームのうち第1の仮想ボリュームに対するアクセス要求に応じて前記記憶装置にアクセスしたときに通信エラーを検出した場合、前記第1の仮想ボリュームに対応する前記使用パスを切り替えて前記記憶装置に再度アクセスし、
前記エラー検出情報に基づいて複数の仮想ボリューム群の中から特定仮想ボリューム群を特定し、前記複数の仮想ボリューム群のそれぞれは、前記設定情報に基づき、前記複数の仮想ボリュームのうち前記第1の仮想ボリュームと設定値が一致する第2の仮想ボリュームを、抽出条件として前記複数の設定項目のうち異なる設定項目をそれぞれ用いることによって抽出され、
前記特定仮想ボリューム群に含まれる前記第2の仮想ボリュームのうち、前記通信エラーが検出されていないすべての仮想ボリュームについて、前記使用パスを切り替える、
ストレージ制御装置。
(付記2) 前記複数の設定項目は、前記パス設定項目を複数含み、
前記抽出条件として異なる前記パス設定項目が用いられる、
付記1記載のストレージ制御装置。
(付記3) 前記複数の設定項目は、前記複数の仮想ボリュームがそれぞれ属するRAID(Redundant Array of Inexpensive Disks)グループを示すRAID設定項目を含み、
前記抽出条件の1つとして前記RAID設定項目が用いられる、
付記1または2記載のストレージ制御装置。
(付記4) 前記通信エラーとして、前記記憶装置へのアクセス要求のリトライアウトによるエラーが含まれる、
付記1乃至3のいずれか1つに記載のストレージ制御装置。
(付記5) 前記特定仮想ボリューム群として、前記エラー検出情報に基づき、前記複数の仮想ボリューム群の中から、前記第2の仮想ボリュームのうち所定割合以上の仮想ボリュームにおいて前記通信エラーが検出されている前記仮想ボリューム群が特定される、
付記1乃至4のいずれか1つに記載のストレージ制御装置。
(付記6) 前記特定仮想ボリューム群の特定では、前記複数の仮想ボリューム群のそれぞれをあらかじめ決められた選択順にしたがって選択し、選択された前記仮想ボリューム群に含まれる前記第2の仮想ボリュームのうち前記所定割合以上の仮想ボリュームにおいて前記通信エラーが検出されているかを判定することで前記特定仮想ボリューム群を特定し、
前記使用パスの切り替えでは、前記選択順にしたがって先に特定された前記特定仮想ボリューム群を前記使用パスの切り替え対象とする、
付記5記載のストレージ制御装置。
(付記7) 複数のアクセスパスを介して記憶装置と接続されたコンピュータに、
複数の設定項目のそれぞれに対応する設定値が、前記複数の仮想ボリュームのそれぞれについて登録された設定情報を参照し、前記複数の設定項目は、前記複数のアクセスパスのうち前記記憶装置にアクセスする際に使用される使用パスに関するパス設定項目を含み、
前記記憶装置の記憶領域を用いて実現される複数の仮想ボリュームのそれぞれに対するアクセスが要求された場合、前記パス設定項目に対応する設定値に基づいて前記記憶装置にアクセスし、
前記複数の仮想ボリュームのうちの第1の仮想ボリュームに対するアクセス要求に応じて前記記憶装置にアクセスしたときに通信エラーを検出した場合、前記第1の仮想ボリュームに対応する前記使用パスを切り替えて前記記憶装置に再度アクセスし、
前記複数の仮想ボリュームのそれぞれに対するアクセス要求に応じて前記記憶装置にアクセスしたときに前記通信エラーが検出されたか否かを示す情報が、前記複数の仮想ボリュームのそれぞれについて登録されたエラー検出情報に基づいて、複数の仮想ボリューム群の中から特定仮想ボリューム群を特定し、前記複数の仮想ボリューム群のそれぞれは、前記設定情報に基づき、前記複数の仮想ボリュームのうち前記第1の仮想ボリュームと設定値が一致する第2の仮想ボリュームを、抽出条件として前記複数の設定項目のうち異なる設定項目をそれぞれ用いることによって抽出され、
前記特定仮想ボリューム群に含まれる前記第2の仮想ボリュームのうち、前記通信エラーが検出されていないすべての仮想ボリュームについて、前記使用パスを切り替える、
処理を実行させるパス切り替え制御プログラム。
(付記8) 前記複数の設定項目は、前記パス設定項目を複数含み、
前記抽出条件として異なる前記パス設定項目が用いられる、
付記7記載のパス切り替え制御プログラム。
(付記9) 前記複数の設定項目は、前記複数の仮想ボリュームがそれぞれ属するRAIDグループを示すRAID設定項目を含み、
前記抽出条件の1つとして前記RAID設定項目が用いられる、
付記7または8記載のパス切り替え制御プログラム。
(付記10) 前記通信エラーとして、前記記憶装置へのアクセス要求のリトライアウトによるエラーが含まれる、
付記7乃至9のいずれか1つに記載のパス切り替え制御プログラム。
(付記11) 前記特定仮想ボリューム群として、前記エラー検出情報に基づき、前記複数の仮想ボリューム群の中から、前記第2の仮想ボリュームのうち所定割合以上の仮想ボリュームにおいて前記通信エラーが検出されている前記仮想ボリューム群が特定される、
付記7乃至10のいずれか1つに記載のパス切り替え制御プログラム。
(付記12) 前記特定仮想ボリューム群の特定では、前記複数の仮想ボリューム群のそれぞれをあらかじめ決められた選択順にしたがって選択し、選択された前記仮想ボリューム群に含まれる前記第2の仮想ボリュームのうち前記所定割合以上の仮想ボリュームにおいて前記通信エラーが検出されているかを判定することで前記特定仮想ボリューム群を特定し、
前記使用パスの切り替えでは、前記選択順にしたがって先に特定された前記特定仮想ボリューム群を前記使用パスの切り替え対象とする、
処理をさらに実行させる付記11記載のパス切り替え制御プログラム。
1 ストレージ制御装置
1a 記憶部
1b 制御部
2 記憶装置
11 エラー検出情報
12 設定情報
GP1,GP2 仮想ボリューム群
PT1〜PT6 ポート
VL1〜VL3 仮想ボリューム

Claims (7)

  1. 複数のアクセスパスを介して記憶装置と接続されたストレージ制御装置において、
    前記記憶装置の記憶領域を用いて実現される複数の仮想ボリュームのそれぞれに対するアクセス要求に応じて前記記憶装置にアクセスしたときに通信エラーが検出されたか否かを示す情報が、前記複数の仮想ボリュームのそれぞれについて登録されたエラー検出情報と、複数の設定項目のそれぞれに対応する設定値が、前記複数の仮想ボリュームのそれぞれについて登録された設定情報と、を記憶し、前記複数の設定項目は、前記複数のアクセスパスのうち前記記憶装置にアクセスする際に使用される使用パスに関するパス設定項目を含む、記憶部と、制御部とを有し、
    前記制御部は、
    前記複数の仮想ボリュームのそれぞれに対するアクセスが要求された場合、前記パス設定項目に対応する設定値に基づいて前記記憶装置にアクセスし、
    前記複数の仮想ボリュームのうち第1の仮想ボリュームに対するアクセス要求に応じて前記記憶装置にアクセスしたときに通信エラーを検出した場合、前記第1の仮想ボリュームに対応する前記使用パスを切り替えて前記記憶装置に再度アクセスし、
    前記エラー検出情報に基づいて複数の仮想ボリューム群の中から特定仮想ボリューム群を特定し、前記複数の仮想ボリューム群のそれぞれは、前記設定情報に基づき、前記複数の仮想ボリュームのうち前記第1の仮想ボリュームと設定値が一致する第2の仮想ボリュームを、抽出条件として前記複数の設定項目のうち異なる設定項目をそれぞれ用いることによって抽出され、
    前記特定仮想ボリューム群に含まれる前記第2の仮想ボリュームのうち、前記通信エラーが検出されていないすべての仮想ボリュームについて、前記使用パスを切り替える、
    ストレージ制御装置。
  2. 前記複数の設定項目は、前記パス設定項目を複数含み、
    前記抽出条件として異なる前記パス設定項目が用いられる、
    請求項1記載のストレージ制御装置。
  3. 前記複数の設定項目は、前記複数の仮想ボリュームがそれぞれ属するRAID(Redundant Array of Inexpensive Disks)グループを示すRAID設定項目を含み、
    前記抽出条件の1つとして前記RAID設定項目が用いられる、
    請求項1または2記載のストレージ制御装置。
  4. 前記通信エラーとして、前記記憶装置へのアクセス要求のリトライアウトによるエラーが含まれる、
    請求項1乃至3のいずれか1項に記載のストレージ制御装置。
  5. 前記特定仮想ボリューム群として、前記エラー検出情報に基づき、前記複数の仮想ボリューム群の中から、前記第2の仮想ボリュームのうち所定割合以上の仮想ボリュームにおいて前記通信エラーが検出されている前記仮想ボリューム群が特定される、
    請求項1乃至4のいずれか1項に記載のストレージ制御装置。
  6. 前記特定仮想ボリューム群の特定では、前記複数の仮想ボリューム群のそれぞれをあらかじめ決められた選択順にしたがって選択し、選択された前記仮想ボリューム群に含まれる前記第2の仮想ボリュームのうち前記所定割合以上の仮想ボリュームにおいて前記通信エラーが検出されているかを判定することで前記特定仮想ボリューム群を特定し、
    前記使用パスの切り替えでは、前記選択順にしたがって先に特定された前記特定仮想ボリューム群を前記使用パスの切り替え対象とする、
    請求項5記載のストレージ制御装置。
  7. 複数のアクセスパスを介して記憶装置と接続されたコンピュータに、
    複数の設定項目のそれぞれに対応する設定値が、前記複数の仮想ボリュームのそれぞれについて登録された設定情報を参照し、前記複数の設定項目は、前記複数のアクセスパスのうち前記記憶装置にアクセスする際に使用される使用パスに関するパス設定項目を含み、
    前記記憶装置の記憶領域を用いて実現される複数の仮想ボリュームのそれぞれに対するアクセスが要求された場合、前記パス設定項目に対応する設定値に基づいて前記記憶装置にアクセスし、
    前記複数の仮想ボリュームのうちの第1の仮想ボリュームに対するアクセス要求に応じて前記記憶装置にアクセスしたときに通信エラーを検出した場合、前記第1の仮想ボリュームに対応する前記使用パスを切り替えて前記記憶装置に再度アクセスし、
    前記複数の仮想ボリュームのそれぞれに対するアクセス要求に応じて前記記憶装置にアクセスしたときに前記通信エラーが検出されたか否かを示す情報が、前記複数の仮想ボリュームのそれぞれについて登録されたエラー検出情報に基づいて、複数の仮想ボリューム群の中から特定仮想ボリューム群を特定し、前記複数の仮想ボリューム群のそれぞれは、前記設定情報に基づき、前記複数の仮想ボリュームのうち前記第1の仮想ボリュームと設定値が一致する第2の仮想ボリュームを、抽出条件として前記複数の設定項目のうち異なる設定項目をそれぞれ用いることによって抽出され、
    前記特定仮想ボリューム群に含まれる前記第2の仮想ボリュームのうち、前記通信エラーが検出されていないすべての仮想ボリュームについて、前記使用パスを切り替える、
    処理を実行させるパス切り替え制御プログラム。
JP2017120360A 2017-06-20 2017-06-20 ストレージ制御装置およびパス切り替え制御プログラム Ceased JP2019003586A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017120360A JP2019003586A (ja) 2017-06-20 2017-06-20 ストレージ制御装置およびパス切り替え制御プログラム
US16/005,737 US20180364936A1 (en) 2017-06-20 2018-06-12 Storage control device, method and non-transitory computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017120360A JP2019003586A (ja) 2017-06-20 2017-06-20 ストレージ制御装置およびパス切り替え制御プログラム

Publications (1)

Publication Number Publication Date
JP2019003586A true JP2019003586A (ja) 2019-01-10

Family

ID=64657375

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017120360A Ceased JP2019003586A (ja) 2017-06-20 2017-06-20 ストレージ制御装置およびパス切り替え制御プログラム

Country Status (2)

Country Link
US (1) US20180364936A1 (ja)
JP (1) JP2019003586A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11418594B1 (en) * 2021-10-20 2022-08-16 Dell Products L.P. Multi-path layer configured to provide link availability information to storage system for load rebalancing
JP2023125009A (ja) * 2022-02-28 2023-09-07 株式会社日立製作所 ストレージシステム、パス制御方法、及びプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6145028A (en) * 1997-12-11 2000-11-07 Ncr Corporation Enhanced multi-pathing to an array of storage devices
US6973549B1 (en) * 2001-12-10 2005-12-06 Incipient, Inc. Locking technique for control and synchronization
US7275103B1 (en) * 2002-12-18 2007-09-25 Veritas Operating Corporation Storage path optimization for SANs
US7131027B2 (en) * 2004-07-09 2006-10-31 Hitachi, Ltd. Method and apparatus for disk array based I/O routing and multi-layered external storage linkage
US7529816B2 (en) * 2005-06-03 2009-05-05 Hewlett-Packard Development Company, L.P. System for providing multi-path input/output in a clustered data storage network
JP4550717B2 (ja) * 2005-10-28 2010-09-22 富士通株式会社 仮想ストレージシステム制御装置、仮想ストレージシステム制御プログラム、仮想ストレージシステム制御方法
JP5068081B2 (ja) * 2007-01-24 2012-11-07 株式会社日立製作所 管理装置および管理方法
US8024426B2 (en) * 2007-05-11 2011-09-20 Texas Memory Systems, Inc. Non-disruptive data path upgrade using target mobility
US8654634B2 (en) * 2007-05-21 2014-02-18 International Business Machines Corporation Dynamically reassigning virtual lane resources
US9207873B2 (en) * 2013-12-19 2015-12-08 Netapp, Inc. Parallel migration of data objects to clustered storage

Also Published As

Publication number Publication date
US20180364936A1 (en) 2018-12-20

Similar Documents

Publication Publication Date Title
JP4963808B2 (ja) 記憶制御システム
US20190310925A1 (en) Information processing system and path management method
US20200028894A1 (en) Rebalancing storage i/o workloads by storage controller selection and redirection
US9977620B2 (en) Storage device and storage system
US20090037924A1 (en) Performance of a storage system
US9229660B2 (en) Storage system and method for controlling storage system
US20080244174A1 (en) Replication in storage systems
JP2007072538A (ja) ストレージ仮想化装置のデバイス制御引継ぎ方法
JP2007156815A (ja) データマイグレーション方法及びシステム
US7886186B2 (en) Storage system and management method for the same
US10691357B2 (en) Consideration of configuration-based input/output predictions in multi-tiered data storage system management
US9141295B2 (en) Load balancing of data reads in storage environments
JP5640572B2 (ja) 情報処理装置、情報処理プログラムおよびコピー処理方法
JP2015161999A (ja) ストレージ装置,制御装置及び制御プログラム
US9891992B2 (en) Information processing apparatus, information processing method, storage system and non-transitory computer readable storage media
US10642705B2 (en) Storage system and storage method
JP2019003586A (ja) ストレージ制御装置およびパス切り替え制御プログラム
JP6005446B2 (ja) ストレージシステム、仮想化制御装置、情報処理装置、および、ストレージシステムの制御方法
US11762559B2 (en) Write sort management in a multiple storage controller data storage system
US10788995B2 (en) Information processing apparatus, method and non-transitory computer-readable storage medium
WO2015020777A1 (en) Storage master node
US20220318106A1 (en) Automatic failover of a software-defined storage controller to handle input-output operations to and from an assigned namespace on a non-volatile memory device
US9400605B2 (en) Efficient management of a virtual tape library cluster
US11580022B2 (en) Write sort management in a multiple storage controller data storage system
US20130144977A1 (en) Shared-bandwidth multiple target remote copy

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200310

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20200316

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200316

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201225

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210126

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20210831