(57)【特許請求の範囲】
【請求項１】
任意の記憶装置に対してアクセス要求を出すコンピュータと、前記コンピュータからのアクセス要求に応じた通常処理及びそれ以外の複数のバックグランド処理を行う複数の記憶装置とを備えたシステムに適用される処理最適化方法であって、
前記コンピュータにおいて、各記憶装置内の各論理ユニットの用途を情報テーブルに基づいて判断し、その判断結果に基づいて各論理ユニットについての前記通常処理及び複数のバックグランド処理の間の処理優先度を示す優先度テーブルを記憶装置毎に作成してそれらを各記憶装置に対して発行し、
前記各記憶装置において、発行された前記優先度テーブルを取得して格納し、格納した優先度テーブルの内容に従って処理を行うことを特徴とする処理最適化方法。
【請求項２】
前記コンピュータにおいて、前記各記憶装置内の状態を示す情報を取得し、その取得した情報及び前記用途に応じて前記優先度テーブルを作成することを特徴とする請求項１記載の処理最適化方法。
【請求項３】
前記各記憶装置内の状態の変化に応じて前記優先度テーブルの内容を動的に変更することを特徴とする請求項２記載の処理最適化方法。
【請求項４】
コンピュータからのアクセス要求に応じた通常処理及びそれ以外の複数のバックグランド処理を行う複数の記憶装置に対してアクセス要求を行うコンピュータであって、
各記憶装置内の各論理ユニットの用途を情報テーブルに基づいて判断し、その判断結果に基づいて各論理ユニットについての前記通常処理及び複数のバックグランド処理の間の処理優先度を示す優先度テーブルを記憶装置毎に作成し、それらを各記憶装置に対して発行する手段を備えたことを特徴とするコンピュータ。
【請求項５】
前記各記憶装置内の状態を示す情報を取得し、その取得した情報及び前記用途に応じて前記優先度テーブルを作成することを特徴とする請求項４記載のコンピュータ。
【請求項６】
前記各記憶装置内の状態の変化に応じて前記優先度テーブルの内容を動的に変更することを特徴とする請求項５記載のコンピュータ。
【請求項７】
通常処理及びそれ以外の複数のバックグランド処理を行う記憶装置であって、
前記記憶装置内の各論理ユニットの用途を情報テーブルに基づいて判断し、その判断結果に基づいて各論理ユニットについての前記通常処理及び複数のバックグランド処理の間の処理優先度を示す優先度テーブルを備え、この優先度テーブルの内容に従って処理を行うことを特徴とする記憶装置。
【請求項８】
前記記憶装置内の状態を示す情報を収集する手段を備え、当該情報及び前記用途に応じて前記優先度テーブルが作成されることを特徴とする請求項７記載の記憶装置。
【請求項９】
前記記憶装置内の状態の変化に応じて前記優先度テーブルの内容が動的に変更されることを特徴とする請求項８記載の記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、処理最適化方法、コンピュータ、及び記憶装置に係わり、特に、コンピュータからのアクセス要求に応じた通常処理及びそれ以外の複数のバックグランド処理を行う複数の記憶装置とを備えたシステムに適用される処理最適化方法、コンピュータ、及び記憶装置に関する。
【０００２】
【従来の技術】
従来の記憶装置では、ホスト上で動作しているアプリケーションソフトウェアからのアクセス要求に応じた処理（通常処理）とそれ以外の処理（バックグラウンド処理）と共にを行うものが多い。
【０００３】
バックグラウンド処理とは、例えば記憶装置内のＨＤＤ等に障害が発生した場合のディスク修復動作、内部データチェック、記憶装置間でのデータ転送等であり、アプリケーションソフトウェアからのアクセス要求に応じた通常処理以外の処理をいう。
【０００４】
従来では、このような通常処理とバックグラウンド処理とを共に行う場合に、通常動作に影響しない範囲内か、固定的な優先度で、バックグラウンド処理を行っていた。これは１つの記憶装置を複数の用途に使えるよう（汎用的に使えるよう）にするためのものであった。
【０００５】
【発明が解決しようとする課題】
近年、複数のホストコンピュータと記憶装置とで構成されるシステムにおいて、システム内での個々の記憶装置の役割が分化している。これに伴い、複数の記憶装置をシステム内に持ち、役割をシステム内で分業させ、運用系、待機系、一次バックアップ、テープ装置等の２次記憶媒体へのバックアップを行うためのテンポラリバッファ等の様々な用途に使用できるようにすることが望まれている。
【０００６】
しかしながら、各バックグラウンド処理の優先度は通常動作になるべく影響をしないように一律の優先度で制御されているだけであり、複数のバックグラウンド処理を行う必要が生じた場合には、これらのバックグラウンド処理を任意時点での重要度に応じて最適な順番で実行することができないという問題があった。
【０００７】
また、任意の時点でこれらの記憶装置の用途や状態が変わるような場合、通常動作と複数のバックグラウンド処理間の優先度を動的に変更することができないため、個々の記憶装置の動作性能を十分に発揮できず、これによりシステム全体としての処理の最適化を図ることができないという問題があった。
【０００８】
本発明は上記実状に鑑みてなされたものであり、コンピュータからのアクセス要求に応じた通常処理及びそれ以外の複数のバックグランド処理を行う複数の記憶装置とを備えたシステムにおいて、システム全体の処理を最適化することのできる処理最適化方法、コンピュータ、及び記憶装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明に係る処理最適化方法は、任意の記憶装置に対してアクセス要求を出すコンピュータと、前記コンピュータからのアクセス要求に応じた通常処理及びそれ以外の複数のバックグランド処理を行う複数の記憶装置とを備えたシステムに適用される処理最適化方法であって、前記コンピュータにおいて、各記憶装置内の各論理ユニットの用途を情報テーブルに基づいて判断し、その判断結果に基づいて各論理ユニットについての前記通常処理及び複数のバックグランド処理の間の処理優先度を示す優先度テーブルを記憶装置毎に作成してそれらを各記憶装置に対して発行し、前記各記憶装置において、発行された前記優先度テーブルを取得して格納し、格納した優先度テーブルの内容に従って処理を行うことを特徴とする。
【００１０】
また、本発明に係るコンピュータは、コンピュータからのアクセス要求に応じた通常処理及びそれ以外の複数のバックグランド処理を行う複数の記憶装置に対してアクセス要求を行うコンピュータであって、各記憶装置内の各論理ユニットの用途を情報テーブルに基づいて判断し、その判断結果に基づいて各論理ユニットについての前記通常処理及び複数のバックグランド処理の間の処理優先度を示す優先度テーブルを記憶装置毎に作成し、それらを各記憶装置に対して発行する手段を備えたことを特徴とする。
【００１１】
また、本発明に係る記憶装置は、通常処理及びそれ以外の複数のバックグランド処理を行う記憶装置であって、前記記憶装置内の各論理ユニットの用途を情報テーブルに基づいて判断し、その判断結果に基づいて各論理ユニットについての前記通常処理及び複数のバックグランド処理の間の処理優先度を示す優先度テーブルを備え、この優先度テーブルの内容に従って処理を行うことを特徴とする。
【００１２】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
【００１３】
（第１の実施形態）
まず、第１の実施形態を説明する。
図１は、本発明の第１の実施形態に係る処理最適化方法が適用されるシステムの構成を示すブロック図である。
【００１４】
同図において、複数のホストコンピュータ１０〜１Ｍ（以下、ホスト＃１〜＃Ｍと称す）が設けられており、これらはネットワーク／チャネル網３０に接続されている。また、このネットワーク／チャネル網３０には、複数の記憶装置（ストレージ）であるディスクアレイ装置２０〜２Ｎ（以下、ディスクアレイ＃０〜＃Ｎと称す）が接続されている。
【００１５】
ホスト＃１〜＃Ｍは、任意のディスクアレイに対してアクセス要求を出す。一方、ディスクアレイ＃０〜＃Ｎは、それぞれホスト＃１〜＃Ｍからのアクセス要求に応じた通常処理及びそれ以外の複数のバックグランド処理（筐体内／筐体間のデータ転送処理）を行う。
【００１６】
ホスト＃１〜＃Ｍの各々には、ＯＳ（オペレーティングシステム）４１、アプリケーションソフトウェア４２（以下、アプリケーション４２と称す）、及び優先度設定コマンド発行部４３が備えられている。
【００１７】
ＯＳ４１は、アプリケーション４２からの要求を受け付け、ネットワーク／チャネル網３０を介して該当するディスクアレイへアクセス要求を出す。また、このＯＳ４１は、優先度設定コマンド発行部４３から発行されるコマンド等をネットワーク／チャネル網３０へ送り出す。
【００１８】
アプリケーション４２は、ディスクアレイ＃０〜＃Ｎに対するデータの読出し／書込み等の要求を行う。
【００１９】
優先度設定コマンド発行部４３は、各ディスクアレイ内の各論理ユニット（ＬＵ：ボリュームとして使用）の用途に応じて、各論理ユニットについての通常処理及び複数のバックグランド処理の間の処理優先度を示す優先度テーブルをディスクアレイ毎に作成してそれらを各ディスクアレイに対して発行する。
【００２０】
ディスクアレイ＃０〜＃Ｎの各々には、論理ユニットＬＵ＃０〜ＬＵ＃ｍを構成する複数のディスク（例えば、ＨＤＤ）のほかに、内部バス５１、ホストインタフェース５２、マイクロプロセッサ５３、ディスク側制御ソフトウェア５４が備えられている。
【００２１】
内部バス５１は、ディスクアレイ内部の論理ユニットＬＵ＃０〜ＬＵ＃ｍを構成する複数のディスク（例えば、ＨＤＤ）、マイクロプロセッサ５３、及びホストインタフェース５２を接続する。
【００２２】
ホストインタフェース５２は、内部バス５１とホスト＃１〜＃Ｍとのインタフェースを行う。
【００２３】
マイクロプロセッサ５３は、ディスクアレイ装置全体の動作を司り、ディスク側制御ソフトウェアを実行する。
【００２４】
ディスク側制御ソフトウェア５４は、ホスト＃１〜＃Ｍから発行された優先度テーブルを取得して格納し、格納した優先度テーブルの内容に従って処理を行う。
【００２５】
図２は、第１の実施形態におけるシステムの主要部構成を示すブロック図である。なお、図１と共通する要素には同一の符号を付している。
【００２６】
ホスト１０における優先度設定コマンド発行部４３は、情報解析部４５及びコマンド発行部４６を備えている。
【００２７】
情報解析部４５は、図３に示すような情報テーブルに基づいて、システム全体における各ディスクアレイ内の各論理ユニットの用途を判断し、その判断結果に基づいて各論理ユニットについての通常処理及び複数のバックグランド処理の間の処理優先度をディスクアレイ毎に決定する。
【００２８】
なお、図３の情報テーブルの例では、ディスクアレイ＃０に関しては、ＬＵ＃０の用途が「運用系（通常動作）」であり、ＬＵ＃１の用途が「テンポラリディスク」であることなどが示されている。この場合の同一筐体内の優先度としては、ＬＵ＃０が「１」であり、ＬＵ＃１が「２」である。また、ディスクアレイ＃１に関しても、ＬＵ＃０の用途が「待機系（バックアップディスク）」であることなど、論理ユニット毎に用途や同一筐体内の優先度が示されている。
【００２９】
情報解析部４５は、上記情報テーブルを用いた情報解析の結果に基づき、各論理ユニットについての通常処理及び複数のバックグランド処理の間の処理優先度を示す優先度テーブルをディスクアレイ毎に作成する。
【００３０】
コマンド発行部４６は、上記情報解析部４５でディスクアレイ毎に作成された優先度テーブルに所定のコマンド（当該優先度テーブルを格納すべき旨の指示）を付加し、各ディスクアレイに対して発行する。
【００３１】
一方、各ディスクアレイにおけるディスク側制御ソフトウェア５４には、優先度制御部５５及び優先度テーブル５６が備えられる。ディスク側制御ソフトウェア５４は、ネットワーク／チャネル網３０を介して該当するディスクアレイに対して送られてくる優先度テーブル５６を取得し、これを所定の記憶領域に格納する。
【００３２】
優先度制御部５５は、格納された優先度テーブル５６の内容に従って、通常処理及び複数のバックグランド処理を制御する。
【００３３】
この優先度テーブル５６の一例を図４に示す。同図からわかるように、ＬＵ＃０については、「通常動作」に最高の優先度である「１」が設定され、「ディスク修復処理」、「ディスク装置内データコピー」、「ディスク装置間データコピー」、「１次バックアップディスク」、「内部データチェック」の各々には優先度「２」が設定されている。また、ＬＵ＃１については、「通常動作」に最高の優先度である「１」が設定され、「ディスク修復処理」には優先度「２」が設定され、「ディスク装置内データコピー」には優先度「３」が設定され、「ディスク装置間データコピー」には優先度「４」が設定され、「１次バックアップディスク」には優先度「５」が設定され、「内部データチェック」には優先度「２」が設定されている。このように、論理ユニット毎に処理優先度が定められている。
【００３４】
次に、図５のフローチャートを参照して、第１の実施形態による動作を説明する。
ホスト１０における情報解析部４５は、情報テーブルに基づいて、システム全体における各ディスクアレイ内の各論理ユニットの用途を判断し、その判断結果に基づいて各論理ユニットについての通常処理及び複数のバックグランド処理の間の処理優先度をディスクアレイ毎に決定する（ステップＡ１）。これにより、ディスクアレイ毎に優先度テーブルが作成される。
【００３５】
コマンド発行部４６は、作成された優先度テーブルに所定のコマンド（当該優先度テーブルを格納すべき旨の指示）を付加し、各ディスクアレイに対して発行する（ステップＡ２）。
【００３６】
各ディスクアレイが自身に対するコマンド及び優先度テーブルを受け取ると、ディスク制御側ソフトウェア５４は、そのコマンドに従って優先度テーブルを所定の記憶領域に格納する（ステップＡ３）。
【００３７】
優先度制御部５５は、格納された優先度テーブルの内容に従って、通常処理及び複数のバックグランド処理を制御する（ステップＡ４）。
【００３８】
なお、通常処理以外のバックグランド処理（筐体内／筐体間のデータ転送処理）は、ベンダユニークなコマンド（ＳＣＳＩの場合は、ModeSelectコマンド）によって指示されるため、上記制御においては、動作中の処理がどのデータ転送指示であるかを判断するものとする。また、Ｉ／Ｏ数の比率、キャッシュメモリの占有量等も考慮に入れた制御を行うようにしてもよい。
【００３９】
このように、第１の実施形態によれば、各ディスクアレイ内の各論理ユニットの用途に応じて、各論理ユニットについての通常処理及び複数のバックグランド処理の間の処理優先度を示す優先度テーブルがディスクアレイ毎に作成され、この優先度テーブルに基づいて各処理が行われるので、各ディスクアレイにおける処理の最適化を図ることができる。
【００４０】
（第２の実施形態）
次に、第２の実施形態について説明する。
なお、第２の実施形態係る処理最適化方法が適用されるシステムの構成は、図１に示したものと同様であるため、各要素の具体的な説明を省略する。
【００４１】
図６は、第２の実施形態におけるシステムの主要部構成を示すブロック図である。なお、図１と共通する要素には同一の符号を付している。以下、第１の実施形態（図２）と異なる部分を中心に説明する。
【００４２】
前述の第１の実施形態（図２）ではディスク側制御ソフトウェア５４に優先度制御部５５及び優先度テーブル５６が備えられる場合を説明したが、この第２の実施形態ではこれらに加えて情報収集解析部５７が備えられる。
【００４３】
情報収集解析部５７は、そのディスクアレイ内の各種の状態を示す情報を収集する。例えば、次のような情報が収集される。
【００４４】
・ＨＤＤの統計情報（ＨＤＤリトライ多発等）
・各論理ユニットの情報（ＲＡＩＤで構築したボリュームに障害発生等）
・現在のリソース使用状況（キャッシュメモリ、ＨＤＤ等）
また、本実施形態による情報解析部４５は、上記情報収集解析部５７が収集した情報をネットワーク／チャネル網３０を介して取り込む。すなわち、情報解析部４５は、各論理ユニットの用途だけでなく、情報収集解析部５７から取得した情報も考慮に入れて、各論理ユニットについての通常処理及び複数のバックグランド処理の間の処理優先度をディスクアレイ毎に決定する。
【００４５】
次に、図７のフローチャートを参照して、第２の実施形態による動作を説明する。
ホスト１０における情報解析部４５は、各ディスクアレイの情報収集解析部５７が収集した情報をネットワーク／チャネル網３０を介して取り出す（ステップＢ１）。
【００４６】
そして、情報解析部４５は、情報テーブルに基づいてシステム全体における各ディスクアレイ内の各論理ユニットの用途を判断すると共に、情報収集解析部５７から取得した情報に示される各種の状態を判断し、これらに基づいて各論理ユニットについての通常処理及び複数のバックグランド処理の間の処理優先度をディスクアレイ毎に決定する（ステップＢ２）。これにより、ディスクアレイ毎に優先度テーブルが作成される。
【００４７】
コマンド発行部４６は、作成された優先度テーブルに所定のコマンド（当該優先度テーブルを格納すべき旨の指示）を付加し、各ディスクアレイに対して発行する（ステップＢ３）。
【００４８】
各ディスクアレイが自身に対するコマンド及び優先度テーブルを受け取ると、ディスク制御側ソフトウェア５４は、そのコマンドに従って優先度テーブルを所定の記憶領域に格納する（ステップＢ４）。
【００４９】
優先度制御部５５は、格納された優先度テーブルの内容に従って、通常処理及び複数のバックグランド処理を制御する（ステップＢ５）。
【００５０】
なお、通常処理以外のバックグランド処理（筐体内／筐体間のデータ転送処理）は、ベンダユニークなコマンド（ＳＣＳＩの場合は、ModeSelectコマンド）によって指示されるため、上記制御においては、動作中の処理がどのデータ転送指示であるかを判断するものとする。また、Ｉ／Ｏ数の比率、キャッシュメモリの占有量等も考慮に入れた制御を行うようにしてもよい。
【００５１】
なお、この第２の実施形態による情報解析部４５は、情報収集解析部５７の情報を常時もしくは定期的に取り込んでおり、前記各ディスクアレイ内の状態の変化に応じて前記優先度テーブルの内容を動的に変更することが可能となっている。その場合の具体的な例をいくつか示す。
【００５２】
例えば、ディスクアレイ＃０のＬＵ＃０を構成するＨＤＤが故障しており冗長性が無い場合、ＬＵ＃０以外の論理ユニットへの通常アクセスの優先度を暫く下げて、ＬＵ＃０の修復を優先させる。
【００５３】
例えば、ディスクアレイ＃０のＬＵ＃０（運用系）とディスクアレイ＃１のＬＵ＃０（待機系）とをミラーリング構成としており、また各ディスクアレイのＬＵ＃０以外の論理ユニットを違う目的で使用している状態において、ディスクアレイ＃０が停止した場合、ディスクアレイ＃１のＬＵ＃０の優先度を一時的に上げて運用系として機能するように優先度を決定する。ディスクアレイ＃０の復旧後は、ディスクアレイ＃１から＃０へのデータコピーを優先させるように優先度を決定する。
【００５４】
ここで、上記（１）の場合を動作を、図８のフローチャートを参照して説明する。
【００５５】
ディスクアレイ＃０のＬＵ＃０に故障が発生すると（ステップＣ１）、ディスクアレイ＃０のＬＵ＃０のミラーボリュームが他筐体／同一筐体内にあるか否か（冗長性があるか否か）が判断される（ステップＣ２）。
【００５６】
ミラーボリュームがあれば、ステップＣ６へ進んでディスクの修復が行われる。一方、ミラーボリュームが無ければ、ディスクアレイ＃０のＬＵ＃０のディスク修復処理の優先度が一番高い設定となっているか否かが判断される（ステップＣ３）。
【００５７】
上記優先度が一番高い設定となっていれば、ステップＣ６へ進んでディスクの修復が行われる。一方、一番高い設定となっていなければ、現状の優先度が所定の記憶領域に保存され、ディスクアレイ＃０のＬＵ＃０のディスク修復処理の優先度が最高に設定され（ステップＣ５）、ディスク修復が行われる（ステップＣ６）。
【００５８】
ディスク修復が完了した後は、ステップＣ４で保存した優先度のリストアが行われる（ステップＣ７）。
【００５９】
次に、上記（２）の場合を動作を、図９及び図１０のフローチャートを参照して説明する。
【００６０】
ディスクアレイ＃０が停止すると（ステップＤ１）、そのディスクアレイ＃０の他にミラーボリュームが他筐体／同一筐体内にあるか否かが判断される（ステップＤ２）。
【００６１】
ミラーボリュームが無ければ、ステップＤ７に進んでディスクアレイ＃０の修復が行われる。一方、ミラーボリュームがあれば、ディスクアレイ＃１内の各論理ユニットをチェックすることにより、ディスクアレイ＃１のＬＵ＃０の優先度が一番高い設定になっているか否かが判断される（ステップＤ３）。
【００６２】
上記優先度が一番高い設定になっていれば、ステップＤ７に進んでディスクアレイ＃０の修復が行われる。一方、一番高い設定になっていなければ、ディスクアレイ＃１のＬＵ＃０以外の優先度を下げても影響がないか否かが判断される（ステップＤ４）。
【００６３】
影響がある場合は、ステップＤ７に進んでディスクアレイ＃０の修復が行われる。一方、影響が無ければ、現状の優先度が所定の記憶領域に保存され（ステップＤ５）、ディスクアレイ＃１のＬＵ＃０の運用優先度が最高に設定され（ステップＤ６）、ディスクアレイ＃０の復旧が行われる。
【００６４】
ディスク修復が完了した後は、ディスクアレイ＃１のＬＵ＃０からディスクアレイ＃０のＬＵ＃０へのデータ転送処理の優先度が最高に設定され（ステップＤ８）、データコピーが実行され（ステップＤ９）、ステップＤ５で保存した優先度のリストアが行われる（ステップＤ１０）。
【００６５】
このように、第２の実施形態によれば、各ディスクアレイ内の各論理ユニットの用途及び各種の状態に応じて、各論理ユニットについての通常処理及び複数のバックグランド処理の間の処理優先度を示す優先度テーブルがディスクアレイ毎に作成され、この優先度テーブルに基づいて各処理が行われるので、前述の第１の実施形態に比べ、処理の最適化をより一層高めることが可能となる。
【００６６】
【発明の効果】
以上詳記したように本発明によれば、コンピュータからのアクセス要求に応じた通常処理及びそれ以外の複数のバックグランド処理を行う複数の記憶装置とを備えたシステムにおいて、システム全体の処理を最適化することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る処理最適化方法が適用されるシステムの構成を示すブロック図。
【図２】上記第１の実施形態におけるシステムの主要部構成を示すブロック図。
【図３】上記第１の実施形態における情報解析部で使用される情報テーブルの例を示す図。
【図４】上記第１の実施形態における記憶装置に格納される優先度テーブルの例を示す図。
【図５】上記第１の実施形態による動作を説明するためのフローチャート。
【図６】本発明の第２の実施形態におけるシステムの主要部構成を示すブロック図。
【図７】上記第２の実施形態による動作を説明するためのフローチャート。
【図８】上記第２の実施形態において優先度テーブルを動的に変更する第１の例を説明するためのフローチャート。
【図９】上記第２の実施形態において優先度テーブルを動的に変更する第２の例を説明するためのフローチャート。
【図１０】上記第２の実施形態において優先度テーブルを動的に変更する第２の例を説明するためのフローチャート。
【符号の説明】
１０〜１Ｍ…ホストコンピュータ（＃１〜＃Ｍ）
２０〜２Ｎ…ディスクアレイ装置（＃１〜＃Ｎ）
３０…ネットワーク／チャネル網
４１…ＯＳ（オペレーティングシステム）
４２…アプリケーションソフトウェア
４３…優先度設定コマンド発行部
４５…情報解析部
４６…コマンド発行部
５１…内部バス
５２…ホストインタフェース
５３…マイクロプロセッサ
５４…ディスク側制御ソフトウェア
５５…優先度制御部
５６…優先度テーブル
５７…情報収集解析部
【図１】
0003987295.tif 000002
【図２】
0003987295.tif 000003
【図３】
0003987295.tif 000004
【図４】
0003987295.tif 000005
【図５】
0003987295.tif 000006
【図６】
0003987295.tif 000007
【図７】
0003987295.tif 000008
【図８】
0003987295.tif 000009
【図９】
0003987295.tif 000010
【図１０】
0003987295.tif 000011