(58)【調査した分野】(Int.Cl.,DB名)
前記異常検知部が、通信異常通知信号の発行元の上位装置についてのIO数に対する通信異常数の比率に基づいて前記パスにおける異常の発生を検知することを特徴とする、請求項1または2記載の制御装置。
前記特定部が、前記ストレージ装置の通信ポートを用いる全上位装置についてのIO数に対する通信異常数の比率に基づいて異常箇所を特定することを特徴とする、請求項1〜3のいずれか1項に記載の制御装置。
記憶装置を有するストレージ装置と複数の上位装置と中継装置とを備え、前記複数の上位装置が前記中継装置を介して複数のパスで前記ストレージ装置に接続されるストレージシステムにおいて、
前記複数のパスのいずれかのパスにおける異常の発生を検知する異常検知部と、
前記パスにおける異常の発生を検知すると、通信異常数とIO数とに基づいて異常箇所を特定する特定部と、
特定された前記異常箇所に応じて前記複数の上位装置もしくは中継装置のいずれかに、データ通信経路を前記異常の発生が検知されたパスから前記複数のパスのうちの他のパスへ切り替えるパス切り替えを実行させる制御を行なう切替制御部と
を備え、
前記切替制御部が、
前記異常箇所が前記中継装置と前記ストレージ装置との間である場合には、当該ストレージ装置における前記中継装置が接続される通信ポートを通信不可状態にするポート停止処理を実行して前記通信ポートを通信不可状態にすることで前記パス切り替えを実行させ、
前記異常箇所が前記中継装置と前記ストレージ装置との間以外である場合には、前記ポート停止処理の実行を抑止する
ることを特徴とする、ストレージシステム。
【発明を実施するための形態】
【0014】
以下、図面を参照して本ストレージシステム、制御装置及び制御プログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【0015】
図1は実施形態の一例としてのストレージシステム4のハードウェア構成を模式的に示す図である。
ストレージシステム4においては、ストレージ装置1と複数(
図1に示す例では2つ)のホスト装置2a,2bとが冗長化された複数のパスを介して接続されている。
ストレージ装置1は、ドライブエンクロージャ(DE:Drive Enclosure)30に格納された記憶装置31を仮想化して、仮想ストレージ環境を形成する情報処理装置である。そしてストレージ装置1は、仮想ボリュームを上位装置であるホスト装置2a,2bに提供する。
【0016】
ストレージ装置1は、ホスト装置2a,2bに対して通信可能に接続されている。ホスト装置2a,2bとストレージ装置1とは、後述するCA(Communication Adapter)101a,101bにより接続されている。
ホスト装置2a,2bは、例えば、サーバ機能をそなえた情報処理装置であり、ストレージ装置1との間において、NAS(Network Attached Storage)やSANのコマンドを送受信する。これらのホスト装置2a,2bは、同様の構成を有している。
【0017】
以下、ホスト装置を示す符号としては、複数のホスト装置のうち1つを特定する必要があるときには符号2a,2bを用いるが、任意のホスト装置を指すときには符号2を用いる。又、ホスト装置2aをホスト#0と表す場合があり、又、ホスト装置2bをホスト#1と表す場合がある。
ホスト装置2は、図示しないCPU(Central Processing Unit)やメモリを備え、CPUがメモリ等に格納されたOS(Operating System)やプログラムを実行することで、種々の機能を実行する。
【0018】
ホスト装置2は、例えば、ストレージ装置1に対してNASにおけるリード/ライト等のディスクアクセスコマンドを送信することにより、ストレージ装置1が提供するボリュームにデータの書き込みや読み出しを行なう。
そして、ストレージ装置1は、ホスト装置2からボリュームに対して行なわれる入出力要求(例えば、リードコマンドやライトコマンド)に応じて、このボリュームに対応する実ストレージに対して、データの読み出しや書き込み等の処理を行なう。なお、ホスト装置2からの入出力要求のことをIOコマンドもしくは単にIOという場合がある。
【0019】
また、ホスト装置2は、ホスト装置2とストレージ装置1との間を複数のパス(マルチパス)で接続して冗長化する、マルチパスドライバを備える。
マルチパスドライバは、ストレージ装置1との間のパスにおけるリンクダウン(切断)及びリンクアップ(接続)の発生を検知する機能を備える。
例えば、ホスト装置2においては、その図示しない通信ポートにおいて、ストレージ装置1との間で通信できない状態が生じるとリンクダウンを検知する。例えば、ホスト装置2とストレージ装置1とがファイバチャネル(Fibre Channel:FC)で接続されている場合に、伝送光が所定時間以上継続して消灯したことを検知すると、リンクダウンが検知される。
【0020】
なお、ホスト装置2におけるストレージ装置1との間のパスのリンクダウン及びリンクアップの検知は、既知の手法により実現することができ、その詳細な説明は省略する。
そして、マルチパスドライバは、ストレージ装置1との間にリンクダウンを検知すると、パスの切り替えを行なう機能を備える。すなわち、マルチパスドライバは、ホスト装置2とストレージ装置1との間を接続する複数のパスのうち、データ通信に用いられているアクティブパスのリンクダウンを検知すると、予め設定された他のパス(待機パス)を選択し、この待機パスを用いてデータ通信を行なうよう、パスの切り替えを行なう(第1のパス切り替え機能)。
【0021】
なお、マルチパスドライバは公知の技術であり、その詳細な説明は省略する。又、このマルチパスドライバによるホスト装置2におけるパスの切り替えも、既知の手法により実現することができ、その詳細な説明は省略する。
また、マルチパスドライバとしては、TPGS(Target Port Group Support)対応のものと非対応のものがある。TPGSは、ホスト装置2とストレージ装置1との間の最適なパスを特定するための機能であり、パス切替制御機能である。なお、このTPGSは公知の技術であり、その詳細な説明は省略する。
【0022】
TPGS対応のマルチパスドライバは、ストレージ装置1からパス状態変更通知(パス切替指示,TPGSパス閉塞指示)を受信すると、異常が生じているアクティブパスを閉塞させることにより、待機パスへのパス切り替えを行なう(第2のパス切り替え機能)。なお、TPGSパス閉塞指示やTPGSによるパス閉塞処理については、
図8を用いて後述する。
【0023】
マルチパスドライバがTPGS対応であるか否かは、ストレージ装置1からホスト装置2に対してマルチパス再構築のセンスを応答した後、ホスト装置2からRTPG(Report Target Port Groups)コマンドを受信できるか否かで判定が可能である。すなわち、マルチパス再構築のセンスを応答した後、ホスト装置2からRTPGコマンドを受信できた場合には、このホスト装置2のマルチパスドライバはTPGS対応であると判断することができる。
【0024】
ストレージ装置1においては、ホスト装置2からRTPGコマンドを受信できたか否かの情報を予め採取して、ホスト装置2がTPGSに対応しているか否かを判定し、この判定結果を、後述する管理テーブル63(
図3参照)で管理する。
また、ホスト装置2は、ストレージ装置1に対してIOコマンドを発行後に所定時間内に応答がない場合には、発行したIOコマンドをキャンセルするために、ABTS(Abort Sequence)を発行する機能を有する。すなわち、ABTSは、ホスト装置2においてIO発行後になんらかのエラーが検知されたことを示す通信異常通知信号として機能する。
【0025】
なお、このABTSの発行は既知の手法で実現することができ、その詳細な説明は省略する。
スイッチ3a,3bは、ホスト装置2a,2bとCM100a,100bとの通信を中継する中継装置である。各スイッチ3a,3bは、それぞれホスト装置2a,2bに接続されるとともに、スイッチ3aはCM10
0aと、又、スイッチ3bはCM10
0bと、それぞれ接続されている。
【0026】
すなわち、ホスト装置2a,2bは、それぞれスイッチ3aを介してCM10
0aに接続されるとともに、スイッチ3bを介してCM10
0bにも接続されている。
図1に示す例においては、CA101aに2つのポートP0,P1が、又、CA101
bに2つのポートP2,P3が、それぞれ備えられている。そして、ポートP0にスイッチ3aが、又、ポートP2にスイッチ3bが、それぞれ接続され、更に、各スイッチ3a,3bにそれぞれホスト装置2a,2bが接続されている。
【0027】
すなわち、ホスト装置2a,2bは、それぞれスイッチ3aを介してCA101aのポートP0に接続されるとともに、スイッチ3bを介してCA101bのポートP2にも接続されている。
ストレージ装置1は、
図1に示すように、複数(本実施形態では2つ)のCM(Controller Module)100a,100b及び1つ以上(
図1に示す例では1つ)のドライブエンクロージャ30をそなえる。
【0028】
ドライブエンクロージャ30は、1以上(
図1に示す例では4つ)の記憶装置(物理ディスク)31を搭載可能であり、これらの記憶装置31の記憶領域(実ボリューム,実ストレージ)を、ストレージ装置1に対して提供する。
例えば、ドライブエンクロージャ30は、複数段のスロット(図示省略)をそなえ、これらのスロットに、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の記憶装置31を挿入することにより、実ボリューム容量を随時変更することができる。又、複数の記憶装置31を用いてRAID(Redundant Arrays of Inexpensive Disks)を構成することができる。
【0029】
ドライブエンクロージャ30は、CM100aのデバイスアダプタ(Device Adapter:DA)103,103とCM100bのDA103,103とそれぞれ接続されている。そして、ドライブエンクロージャ30には、CM100a,100bのいずれからもアクセスして、データの書き込みや読み出しを行なうことができる。すなわち、ドライブエンクロージャ30の記憶装置31に対して、CM100a,100bのそれぞれを接続することにより、記憶装置31へのアクセス経路が冗長化されている。
【0030】
コントローラエンクロージャ40は、1以上(
図1に示す例では2つ)のCM100a,100bを備える。
CM100a,100bは、ストレージ装置1内の動作を制御するコントローラ(制御装置,ストレージ制御装置)であり、ホスト装置2から送信されるIOコマンドに従って、ドライブエンクロージャ30の記憶装置31へのアクセス制御等、各種制御を行なう。又、CM100a,100bは互いにほぼ同様の構成を有している。以下、CMを示す符号としては、複数のCMのうち1つを特定する必要があるときには符号100a,100bを用いるが、任意のCMを指すときには符号100を用いる。又、CM100aをCM#0と、CM100bをCM#1と、それぞれ表す場合がある。
【0031】
また、図中、同一の符号は同一もしくは略同一の部分を示しているので、その詳細な説明は省略する。
CM100a,100bは二重化されており、通常は、CM100aがプライマリとして各種制御を行なう。しかし、このプライマリCM100aの故障時には、セカンダリのCM100bがプライマリとしてCM100aの動作を引き継ぐ。
【0032】
CM100a,100bはCA101a,101bを介して、それぞれホスト装置2に接続される。そして、これらのCM100a,100bは、ホスト装置2から送信されるリード/ライト等のIOコマンドを受信し、DA103等を介して記憶装置31の制御を行なう。又、CM100a,100bは、通信線50を介して相互に通信可能に接続されている。この通信線50は、PCI Express(登録商標)等のインタフェースで接続されている。
【0033】
CM100a,100bは、
図1に示すように、CA101a,101bと複数(
図1に示す例では2つ)のDA103,103とをそなえるとともに、CPU(Central Processing Unit)110,メモリ106,SSD107及びIOC108をそなえる。
図1に示す例においては、CM100aにCA101aが、又、CM100bにCA101bが、それぞれそなえられている。以下、CAを示す符号としては、複数のCAのうち1つを特定する必要があるときには符号101a,101bを用いるが、任意のCAを指すときには符号101を用いる。
【0034】
CA101は、ホスト装置2等から送信されたデータを受信したり、CM100から出力するデータをホスト装置2等に送信する。すなわち、CA101は、ホスト装置等の外部装置との間でのデータの入出力(IO)を制御する。
CA101は、NASを介してホスト装置2と通信可能に接続するネットワークアダプタであり、例えば、LAN(Local Area Network)インタフェースやiSCSI(internet Small Computer System Interface)インタフェース,FC(Fibre Channel)インタフェース等である。CM100は、このCA101により通信回線を介してホスト装置2等とNASにより接続され、IOコマンドの受信やデータの送受信等を行なう。
【0035】
また、CA101は1つ以上のポートを備え、このポートにホスト装置2と通信するための通信線が接続される。
図1に示す例においては、CA101aに2つのポートP0,P1が、又、CA101bに2つのポートP2,P3が、それぞれ備えられている。そして、ポートP0にスイッチ3aが、又、ポートP2にスイッチ3bが、それぞれ接続され、更に、各スイッチ3a,3bにそれぞれホスト装置2a,2bが接続されている。
【0036】
すなわち、ホスト装置2a,2bは、それぞれスイッチ3aを介してCA101aのポートP0に接続されるとともに、スイッチ3bを介してCA101bのポートP2に接続されている。
DA103は、ドライブエンクロージャ30や記憶装置31等と通信可能に接続するためのインタフェースである。DA103は、ドライブエンクロージャ30の記憶装置31が接続され、CM100は、ホスト装置2から受信したIOコマンドに基づき、これらの記憶装置31に対するアクセス制御を行なう。
【0037】
CM100は、このDA103を介して、記憶装置31に対するデータの書き込みや読み出しを行なう。又、
図1に示す例においては、CM100a,100bのそれぞれに2つのDA103,103がそなえられている。そして、CM100a,100bのそれぞれにおいて、各DA103にドライブエンクロージャ30が接続されている。
これにより、ドライブエンクロージャ30の記憶装置31には、CM100a,100bのいずれからもデータの書き込みや読み出しを行なうことができる。
【0038】
SSD107は、CPU110が実行するプログラムや種々のデータ等を格納する記憶装置である。
メモリ106は、種々のデータやプログラムを一時的に格納する記憶装置であり、図示しないメモリ領域とキャッシュ領域とをそなえる。キャッシュ領域は、ホスト装置2から受信したデータや、ホスト装置2に対して送信するデータを一時的に格納する。メモリ領域には、CPU110がプログラムを実行する際に、データやプログラムを一時的に格納・展開して用いる。
【0039】
また、メモリ106には、後述する、IOカウンタ値61,ABTSカウンタ値62,管理テーブル63の情報,第1閾値64,第2閾値65及び第3閾値66が記憶領域に格納される。なお、第1閾値64の値,第2閾値65の値及び第3閾値66の値を、それぞれL,M及びNとし、以下、閾値L,閾値M及び閾値Nと表す場合もある。
IOC(Input Output Controller)108は、CM100内におけるデータ転送を制御する制御装置であり、例えば、メモリ106に格納されたデータをCPU110を介することなく転送させるDMA(Direct Memory Access)転送を実現する。
【0040】
CPU110は、種々の制御や演算を行なう処理装置であり、マルチコアプロセッサ(マルチCPU)である。CPU110は、SSD107等に格納されたOSやプログラムを実行することにより、種々の機能を実現する。
例えば、CPU110は、制御プログラム(パス切替制御プログラム)を実行することにより、異常パスから待機パスへの切り替えを制御するパス切替制御機能を実現する。
【0041】
すなわち、CPU110が、制御プログラムを実行することにより、
図2に示すような、IO管理部11,異常検知部12,特定部13及び切替制御部14として機能する。
図2は実施形態の一例としてのストレージシステム4におけるパス切替制御機能を実現するための機能構成を示す図である。
この
図2に示すように、ストレージ装置1は、IO管理部11,異常検知部12,特定部13及び切替制御部14として機能する。
【0042】
なお、これらのIO管理部11,異常検知部12,特定部13及び切替制御部14としての機能を実現するためのプログラム(パス切替制御プログラム)は、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【0043】
IO管理部11,異常検知部12,特定部13及び切替制御部14としての機能を実現する際には、内部記憶装置(本実施形態ではメモリ106やSSD107)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではCPU110)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【0044】
IO管理部11は、ホスト装置2との間で行なわれる通信を監視し、IOカウンタ値61,ABTSカウンタ値62及び管理テーブル63を用いて管理する。
IO管理部11は、ホスト装置2との間の通信状態を監視し、ストレージ装置1に備えられる各ポートP0〜P3毎に、通信実績(通信状態)を管理する。
具体的には、IO管理部11は、CA101のポート毎に、ホスト装置2から受信したIOコマンドの数(IOコマンド数)をIOカウンタ値61を用いて計数する。又、IO管理部11は、ホスト装置2から発行されるABTSを受信した数(ABTS数)をABTSカウンタ値62を用いて計数する。
【0045】
IOカウンタ値61は、ホスト装置2毎に備えられ、IO管理部11は、各IOカウンタ値61を各ホスト装置2からのIOコマンドの受信を契機にカウントアップする。
ABTSカウンタ値62は、ホスト装置2毎に備えられ、IO管理部11は、各ABTSカウンタ値62をホスト装置2からのABTS受信を契機にカウントアップする。
なお、
図2中においては、便宜上、IOカウンタ値61及びABTSカウンタ値62を1つずつ示している。
【0046】
IOカウンタ値61,ABTSカウンタ値62及び管理テーブル63は、例えば、メモリ106に格納される。
図3は実施形態の一例としてのストレージシステム4における管理テーブル63を例示する図である。
IO管理部11は、各ポートについて、通信先のホスト装置2毎に、TPGS対応であるか否かの情報,IO数,ABTS数及びABTS割合を、管理テーブル63において管理する。
図3に例示する管理テーブル63においては、これらの情報に対して、ホスト識別子及び内部管理番号を対応付けることにより、ホスト装置2に対応付けている。
【0047】
ここで、ホスト識別子は、ホスト装置2を特定するための識別情報であり、例えば、ホスト装置2のWWN(World Wide Name)やSCSIネームが用いられる。
内部管理番号は、ホスト装置2を管理するために設定された番号である。TPGS対応であるか否かの情報としては、例えば、そのホスト装置2がTPGSに対応している場合には“1”を、又、TPGSに対応していない場合には“0”が設定される。
【0048】
IO数はホスト装置2から受信したIOの数であり、上述したIOカウンタ値61が格納される。ABTS数はホスト装置2から受信したABTSの数であり、上述したABTSカウンタ値62が格納される。
ABTS割合は、ホスト装置2から受信したIO数に対するABTS数の割合であり、IO管理部11により、前述したIO数及びABTS数を用いて算出される。
図3に示す例においては、ABTS割合として%値が設定されている。
【0049】
ストレージ装置1においては、管理テーブル63はCA101のポート毎に備えられ、各CM100においては、自身のCA101に備えられる各ポートについての管理テーブル63を作成する。すなわち、CM100aにおいては、IO管理部11はポートP0,P1についての管理テーブル63を作成し、CM100bにおいては、IO管理部11はポートP2,P3についての管理テーブル63を作成する。
【0050】
そして、各CM100において作成された管理テーブル63は、通信線50を介して相互に通知されるとともに同期され、これにより、各CM100は、他CM100のポートを含む全ポートの通信実績を管理する。
異常検知部12は、ストレージ装置1とホスト装置2との間のパスにおける異常(パス異常)の発生を検知する。
【0051】
異常検知部12は、ABTS割合と第2閾値65の値Mとを比較することにより、パス異常の発生を判断する。すなわち、異常検知部12は、判定対象のホスト装置2について、管理テーブル63を参照し、そのABTS割合を読み出す。そして、異常検知部12は、このABTS割合と閾値Mとを比較して、当該ホスト装置2との間のパスに異常が発生している(パス異常)か否かを判断する。異常検知部12は、ABTS割合が閾値M以上の場合に、当該ホスト装置2との間のパスに異常が発生している(パス異常)と判断する。
【0052】
このように、異常検知部12は、ABTSの発行元のホスト装置2についてのIO数に対する通信異常数の比率(ABTS割合)に基づいてパス異常の発生を検知する。
また、異常検知部12は、ABTSカウンタ値62が第1閾値64の値L以上であると判断した場合に、上述したパス異常の有無の判断を開始する。
特定部13は、異常検知部12がパス異常の発生を検知すると、ABTS数とIO数とに基づいて異常箇所を特定する。具体的には、特定部13は、当該ストレージ装置1に備えられたポートP0〜P3を用いる全てのホスト装置2について、各ホスト装置2が発行したIO数の合計(全IO数)に対する、各ホスト装置2が発行したABTS数の合計(全ABTS数)の比率(全ホストのABTS割合)を算出する。なお、全ホストのABTS割合の算出に用いるIO数及びABTS数は、例えば、管理テーブル63から読み出して取得する。
【0053】
そして、特定部13は、各ホスト装置2のABTS割合に基づいて、異常箇所を判定する。具体的には、特定部13は、この算出した全ホストのABTS割合を第3の閾値Nと比較し、全ホストのABTS割合が閾値N以上である場合に、異常の発生箇所が、スイッチ3と当該ストレージ装置1との間にあると判断する。一方、特定部13は、全ホストのABTS割合が閾値Nよりも小さい場合には、異常の発生箇所が、ホスト装置2とスイッチ3との間にあると判断する。
【0054】
図4は実施形態の一例としてのストレージシステム4における異常箇所を示す図、
図5はその異常箇所の特定方法を示す図である。これらの
図4及び
図5に示す例においては、ストレージ装置1のポートP0について示すものとする。
図4に例示するストレージシステム4において、ストレージ装置1とスイッチ3aとの間の経路を符号A、ホスト装置2aとスイッチ3aとの間の経路を符号B、ホスト装置2bとスイッチ3aとの間の経路を符号Cで、それぞれ示す。
【0055】
図5において、「接続ホストのABTS割合判定」は、ホスト装置2のABTS割合を上述した閾値Nと比較した結果を示しており、ABTS割合が閾値N未満である場合に“○”が、又、ABTS割合が閾値N以上である場合に“×”が、それぞれ設定されている。又、この
図5においては、ホスト#0及びホスト#1の各ABTS割合の閾値Nとの比較結果の組み合わせに対応させて、異常箇所及びパス切り替え手段が、「判定」として設定されている。
【0056】
異常箇所は、ストレージシステム4において異常が発生していると想定される位置であり、例えば、
図4中における符号A,B,Cで表されるいずれかの経路位置を示す。パス切り替え手段は、後述する切替制御部14が、異常パスから待機パスへの切り替えを制御するための手段を示す。なお、このパス切り替え手段については後述する。
この
図5に示す例においては、ホスト装置2a(ホスト#0)及びホスト装置2b(ホスト#1)のいずれのABTS割合も閾値N以上である場合に、特定部13は、異常箇所が、
図4中におけるストレージ装置1とスイッチ3aとの間の経路Aであると判断することを示す。
【0057】
また、ホスト#0のABTS割合が閾値N以上であり、且つ、ホスト#1のABTS割合が閾値N未満である場合には、特定部13は、異常箇所が、
図4中におけるホスト装置2aとスイッチ3aとの間の経路Bであると判断する。更に、ホスト#0のABTS割合が閾値N未満であり、且つ、ホスト#1のABTS割合が閾値N以上である場合には、特定部13は、異常箇所が、
図4中におけるホスト装置2bとスイッチ3aとの間の経路Cであると判断する。
【0058】
切替制御部14は、異常が発生したアクティブパスから待機パスへデータ通信経路を切り替えるパス切り替えを、ホスト装置2に実行させるための制御を行なうものであり、特定部13により特定された異常箇所に応じた切替手段で、パスの切り替え制御を行なう。
異常箇所がスイッチ3と当該ストレージ装置1との間である場合には、切替制御部14は、当該ストレージ装置1における、異常パスが接続されているポート(対象ポート)を停止状態(ポート停止状態)にすることでリンクダウン状態を発生させる。これにより、ホスト装置2においては、マルチパスドライバが、このリンクダウンを検知し、ストレージ装置1との間のデータ通信を待機パスを用いて行なうようアクティブパスからパスの切り替えを行なう。
【0059】
切替制御部14は、例えば、対象ポートへの電力供給を抑止することにより、このポートを使用不可の状態(ポート停止状態)にして、異常パスを切断状態(リンクダウン状態)にする。なお、ポートをポート停止状態にすることをポート停止処理という。ポート停止処理は、対象ポートへの電力供給の抑止の他、既知の種々の手法で実現することができる。
【0060】
また、異常パスをリンクダウンさせるには、既知の種々の手法を用いることができ、その詳細な説明は省略する。
一方、異常箇所がスイッチ3と当該ストレージ装置1との間以外である場合には、切替制御部14は、対象ポートのリンクダウンを抑止する。そして、異常箇所がスイッチ3と当該ストレージ装置1との間以外であり、且つ、ホスト装置2がTPGSに対応している場合には、切替制御部14は、ホスト装置2にTPGSパス閉塞(パス切替指示)を指示する。
【0061】
なお、ホスト装置2がTPGSに対応しているか否かは、管理テーブル63を参照することで判断することができる。
ストレージ装置1からTPGSパス閉塞指示を受信したホスト装置2は、TPGSによるパス閉塞処理を行なう。これにより、異常パスから待機パスへのデータ通信経路の切り替えが行なわれる。
【0062】
図5に示した例において、ホスト装置2a,2bはいずれもTPGS対応であるものとする。
図5においては、ホスト#0及びホスト#1の両方のABTS割合が閾値N以上である場合に、切替制御部14は、対象のポートP0をリンクダウンさせることによりホスト装置2に対して待機パスへの切り替えを実行させることを示す。
また、ホス
ト#0及びホスト#1において、一方のABTS割合が閾値N未満であり、他方のABTS割合が閾値N以上である場合には、切替制御部14は、ホスト装置2にTPGSパス閉塞を指示することで、ホスト装置2に対して異常パスから待機パスへのデータ通信経路の切り替えを実行させる。
【0063】
上述の如く構成された実施形態の一例としてのストレージシステム4におけるパス切り替え処理の概要を、
図6に示すフローチャート(ステップA1〜A4)に従って説明する。
ステップA1において、異常検知部12が、ストレージシステム4におけるパス状態を判定する。パス状態が正常である場合には(ステップA1の“正常”ルート参照)、処理を終了する。
【0064】
一方、パス状態が異常であると判断した場合には(ステップA1の“異常”ルート参照)、ステップA2において、特定部13が異常箇所を判定する。この判定の結果、異常箇所がホスト装置2とスイッチ3との間である場合において(ステップA2の“Host-SW間”ルート参照)、ホスト装置2がTPGS対応である場合には、ステップA3において、切替制御部14がホスト装置2に対してTPGSパス閉塞を行なわせることにより待機パスへの切り替えを実行させる。
【0065】
また、異常箇所がスイッチ3と当該ストレージ装置1との間である場合には(ステップA2の“SW-Storage間”ルート参照)、切替制御部14が、対象のパスをリンクダウン状態にすることにより、ホスト装置2に対して待機パスへの切り替えを実行させる。その後、処理を終了する。
次に、実施形態の一例としてのストレージシステム4におけるパス切り替え処理の詳細を、
図7に示すフローチャート(ステップB1〜B14)に従って説明する。
【0066】
ストレージ装置1がホスト装置2からABTSを受信すると、ステップB1において、IO管理部11が、IOカウンタ値61及びABTSカウンタ値62をカウントアップして、管理テーブル63に記録する。
ステップB2において、異常検知部12はABTSの送信元のホスト装置2(対象ホスト)について、そのABTS数を閾値Lと比較する。ABTS数が閾値L未満の場合には(ステップB2のYESルート参照)、パス異常判定の対象外であり、パスは正常であるとみなして処理を終了する。
【0067】
一方、ABTS数が閾値L以上の場合には(ステップB2のNOルート参照)、パス異常判定の対象であるとして、ステップB3において、異常検知部12は、IO数に対するABTS数の割合(ABTS割合)を計算する。
ステップB4において、異常検知部12は、ステップB3において算出したABTS割合を閾値Mと比較する。この比較の結果、ABTS割合が閾値M未満である場合には(ステップB4のYESルート参照)、パスは正常であると判断し、ステップB5において、IOカウンタ値61及びABTSカウンタ値62がクリアされる。その後、処理を終了する。
【0068】
また、ABTS割合が閾値M以上である場合には(ステップB4のNOルート参照)、異常検知部12は、パス異常と判断し(ステップB6)、次に、特定部13による異常箇所の特定が行なわれる。
ステップB7において、特定部13は、当該ストレージ装置1に備えられたポートP0〜P3を用いる全てのホスト装置2でのABTS割合(全ホストのABTS割合)を算出する。
【0069】
ステップB8において、特定部13は、ステップB7で算出した全ホストのABTS割合を閾値Nと比較する。比較の結果、全ホストのABTS割合が閾値N以上の場合には(ステップB8のNOルート参照)、異常箇所はスイッチ3とストレージ装置1との間であると判断される。そこで、ステップB13において、切替制御部14は、当該ストレージ装置1における、異常パスが接続されているポート(対象ポート)をリンクダウン状態にする。これにより、ホスト装置2がこのリンクダウンを検知し、待機パスへの切り替えを行なう。
【0070】
その後、ステップB14において、IOカウンタ値61及ABTSカウンタ値62がクリアされて、処理を終了する。
一方、全ホストのABTS割合が閾値N未満の場合には(ステップB8のYESルート参照)、異常箇所はホスト装置2とスイッチ3との間であると判断される。そこで、ステップB9において、切替制御部14は、管理テーブル6
3を参照して、ABTSの送信元であるホスト装置2がTPGS対応であるか否かを確認する。
【0071】
ホスト装置2がTPGS対応である場合には(ステップB9のYESルート参照)、ステップB10において、切替制御部14は、そのホスト装置2に対してTPGSパス閉塞を指示する。TPGSパス閉塞指示を受信したホスト装置2は、TPGSによるパス閉塞処理を行ない、これにより、異常パスから待機パスへの切り替えが行なわれる。なお、このホスト装置2におけるTPGSパス閉塞処理の詳細は、
図8を用いて後述する。
【0072】
その後、ステップB11において、IOカウンタ値61及ABTSカウンタ値62がクリアされて、処理を終了する。
また、ホスト装置2がTPGS未対応である場合には(ステップB9のNOルート参照)、ステップB12において、IOカウンタ値61及ABTSカウンタ値62がクリアされて、処理を終了する。
【0073】
すなわち、ホスト装置2がTPGS未対応である場合には、リンクダウン等をさせずに、パスが正常であるものとして取り扱う。リンクダウンを抑止することで、他のホスト装置2からのアクセスに影響を与えることがない。又、ABTSを発行したホスト装置2によりIOコマンドの再発行(リトライ)が行なわれると、パス異常が一時的なものであった場合には、このリトライ時にはパス異常が解消していることも期待できる。
【0074】
次に、実施形態の一例としてのストレージシステム4におけるTPGSパス閉塞処理を、
図8に示すフローチャート(ステップC1〜C6)に従って説明する。このTPGSパス閉塞処理は、ホスト装置2がTPGS対応である場合に行なわれ、
図7に示すフローチャートのステップB10の処理に対応する。
ステップC1において、切替制御部14は、対象ホスト装置2のアフィニティグループ(Affinity Group)に登録されている全てのLU(Logical Unit)を特定する。
【0075】
ステップC2において、切替制御部14は、対象ホスト装置2のアフィニティグループに登録されている全てのLUに対してマルチパス再構築のセンス(例えば、6/2A06のセンス)を登録(保持)/応答する。ホスト装置2においては、ストレージ装置1から6/2A06のセンスを受信すると、RTPGコマンドを発行する仕様となっている。
そこで、ステップC3において、切替制御部14は、ホスト装置2から送信されるコマンドを監視する。具体的には、切替制御部14は、ホスト装置2から、6/2A06のセンスに対するRTPGコマンドを受信したか否かを確認する(ステップC4)。
【0076】
ストレージ装置1がホスト装置2からRTPGコマンドを受信しない場合には(ステップC4のNOルート参照)、センスロスが発生したと判断され、ステップC6において、切替制御部14は、移行のIOに対して6/2A06のセンスを応答し続ける。
本処理は、
図7に示すフローチャートのステップB10に対応するので、パス異常が発生していると判断される状況下で行なわれ、フレームロスが間欠的に発生するような、いわゆる不安定なパスを前提としている。従って、ホスト装置2からRTPGコマンドが送信されても、ストレージ装置1においてはこのRTPGコマンドをすぐには受信できないおそれがある。このため、ステップC4においてRTPGコマンドを受信していない場合に、ステップC6においてストレージ装置1から6/2A06のセンスを応答し続けるのである。
【0077】
一方、ストレージ装置1がホスト装置2からRTPGコマンドを受信した場合には(ステップC4のYESルート参照)、センスロスが未発生であると判断される。ステップC5において、切替制御部14は、この受信したRTPGコマンドに対してスタンバイステート(Standby State)を応答することでホスト装置2に待機パスへの切り替えを促す。
これにより、スタンバイステートを受信したホスト装置2のマルチパスドライバは、アクティブパスを閉塞させることにより待機パスへの切り替えを実行する。なお、ホスト装置2においてスタンバイステートを受信して待機パスへ切り替える手法は既知であり、その説明は省略する。
【0078】
図9は実施形態の一例としてのストレージシステム4におけるセンスロスが未発生の場合のTPGSパス閉塞処理を示すシーケンス図である。
なお、
図9中において、ストレージ装置1のアダプタはCA101に相当し、コントローラはCPU110に相当する。
この
図9に示すように、ストレージ装置1のコントローラにおいて、対象LUに6/2A06センスが登録される(符号D1参照)。その後、ホスト装置2からIO(通常IO)が発行されると(符号D2参照)、アダプタからコントローラに対して当該IOの処理依頼が行なわれる(符号D3参照)。
【0079】
コントローラはアダプタに対してセンス応答指示を行ない(符号D4参照)、この指示に従って、アダプタはホスト装置2に対して6/2A06センス応答を行なう(符号D5参照)。
6/2A06センス応答がホスト装置2に到達すると、ホスト装置2はRTPGコマンドの発行を行ない(符号D6参照)、このRTPGコマンドを受信したアダプタはコマンド種を判定する。
【0080】
アダプタは、コントローラに対して判定したコマンド(RTPGコマンド)の処理を依頼し(符号D7参照)、コントローラはアダプタに対してデータ応答指示を行なう(符号D8参照)。アダプタは、この指示に従って、ホスト装置2に対して、ポートグループの状態(Asymmetric access state;非対称アクセス状態)として、スタンバイ(Standby)を応答する(符号D9参照)。このスタンバイ応答が、ストレージ装置1からホスト装置2へのパス状態変更通知として機能する。
【0081】
この応答を受信したホスト装置2においては、マルチパスドライバが、アクティブパスを閉塞させて待機パスへ切り替える。
図10は実施形態の一例としてのストレージシステム4におけるセンスロスが発生した場合のTPGSパス閉塞処理を示すシーケンス図である。この
図10に示すシーケンス図においては、パス異常の影響によりホスト装置2へのセンス応答がロスするケースを示す。
【0082】
この
図10に示すシーケンス図においては、
図9に示すシーケンスの各処理に加えて、符号D51〜D57で示す処理を備えるものであり、その他の部分は、
図9に示す処理と同様である。図中、既述の符号と同一の符号は同様の処理を示しているので、その説明は省略する。
コントローラがアダプタに対してセンス応答指示を行ない(符号D4参照)、この指示に従って、アダプタはホスト装置2に対して6/2A06センス応答を行なう(符号D51参照)。
【0083】
しかしパスが不安定なため、この6/2A06センス応答がホスト装置2に到達せずにセンスロスが生じ(符号D52参照)、ホスト装置2においては、通常IOを発行してから所定時間が経過することでコマンドタイムアウトとなる(符号D53参照)。
ホスト装置2はIO(通常IO)を再発行し(符号D54参照)、これを受けたアダプタからコントローラに対して当該IOの処理依頼が行なわれる(符号D55参照)。コントローラはアダプタに対してセンス応答指示を行ない(符号D56参照)、この指示に従って、アダプタはホスト装置2に対して6/2A06センス応答を行なう(符号D5参照)。
【0084】
上述した符号D51〜D56に示す処理は、ストレージ装置1がRTPGコマンドを受信するまで、繰り返し行なわれるのである(符号D57参照)。
このように、実施形態の一例としてのストレージ装置1によれば、パス異常が検知されると、特定部13が異常箇所を特定し、切替制御部14がホスト装置2に対してこの異常箇所に応じたパス切り替えを実行させる。
【0085】
すなわち、異常箇所がホスト装置2とスイッチ3との間である場合には、ホスト装置2に対してTPGSによるパス閉塞処理を行なわせる、もしくはパス正常とみなすことで、リンクダウンを阻止する。これにより、ABTSの送信元のホスト装置2と同じポートを用いている他のホスト装置2から対象ポートへのアクセスを阻害することがない。すなわち、他のホスト装置2から対象ポートへのアクセスに影響を与えることがなく、安定したシステム運用を行なうことができる。
【0086】
ABTSを発行したホスト装置2によりIOのリトライが行なわれると、パス異常が一時的なものであった場合には、このリトライ時にはパス異常が解消していることが期待できる。これにより、リンクダウンさせることなくパス異常を解消することができ、ホスト装置2からストレージ装置1へのアクセスを阻害することがない。
異常箇所がスイッチ3とストレージ装置1との間である場合には、切替制御部14が対象ポートのリンクダウンを行なう。これにより、このリンクダウンを検知したホスト装置2が待機パスへのパス切り替えを実行するので、待機パスに確実にパス切り替えを行なうことができ信頼性が向上する。
【0087】
スイッチ3とストレージ装置1との間のパスは、各ホスト装置2からのポートアクセスに用いられるので、このパスが異常箇所である場合には、パス異常を早急に解消することが望ましい。従って、当該パスにかかる通信ポートを早急にポート停止状態にしてリンクダウン状態にすることで、迅速にパス切り替えが行なわれ、システムを早期に安定状態に戻すことができ、信頼性が向上する。
【0088】
異常箇所がホスト装置2とスイッチ3との間である場合において、ホスト装置2がTPGS対応である場合には、切替制御部14は、ホスト装置2にTPGSによるパス閉塞処理を行なわせる。これにより、待機パスに確実にパス切り替えを行なうことができ信頼性が向上する。
異常箇所がホスト装置2とスイッチ3との間である場合において、ホスト装置2がTPGS未対応である場合には、リンクダウン等をさせずに、パスが正常であるものとして取り扱うことでリンクダウンを抑止する。これにより、他のホスト装置2からのアクセスに影響を与えることがない。
【0089】
フレームロスが間欠的に発生するような不安定なパスを検知し、正常なパスへ切り替えることで、安定したシステム運用が可能となる。
なお、上述した実施形態に関わらず、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した実施形態においては、ストレージシステム4が2つのホスト装置2を備えるとともに2つのスイッチ3を備えているが、これに限定されるものではない。すなわち、3つ以上のホスト装置2や3つ以上のスイッチ3を備えてもよい。又、ストレージ装置1の構成も適宜変更して実施することができる。
【0090】
また、上述した実施形態においては、ホスト装置2がリンクダウン検知や切替制御部14からの指示に応じて、アクティブパスから待機パスへのパス切り替えを行なう例を示しているが、これに限定されるものではない。すなわち、TPGSに対応するスイッチ(中継装置)3を備え、切替制御部14がこのスイッチ3に対してパスの切り替え指示を発行することで、アクティブパスから待機パスへのパス切り替えを実行させてもよい。又、スイッチ3がリンクダウンの発生を検知し、アクティブパスから待機パスへのパス切り替えを行なってもよい。
【0091】
さらに、上述した実施形態においては、ホスト装置2とストレージ装置1との間を接続する中継装置としてスイッチ3を備えているが、これに限定されるものではなく、ブリッジやルータ等の他の中継装置を用いてもよい。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【0092】
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
記憶装置を有するストレージ装置と複数の上位装置と中継装置とを備え、前記複数の上位装置が前記中継装置を介して複数のパスで前記ストレージ装置に接続されるストレージシステムにおいて、
前記複数のパスのいずれかのパスにおける異常の発生を検知する異常検知部と、
前記パスにおける異常の発生を検知すると、通信異常数とIO数とに基づいて異常箇所を特定する特定部と、
特定された前記異常箇所に応じて前記複数の上位装置もしくは中継装置のいずれかに、データ通信経路を前記異常の発生が検知されたパスから前記複数のパスのうちの他のパスへの切り替えを実行させる制御を行なう切替制御部と
を備えることを特徴とする、ストレージシステム。
【0093】
(付記2)
前記異常箇所が前記中継装置と前記ストレージ装置との間である場合には、
前記切替制御部が、前記ストレージ装置における前記中継装置が接続される通信ポートを通信不可状態にするポート停止処理を実行して前記通信ポートを通信不可状態にすることで前記パス切り替えを実行させることを特徴とする、付記1記載のストレージシステム。
【0094】
(付記3)
前記切替制御部が、
前記異常箇所が前記中継装置と前記ストレージ装置との間以外である場合には、前記ポート停止処理の実行を抑止することを特徴とする、付記2記載のストレージシステム。
(付記4)
前記異常箇所が中継装置と前記ストレージ装置との間以外であり、且つ、前記上位装置がパス切替制御機能を有している場合には、
前記切替制御部が、前記上位装置にパス切替指示を送信することで前記パス切り替えを実行させることを特徴とする、付記3記載のストレージシステム。
【0095】
(付記5)
前記異常検知部が、通信異常通知信号の発行元の上位装置についてのIO数に対する通信異常数の比率に基づいて前記パスにおける異常の発生を検知することを特徴とする、付記1〜4のいずれか1項に記載のストレージシステム。
(付記6)
前記特定部が、前記ストレージ装置の通信ポートを用いる全上位装置についてのIO数に対する通信異常数の比率に基づいて異常箇所を特定することを特徴とする、付記1〜5のいずれか1項に記載のストレージシステム。
【0096】
(付記7)
複数の上位装置と中継装置を介した複数のパスで接続されるストレージ装置の制御装置であって、
前記複数のパスのいずれかのパスにおける異常の発生を検知する異常検知部と、
前記パスにおける異常の発生を検知すると、通信異常数とIO数とに基づいて異常箇所を特定する特定部と、
特定された前記異常箇所に応じて前記複数の上位装置もしくは中継装置のいずれかに、データ通信経路を前記異常の発生が検知されたパスから前記複数のパスのうちの他の待機パスへ切り替えるパス切り替えを実行させる制御を行なう切替制御部と
を備えることを特徴とする、制御装置。
【0097】
(付記8)
前記異常箇所が前記中継装置と前記ストレージ装置との間である場合には、
前記切替制御部が、前記ストレージ装置における前記中継装置が接続される通信ポートを通信不可状態にするポート停止処理を実行して前記通信ポートを通信不可状態にすることで前記待機パスへの切り替えを行なうことを特徴とする、付記7記載の制御装置。
【0098】
(付記9)
前記切替制御部が、
前記異常箇所が前記中継装置と前記ストレージ装置との間以外である場合には、前記ポート停止処理の実行を抑止することを特徴とする、付記8記載の制御装置。
(付記10)
前記異常箇所が中継装置と前記ストレージ装置との間以外であり、且つ、前記上位装置がパス切替制御機能を有している場合には、
前記切替制御部が、前記上位装置にパス切替指示を送信することで前記パス切り替えを実行させることを特徴とする、付記9記載の制御装置。
【0099】
(付記11)
前記異常検知部が、通信異常通知信号の発行元の上位装置についてのIO数に対する通信異常数の比率に基づいて前記パスにおける異常の発生を検知することを特徴とする、付記7〜10のいずれか1項に記載の制御装置。
(付記12)
前記特定部が、前記ストレージ装置の通信ポートを用いる全上位装置についてのIO数に対する通信異常数の比率に基づいて異常箇所を特定することを特徴とする、付記7〜11のいずれか1項に記載の制御装置。
【0100】
(付記13)
複数の上位装置と中継装置を介した複数のパスで接続されるストレージ装置において、
前記複数のパスのいずれかのパスにおける異常の発生を検知する処理と、
前記パスにおける異常の発生を検知すると、通信異常数とIO数とに基づいて異常箇所を特定する処理と、
特定された前記異常箇所に応じて前記複数の上位装置もしくは中継装置のいずれかに、データ通信経路を前記異常の発生が検知されたパスから前記複数のパスのうちの他のパスへ切り替えるパス切り替えを実行させる制御を行なう処理と
をコンピュータに実行させることを特徴とする、制御プログラム。
【0101】
(付記14)
前記異常箇所が前記中継装置と当該ストレージ装置との間である場合には、
前記ストレージ装置における前記中継装置が接続される通信ポートを通信不可状態にするポート停止処理を実行して前記通信ポートを通信不可状態にすることで前記パス切り替えを実行させる
処理を前記コンピュータに実行させることを特徴とする、付記13記載の制御プログラム。
【0102】
(付記15)
前記異常箇所が前記中継装置と当該ストレージ装置との間以外である場合には、前記ポート停止処理の実行を抑止する
処理を前記コンピュータに実行させることを特徴とする、付記14記載の制御プログラム。
【0103】
(付記16)
前記異常箇所が中継装置と当該ストレージ装置との間以外であり、且つ、前記上位装置がパス切替制御機能を有している場合には、
前記上位装置にパス切替指示を送信することで前記パス切り替えを実行させる
処理を前記コンピュータに実行させることを特徴とする、付記15記載の制御プログラム。
【0104】
(付記17)
通信異常通知信号の発行元の上位装置についてのIO数に対する通信異常数の比率に基づいて前記パスにおける異常の発生を検知する
処理を前記コンピュータに実行させることを特徴とする、付記13〜16のいずれか1項に記載の制御プログラム。
【0105】
(付記18)
前記ストレージ装置の通信ポートを用いる全上位装置についてのIO数に対する通信異常数の比率に基づいて異常箇所を特定する
処理を前記コンピュータに実行させることを特徴とする、付記13〜17のいずれか1項に記載の制御プログラム。
【0106】
(付記19)
複数の上位装置と中継装置を介した複数のパスで接続されるストレージ装置において、
前記複数のパスのいずれかのパスにおける異常の発生を検知する処理と、
前記パスにおける異常の発生を検知すると、通信異常数とIO数とに基づいて異常箇所を特定する処理と、
特定された前記異常箇所に応じて前記複数の上位装置もしくは中継装置のいずれかに、データ通信経路を前記異常の発生が検知されたパスから前記複数のパスのうちの他のパスへ切り替えるパス切り替えを実行させる制御を行なう処理と
をコンピュータに実行させることを特徴とする、制御プログラムを記録したコンピュータ読取可能な記録媒体。