(57)【要約】    【課題】  キャッシュメモリとディスク装置を有するストレージにおいて、障害発生時に、優先度の高い重要なデータの消失を回避し、ストレージに対する入出力処理全体として低下し、優先度の高い業務に対して性能影響が生じるのを極力回避する。    【解決手段】  ホストに提供するデバイスの単位である論理デバイスを複数のディスク装置から構成される複数の物理デバイスに論理デバイスに設定された優先度を考慮して分散して配置することにより、障害発生時に優先度の基づいて速やかにダーティデータをディスク装置に反映する。また、障害発生時に重要な業務に関するジョブを優先的に処理することにより、ホスト処理性能の低下を軽減する。【選択図】  図１
2005149436.tif 000002
【特許請求の範囲】
【請求項１】
ホストとのインターフェースであるポートと、キャッシュメモリと、前記ポート、前記キャッシュメモリ及び共有メモリと接続線により接続される制御装置と、該制御装置に接続されるディスク装置とを備えたストレージ装置であって、
前記ホストに提供する論理デバイスに対する第一の優先度情報を受け付ける管理端末を接続し、
前記制御装置は、前記管理端末から受け付けた第一の優先度情報に従って、優先度の高い論理デバイスは優先度の低い論理デバイスよりも多くの物理デバイスを割り当てておき、障害発生時には前記キャッシュメモリ内に格納されている論理デバイスのデータをこの論理デバイスに対応付けられている複数の物理デバイスに格納するように制御することを特徴とするストレージ装置。
【請求項２】
前記第一の優先度情報に従って割り当てられた論理デバイスと複数の物理デバイスとの対応関係を示す管理テーブルが前記共有メモリに格納されていることを特徴とする請求項１記載のストレージ装置。
【請求項３】
さらに、前記管理端末は、業務の優先度を示す第二の優先度情報を受け付けるように構成し、
前記制御装置は、障害発生時には前記管理端末から受け付けた第二の優先度情報に従って、ストレージ内のプライオリティーキューの優先度が高いジョブをデキューし、該ジョブを実行するように制御することを特徴とする請求項１または２記載のストレージ装置。
【請求項４】
前記管理端末で受け付けた第二の優先度情報からなる管理テーブルを前記共有メモリに格納されていることを特徴とする請求項３記載のストレージ装置。
【請求項５】
ホストとのインターフェースであるポートと、キャッシュメモリと、前記ポート、前記キャッシュメモリ及び共有メモリと接続線により接続される制御装置と、該制御装置に接続されるディスク装置とを備えたストレージ装置であって、
業務の優先度を示す第二の優先度情報を受け付ける管理端末を接続し、
前記制御装置は、障害発生時には前記管理端末で受け付けた第二の優先度情報に従って、ストレージ内のプライオリティーキューの優先度が高いジョブをデキューし、該ジョブを実行するように制御することを特徴とするストレージ装置。
【請求項６】
前記第二の優先度情報からなる管理テーブルを前記共有メモリに格納して構成することを特徴とする請求項５記載のストレージ装置。
【請求項７】
前記第二の優先度情報が前記ホスト優先度情報であることを特徴とする請求項５または６記載のストレージ装置。
【請求項８】
前記制御装置は、障害発生時に対象論理デバイスのデータを消失した際、該消失したデータに対応する論理デバイスを識別するための情報を前記管理テーブルに登録することを特徴とする請求項１乃至７の何れかに記載のストレージ装置。
【請求項９】
前記制御装置は、障害発生時に対象論理デバイスのデータを消失した際、該消失したデータに対応する論理デバイス及び論理デバイス内の位置を識別するための情報を表示装置に表示することを特徴とする請求項１乃至６の何れかに記載のストレージ装置。
【請求項１０】
ホストとのインターフェースであるポートと、キャッシュメモリと、前記ポート、前記キャッシュメモリ及び共有メモリと接続線により接続される制御装置と、該制御装置に接続されるディスク装置とを備えたストレージ装置における制御方法であって、
前記ホストに提供する論理デバイスに対する第一の優先度情報を受け付ける第１のステップと、
該第１のステップにおいて受け付けた第一の優先度情報に従って、優先度の高い論理デバイスは優先度の低い論理デバイスよりも多くの物理デバイスを割り当てておき、障害発生時には前記キャッシュメモリ内に格納されている論理デバイスのデータをこの論理デバイスに対応付けられている複数の物理デバイスに格納する第２のステップとを有することを特徴とするストレージ装置における制御方法。
【請求項１１】
更に、該第１のステップにおいて受け付けた第一の優先度情報に従って割り当てられた論理デバイスと複数の物理デバイスとの対応関係を示す管理テーブルを前記共有メモリに格納しておく第３のステップを有することを特徴とする請求項１０記載のストレージ装置における制御方法。
【請求項１２】
さらに、業務の優先度を示す第二の優先度情報を受け付ける第４のステップと、
障害発生時には前記第４のステップから受け付けた第二の優先度情報に従って、ストレージ内のプライオリティーキューの優先度が高いジョブをデキューし、該ジョブを実行するように制御する第５のステップとを有することを特徴とする請求項１０または１１記載のストレージ装置における制御方法。
【請求項１３】
さらに、前記第４のステップで受け付けた第二の優先度情報からなる管理テーブルを前記共有メモリに格納しておく第６のステップを有することを特徴とする請求項１２記載のストレージ装置における制御方法。
【請求項１４】
ホストとのインターフェースであるポートと、キャッシュメモリと、前記ポート、前記キャッシュメモリ及び共有メモリと接続線により接続される制御装置と、該制御装置に接続されるディスク装置とを備えたストレージ装置における制御プログラムであって、
前記ホストに提供する論理デバイスに対する第一の優先度情報を受け付ける第１のステップと、
該第１のステップにおいて受け付けた第一の優先度情報に従って、優先度の高い論理デバイスは優先度の低い論理デバイスよりも多くの物理デバイスを割り当てておき、障害発生時には前記キャッシュメモリ内に格納されている論理デバイスのデータをこの論理デバイスに対応付けられている複数の物理デバイスに格納する第２のステップとを有することを特徴とするストレージ装置における制御プログラム。
【請求項１５】
更に、該第１のステップにおいて受け付けた第一の優先度情報に従って割り当てられた論理デバイスと複数の物理デバイスとの対応関係を示す管理テーブルを前記共有メモリに格納しておく第３のステップを有することを特徴とする請求項１４記載のストレージ装置における制御プログラム。
【請求項１６】
さらに、業務の優先度を示す第二の優先度情報を受け付ける第４のステップと、
障害発生時には前記第４のステップから受け付けた第二の優先度情報に従って、ストレージ内のプライオリティーキューの優先度が高いジョブをデキューし、該ジョブを実行するように制御する第５のステップとを有することを特徴とする請求項１４または１５記載のストレージ装置における制御プログラム。
【請求項１７】
さらに、前記第４のステップで受け付けた第二の優先度情報からなる管理テーブルを前記共有メモリに格納しておく第６のステップを有することを特徴とする請求項１６記載のストレージ装置における制御プログラム。
【請求項１８】
ホストとのインターフェースであるポートと、キャッシュメモリと、前記ポート、前記キャッシュメモリ及び共有メモリと接続線により接続される制御装置と、該制御装置に接続されるディスク装置とを備えたストレージ装置におけるジョブスケジューリング処理方法であって、
障害が発生している状態であるかを判定する第７のステップと、
該第７のステップで障害が発生していると判定された場合には、ジョブ管理テーブルに登録されているジョブが接続されている論理デバイスプライオリティーキュー、ホストプライオリティーキュー、業務プライオリティーキューの何れかのプライオリティーキューの優先度の高いジョブをデキューし、該デキューしたジョブを実行する第８のステップとを有することを特徴とするストレージ装置におけるジョブスケジューリング処理方法。
【請求項１９】
前記第８のステップにおいて、前記プライオリティキューの選択には、論理デバイスの優先度、ホスト優先度及び業務優先度の比率を用いることを特徴とする請求項１８記載のストレージ装置におけるジョブスケジューリング処理方法。
【請求項２０】
さらに、論理デバイス管理テーブルに登録された、キャッシュメモリ上のダーティデータがディスク装置に完全に退避しているか否かの障害発生時データ退避情報をチェックし、その結果完全に退避していないことを示す論理デバイスに関してアクセスパターン管理テーブルに登録されているダーティデータ量の現在値を参照して値がゼロであれば前記障害発生時データ退避情報を更新する第９のステップを有することを特徴とする請求項１８または１９記載のストレージ装置におけるジョブスケジューリング処理方法。
【請求項２１】
ホストとのインターフェースであるポートと、キャッシュメモリと、前記ポート、前記キャッシュメモリ及び共有メモリと接続線により接続される制御装置と、該制御装置に接続されるディスク装置とを備えたストレージ装置におけるジョブスケジューリング処理プログラムであって、
障害が発生している状態であるかを判定する第７のステップと、
該第７のステップで障害が発生していると判定された場合には、ジョブ管理テーブルに登録されているジョブが接続されている論理デバイスプライオリティーキュー、ホストプライオリティーキュー、業務プライオリティーキューの何れかのプライオリティーキューの優先度の高いジョブをデキューし、該デキューしたジョブを実行する第８のステップとを有することを特徴とするストレージ装置におけるジョブスケジューリング処理プログラム。
【請求項２２】
前記第８のステップにおいて、前記プライオリティキューの選択には、論理デバイスの優先度、ホスト優先度及び業務優先度の比率を用いることを特徴とする請求項２１記載のストレージ装置におけるジョブスケジューリング処理プログラム。
【請求項２３】
ホストとのインターフェースであるポートと、キャッシュメモリと、前記ポート、前記キャッシュメモリ及び共有メモリと接続線により接続される制御装置と、該制御装置に接続されるディスク装置とを備えたストレージ装置における障害処理方法であって、
障害処理を終了するか否かを判定する第１０のステップと、
該第１０のステップで処理を終了しない場合、ステレージ装置内の各部位に障害が発生しているかをチェックする第１１のステップと、
該第１１のステップのチェック結果で障害が検出された場合には、キャッシュメモリ上にダーティデータを有する論理デバイスに関する障害発生時データ退避情報を設定する第１２のステップと、
その後、各論理デバイスに関するキャッシュメモリ上のダーティデータを物理デバイスに反映させるために各論理デバイスのダーティデータに関するライトジョブのエンキュー処理を行う第１３のステップと、
その後、対象ライトジョブの完了を待ち、この過程で予備電源不足若しくはキャッシュメモリの二重障害が検出されたときに、対象論理デバイスのデバイス状態を障害オフラインに設定する第１４のステップとを有することを特徴とするストレージ装置における障害処理方法。
【請求項２４】
ホストとのインターフェースであるポートと、キャッシュメモリと、前記ポート、前記キャッシュメモリ及び共有メモリと接続線により接続される制御装置と、該制御装置に接続されるディスク装置とを備えたストレージ装置における障害処理プログラムであって、
障害処理を終了するか否かを判定する第１０のステップと、
該第１０のステップで処理を終了しない場合、ステレージ装置内の各部位に障害が発生しているかをチェックする第１１のステップと、
該第１１のステップのチェック結果で障害が検出された場合には、キャッシュメモリ上にダーティデータを有する論理デバイスに関する障害発生時データ退避情報を設定する第１２のステップと、
その後、各論理デバイスに関するキャッシュメモリ上のダーティデータを物理デバイスに反映させるために各論理デバイスのダーティデータに関するライトジョブのエンキュー処理を行う第１３のステップと、
その後、対象ライトジョブの完了を待ち、この過程で予備電源不足若しくはキャッシュメモリの二重障害が検出されたときに、対象論理デバイスのデバイス状態を障害オフラインに設定する第１４のステップとを有することを特徴とするストレージ装置における障害処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、接続線によりディスク装置と接続され、更に相互結合網によりキャッシュメモリおよび共有メモリと結合され、ホストとのインターフェースであるポートを介して前記ホストとの間で取り交わす入出力要求を処理する制御装置を有するストレージ装置（計算機システム）、ストレージ装置における制御方法、ジョブスケジューリング処理方法及び障害処理方法並びにそれらのプログラムに関し、特に、障害発生時のデータ優先度制御技術に関する。
【背景技術】
【０００２】
従来技術１としては、特開平１１−１６７５２１号公報に記載された技術が知られている。この従来技術１には、コモンバス方式を採用することにより、システム構成（規模）に応じてホストアダプタ、記憶装置アダプタ等の各論理モジュールやキャッシュメモリ及びディスク装置を接続することでスケーラブルなシステムを実現することができるようにすると共に、各論理モジュール、ディスク装置及びコモンバスの多重化により、縮退運転と各論理モジュール及び記憶媒体の活線挿抜対応とを可能とし、無停止で保守することができる記憶システムが記載されている。
【０００３】
上記従来技術１のように、ホストと大容量のディスク装置との間に介在し、両者の間のデータ転送を制御するディスク制御装置の多くは、転送されるデータの一時記憶機構としてのキャッシュメモリを備えている。しかし、このキャッシュメモリは揮発性のメモリのために、電力供給が停止すると格納されているデータが消失する。また、ディスク制御装置におけるキャッシュメモリのハードウェア故障により、データが消失する可能性もある。このようなデータ消失を回避するために、二重化されたキャッシュメモリを有し、書き込みデータを二重化されたキャッシュメモリに格納するディスク制御装置が知られている。しかしながら、キャッシュメモリに二重障害が発生した場合には、データは消失することになる。
【０００４】
さらに、上記従来技術１は、また、冗長化された電源を有し、いずれかの電源が故障しても、継続運転可能となっている。また、停電時にはディスク制御装置が有する予備電源によりキャッシュメモリ、共有メモリ上のデータの消失を回避することができる。電源故障および停電時にはキャッシュメモリ上のデータ保障のため、キャッシュメモリ上のダーティデータをディスク装置に反映する。
【０００５】
さらに、以後のホストからのライト要求に関しては、データ保障のために、ディスク装置にライトデータが書き込まれた後にホストに対してライト完了報告を行うライト処理である同期ライトを用いる。しかし、該同期ライトにはライトアフタと比べてホストへの応答性能が低いという課題がある。
【０００６】
また、従来技術２としては、特開２００２−３３４０４９号公報に記載された技術が知られている。この従来技術２には、非同期リモートコピーを行う複数ホスト配下の記憶サブシステム内でのサイドファイル量の流入量制限をホストに対して設定した優先度に基づいて行い、重要度の低いデータがキャッシュメモリを圧迫するのを防ぐことが記載されている。
【０００７】
また、従来技術３としては、特開２００３−６０１６号公報に記載された技術が知られている。この従来技術３には、非同期リモートコピーにおいて、論理ボリュームグループにコピーの優先度を付け、優先度の高い論理ボリュームグループのコピーを優先することが記載されている。
【０００８】
【特許文献１】特開平１１−１６７５２１号公報
【０００９】
【特許文献２】特開２００２−３３４０４９号公報
【特許文献３】特開２００３−６０１６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上記従来技術１においては、障害発生時に、キャッシュメモリ上のダーティデータが消失する恐れがある。また、電源障害に備えて予備電源を有し、キャッシュメモリ上のダーティデータの保全を行っている。また、キャッシュメモリの障害に備えて、キャッシュメモリおよびキャッシュメモリを管理するためのデータを保持する共有メモリを二重化している。
【００１１】
しかしながら、上記従来技術１においては、停電が継続し予備電源が使用できなくなった場合、キャッシュメモリもしくは共有メモリに二重障害が発生した場合にはディスクに反映されていないデータはデータの重要度とは無関係に消失する課題を有していた。また、障害発生時にはデータ保障の観点から同期ライトを用いるために、ストレージの入出力処理全体としての性能低下が発生するという課題を有していた。
【００１２】
また、上記従来技術２および３は、障害発生時（電源障害やキャッシュメモリの障害）に関しては考慮されていないものである。
【００１３】
本発明の目的は、上記課題を解決すべく、障害発生時にキャッシュメモリ上のデータを速やかにディスク装置に退避し、優先度の高い重要なデータの消失を回避することができるストレージ装置、ストレージ装置における制御方法、ジョブスケジューリング処理方法及び障害処理方法並びにそれらのプログラムを提供することにある。
【課題を解決するための手段】
【００１４】
ストレージ装置は、ホストとのインターフェースであるポートと、キャッシュメモリと、前記ポート、前記キャッシュメモリ及び共有メモリと接続線により接続される制御装置と、該制御装置に接続されるディスク装置とを備える。ストレージ装置はホストに提供する論理デバイスに対する第一の優先度情報を管理端末から受け付け、第一の優先度情報に従って、優先度の高い論理デバイスは優先度の低い論理デバイスよりも多くの物理デバイスを割り当てておき、障害発生時には前記キャッシュメモリ内に格納されている論理デバイスのデータをこの論理デバイスに対応付けられている複数の物理デバイスに格納するように制御する。
【発明の効果】
【００１５】
本発明によれば、ストレージ装置に障害が発生した際に、ストレージ内のキャッシュメモリ上のダーティデータを速やかにディスク装置に反映することができ、優先度の高い重要なデータの消失を回避することができる。
【００１６】
また、本発明によれば、ストレージ装置に障害が発生した際に、優先度の高い重要な業務に関する性能低下を極力回避することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明に係る実施の形態を図面を用いて説明する。
【００１８】
本発明の実施の形態は、キャッシュメモリ１１２上にあって、ディスク装置１１４に対して未反映なデータであるダーティデータを、ストレージ１１０に障害が発生した際に、速やかにディスク装置１１４に反映するために、論理デバイスの配置先の物理デバイスをあらかじめ最適にしておくものである。また、ストレージ１１０に障害が発生した際には、ストレージ１１０は、あらかじめストレージ管理者からの入力によって運用管理される管理端末１４０により論理デバイスに設定された優先度順にダーティデータをディスク装置１１４に反映する。さらに、ストレージ１１０に障害が発生した際には、ストレージ１１０は、あらかじめストレージ管理者からの入力によって運用管理される管理端末１４０により設定された優先度に基づきストレージ内のジョブをスケジューリングする。
【００１９】
次に、図１から図２６を参照して、本発明の実施の形態を説明する。
【００２０】
図１は本発明に係る計算機システム（ストレージ装置）１の一実施の形態を説明するものである。計算機システム１は、ホスト１００、ストレージ１１０及び管理端末１４０を備えて構成される。ホスト１００はストレージ１１０に対して入出力要求を行う。ストレージ１１０はホスト１００からの入出力要求に対して、ストレージ１１０が保持するキャッシュメモリ１１２を介して、ディスク装置１１４に読み書きを行う。管理端末１４０はストレージ管理者からの入力を受付け、ストレージ１１０の運用管理を行う。
【００２１】
次に、ストレージ１１０の構成について説明する。ストレージ１１０は、チャネルアダプタ１２０、ディスクアダプタ１３０、相互結合網（接続線から構成される。）１１１、キャッシュメモリ１１２、共有メモリ１１３、ディスク装置１１４、接続線１１５、電源１１６、予備電源(バッテリ)１１７及び電力線１１８を備えて構成される。そして、ディスクアダプタ１３０とディスク装置１１４との間は、１つのディスクアダプタあるいは１つの相互結合網において障害が発生した時にもディスク装置１１４が使用できるように１つのディスク装置に２つのディスクアダプタ１３０が異なる相互結合網１１１で接続されている。
【００２２】
チャネルアダプタ１２０は、ホスト１００とキャッシュメモリ１１２との間のデータ転送を制御する。ディスクアダプタ１３０は、キャッシュメモリ１１２とディスク装置１１４との間のデータ転送を制御する。キャッシュメモリ１１２はホスト１００から受信したデータ、あるいは、ディスク装置１１４から読み取ったデータを一時的に蓄えるメモリである。通常、ホスト１００からのライト要求時には、ホスト１００への応答性能の向上を目的として、キャッシュメモリ１１２にデータが書き込まれた時点で、ホスト１００にライトの完了報告を行うライトアフタ方式が用いられる。共有メモリ１１３は、全てのチャネルアダプタ１２０とディスクアダプタ１３０とが共有するメモリである。
【００２３】
ディスク装置１１４を用いたストレージ、特にＲＡＩＤ（Redundant Array of Independent Disks）などのディスクアレイを制御するストレージでは、実際に搭載した物理デバイスであるディスク装置１１４上に、ホスト１００へ提供する論理デバイスの規定のデータ形式に従いデータを格納している。
【００２４】
チャネルアダプタ１２０、ディスクアダプタ１３０、キャッシュメモリ１１２、共有メモリ１１３、電源１１６及び予備電源１１７は、障害対応のため二重化されている。チャネルアダプタ１２０は、ホスト１００からポート１２１を介して入出力要求を受け、ホスト１００とのデータの転送を制御する。ディスクアダプタ１３０は、ディスク装置１１４とのデータの転送を制御する。チャネルアダプタ１２０、ディスクアダプタ１３０は共に、データの転送をキャッシュメモリ１１２を介して行う。電源１１６および予備電源１１７は、電力線１１８を介して、チャネルアダプタ１２０、ディスクアダプタ１３０、キャッシュメモリ１１２、共有メモリ１１３及びディスク装置１１４に電力を供給する。キャッシュメモリ１１２は、ホスト１００からの書込みデータ、ディスク装置１１４からの読み込みデータを一時的に蓄えるメモリである。通常、ホスト１００からのライト要求時には、ホスト１００への応答性能の向上を目的として、キャッシュメモリ１１２にデータが書き込まれた時点で、ホスト１００にライトの完了報告を行うライトアフタ方式が用いられる。さらに、キャッシュメモリ１１２は、一定量に分割して管理されており、分割したキャッシュメモリをセグメントと呼ぶ。各セグメントの状態は、後述するセグメント管理テーブル６で管理される。共有メモリ１１３は、全てのチャネルアダプタ１２０とディスクアダプタ１３０とが共有するメモリである。そして、共有メモリ１１３には、キャッシュメモリ１１２上のデータを制御するための情報、チャネルアダプタ１２０上の制御プロセッサで動作するジョブを制御するための情報、ディスクアダプタ１３０上の制御プロセッサで動作するジョブを制御するための情報を含む。即ち、共有メモリ１１３には、図２に示すように、論理デバイス管理テーブル２、ＬＵパス管理テーブル３、物理デバイス管理テーブル４、スロット管理テーブル５、セグメント管理テーブル６、チャネルジョブ管理テーブル７、ディスクジョブ管理テーブル８、ホスト管理テーブル９、アクセスパターン管理テーブル１０、業務管理テーブル１１及びスケジューリング管理テーブル１２等の情報が記憶されることになる。
【００２５】
管理端末１４０は、ＰＣなどのストレージ管理プログラム動作手段１４２〜１４５と、ストレージ管理者との入出力手段１４１を有し、論理デバイスに関する属性設定など、Ｉ／Ｆ１４６、１１９を介しての、ストレージ１１０の保守運用に関するストレージ管理者からのインターフェースとなる。
【００２６】
以上説明したように、ストレージ１１０は、ホスト１００とのインターフェースであるポート１２１を有し、上記ホストとの間で取り交わす入出力要求を処理するチャネルアダプタ１２０及びディスクアダプタ１３０から構成される制御装置を有し、該制御装置１２０、１３０は接続線１１５によりディスク装置１１４と接続され、さらに相互結合網１１１によりキャッシュメモリ１１２及び共有メモリ１１３と結合され、ストレージ管理者より各種パラメータ（図１４及び図１５並びに図１６、図１７及び図１８に示す論理デバイス定義処理及びＬＵパス定義処理並びに論理デバイス優先度定義処理、ホスト優先度定義処理及び業務優先度定義処理についての各種パラメータ）を受け付ける管理端末１４０とＩ／Ｆ１１９により接続し、該管理端末１４０で受け付けられた各種パラメータを管理テーブル２〜１１として格納する共有メモリ１１３で構成される。
【００２７】
次に、論理デバイス管理テーブル２の一実施例について図３を用いて説明する。論理デバイス管理テーブル２は、論理デバイス番号２０１、サイズ２０２、デバイス状態２０３、物理デバイス番号２０４、接続ホスト番号２０５、ポート番号／ターゲットＩＤ／ＬＵＮ２０６、論理デバイス優先度２０７、拡張論理デバイス情報２０８及び障害発生時データ退避情報２０９を含む。
【００２８】
サイズ２０２には、当該論理デバイスの容量が格納される。例えば、図３では、論理デバイス番号１、２、…に関して、サイズに１ＧＢ、２ＧＢ、…を指定している。
デバイス状態２０３には、当該論理デバイスの状態を示す情報が設定される。状態としては、「オンライン」「オフライン」「未実装」「障害オフライン」が存在する。「オフライン」は、当該論理デバイスは定義され、正常に稼動しているが、ＬＵパス未定義などでホスト１００からのアクセスはできない状態にあることを示す。「未実装」は、当該論理デバイスが定義されておらずホスト１００からのアクセスはできない状態にあることを示す。「障害オフライン」は、当該論理デバイスに障害が発生してホスト１００からのアクセスができないことを示す。「オンライン」である論理デバイスに関して障害が検出された時点で、当該論理デバイスに関して「障害オフライン」が設定される。例えば、図３では、論理デバイス番号１、２、…に関して、デバイス状態に「オンライン」、「オンライン」、…を指定している。
【００２９】
物理デバイス番号２０４には、当該論理デバイスが対応する物理デバイス番号が格納される。例えば、図３では、論理デバイス番号１、２、…に関して、物理デバイス番号に１、２、…を指定している。
接続ホスト番号２０５は、当該論理デバイスにアクセスが許可されているホスト１００を識別するホスト番号である。例えば、図３では、論理デバイス番号１、２、…に関して、接続ホスト番号に１、２、…を指定している。
エントリ２０６のポート番号には、当該論理デバイスが複数のポート１２１のどのポート１２１に接続されているかを表す情報が設定される。各ポート１２１には、ストレージ１１０内で一意な番号が割り振られており、当該論理デバイスがＬＵＮ定義されているポート１２１の番号が記録される。また、同エントリのターゲットＩＤとＬＵＮは、論理デバイスを識別するための識別子である。ここでは、これらの識別子として、ＳＣＳＩ上でホスト１００からデバイスをアクセスする場合に用いられるＳＣＳＩ−ＩＤ、ＬＵＮが用いられる。例えば、図３では、論理デバイス番号１、２、…に関して、ポートＩＤに１、２、…、ターゲットＩＤ／ＬＵＮに０／０、０／０、…を指定している。
論理デバイス優先度２０７は、ストレージ１１０での障害発生時におけるデータの優先度を示す情報であり、例えば、最高優先度の値１から最低優先度の値５までの数値を用い、図３では、論理デバイス番号１、２、…に関して、論理デバイス優先度に１、５、…を指定している。
拡張論理デバイス情報２０８は、複数の論理デバイスを連結し、ひとつの論理デバイス（拡張論理デバイスと呼ぶ）としてホスト１００に提供するための情報であり、拡張論理デバイスを使用する場合には、拡張論理デバイスを構成する論理デバイス番号のリストを指定し、拡張論理デバイスを使用しない場合には未定義を指定する。例えば、図３では、論理デバイス番号５は論理デバイス番号５、６、７から構成され、各論理デバイスのサイズの合計である１２ＧＢの論理デバイスとしてホスト１００に提供される。
障害発生時データ退避情報２０９は、障害発生時において、各論理デバイスに関するキャッシュメモリ１１２上のダーティデータがディスク装置１１４に完全に退避されたかを管理するための情報である。状態としては、「未定義」「未完了」「完了」が存在する。「未定義」は、障害が発生していないことを示す。「未完了」は障害が発生しているが、キャッシュメモリ１１２上のダーティデータの退避が完了していないことを示す。「完了」は障害が発生しているが、キャッシュメモリ１１２上のダーティデータの退避が完了していることを示す。障害発生時データ退避情報２０９には、通常時は「未定義」が設定されているが、障害が検出された時点で、キャッシュメモリ１１２上にダーティデータを有する全ての論理デバイスに関して「未完了」が設定される。
【００３０】
次に、ＬＵパス管理テーブル３の一実施例について図４を用いて説明する。ＬＵパス管理テーブル３は、ポート番号３０１、ターゲットＩＤ／ＬＵＮ３０２、接続ホスト番号３０３、対応論理デバイス番号３０４を含む。ストレージ１１０内の各ポート１２１につき、有効なＬＵＮ分の情報を保持する。ターゲットＩＤ／ＬＵＮ３０２は、ポート１２１に定義されたＬＵＮのアドレスを格納する。接続ホスト番号３０３は、当該ポート１２１の当該ＬＵＮに対してアクセスを許可されているホスト１００を示す情報である。一つの論理デバイスに対して複数ポート１２１のＬＵＮが定義されている場合、それら全ＬＵＮの接続ホスト番号の和集合が論理デバイス管理情報２の接続ホスト番号２０５に保持される。対応論理デバイス番号３０４には、当該ＬＵＮを割り当てた論理デバイスの番号を格納する。例えば、図４では、ポート番号１、２、…に対して、ターゲットＩＤに０、ＬＵＮに０、接続ホスト番号に１、対応論理デバイス番号に１を指定している。
【００３１】
次に、物理デバイス管理テーブル４の一実施例について図５を用いて説明する。物理デバイス管理テーブル４は、物理デバイス番号４０１、サイズ４０２、対応論理デバイス番号リスト４０３、デバイス状態４０４、ＲＡＩＤ構成４０５、ディスク番号リスト４０６、ストライプサイズ４０７、ディスク内サイズ４０８、ディスク内開始オフセット４０９を含む。サイズ４０２には、物理デバイス番号４０１により特定される物理デバイスの容量が格納されている。対応論理デバイス番号リスト４０３には、当該物理デバイスが対応するストレージ１１０内の論理デバイス番号のリストが格納される。論理デバイスへ未割り当ての場合、当該エントリには無効値が設定される。デバイス状態４０４には、当該物理デバイスの状態を示す情報が設定される。状態としては、「オンライン」、「オフライン」、「未実装」、「障害オフライン」が存在する。「オンライン」は、当該物理デバイスが正常に稼動し、論理デバイスに割り当てられている状態であることを示す。「オフライン」は、当該物理デバイスは定義され、正常に稼動しているが、論理デバイスに未割り当てであることを示す。「未実装」は、当該物理デバイスがディスク装置１１４上に定義されていない状態にあることを示す。「障害オフライン」は、当該物理デバイスに障害が発生して論理デバイスに割り当てられないことを示す。なお、本実施形態では、簡単のため、物理デバイスは製品の工場出荷時にあらかじめディスク装置１１４上に作成されているものとする。このため、利用可能な物理デバイスについてはデバイス状態４０４の初期値は「オフライン」状態、その他は「未実装」状態となる。ＲＡＩＤ構成４０５には、当該物理デバイスが割り当てられたディスク装置１１４のＲＡＩＤレベル、データディスクとパリティディスク数などＲＡＩＤ構成に関連する情報が保持される。同じように、ストライプサイズ４０７には、ＲＡＩＤにおけるデータ分割単位(ストライプ)長が保持される。ディスク番号リスト４０６には、当該物理デバイスが割り当てられたＲＡＩＤを構成する複数のディスク装置１１４の番号が保持される。この番号はストレージ１１０内でディスク装置１１４を識別するために付与した一意な値である。ディスク内サイズ４０８とディスク内開始オフセット４０９には、当該物理デバイスデータが各ディスク装置１１４内のどの領域に割り当てられているかを示す情報である。本実施例では簡単のため、全物理デバイスについてＲＡＩＤを構成する各ディスク装置１１４内のオフセットとサイズを統一している。
【００３２】
次に、スロット管理テーブル５の一実施例について図６を用いて説明する。ホスト１００は、ストレージ１１０内の論理デバイスのデータを指定するために論理アドレスを使用する。論理アドレスは、例えば、論理デバイス番号と論理デバイス内の位置情報とからなる。ストレージ１１０内では、連続した論理アドレス空間を一定量に分割して管理しており、分割した論理アドレスをスロットと呼ぶ。論理アドレス空間の分割のサイズはスロットサイズとよぶ。例えば、スロット番号は、論理アドレス空間をスロットサイズで割った商に１を加算したものとする。スロット管理テーブル５はスロット番号５０１、セグメント番号リスト５０２、スロット属性５０３、論理デバイス番号５０４、ホスト番号５０５、ロック情報５０６を含む。セグメント番号リスト５０２には、当該スロットが含むセグメント（分割したキャッシュメモリ）のセグメント番号がリスト形式で保持される。例えば、図６では、ひとつのスロットが４つのセグメントから構成される例を示している。当該スロットの対応する位置のセグメントが存在しない場合、無効値として０を指定する。スロット属性５０３には、当該スロットの属性が保持される。属性としては「クリーン」「ダーティ」「フリー」が存在する。「クリーン」は当該スロットが保持するキャッシュメモリ１１２上のデータがディスク装置１１４上のデータと一致することを意味する。「ダーティ」は当該スロットが保持するキャッシュメモリ１１２上のデータがディスク装置１１４に未反映であることを意味する。「フリー」は当該スロットが使用されていないことを意味する。論理デバイス番号５０４には、当該スロットに対応する論理デバイス番号が保持される。ホスト番号５０５には、当該スロットに対応する入出力要求を行ったホスト１００のホスト番号が保持される。ロック情報５０６には当該スロットのチャネルアダプタ１２０およディスクアダプタ１３０間での排他のためのロック情報が保持される。状態としては「オン」「オフ」が存在し、「オン」は当該スロットがロックされていることを意味し、「オフ」は当該スロットがロックされていないことを意味する。
【００３３】
次に、セグメント管理テーブル６の一実施例について図７を用いて説明する。セグメント管理テーブル６は、セグメント番号６０１、ブロック情報６０２を含む。ブロック情報６０２は、ホスト１００からのアクセスの単位（以下、ブロックよぶ）で、セグメントの当該位置に保持しているデータが有効か無効を示す。図７に示すセグメント管理テーブルの例では、セグメントサイズが２０４８バイト、ブロックサイズが５１２バイトの場合であり、セグメント管理テーブル６は４つのブロック情報をもち、セグメント番号１のブロック位置１とブロック位置３が有効、すなわち、セグメントの先頭から５１２バイト分と１０２４バイトから５１２バイト分に有効なデータがあることを示す。
【００３４】
次に、チャネルジョブ管理テーブル７の一実施例について図８を用いて説明する。チャネルジョブとは、チャネルアダプタ１２０上で動作するジョブのことを指す。チャネルジョブ管理テーブル７は、ジョブ番号７０１、処理７０２、論理デバイス番号７０３、転送開始位置７０４、転送長７０５、ホスト番号７０６を含む。処理７０２には当該ジョブの処理内容が含まれる。処理内容には「リード」「ライト」が存在する。論理デバイス番号７０３は当該ジョブの処理対象となる論理デバイス番号を保持する。転送開始位置７０４は当該ジョブの処理対象となる論理デバイス上のアドレスを保持する。転送長７０５は当該ジョブの処理対象となるアクセス長を保持する。ホスト番号７０６は当該ジョブの処理に対応するホスト１００のホスト番号が保持される。
【００３５】
次に、ディスクジョブ管理テーブル８の一実施例について図９を用いて説明する。ディスクジョブとは、ディスクアダプタ１３０上で動作するジョブのことを指す。ディスクジョブ管理テーブル８は、ジョブ番号８０１、処理８０２、論理デバイス番号８０３、転送開始位置８０４、転送長８０５、ホスト番号８０６、チャネルアダプタ番号８０７を含む。内容に関しては図８で述べたものと同様なものは、説明を省略する。チャネルアダプタ番号８０７には当該ジョブの要求元に対応するチャネルアダプタのチャネルアダプタ番号が保持される。
【００３６】
次に、ホスト管理テーブル９の一実施例について図１０を用いて説明する。ホスト管理テーブル９は、ホスト番号９０１、ホスト名／ＷＷＮ９０２、ホスト優先度９０３を含む。ホスト名／ＷＷＮ９０２は、ホストを一意に識別するための情報である。ホスト優先度９０３は、ホスト１００での入出力処理の重要度を反映するものであり、チャネルアダプタおよびディスクアダプタ上のジョブをスケジューリングする際の優先度として用いられる。優先度が高いジョブとは、例えば、無停止運転のオンライントランザクション処理なの高速な応答が要求される処理を行うジョブであり、また、優先度の低いジョブとは、例えば、夜間バッチ処理のような高速な応答が要求されない処理を行うジョブのことである。
【００３７】
次に、アクセスパターン管理テーブル１０の一実施例について図１１を用いて説明する。アクセスパターン管理テーブル１０は、論理デバイス番号１００１、リード回数１００２、ライト回数１００３、リードヒット回数１００４、ライトヒット回数１００５、シーケンシャルリード回数１００６、シーケンシャルライト回数１００７を含む。リード回数１００２は当該論理デバイスに対するリード回数を示す。ライト回数１００３は当該論理デバイスに対するライト回数を示す。リードヒット回数１００４は当該論理デバイスに対するリードヒット回数を示す。ライトヒット回数１００５は当該論理デバイスに対するライトヒット回数を示す。シーケンシャルリード回数１００６は当該論理デバイスに対するシーケンシャルリード回数を示す。シーケンシャルライト回数１００７は当該論理デバイスに対するシーケンシャルライト回数を示す。ダーティ量管理情報１００８は、各論理デバイスに関してキャッシュメモリ１１２上のダーティデータの量に関する情報を保持するものであり、例えば、ダーティデータ量の過去２４時間の平均値、過去１時間の平均値、現在値を保持する。
【００３８】
次に、業務管理テーブル１１の一実施例について図１２を用いて説明する。本実施の形態において、業務とは、ホストと論理デバイスの組により定義される。一般的に言う業務は前記定義と規模が異なる場合があるが、本実施の形態では一例として前記定義のようにした。業務管理テーブル１１は、業務番号１１０１、論理デバイス番号１１０２、ホスト番号１１０３、業務優先度１１０４を含む。論理デバイス番号１１０２、ホスト番号１１０３は業務に対応する論理デバイスとホストの組を示す。業務優先度１１０４は、ストレージ１１０での障害発生時におけるデータの優先度を示す情報であり、例えば、最高優先度の値１から最低優先度の値５までの数値を用いる。例えば、図１２では、業務番号１に関して、論理デバイス番号に０、ホスト番号に０、業務優先度に１を指定している。本優先度に基づきチャネルアダプタおよびディスクアダプタ上のジョブのスケジューリングが行われる。ジョブの優先度の高さの意味の例はホスト管理テーブル９で説明したものと同様である。
【００３９】
次に、スケジューリング管理テーブル１２の一実施例について図１３を用いて説明する。スケジューリング管理テーブル１２は障害発生時ジョブスケジューリング時のスケジューリングパラメータを管理するものであり、論理デバイス優先度１２０１、ホスト優先度１２０２、業務優先度１２０３の３つの優先度に対して、スケジューリングの比率を指定する。本比率は後述するチャネルアダプタにおけるジョブスケジューリング処理（図２０に示す処理）、チャネルアダプタにおけるジョブスケジューリング処理(図２３に示す処理)に用いられる。例えば、図１３では、論理デバイス優先度、ホスト優先度、業務優先度にそれぞれ、０．５、０．３、０．２の比率を設定しており、ジョブスケジューリング処理において、前記論理デバイス優先度は１０回に５回の割合で使用される。
【００４０】
次に、ストレージ管理者が管理端末ＳＴ（１４０）を用いて論理デバイス定義処理１３及びＬＵパス定義処理１４並びに論理デバイス優先度定義処理１５、ホスト優先度定義処理１６及び業務優先度定義処理１７を行うことについて図１４及び図１５並びに図１６、図１７及び図１８を用いて説明する。まず、ストレージ管理者が管理端末ＳＴ（１４０）を用いて論理デバイス定義処理１３及びＬＵパス定義処理１４を行うことによりホスト１００はストレージＳ（１１０）内の論理デバイスにアクセスすることができるようになる。その後、ストレージ管理者が管理端末ＳＴ（１４０）を用いて論理デバイス優先度定義処理１５、ホスト優先度定義処理１６及び業務優先度定義処理１７を行うことにより、ストレージＳ（１１０）は設定された各優先度（論理デバイス優先度、ホスト優先度及び業務優先度）に基づき適切に障害発生時の動作をすることが可能となる。以下、図中で、ＳＴは管理端末１４０、Ｓはストレージ１１０を表す。
【００４１】
まず、管理端末１４０を用いた論理デバイス定義処理の一実施例について図１４を用いて説明する。論理デバイス定義処理１３は、ストレージ管理者による管理端末１４０からの指示を受け付けて、ストレージ１１０が保持するディスク装置１１４に対して論理デバイスを定義する処理である。まず、管理端末１４０のＣＰＵ１４５は、ストレージ管理者より入力装置１４１やデイスプレイ１４２等を用いて入力された論理デバイスの定義（論理デバイス番号及び物理デバイス番号等）を受け付けてメモリ１４３等に記憶させる（ステップ１３０１）。その後、管理端末１４０のＣＰＵ１４５が、ストレージ管理者より、論理デバイスの定義として配置先の物理デバイス番号の指定の入力があったかを判定し（ステップ１３０２）、特別な理由があって配置先の物理デバイス番号の指定があった場合には、管理端末１４０のＣＰＵ１４５はそのままＩ／Ｆ１４６、１１９を介してストレージ１１０に対して論理デバイスの定義を指示する（ステップ１３０５）。管理端末１４０より指示を受け付けたストレージ１１０は、図３に示す論理デバイス管理テーブル２に論理デバイス番号、サイズ、デバイス状態、物理デバイス番号、開始アドレス、論理デバイス優先度を設定する。論理デバイス優先度２０７にはデフォルト値、例えば３を設定する。その後、管理端末１４０に完了報告を送信する（ステップ１３０６）。デバイス状態としては初期値である「オフライン」が設定される。最後に、管理端末１４０は、ストレージ１１０より完了報告を受け付ける（ステップ１３０７）。
【００４２】
配置先の物理デバイス番号の指定がなかった場合には、管理端末１４０のＣＰＵ１４５は、共有メモリ１１３に記憶された図３に示す論理デバイス管理テーブル２及び図５に示す物理デバイス管理テーブル４の複製を管理端末１４０のメモリ１４３に格納し、該格納された情報を参照することにより（ステップ１３０３）、配置先の物理デバイスを決定し、ストレージ１１０に転送されて共有メモリ１１３内の論理デバイス管理テーブル２及び物理デバイス管理テーブル４に設定されることになる。具体的には、優先度が高い論理デバイスのキャッシュメモリ１１２上のデータを早急にディスク装置１１４に退避できるように、配置先の物理デバイスを決定し、ストレージ１１０に転送されて共有メモリ１１３内の論理デバイス管理テーブル２及び物理デバイス管理テーブル４に設定されることになる。決定方法としては、例えば、同一優先度の論理デバイスを異なる複数の物理デバイス（１又は複数のディスク装置１１４から構成される）に配置する。これにより、データ退避時に物理デバイスへのアクセス競合が起きず、高速なデータ退避が期待できる。また、別の決定方法としては、前述の拡張論理デバイスを用いることにより、一つの論理デバイスを複数の論理デバイスから構成する。このように各論理デバイスを配置する物理デバイスを分散させることにより、データ退避時に物理デバイスへのアクセス競合が起きず、高速なデータ退避が期待できる。その後、ストレージ管理者に対して管理端末１４０のディスプレイ１４２を介して論理デバイスの配置先として最適な（推奨する）物理デバイスを提示する（ステップ１３０４）。その後の処理は、ステップ１３０５以降と同様である。
【００４３】
即ち、論理デバイス定義処理１３は、管理端末１４０はホストに提供する論理デバイスに対する論理デバイスの優先度（第一の優先度）を受け付け、該論理デバイスの優先度に基づき１または複数のディスク装置から構成される複数の物理デバイスに、複数の論理デバイスを分散して配置するように（第一の優先度の高い論理デバイスは第一の優先度の低い論理デバイスよりも多くの物理デバイスを割り当てるように）、ストレージ１１０に転送して共有メモリ１１３内の論理デバイス管理テーブル２及び物理デバイス管理テーブル４に設定する処理である。従って、論理デバイス定義処理１３を予め行うことによって、ストレージ１１０の制御装置１３０は、障害発生時にディスク装置に未反映なキャッシュメモリ１１２上のホスト１００から書き込まれたデータであるダーティデータのうちの重要なデータを速やかにディスク装置に反映することが可能となる。
【００４４】
次に、管理端末１４０を用いたＬＵパス定義処理の一実施例について図１５を用いて説明する。ＬＵパス定義処理１４は、ストレージ管理者による管理端末１４０からの指示を受け付けて、ストレージ１１０が提供する論理デバイスをホスト１００からアクセス可能な状態に設定する処理である。まず、管理端末１４０のＣＰＵ１４５は、入力装置１４１等を用いてＬＵパス定義指示を受け付け、該受け付けた同指示をストレージ１１０に転送する（ステップ１４０１）。同指示には、ＬＵを定義するポート番号、ＬＵＮ，接続ホスト番号、対象となる論理デバイス番号が含まれる。ストレージ１１０は同指示に従い、図４に示すＬＵパス管理テーブル３の各エントリに値を設定後、管理端末１４０に完了報告を送信する（ステップ１４０２）。最後に、管理端末１４０は、ストレージ１１０より完了報告を受け付ける（ステップ１４０３）。
【００４５】
次に、管理端末１４０を用いた論理デバイス優先度定義処理の一実施例について図１６用いて説明する。論理デバイス優先度定義処理１５は、障害発生時にキャッシュメモリ１１２上のダーティデータをディスク装置１１４に反映する順序を定義するための処理である。まず、管理端末１４０のＣＰＵ１４５は、ストレージ管理者から入力装置１４１を用いて論理デバイスの優先度を受け付ける。入力パラメータには、論理デバイス番号と論理デバイス優先度を含む。管理端末１４０は、その後、入力パラメータをストレージ１１０に送信する(ステップ１５０１)。管理端末１４０より入力パラメータを受け取ったストレージ１１０は、入力パラメータに基づき、図３に示す論理デバイス管理テーブル２の論理デバイス番号と論理デバイス優先度を設定し、管理端末１４０に登録が完了したことを通知する(ステップ１５０２)。ストレージ１１０から登録完了報告を受けた管理端末１４０はストレージ管理者に完了報告を行う(ステップ１５０３)。従って、ストレージ１１０の制御装置１３０は、障害発生時に、上記論理デバイス優先度定義処理１５によって設定された論理デバイスの優先度に基づいた順序で、キャッシュメモリ１１２上のダーティデータをディスク装置１１４に反映する処理を行うことが可能となる。
【００４６】
次に、管理端末１４０を用いたホスト優先度定義処理の一実施例について図１７を用いて説明する。ホスト優先度定義処理１６は、ホスト１００からの入出力要求の処理優先度を定義する処理である。まず、管理端末１４０のＣＰＵ１４５は、ストレージ管理者から入力装置１４１により、ホスト１００の優先度を受け付ける。入力パラメータには、ホスト番号と優先度を含む。管理端末１４０は、その後、入力パラメータをストレージ１１０に送信する(ステップ１６０１)。管理端末１４０より入力パラメータを受け取ったストレージ１１０は、入力パラメータに基づき、図１０に示すホスト管理テーブル９のホスト優先度９０３を設定し、管理端末１４０に登録が完了したことを通知する(ステップ１６０２)。ストレージ１１０から登録完了報告を受けた管理端末１４０はストレージ管理者に完了報告を行う(ステップ１６０３)。
【００４７】
次に、管理端末１４０を用いた業務優先度定義処理の一実施例について図１８を用いて説明する。まず、管理端末１４０のＣＰＵ１４５は、ストレージ管理者から入力装置１４１により、障害発生時に重要業務への性能低下を回避するための、業務の優先度（第二の優先度）を受け付ける。入力パラメータには、業務番号、論理デバイス番号とホスト番号の組、業務優先度を含む。管理端末１４０は、その後、入力パラメータをストレージ１１０に送信する(ステップ１７０１)。管理端末１４０より入力パラメータを受け取ったストレージ１１０は、入力パラメータに基づき、図１２に示す業務管理テーブル１１の論理デバイス番号１１０２、ホスト番号１１０３、業務優先度１１０４を設定し、管理端末１４０に登録が完了したことを通知する(ステップ１７０２)。ストレージ１１０から登録完了報告を受けた管理端末１４０はストレージ管理者に完了報告を行う(ステップ１７０３)。このように、ストレージ１１０は、管理端末１４０によって業務の優先度(第二の優先度)が設定されるので、障害発生時に設定された業務の優先度を用いてストレージ内のジョブをスケジューリングする処理を行うことが可能となり、その結果重要業務への性能低下を回避することが可能となる。なお、業務優先度は、ホスト優先度であってもよい。
【００４８】
次に、チャネルアダプタ１２０におけるチャネルアダプタポート処理の一実施例について図１９を用いて説明する。チャネルアダプタポート処理１８では、チャネルアダプタ１２０は、ポート１２１を介してホスト１００からのコマンドを受け付け、図８に示すチャネルジョブ管理テーブル７にジョブを登録する。本処理においては、ジョブを図示しないＦＩＦＯキュー、論理デバイスプライオリティーキュー、ホストプライオリティキュー、業務プライオリティーキューにエンキューする（ステップ１８０１）。プライオリティーキューは平衡木やＢ木などの公知のデータ構造により実現される。論理デバイスプライオリティーキュー、ホストプライオリティキュー、業務プライオリティーキューにエンキューする際の優先度の値としては、それぞれ、図３に示す論理デバイス管理テーブル２における、ホスト１００からのリード・ライトコマンドに対応する論理デバイスの論理デバイス優先度２０７、図１０に示すホスト管理テーブル９におけるホスト優先度９０３、図１２に示す業務管理テーブル１１における業務優先度１１０４を用いる。
【００４９】
次に、本発明に係る制御装置であるチャネルアダプタ１２０におけるジョブスケジューリング処理の一実施例について図２０を用いて説明する。チャネルアダプタ１２０におけるジョブスケジューリング処理１９では、チャネルアダプタ１２０は、まず、障害が発生している状態であるかを判定し（ステップ１９０１）、障害が発生していなければ、図８に示すチャネルジョブ管理テーブル７のジョブが接続されている図示しないＦＩＦＯキューの端に位置するジョブをデキューし、当該ジョブを実行する（ステップ１９０２）。この際、当該ジョブは、図示しない論理デバイスプライオリティーキュー、ホストプライオリティキュー、業務プライオリティーキューからもデキューされる。チャネルアダプタ１２０は、障害が発生している場合には、図８に示すチャネルジョブ管理テーブル７のジョブが接続されている図示しない論理デバイスプライオリティーキュー、ホストプライオリティキュー、業務プライオリティーキューのいずれかのプライオリティーキューの最も優先度が高いジョブをデキューし、当該ジョブを実行する（ステップ１９０３）。プライオリティーキューの選択は、図１３に示すスケジューリング管理テーブル１２における論理デバイス優先度１２０１、ホスト優先度１２０２、業務優先度１２０３の比率（管理端末１４０が設定する。）を用いる。また、この際、当該ジョブは、図示しないＦＩＦＯキューからもデキューされる。ただし、プライオリティーキューのみによりジョブのスケジューリングを行うと、優先度の高いジョブのみが実行され、優先度の低いジョブが長期間実行されない可能性があるので、一定の割合で、プライオリティーキューのかわりにＦＩＦＯキューを用いる。以上説明したチャネルアダプタ１２０におけるジョブスケジューリング処理１９の中で実行されるジョブは、図２１に示すリードジョブ処理２０もしくは図２２に示すライトジョブ処理２１を実行することになる。
【００５０】
次に、チャネルアダプタ１２０におけるリードジョブ処理の一実施例について図２１を用いて説明する。チャネルアダプタ１２０におけるリードジョブ処理２０では、キャッシュメモリ１１２上にホスト１００からのリード要求対象データがあれば当該データをホスト１００に転送し、なければディスクアダプタ１３０にリード要求対象データのステージングを要求する。まず、チャネルアダプタ１２０は、リード要求対象論理デバイスのデバイス状態をチェックし（ステップ２００２）、「オンライン」以外であれば（エラー）、ホスト１００にエラーを送信し、処理を終了する。チャネルアダプタ１２０は、エラーでなければ、ジョブスケジューリング処理１９からの要求を解析し、リード要求対象データに対応するスロット番号、セグメント位置、ブロック位置を算出する（ステップ２００２）。その後、スロット番号に対応するスロットの参照および更新を行うが、他のチャネルアダプタ１２０およびディスクアダプタ１３０が当該スロットに同時にアクセスしないように当該スロットのロックを取得する（ステップ２００３）。具体的には、図６に示すスロット管理テーブル５のロック情報に「オン」を設定する。以後、ロックの取得の処理はここで説明した処理と同様であるので、説明を省略する。次に、リード要求対象データのヒットミス判定を行う（ステップ２００４）。具体的には、スロット管理テーブル５より、対象となるスロット番号に対応するセグメント番号リストを参照し、対象となるセグメント位置のセグメント番号を得る。次に、セグメント管理テーブル６より、対象となるセグメント番号に対応するブロック情報を参照し、対象となるブロック位置のデータが有効か無効かを判定する。
【００５１】
チャネルアダプタ１２０は、ステップ２００４において当該データが有効な場合（ヒット）には、まず、アクセス情報を更新する（ステップ２００５）。具体的には、リード要求対象データに対応する、アクセスパターン管理テーブル１０における論理デバイスのリード回数とリードヒット回数を１だけインクリメントする。また、図示しない共有メモリ１１３上のシーケンシャル学習情報（連続する領域に対するリードアクセス情報）より、当該リード要求がシーケンシャルリードであるかを判定する。シーケンシャルリードとは、ホスト１００から論理デバイスに対して論理デバイスのアドレス空間における連続した一連のリードアクセスである。シーケンシャルリードを検出した際、ホスト１００からの要求とは非同期に当該論理デバイスに対する最後のリードアクセスのデータ以降のデータを先読みする。これにより、同期リード処理において、リード要求がヒットする確率が高くなり、高速なリードアクセスが期待できる。シーケンシャルリードであれば、リード要求対象データに対応する、アクセスパターン管理テーブル１０における論理デバイスのシーケンシャルリード回数を１だけインクリメントする。その後、当該スロットをクリーンキューのＭＲＵの端に遷移させる（ステップ２００６）。次に、シーケンシャル学習情報に基づき、当該リード要求がシーケンシャルリードであれば、先読みのために、ディスクジョブ管理テーブル８に１または複数のジョブを登録する（ステップ２００７）。具体的には、図１９において説明した手順と同様にＦＩＦＯキュー、論理デバイスプライオリティーキュー、ホストプライオリティキュー、業務プライオリティーキューにジョブをエンキューする。最後に、ホスト１００に対象となるデータを転送し（ステップ２００８）、スロットのロックを開放する（ステップ２００９）。具体的には、スロット管理テーブル５のロック情報に「オフ」を設定する。以後、ロックの解放の処理はここで説明した処理と同様であるので、説明を省略する。以上がヒットの場合の処理である。
【００５２】
チャネルアダプタ１２０は、ステップ２００４において当該データが無効な場合（ミス）には、まず、アクセス情報を更新する（ステップ２０１０）。具体的には、リード要求対象データに対応する、アクセスパターン管理テーブル１０における論理デバイスのリード回数を１だけインクリメントする。アクセスパターン管理テーブル１０のシーケンシャルリード回数の更新はヒットの場合と同様に行う。次に、必要数のキャッシュセグメントの新規確保を行う（ステップ２０１１）。キャッシュセグメントの新規確保は、図示しない使用されていないキャッシュセグメントを管理するキュー（フリーキュー）に接続されているキャッシュセグメント、もしくは、ＬＲＵアルゴリズムのような公知な技術によりキュー管理されている、スロット属性が「クリーン」であるスロットが保持するキャッシュセグメントを用いて行う。次に、ディスクジョブ管理テーブル８にジョブを登録する（ステップ２０１２）。具体的には、図１９において説明した手順と同様にＦＩＦＯキューとプライオリティーキューにジョブをエンキューする。次に、シーケンシャル学習情報に基づき、先読み処理を行うが、具体的な手順はヒット時で説明した手順と同様である（ステップ２０１３）。その後、スロットのロックを解放し（ステップ２０１４）、ディスクアダプタ１３０でステージングが完了するまで待つ（ステップ２０１５）。ディスクアダプタ１３０よりステージングの完了報告を受信（ステップ２０１６）したのち、再びステップ２００３の処理から再開する。この後のヒットミス判定処理においては、すでにステージングが完了しているため、以後の処理はヒットの場合と同様になる。
【００５３】
次に、チャネルアダプタ１２０におけるライトジョブ処理の一実施例について図２２を用いて説明する。チャネルアダプタ１２０におけるライトジョブ処理２１では、ホスト１００からライト要求対象データを受信しキャッシュメモリ１１２に格納した後、必要であればディスクアダプタ１３０に対象データのデステージングを要求し、ホスト１００に完了報告を行う。まず、チャネルアダプタ１２０は、ライト要求対象論理デバイスのデバイス状態をチェックし（ステップ２１０１）、「オンライン」以外であれば（エラー）、ホスト１００にエラーを送信し、処理を終了する。チャネルアダプタ１２０は、エラーでなければ、ジョブスケジューリング処理１９からの要求を解析し、ライト要求対象データに対応するスロット番号、セグメント位置、ブロック位置を算出する（ステップ２１０２）。その後、図２１で説明した理由と同様の理由により、スロット番号に対応するスロットのロックを取得する（ステップ２１０３）。次に、図２１で説明した手順と同様にライト要求対象データのヒットミス判定を行う（ステップ２１０４）。
【００５４】
チャネルアダプタ１２０は、ヒットの場合には、まず、アクセス情報を更新する（ステップ２１０５）。具体的には、ライト要求対象データに対応する、アクセスパターン管理テーブル１０における論理デバイスのライト回数とライトヒット回数を１だけインクリメントする。また、図示しない共有メモリ１１３上のシーケンシャル学習情報より、当該ライト要求がシーケンシャルライトであるかを判定する。シーケンシャルライトとは、ホスト１００から論理デバイスに対して論理デバイスのアドレス空間における連続した一連のライトアクセスである。シーケンシャルライトであれば、ライト要求対象データに対応する、アクセスパターン管理テーブル１０における論理デバイスのシーケンシャルライト回数を１だけインクリメントする。次に、ホスト１００に転送準備完了のメッセージを送信する（ステップ２１０６）。その後、ホスト１００からライト要求対象データを受信し、キャッシュメモリ１１２に格納して、ダーティキューのＭＲＵの端にキュー遷移を行う（ステップ２１０７）。
【００５５】
チャネルアダプタ１２０は、ミスの場合には、まず、アクセス情報を更新する（ステップ２１０８）。具体的には、ライト要求対象データに対応する、アクセスパターン管理テーブル１０における論理デバイスのライト回数を１だけインクリメントする。アクセスパターン管理テーブル１０のシーケンシャルライト回数の更新はヒットの場合と同様に行う。次に、必要数のキャッシュセグメントを新規確保（ステップ２１０９）した後に、ホスト１００に転送準備完了のメッセージを送信する（ステップ２１１０）。その後、ホスト１００からライト要求対象データを受信し、キャッシュメモリ１１２に格納して、ダーティキューのＭＲＵの端にエンキューする（ステップ２１１１）。
【００５６】
以後の処理は同期ライトが必要かどうかで処理が異なる（ステップ２１１２）。同期ライトが必要な場合とは、後述する共有メモリ１１３上の障害発生中フラグが「ＯＮ」のときであり、不要な場合とは、同フラグが「ＯＦＦ」のときである。同期ライトが不要な場合は、ホスト１００にライト完了報告を送信する（ステップ２１１７）。同期ライトが必要な場合は、ディスクジョブ管理テーブル８にジョブを登録する（ステップ２１１３）。具体的には、図１９において説明した手順と同様にＦＩＦＯキューとプライオリティーキューにジョブをエンキューする。その後、スロットのロックを解放し（ステップ２１１４）、ディスクアダプタでデステージングが完了するまで待つ（ステップ２１１５）。ディスクアダプタ１３０よりデステージングの完了報告を受信（ステップ２１１６）した後、ホスト１００に完了報告を送信する（ステップ２１１７）。同期ライト処理では、データがディスク装置１１４に確実に書き込まれることが保障される。
【００５７】
以上がチャネルアダプタ１２０によるジョブスケジューリング処理１９である。
【００５８】
次に、本発明に係る制御装置であるディスクアダプタ１３０におけるジョブスケジューリング処理の一実施例について図２３を用いて説明する。ディスクアダプタ１３０におけるジョブスケジューリング処理２２は、図２０で説明した手順と異なりチャネルジョブ管理テーブル７ではなくディスクジョブ管理テーブル８を用いる点と以下で述べる障害発生時のダーティデータに関する処理が追加されている点を除いては、図２０の説明と同様の手順で処理を行う。即ち、ディスクアダプタ１３０は、まず、障害が発生している状態であるかを判定し（ステップ２２０１）、障害が発生していなければ、図９に示すディスクジョブ管理テーブル８のジョブが接続されている図示しないＦＩＦＯキューの端に位置するジョブをデキューし、当該ジョブを実行する（ステップ２２０２）。ディスクアダプタ１３０は、障害が発生している場合には、図９に示すディスクジョブ管理テーブル８のジョブが接続されている図示しない論理デバイスプライオリティーキュー、ホストプライオリティキュー、業務プライオリティーキューのいずれかのプライオリティーキューの最も優先度が高いジョブをデキューし、当該ジョブを実行する（ステップ２２０３）。そして、ディスクアダプタ１３０は、ステップ２２０４では、障害発生時に、論理デバイス管理テーブル２の障害発生時データ退避情報２０９をチェックし、キャッシュメモリ１１２上のダーティデータがディスク装置１１４に完全に退避されていないことを示す「未完了」が設定されている論理デバイスに関して、アクセスパターン管理テーブル１０のダーティ量管理情報１００８のダーティデータ量の現在値を参照し、値がゼロであれば、障害発生時データ退避情報２０９に「完了」を設定する。以上説明したディスクアダプタ１３０におけるジョブスケジューリング処理２２の中で実行されるジョブは、図２５に示すリードジョブ処理２４もしくは図２６に示すライトジョブ処理２５を実行することになる。
【００５９】
次に、ディスクアダプタ１３０における非同期ライトジョブ登録処理の一実施例について図２４を用いて説明する。ディスクアダプタ１３０における非同期ライトジョブ登録処理２３では、キャッシュメモリ１１２に格納されたライトデータを物理デバイスに書き込む。まず、ダーティキューのＬＲＵの端より対象となるスロットを選択し、ダーティキューからデキューする（ステップ２３０１）。次に、ディスクジョブ管理テーブル８にジョブを登録する（ステップ２３０２）。具体的には、図１９において説明した手順と同様にＦＩＦＯキューとプライオリティーキューにジョブをエンキューする。
【００６０】
次に、ディスクアダプタ１３０におけるリードジョブ処理の一実施例について図２５を用いて説明する。ディスクアダプタ１３０におけるリードジョブ処理２４では、まず、ジョブスケジューリング処理２２からの要求を解析し、リード要求対象データに対応するスロット番号、セグメント位置、ブロック位置を算出する（ステップ２４０１）。その後、スロット番号に対応するスロットの参照および更新を行うが、他のディスクアダプタ１３０およびチャネルアダプタ１２０が当該スロットに同時にアクセスしないように当該スロットのロックを取得する（ステップ２４０２）。次に、物理デバイスからリード要求対象データを読み出し、キャッシュメモリ１１２に格納し、クリーンキューのＭＲＵの端にエンキュー（ステップ２４０３）した後、スロットのロックを解放し（ステップ２４０    ４）、ディスクジョブ管理テーブル８のチャネルジョブ番号８０７で指定されたチャネルジョブに対応するチャネルアダプタ１２０に対してステージング完了報告を送信する（ステップ２４０５）。
【００６１】
次に、ディスクアダプタ１３０におけるライトジョブ処理の一実施例について図２６を用いて説明する。ディスクアダプタ１３０におけるライトジョブ処理２５では、まず、ジョブスケジューリング処理２２からの要求を解析し、ライト要求対象データに対応するスロット番号、セグメント位置、ブロック位置を算出する（ステップ２５０１）。次に、当該スロットのロックを取得し（ステップ２５０２）、当該スロットが保持するダーティデータを物理デバイスに書き込む（ステップ２５０３）。その後、当該スロットのスロット属性を「クリーン」に更新し、クリーンキューにエンキューする（ステップ２５０４）。最後に、当該スロットのロックを解放し（ステップ２５０５）、当該ライトジョブが同期ライトであればディスクジョブ管理テーブル８のチャネルジョブ番号８０７で指定されたチャネルジョブに対応するチャネルアダプタ１２０に対してデステージング完了報告を送信する（ステップ２５０６）。
【００６２】
以上がディスクアダプタ１３０によるジョブスケジューリング処理２２である。
【００６３】
次に、本発明に係る障害処理の一実施例について図２７を用いて説明する。障害処理２６では、障害発生検出時に、制御装置１２０、１３０が各論理デバイスに関するキャッシュメモリ１１２上のダーティデータを物理デバイスに反映するための処理である。まず、ディスクアダプタ１３０は障害処理を終了するかを判定する（ステップ２６０１）。具体的には、ストレージ１１０の動作を停止する場合などに処理を終了する。処理を終了しない場合、ディスクアダプタ１３０はストレージ１１０内の各部位に障害が発生しているかをチェックする（ステップ２６０２）。次に、ディスクアダプタ１３０は、障害が発生しているかを判定し（ステップ２６０３）、障害発生を検出した場合は、図３で説明したように障害発生時データ退避情報２０９を設定し、図示しない共有メモリ１１３上の障害発生中フラグを「ＯＮ」に設定する（ステップ２６０４）。ここで、障害発生中フラグは通常時、「ＯＦＦ」に設定されている。その後、チャネルアダプタ１２０は、各論理デバイスのダーティデータに関するライトジョブのエンキュー処理を行う(ステップ２６０５)。具体的には、チャネルアダプタ１２０は、各論理デバイスに関してアクセスパターン管理テーブル１０のダーティ量管理情報１００８の現在値を参照し、値がゼロでない論理デバイスについて、当該論理デバイスの論理アドレス空間を走査し、スロット属性が「ダーティ」であるスロットを検索する。そして、当該スロットに対応するライトジョブをディスクジョブ管理テーブル８に登録する。具体的には、図１９において説明した手順と同様にＦＩＦＯキューとプライオリティーキューにジョブをエンキューする。ディスクアダプタ１３０が、ステップ２６０３において、障害発生を検出しなかった場合は、ステップ２６０１に戻る。チャネルアダプタ１２０は、ステップ２６０５の後、対象ライトジョブの完了を待つ。ディスクアダプタ１３０がこの過程で予備電源不足もしくは対象キャッシュデータに関してキャッシュメモリの二重障害を検出（ステップ２６０６）した場合には、対象論理デバイスのデータは消失したことになるので、チャネルアダプタ１２０は対象論理デバイスのデバイス状態を「障害オフライン」に設定する（ステップ２６０７）。ステップ２６０６においてすべてのライトが完了した場合にはステップ２６０１に戻る。
【００６４】
本発明に係る別の実施の形態としては、ストレージ１１０に障害発生後、図２７に示す障害処理２６によるライトデータの反映が終了しなかった場合もしくはキャッシュに二重傷害が発生した場合に、キャッシュメモリ１１２上のダーティデータが消失した際、当該データのスロット位置を管理端末１４０のディスプレイ１４２に表示するものである。本実施形態においては、論理デバイス管理テーブル２を参照し、障害時データ退避情報が「未完了」である論理デバイスに対応するダーティデータのスロット位置をスロット管理テーブル５を参照することにより算出し、該当するスロット番号をすべて論理デバイス番号と共にディスプレイ１４２に表示する。これにより、ストレージ管理者は消失したデータ領域にもをリカバリすることで、リカバリ時間の短縮が可能となる。
【００６５】
以上説明したように本実施の形態によれば、ストレージに障害が発生した際に、ストレージ内のキャッシュメモリ上のダーティデータを速やかにディスク装置に反映することができ、優先度の高い重要なデータの消失を回避することができる。また、ストレージに障害が発生した際に、優先度の高い重要な業務に関する性能低下を極力回避することができる。
【図面の簡単な説明】
【００６６】
【図１】本発明に係るストレージを含む計算機システムの一実施の形態を示す構成図である。
【図２】本発明に係る共有メモリに記憶される各種管理テーブルを示す図である。
【図３】本発明に係る論理デバイス管理テーブルの一実施例を示す構成例示図である。
【図４】本発明に係るＬＵパス管理テーブルの一実施例を示す構成例示図である。
【図５】本発明に係る物理デバイス管理テーブルの一実施例に示す構成例示図である。
【図６】本発明に係るスロット管理テーブルの一実施例を示す構成例示図である。
【図７】本発明に係るセグメント管理テーブルの一実施例を示す構成例示図である。
【図８】本発明に係るチャネルジョブ管理テーブルの一実施例を示す構成例示図である。
【図９】本発明に係るディスクジョブ管理テーブルの一実施例を示す構成例示図である。
【図１０】本発明に係るホスト管理テーブルの一実施例を示す構成例示図である。
【図１１】本発明に係るアクセスパターン管理テーブルの一実施例を示す構成例示図である。
【図１２】本発明に係る業務管理テーブルの一実施例を示す構成例示図である。
【図１３】本発明に係るスケジューリング管理テーブルの一実施例を示す構成例示図である。
【図１４】本発明に係る論理デバイス定義処理の一実施例を示す処理フロー図である。
【図１５】本発明に係るＬＵパス定義処理の一実施例を示す処理フロー図である。
【図１６】本発明に係る論理デバイス優先度定義処理の一実施例を示す処理フロー図である。
【図１７】本発明に係るホスト優先度定義処理の一実施例を示す処理フロー図である。
【図１８】本発明に係る業務優先度定義処理の一実施例を示す処理フロー図である。
【図１９】本発明に係るチャネルアダプタでのチャネルアダプタポート処理の一実施例を示す処理フロー図である。
【図２０】本発明に係るチャネルアダプタでのジョブスケジューリング処理の一実施例を示す処理フロー図である。
【図２１】本発明に係るチャネルアダプタでのリードジョブ処理の一実施例を示す処理フロー図である。
【図２２】本発明に係るチャネルアダプタでのライトジョブ処理の一実施例を示す処理フロー図である。
【図２３】本発明に係るディスクアダプタでのジョブスケジューリング処理の一実施例を示す処理フロー図である。
【図２４】本発明に係る非同期ライトジョブ登録処理の一実施例を示す処理フロー図である。
【図２５】本発明に係るディスクアダプタでのリードジョブ処理の一実施例を示す処理フロー図である。
【図２６】本発明に係るディスクアダプタでのライトジョブ処理の一実施例を示す処理フロー図である。
【図２７】本発明に係る障害処理の一実施例を示す処理フロー図である。
【符号の説明】
【００６７】
１００…ホスト、１１０…ストレージ、１１１…相互結合網、１１２…キャッシュメモリ、１１３…共有メモリ、１１４…ディスク装置、１１５…接続線、１１６…電源、１１７…予備電源、１１８…電力線、１２０…チャネルアダプタ、１２１…ポート、１３０…ディスクアダプタ、１４０…管理端末、１４１…入力装置、１４２…ディスプレイ、１４３…メモリ、１４４…記憶装置、１４５…ＣＰＵ、１４６…Ｉ／Ｆ、
２…論理デバイス管理テーブル、３…ＬＵパス管理テーブル、４…物理デバイス管理テーブル、５…スロット管理テーブル、６…セグメント管理テーブル、７…チャネルジョブ管理テーブル、８…ディスクジョブ管理テーブル、９…ホスト管理テーブル、１０…アクセスパターン管理テーブル、１１…業務管理テーブル、１２…スケジューリング管テーブル、１３…論理デバイス定義処理、１４…ＬＵパス定義処理、１５…論理デバイス優先度定義処理、１８…チャネルアダプタポート処理（チャネルアダプタ）、１９…ジョブスケジューリング処理（チャネルアダプタ）、２０…リードジョブの処理（チャネルアダプタ）、２１…ライトジョブの処理（チャネルアダプタ）、２２…ジョブスケジューリング処理（ディスクアダプタ）、２４…リードジョブの処理（ディスクアダプタ）、２５…ライトジョブの処理（ディスクアダプタ）、１６…ホスト優先度定義処理、１７…業務優先度定義処理。
【図１】
2005149436.tif 000003
【図２】
2005149436.tif 000004
【図３】
2005149436.tif 000005
【図４】
2005149436.tif 000006
【図５】
2005149436.tif 000007
【図６】
2005149436.tif 000008
【図７】
2005149436.tif 000009
【図８】
2005149436.tif 000010
【図９】
2005149436.tif 000011
【図１０】
2005149436.tif 000012
【図１１】
2005149436.tif 000013
【図１２】
2005149436.tif 000014
【図１３】
2005149436.tif 000015
【図１４】
2005149436.tif 000016
【図１５】
2005149436.tif 000017
【図１６】
2005149436.tif 000018
【図１７】
2005149436.tif 000019
【図１８】
2005149436.tif 000020
【図１９】
2005149436.tif 000021
【図２０】
2005149436.tif 000022
【図２１】
2005149436.tif 000023
【図２２】
2005149436.tif 000024
【図２３】
2005149436.tif 000025
【図２４】
2005149436.tif 000026
【図２５】
2005149436.tif 000027
【図２６】
2005149436.tif 000028
【図２７】
2005149436.tif 000029