次に本発明を実施するための実施形態について説明する。図1は、本発明の一実施例に係るストレージシステムの構成を示すブロック図である。上位装置としてのホスト装置10は、例えば、CPU(Central Processing Unit)やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えば、パーソナルコンピュータ、ワークステーション、メインフレーム等として構成される。
ホスト装置10には、例えば、第1のストレージサブシステム20が提供する記憶領域を使用するデータベースソフトウェア等のアプリケーションプログラム11と、通信ネットワークCN1を介して第1のストレージサブシステム20にアクセスするためのアダプタ12とが設けられている。
ホスト装置10は、スイッチ回路SWを備えて構成される通信ネットワークCN1を介して第1のストレージサブシステム20に接続されている。通信ネットワークCN1としては、例えば、LAN、SAN、インターネット、専用回線、公衆回線等を場合に応じて適宜用いることができる。LANを介するデータ通信は、例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルに従って行われる。
ホスト装置10がLANを介して第1のストレージサブシステム20に接続される場合、ホスト装置10は、ファイル名を指定してファイル単位でのデータ入出力を要求する。
一方、ホスト装置10がSANを介して第1のストレージサブシステム20等に接続される場合、ホスト装置10は、ファイバチャネルプロトコルに従って、複数のディスク記憶装置(ディスクドライブ)により提供される記憶領域のデータ管理単位であるブロックを単位としてデータ入出力を要求する。通信ネットワークCN1がLANである場合、アダプタ12は、例えばLAN対応のネットワークカードである。通信ネットワークCN1がSANの場合、アダプタ12は、例えばホストバスアダプタである。
スイッチ回路SWは通信ネットワークに接続されたルータや交換機を備えて構成されている。スイッチ回路SWは、第1のストレージサブシステム20のエクスターナルポート21A又は21Bに、第2のストレージサブシステム40のターゲットポート41を接続する。ポート及びスイッチ回路にはネットワーク上のアドレスが設定されている。符号40Aは第2のストレージサブシステムに分類される他の筐体である。
第1のストレージサブシステム20は、後述のように、第2のストレージサブシステム40の有する記憶資源を自己の論理ボリューム(Logical Unit)としてホスト装置10に提供するものである。
第1のストレージサブシステム20は、コントローラ部と記憶装置部とに大別することができ、コントローラ部は、例えば、複数のチャネルアダプタ(CHA)21と、複数のディスクアダプタ(DKA)22と、サービスプロセッサ(SVP)23と、キャッシュメモリ24と、共有メモリ25と、接続部26とを備えている。
チャネルアダプタ(CHA)21は、ホスト装置10との間のデータ通信を行う。他のチャネルアダプタ21は、第1のストレージサブシステムのエクスターナルポート21A、第2のストレージサブシステムのターゲットポート41を介して、第2のストレージサブシステム40の論理ボリュームとデータ通信を行うものである。
各チャネルアダプタ21は、それぞれマイクロプロセッサやメモリ等を備えたマイクロコンピュータシステムとして構成されており、ホスト装置10から受信した各種コマンドを解釈して実行する。
各チャネルアダプタ21には、それぞれを識別するためのネットワークアドレス(例えば、IPアドレスやWWN)が割り当てられているので、各チャネルアダプタ21は、それぞれが個別にNAS(Network Attached Storage)として振る舞うことができるようになっている。
複数のホスト装置10が存在する場合、各チャネルアダプタ21はホスト装置毎に設けられ、各ホスト装置10からの要求をそれぞれ個別に受け付けることができるように構成されている。ホスト装置とチャネルアダプタはネットワークを介することなく直接接続されてもよい。
ディスクアダプタ(DKA)22は、記憶装置30の記憶デバイス31,32との間のデータ授受を行うものである。各ディスクアダプタ22は、記憶デバイス31,32に接続するための通信ポート22Aを備えている。
また、ディスクアダプタ22は、マイクロプロセッサやメモリ等を備えたマイクロコンピュータシステムとして構成されている。ディスクアダプタ22は、チャネルアダプタ21がホスト装置10から受信したデータを、ホスト装置10からのリクエストに基づいて、所定の記憶デバイス31,32の所定のアドレスに書込み、また、ホスト装置10からのリクエストに基づいて、所定の記憶デバイス31,32の所定のアドレスからデータを読み出し、ホスト装置10に送信する。
記憶デバイス31,32との間でデータ入出力を行う場合、各ディスクアダプタ22は、論理的なアドレスを物理的なアドレスに変換する。各ディスクアダプタ22は、記憶デバイス31,32がRAIDに従って管理されている場合は、RAID構成に応じたデータアクセスを行う。
サービスプロセッサ(SVP)23は、装置全体の作動を制御するものである。SVP23には、例えば、管理用クライアント(図示せず)が接続される。SVP23は、装置内の障害発生を監視して管理用クライアントに表示させたり、管理用クライアントからの指令に基づいて記憶ディスクの閉塞処理等を指示するようになっている。管理用クライアントは、例えばJAVA(登録商標)アプレット上に管理用プログラムが実装して構成されている。
キャッシュメモリ24は、ホスト装置10から受信したデータや、記憶デバイス31,32から読み出したデータを一時的に記憶するものである。
共有メモリ25には、第1のストレージサブシステムの作動に使用するための制御情報等が格納される。また、共有メモリ25には、ワーク領域が設定されるほか、外部ストレージサブシステムの情報を管理するテーブルが格納されている。
キャッシュメモリ130と共有メモリ140とは、それぞれ別々のメモリとして構成することもできるし、同一のメモリの一部の記憶領域をキャッシュ領域として使用し、他の記憶領域を制御領域として使用することもできる。なお、記憶デバイス31,32のいずれか1つあるいは複数を、キャッシュ用のディスクとして使用してもよい。
接続部26は、各チャネルアダプタ21,各ディスクアダプタ22,SVP23,キャッシュメモリ24,共有メモリ25を相互に接続させる。接続部26は、例えば、高速スイッチング動作によってデータ伝送を行う超高速クロスバスイッチ等のような高速バスとして構成することができる。
記憶装置30は、複数の記憶デバイス31を備えている。記憶デバイス31としては、例えば、ハードディスク、フレキシブルディスク、磁気テープ、半導体メモリ、光ディスク等のようなデバイスを用いることができる。
また、例えば、FC(Fibre Channel)ディスクやSATA(Serial AT Attachment)ディスク等のように、異種類のディスクを記憶装置30内に混在させることもできる。
記憶装置30内に点線で示される記憶デバイス32は、第2のストレージサブシステム40の有する記憶デバイス42を第1のストレージサブシステム20側に取り込んだ状態を示すものである。即ち、第1のストレージサブシステム20から見て外部に存在する記憶デバイス42の記憶領域を、第1のストレージサブシステム20の内部記憶デバイスかのようにホスト装置が認識できるようにし、ホスト装置10が外部記憶デバイス42の記憶資源を利用できるようにしたものである。
このことは、第1のストレージサブシステム20内の中間論理記憶領域である仮想論理ボリュームに第2のストレージサブシステム40の論理ボリュームをマッピングすることにより可能になる。
キャッシュメモリ24の記憶空間を利用して、仮想論理ボリュームが構築される。第1のストレージサブシステム20に形成された仮想論理ボリュームは、第1のストレージサブシステム20内の実論理ボリュームとともにホスト装置10に認識される。
第2のストレージサブシステム40は、通信ポート(ターゲットポート)41と記憶デバイス42とを備えている。このほか、チャネルアダプタやディスクアダプタ等を備えることもできる。
第2のストレージサブシステム40は、スイッチ回路SWを介して第1のストレージサブシステム20に接続されており、第2のストレージサブシステム40の記憶デバイス42は、第1のストレージサブシステム20の内部記憶デバイスとして扱われるようになっている。スイッチ回路SWには複数の外部ストレージサブシステム40Aを接続可能である。
次に、第1のストレージサブシステム20から第2のストレージサブシステム40へのI/Oの発行や転送を制御するシステムについて説明する。図2はこのシステムを説明するためのブロック図である。
第1のストレージサブシステム2の複数のCHAのうちの第1のCHAコントローラ21−1のエクスターナルポート#1とスイッチSWとの間に第1の物理的パスS1が設定され、同様にして、第2、第3、及び第4のCHAコントローラのエクスターナルポートとスイッチSWとの間に第2、第3、及び第4の物理パスS2、S3、そしてS5が形成されている。エクスターナルポートはコマンドの発行をサポートする。
一方、第2のストレージサブシステム40の第1のターゲットポート41Aとスイッチとの間にも第5の物理パスT1が形成されている。第2、第3、及び第4のターゲットポート41B,41C,41DとスイッチSWとの間にも、同様に第6、第7、第8の物理パスT2,T3,T4が形成されている。ターゲットポートはエクスターナルポートから発行されたコマンドを受領するポートである。
第2のストレージサブシステム40は記憶デバイスの物理的な記憶領域が割り当てられる、既述の外部ボリュームとしての論理ボリューム(LDEV)を備えている。論理ボリューム(LDEV)には複数の論理ユニット(LU)がマッピングされ、各論理ユニットは論理ユニットナンバー(LUN)によって区別されている。
第2のストレージサブシステムのメモリには、ターゲットポート41Aに論理ユニットLUN1をマッピングし、ターゲットポート41Bに論理ユニットLUN2をマッピングし、ターゲットポート41Cに論理ユニットLUN3をマッピングし、そして、ターゲットポート41Dに論理ユニットLUN4をマッピングする制御情報が登録されている。
なお、第2のストレージサブシステムのメモリには、論理ボリューム(LDEV)に複数の論理ユニット(LUN1−4)をマッピングする制御情報も登録されている。
さらに、第2のストレージサブシステムのメモリに登録された制御テーブルには、論理ユニット(LUN1)と論理ボリューム(LDEV)との間の論理パスPA1、そして、論理ユニット(LUN2)と論理ボリューム(LDEV)との間の論理パスPA2がそれぞれアクティブパスとして登録されている。
一方、論理ユニットLUN3と論理ボリューム(LDEV)との間の論理パスPA3、そして、論理ユニットLUN4と論理ボリューム(LDEV)との間の論理パスPA4がそれぞれパッシブパスとして登録されている。
ここで、アクティブパスPA1,PA2は、第1のストレージサブシステム20のCHAのエクスターナルポートから第2のストレージサブシステムのターゲットポート、そして、論理ユニットを経由したアクセス(I/O)を論理ボリューム(LDEV)まで通行させるパスであり、一方、パッシブパスPA3,PA4はこのI/O転送に寄与しないパスである。
パッシブパスはアクティブパスの交代パスとなるものであって、アクティブパスに至る経路に障害によって閉塞されるなどの不都合が発生すると、I/Oの制御権がアクティブパスから委譲されて、アクティブパスが回復するまでI/O転送を実行する。
論理ボリューム(LDEV)への論理パスがアクティブか、或いはパッシブかは、管理装置によって第2のストレージサブシステムの共有メモリに設定される。第2のストレージサブシステムのコントローラは共有メモリの制御テーブルに基づいて、論理ユニットLUNと論理ボリューム(LDEV)間の論理パスを制御する。
第2のストレージサブシステム40のコントローラのこの機能は、例えば、ターゲットポートを備えるCHAによって達成される。アクティブパスに障害が発生した場合、コントローラは管理プログラムに基づいてアクティブパスからパッシブパスにI/Oの制御権を移す処理を行う。
図2に示すシステムでは、第1のストレージサブシステムから発行されたI/Oが論理ボリューム(LDEV)に至る論理パスは次のように合計で8パスが設定可能である。
すなわち、物理パスS1−物理パスT1−LUN1−PA1−(LDEV)、物理パスS1−物理パスT2−LUN2−PA2−(LDEV)、物理パスS2−物理パスT1−LUN1−PA1−(LDEV)、物理パスS2−物理パスT2−LUN2−PA2−(LDEV)、物理パスS3−物理パスT3−LUN3−PA3−(LDEV)、物理パスS3−物理パスT4−LUN4−PA4−(LDEV)、物理パスS4−物理パスT3−LUN3−PA3−(LDEV)、そして、物理パスS4−物理パスT4−LUN4−PA4−(LDEV)が8つの論理パスである。
第1のストレージサブシステムの管理装置23は、この8つの論理パスのうち所定の論理パスに、第1のストレージサブシステムから第2のストレージサブシステムの外部ボリュームに至る論理パスを設定する。
この論理パスの定義は共有メモリ25の制御テーブルTmに登録される。図3には制御テーブルTmの一例の詳細が示されている。第1のストレージサブシステム20は、第2のストレージサブシステム40から必要な情報を入手してこのテーブルを作成し、これを共有メモリ25に登録する。
この制御テーブルのVDEV#は第2のストレージシステムの外部デバイスを第1のストレージシステムの内部ボリュームにマッピングするための、第1のストレージシステムの仮想デバイスである。
有効パスビットマップは、第1のストレージサブシステム20から第2のストレージサブシステムの論理ボリューム(LDEV)までの論理パスの設定状況に対応するものである。有効パスビットマップの合計ビット数は、この論理パスとして設定可能なパス数を示している。図2のシステムでは、論理パスとして既述のとおり、合計で8パスの設定が可能であるため、合計ビット数は8である。
そして、後述のとおり、図2のシステムでは、外部ボリューム(LDEV)への論理パスとして合計で4つの論理パスが設定されるために、4つのビットにフラグ“1”がセットされている。
外部パスモードは、第2のストレージサブシステム内の外部ボリューム(LDEV)へのパスの制御方式を示すものである。図2のシステムでは、外部ボリュームへの複数の論理パスがI/O制御権の有無に基づいて制御されるために、ここにAP(アクティブパス/パッシブパス)が登録される。
なお、外部ボリュームへの論理パスの制御方式としては、このほかに既述のシングルパスモードとマルチパスモードがある。
設定パスモードとは、第1のストレージサブシステムが第2のストレージサブシステムの外部ボリューム(LDEV)にI/Oを発行するときの制御方式であり、シングルパスモード、パルスパスモード、或いはAPLB(Active Passive Load Balancing)モードがある。
ここでのシングルパスモードとは、第1のストレージサブシステム20が8パスのうちのいずれかの論理パスにI/Oを発行するモードであり、マルチパスモードとは、第1のストレージサブシステムが全ての論理パスに負荷を分散させながらI/Oを発行するモードであり、APLBとは、複数のアクティブパス(PA1とPA2)に対してI/Oをラインドロビンで発行するモードである。第1のストレージサブシステムは第2のストレージサブシステムの外部ボリュームへの論理パスにアクティブパス/パッシブパスが設定されていることを検出して、制御テーブルにAPLBを設定する。
デバイス識別情報はVDEV#を構成する記憶デバイスを識別する情報である。そして、容量はVDEVの全記憶容量であり、デバイス種別はデバイスの種類(ディスク或いはテープなど)を示すものである。
制御テーブルのうちの外部接続パス情報部は、第1のストレージサブシステムから外部ボリューム(LDEV)への論理パスの定義内容を説明するものであり、そのパス#は論理パスのエントリである。エクスターナルポート#は論理パスに対応するエクスターナルポートのエントリである。WWNはエクスターナルポートを識別するワールドワイドネームである。LUNはエクスターナルポートにマッピングされた論理ユニットである。
外部側A/Pは、論理パスがアクティブパスかパッシブパスに対応するかを区別する、第2のストレージサブシステム側の設定である。設定A/Pは、第1のストレージサブシステム側での設定である。第1のストレージサブシステムが既述のAPLBモードを採用するときには、第1のストレージサブシステムは外部A/Pの設定に合わせてアクティブ又はパッシブを決定する。
状態は論理パスのステータスである。“Normal”は論理パスが正常であり、I/Oの転送が正常であることを示している。“Passive”はI/Oの転送は行われていないが、論理パスが正常な状態であることを示している。
なお、既述したように論理パスに“Active”が設定されていると、この論理パスはI/Oを転送する権利(I/O制御権)を備えていることになり、“Passive”が設定されている論理パスはI/O制御権を備えていないが、アクティブパスに障害が発生した場合には、I/O制御権の移譲を受けることを示している。優先度はシングルパスモードにおける優先度を示している。
図3の制御テーブルには論理パスとして、P1−P4の4つの論理パスが設定されている。論理パスP1は、エクスターナルポート21−1(#1)、物理パスS1、物理パスT1、ターゲットポート41A(WWN=A)、論理ユニット(LUN1)、及び、アクティブパスPA1を順にI/Oが通過して外部ボリューム(LDEV)に至るパスである。
論理パスP2は、エクスターナルポート21−2(#2)、物理パスS2、物理パスT2、ターゲットポート41B(WWN=A’)、論理ユニット(LUN2)、及び、アクティブパスPA2を順にI/Oが通過して外部ボリューム(LDEV)に至るパスである。
論理パスP3は、エクスターナルポート21−3(#3)、物理パスS3、物理パスT3、ターゲットポート41C(WWN=B)、論理ユニット(LUN3)、及び、パッシブパスPA3を順にI/Oが通過して外部ボリューム(LDEV)に至るパスである。
論理パスP4は、エクスターナルポート21−4(#4)、物理パスS4、物理パスT4、ターゲットポート41D(WWN=B’)、論理ユニット(LUN4)、及び、パッシブパスPA4を順にI/Oが通過して外部ボリューム(LDEV)に至るパスである。これら複数の論理パスは、図3に示すように、エクスターナルポート番号、ターゲットポートのWWNと、論理ユニットナンバー(LUN)によって互いに区別される。この項目は管理装置23を介したユーザからの入力によって登録される。
図2の実施形態の動作を図3に即して説明すると、第1のストレージサブシステム40が図3の制御テーブルの論理パスP1とP2の定義を参照して、これら論理パスに同時にI/Oを転送する。
その際、I/Oは、エクスターナルポート21−1から物理パスS1へ、そして、エクスターナルポート21−2から物理パスS2へと、符号100の曲線で示されるように同時に発行される。
スイッチはコマンドを参照して、I/Oを図3に示すルートに沿うように転送する。すなわち、第1のストレージサブシステムのエクスターナルポート21−1、21−2からマルチパスモードで出力されたI/Oは、エクスターナルポート21−1、物理パスS1、物理パスT1、ターゲットポート41A、論理ユニット(LUN1)、そしてアクティブパスPA1を順に追加して外部ボリューム(LDEV)に転送され、一方、I/Oがエクスターナルポート21−2、物理パスS2、物理パスT2、ターゲットポート41B、論理ユニット(LUN2)、そして、アクティブパスPA2を順に通過して外部ボリューム(LDEV)に転送される。
図3において、論理パスP1と論理パスP2はいずれもアクティブパスとして定義されているために、これらパスにI/Oが同時に送られてもI/O制御権の切り替えが発生しない。このように、第1のストレージサブシステムは外部ボリュームへの複数のアクティブ設定された論理パスにマルチパスモードでI/Oを転送することができるために、第2のストレージサブシステムのI/Oの転送に対する応答性を向上することができる。
なお、論理パスPA3とPA4はパッシブパスとして定義されているために、アクティブに設定された論理パスが閉塞される以前では、パッシブパスに対してI/Oは発行されない。
図4は、外部ストレージサブシステム40の記憶デバイスを第1のストレージサブシステム20の仮想ボリュームにマッピングする過程で、図3の制御テーブルを作成するための処理の要部を示すフローチャートである。なお、S400の処理はタイムチャート406によって詳細に説明されている。
S400において、第1のストレージサブシステムは第2のストレージサブシステムから各種情報を取得する。すなわち、第1のストレージサブシステム20は、チャネルアダプタ21のエクスターナルポート(21A)からスイッチ回路SWを介して、第2のストレージサブシステム40にログインする(S100)。
第2のストレージサブシステム40が、第1のストレージサブシステム20のログインに対して応答を返すことにより、ログインが完了する(S102)。
次に、第1のストレージサブシステム20は、例えば、SCSI(Small Computer System Interface)規格で定められている照会コマンド(inquiryコマンド)などを、第2のストレージサブシステムに送信し(S104)、第2のストレージサブシステム40の有する詳細な情報(装置名、製番、(LDEV)#、“Active”/“Passive”情報)を取得する(S106)。
次いで、第1のストレージサブシステムは第2のストレージサブシステムに記憶デバイスの容量を問い合わせ(S108)、第2のストレージサブシステムがこれに応答する(S110)。
ステップS402では、第1のストレージサブシステムのCHA21は、取得した情報に基づいて第2のストレージサブシステムの記憶デバイスの記憶領域を自身のボリュームにマッピングし、その過程で特定の情報を図3の制御テーブルTmに登録し、この制御テーブルを共有メモリ25に登録する。
照会コマンドは、照会先の装置の種類及び構成を明らかにするために用いられるもので、照会先装置の有する階層を透過してその物理的構造を把握することができる。
次に、アクティブに設定された論理パスに障害が発生した場合のフェールオーバについて説明する。フェールオーバとは、アクティブパスの制御権をパッシブパスに移転する処理のことである。
図5はフェールオーバを説明するブロック図である。ここでのフェールオーバの説明に際して、物理パスS1に障害が発生して閉塞された場合を想定する。
第1のストレージサブシステム20のCHAが、物理パスS1の閉塞を障害検知プログラムによって検知すると、制御テーブルTmから閉塞された物理パスが関係する論理パスP1の状態に障害のステータス“Blockade”を登録する。
論理パスP1が閉塞されると、外部ボリューム(LDEV)へI/Oを転送する論理パスはP2だけとなる。この状態ではI/O転送における冗長度が無くなるため、CHAのローカルメモリに格納されたフェールオーバ制御プログラムはI/Oをパッシブに設定された論理パスP3とP4に移動させる。
そこで、CHAのコントローラはフェールオーバ制御プログラムに基づいて、図5の制御テーブルTmに示すように、論理パスP2の状態の項目を“Normal”から“Passive”に更新登録し、論理パスP3とP4の状態の項目を“Passive”から“Normal”に更新する。なお、既述のとおり、論理パスP1には“Blockade"が登録されている。
CHAはI/O転送制御プログラムに基づいて、制御権が委譲された論理パスP3,P4にI/Oをラウンドロビンで送るために、物理パスS3とS4からなるグループ102にI/Oを同時に送信する。
図6は、フェールオーバ後のシステムをフェールオーバ前の状態に戻すフェールバック処理を説明するブロック図である。
CHAの障害検知プログラムが物理パスS1の障害が修復されたことを検出すると、フェールオーバ制御プログラムは、制御テーブルTmを図5に示す状態から、障害が発生する以前の状態(図6のTm)に戻す。
即ち、論理パスP2の状態を“Passive”から“Normal”に更新し、論理パスP3及びP4の状態を“Normal”から“Passive”に更新する。物理パスS1の閉塞は解除されているので、論理パスP1の状態は“Blockade”から“Normal”に変更されている。
したがって、I/O転送制御プログラムは、この状態に更新された制御テーブルを参照して、I/O制御権を論理パスP3,P4から論理パスP1とP2に返還されたことを判定し、これによって、第1のストレージサブシステムから第2のストレージサブシステムへのI/O転送は物理パスP1及びP2を介して再開される。フェールバックを行う理由は、外部ボリューム(LDEV)へのI/O転送はアクティブに設定された論理パスを経由して、外部ボリュームへのI/O転送における転送秩序を維持するためである。
図7は、既述のフェールオーバ及びフェールバックを制御するフローチャートである。このフローチャートは第1のストレージサブシステムCHAがフェールオーバ制御プログラムの関与を受けて実行するものである。
図5及び図6に示すようなストレージサブシステム間のパスの状態が障害や保守によって変更された際、第1のストレージサブシステムのCHAのコントローラがフェールオーバ又はフェールバックを行う必要があるかを判断して、制御テーブルの論理パスの状態を更新する。
コントローラは、障害検知プログラムの制御の下、図5及び図6に示すように、図3のパラメータ(VDEV♯、パス#)で特定される論理パス群のうち、障害の発生や障害からの復帰の影響が及ぶ論理パスのパス状態を更新する(S700)。
次いで、コントローラは、この更新を契機として、制御テーブルTmを参照して、この論理パス群のうち、アクティブパスとして設定された論理パスについて、パス状態が“Normal”又は“Passive”に設定された正常パス(“Blockade”が登録されていないパス)の合計数(“Active”設定正常パス合計数)と、この論理パス群のうち、パッシブパスとして設定された論理パスについて、パス状態が“Normal”又は“Passive”に設定された正常パスの合計数(“Passive”設定正常パス合計数)と、を取得する(S702)。
次いで、コントローラは、アクティブに設定されたパスに障害が発生したか否かを判断するために、“Active”設定正常パス合計数が特定値より小さいか否かを判断する(S704)。この特定値が“1”であると、図5のように物理パスS1に障害が発生したことをコントローラが検出することができる。
次いで、コントローラはS704の判定を肯定すると、“Active”設定正常パス合計数と“Passive”設定正常パス合計数とを比較する(S706)。
前者が後者より小さい場合には、パッシブパスにI/O制御権を移しても既述のAPLBモードでI/O転送を制御できると判断して、S708に移行し、図5の制御テーブルTmに示すように、“Active”設定正常パスの状態を“Normal”から“Passive”に更新し、“Passive”設定正常パスの状態を“Passive” から“Normal”に更新する。
一方、S704を否定判定すると、S700におけるパスの状態の更新が障害などからの復帰と判定して、”Active”設定正常パスの状態を”Passive” から“Normal”に更新し、“Passive”設定正常パスの状態を“Normal”から“Passive”に更新する(S710)。
S706において否定判定がされた場合には、コントローラは、アクティブパスに障害が発生しても、パッシブパスの数が不足してフェールオーバとできないと判定してフェールオーバすることなく処理を終了する。
S700からS708に至る流れがフェールオーバに対応し、S700からS710に至る流れがフェールバックに対応する。なお、既述のようにS700、S706,S708のそれぞれにおいて制御テーブルのパス状態が更新される。
既述の実施形態では、第1のストレージサブシステムは第2のストレージサブシステムへのI/O転送をAPLBモードによって制御していることを説明したが、データの種類によっては他のモードでデータI/Oを制御することが好ましい場合もある。
ホスト計算機10から第1のストレージサブシステムに対するI/Oのパターンの如何によっては、第1のストレージサブシステムが複数の論理パスに記述のAPLBモードでI/Oを転送するよりも、1つの論理パスを利用したシングルパスモードでI/O発行した方が性能を期待できる場合がある。例えば、ホスト計算機からI/O傾向がシーケンシャルアクセスの場合である。
第1のストレージサブシステムの設定パスモードは、ホスト装置からのI/Oパターンによって適宜設定或いは変更される。ホスト装置からのI/Oパターンがシーケンシャルアクセスの場合の推奨パスモードはシングルパスモードであり、ランダムアクセスの場合の推奨パスモードはマルチパスモード又は既述のAPLBモードである。ユーザはこの推奨モードを参考にして、第1のストレージサブシステム20のパスモードを設定し、あるいは変更する。
図8は、ストレージサブシステムの管理部であるSVP23の管理プログラムを介するユーザ設定によって、第1のストレージサブシステムにI/Oの転送モードを設定、あるいはこれを変更するフローチャートを示したものである。
管理プログラムは、ユーザから要求されたモードをチェックする(S800)。要求されたモードがシングルモードである場合は、管理部は、共有メモリ25の設定情報をチェックして、要求モードと設定モードとが異なる場合には、パスモード切り替え用コマンドを第1のストレージサブシステムに送信する(S802)。
この要求を第1のストレージサブシステムが受信すると(S804)、制御テーブル(図3)の設定パスモードに要求されたパスモードであるシングルパスモードを登録する(S806)。この更新を完了すると、第1のストレージサブシステムは管理プログラムにその旨を送信し、この送信を受けた管理プログラムは処理を終了する。
設定パスモードにシングルパスモードが設定されると、第1のストレージサブシステムのI/O転送プログラムは、複数ある論理パスのうちの一つの論理パスにI/Oを送出する。複数の論理パスがアクティブに設定されている場合には、一つの論理パスにI/Oを出力する。
S800において、要求パスモードがマルチパスモードである場合には、管理プログラムは、第2のストレージサブシステムの情報を共有メモリ25に記録されている制御テーブルから取得し(S812)、第2のストレージサブシステムがマルチパスモードをサポートしているかをチェックする(S814)。
マルチパスモードが外部デバイスでサポートされていない場合には、管理プログラムはユーザにパスモードの切り替えが不可能であることを通知する(S816)。一方、マルチパスモードがサポートされている場合には、既述の説明と同様にパスモードが更新記憶される。
なお、マルチパスモードのときの制御テーブルのパス状態には、全ての論理パスを”Normal”とする。
一方、要求パスモードが既述のAPLBモードである場合には、管理プログラムは第2のストレージサブシステムがこのモードをサポートしているか否かをチェックし、これを否定した場合には処理をユーザに通知して処理を終了し(S822)、一方これを肯定する場合は既述の説明と同様にパスモードが更新記憶される。
図8に対して図9は、第1のストレージサブシステムのCHAのI/O転送プログラムがホスト装置からのI/Oパターンを検出して、パスモードの設定あるいは変更を行うフローチャートを説明するものである。
CHAのローカルメモリに格納された管理プログラムは、I/O転送制御プログラムは、ホスト装置からのI/Oパターンをチェックし(S900)、それがランダムアクセスの場合には、制御テーブルの設定パスモードがシングルパスモードか否かをチェックする(S902)。
設定パスモードがシングルではない場合、設定パスモードはマルチパスモード或いはAPLBモードであるので、ランダムアクセスのI/O転送に適したモードであるために、CHAは処理を終了する。
設定パスモードがシングルパスモードである場合、CHA21は共有メモリ25から第2のストレージサブシステムの情報をリードし、第2のストレージサブシステムがマルチパスモードをサポートしているか否かをチェックする(S904)。
CHAが第2のストレージサブシステムがこのモードをサポートしている制御情報を判定すると、CHAは制御テーブルのパスモードをシングルパスモードからマルチパスモードに変更して(S906)、複数の論理パスにI/Oを発行するラウンドロビンによってホスト装置からのランダムアクセスを処理する。
一方、第2のストレージサブシステムがマルチパスモードをサポートしていない場合には、CHAは第2のストレージサブシステムがアクティブパス/パッシブパスをサポートしているか否かをチェックし(S908)、これを肯定した場合は、制御テーブルのパスモードにAPLBを設定し(S910)、これを否定した場合には、ホスト装置からのランダムアクセスを複数の論理パスに転送することができず、一つの論理パスにI/Oを転送するシングルパスモードでホストI/Oを処理する。
ホスト装置からのI/Oパターンがシーケンシャルアクセスの場合には、CHAは制御テーブルに設定されたパスモードがマルチパスモードあるいはAPLBモードであるかを判定し(S912)、これを肯定判定する場合には、パスモードをシングルパスモードに変更する。
CHAがこれを否定判定する場合は、設定パスモードがシーケンシャルアクセスに適したシングルパスモードであるとして処理を終了する。
図8及び図9に示す処理方式よって、第1のストレージサブシステムから第2のストレージサブシステムの外部ボリュームへのI/O転送において、論理パスへのI/Oの発行を最適な方式を実現することができる。さらに、図9に示す処理方式によって、ホスト装置から第1のストレージサブシステムに発行されるI/Oパターンに対して、動的に論理パスへのI/Oの発行方式を最適なパターンにすることができる。
図10は第1のストレージシステム20と第2のストレージサブシステム40間のパスを設定する管理画面であり、これは管理端末23からユーザに提供される。このパスはエクスターナルポートの識番(CL1−A,CL5−A)とターゲットポートのWWNによって定義される。
管理画面には、外部ボリューム、その要領、パスの使用モード、ボリュームの状態が示されている。
図11はさらに詳細情報を示す管理画面であり、図10の情報に加えて、ストレージサブシステム間のパスに対応する、第2のストレージサブシステムの論理ユニットナンバー(LUN)と、パスの状態テーブルの状態とが表示されている。
10…ホスト装置、20…第1のストレージサブシステム、21…チャネルアダプタ、21A…通信ポート、22…ディスクアダプタ、22A…通信ポート、23…管理装置、24…キャッシュメモリ、25…共有メモリ、26…接続部、30…記憶装置、31…記憶デバイス、32…記憶デバイス(仮想化された内部記憶デバイス)、40…第2のストレージサブシステム、41…各通信ポート、42…各記憶デバイス