(57)【要約】【課題】シングルプロセッサ上で動作するマルチタスク環境下において、タスク処理だけでなく優先度の高い割込み処理をも含めた処理全体をスケジューリングすることで、ストレージシステムのパフォーマンス向上を図る。【解決手段】ストレージシステムは、マルチタスクオペレーティングシステム環境下で動作するシングルプロセッサ２１を搭載する。動作時間管理部２４０は、ストレージシステムの内部及び外部の両方から要求される割込み処理５００及びタスク処理６００のそれぞれの処理時間の割合が所定の範囲内に収束するように、割込み処理５００及びタスク処理６００のそれぞれの処理時間の割合をバランス調整する。【選択図】図４
2007233847.tif 000002
【特許請求の範囲】
【請求項１】
マルチタスクオペレーティングシステム環境下で動作するシングルプロセッサを搭載したストレージシステムであって、
前記ストレージシステムの内部及び外部の両方から要求される割込み処理及びタスク処理のそれぞれの処理時間の割合が所定の範囲内に収束するように、割込み処理及びタスク処理のそれぞれの処理時間の割合をバランス調整する動作時間管理部を備えるストレージシステム。
【請求項２】
請求項１に記載のストレージシステムであって、前記動作時間管理部は、ある監視時間内に占める割込み処理時間の割合が前記所定の範囲から外れるときには、後続の監視時間内において割込み処理を制限する一方、ある監視時間内に占める割込み処理時間の割合が前記所定の範囲内に収束している場合には、後続の監視時間内において割込み処理の制限を解除する、ストレージシステム。
【請求項３】
請求項１に記載のストレージシステムであって、前記動作時間管理部は、ある監視時間内に占めるタスク処理時間の割合が前記所定の範囲から外れるときには、後続の監視時間内においてタスク処理を制限する一方、ある監視時間内に占めるタスク処理時間の割合が前記所定の範囲内に収束している場合には、後続の監視時間内においてタスク処理の制限を解除する、ストレージシステム。
【請求項４】
請求項１に記載のストレージシステムであって、前記ストレージシステムの外部から要求される割込み処理及びタスク処理は、メインＩ／Ｏ系又はネットワーク系に関する処理要求を含む、ストレージシステム。
【請求項５】
請求項１に記載のストレージシステムであって、前記ストレージシステムの内部から要求される割込み処理及びタスク処理は、前記ストレージシステムの監視系又は障害系に関する処理要求を含む、ストレージシステム。
【請求項６】
マルチタスクオペレーティングシステム環境下で動作するシングルプロセッサを搭載したストレージシステムであって、
一定の監視時間毎に周期的に割込み処理時間を計測する割込み処理動作時間監視部と、
一定の監視時間毎に周期的にタスク処理時間を計測するタスク処理動作時間監視部と、
前記ストレージシステムの内部及び外部の両方から要求される割込み処理及びタスク処理のそれぞれの処理時間の割合が所定の範囲内に収束するように、割込み処理及びタスク処理のそれぞれの処理時間の割合をバランス調整する動作時間管理部と、
を備え、
前記動作時間管理部は、ある監視時間内に占める割込み処理時間の割合が前記所定の範囲から外れるときには、後続の監視時間内において割込み処理を制限する一方、ある監視時間内に占める割込み処理時間の割合が前記所定の範囲内に収束している場合には、後続の監視時間内において割込み処理の制限を解除し、ある監視時間内に占めるタスク処理時間の割合が前記所定の範囲から外れるときには、後続の監視時間内においてタスク処理を制限する一方、ある監視時間内に占めるタスク処理時間の割合が前記所定の範囲内に収束している場合には、後続の監視時間内においてタスク処理の制限を解除する、ストレージシステム。
【請求項７】
シングルプロセッサ上で動作するマルチタスクオペレーティングシステム環境下で、ストレージシステムの内部及び外部の両方から要求される割込み処理とタスク処理とをスケジューリングするための方法であって、
一定の監視時間毎に周期的に割込み処理時間を計測するステップと、
一定の監視時間毎に周期的にタスク処理時間を計測するステップと、
前記ストレージシステムの内部及び外部の両方から要求される割込み処理及びタスク処理のそれぞれの処理時間の割合が所定の範囲内に収束するように、割込み処理及びタスク処理のそれぞれの処理時間の割合をバランス調整するステップと、
を備えるスケジューリング方法。
【請求項８】
請求項７に記載のスケジューリング方法であって、前記バランス調整するステップは、ある監視時間内に占める割込み処理時間の割合が前記所定の範囲から外れるときには、後続の監視時間内において割込み処理を制限する一方、ある監視時間内に占める割込み処理時間の割合が前記所定の範囲内に収束している場合には、後続の監視時間内において割込み処理の制限を解除するステップを含む、スケジューリング方法。
【請求項９】
請求項７に記載のスケジューリング方法であって、前記バランス調整するステップは、ある監視時間内に占めるタスク処理時間の割合が前記所定の範囲から外れるときには、後続の監視時間内においてタスク処理を制限する一方、ある監視時間内に占めるタスク処理時間の割合が前記所定の範囲内に収束している場合には、後続の監視時間内においてタスク処理の制限を解除するステップを含む、スケジューリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージシステムの内外から要求されるタスク処理と割込み処理のそれぞれの処理時間をバランス調整するためのストレージシステム及びスケジューリング方法に関する。
【背景技術】
【０００２】
データセンタ等の大容量のデータを取り扱うデータベースシステムでは、ディスクアレイシステム等のストレージシステムを用いてデータを管理する。ディスクアレイシステムは、アレイ状に配設された多数の記憶デバイスを備え、ＲＡＩＤ（Redundant Arrays of Independent Inexpensive Disks）構成された記憶資源をホスト計算機に提供する。ホスト計算機とストレージシステムとは、ＳＡＮ（Storage Area Network）のようなデバイス共有型のネットワークを介して相互に接続される。
【０００３】
ネットワーク接続型のストレージシステムは、ストレージ内部から要求される処理として、ディスクドライブに生じた障害を復旧するための復旧処理、ディスクドライブに障害が生じてないか否かをチェックするための自己診断処理、データをバックアップするためのバックアップ処理などを実行する他、ストレージ外部から要求される処理として、ホスト計算機からのアクセスや、各種ネットワークサーバからのアクセスなども処理する。
【０００４】
ストレージ内外から要求される処理の中でも、実時間性（即応性）が要求される処理については、迅速に処理する必要がり、効率的なタスクスケジューリングが求められる。例えば、特許２９１８２９７号公報には、割込みレベルの処理が要求された場合に、非割込みレベルの処理を一時中断して、割込みレベルの処理を実行する割込み制御方式が提案されている。
【特許文献１】特許２９１８２９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、ネットワーク接続型ストレージシステムの中には、コントローラに搭載されるプロセッサの数を一つにし、低価格でありながらも高性能を目指したものが開発されている。シングルプロセッサ上で動作するマルチタスクオペレーティングシステム環境下において、ホスト計算機からのＩ／Ｏ要求を処理しつつ、各種ネットワークサーバからのアクセスも処理するストレージシステムでは、優先度の高い割込み要求（以下、特化コマンドと称する。）が多発すると、プロセッサ資源が特化コマンドばかりに割当てられてしまう結果、プロセッサ資源を通常コマンドに殆ど割当てることができない。タスクスケジューラは、タスク処理をスケジューリングする機能を有しているが、割込み処理とタスク処理とを含めた処理全体をスケジューリングする機能を有してないので、このような問題が生じ得る。これでは、ストレージシステムのパフォーマンスが低下してしまうので、改善が望まれる。
【０００６】
そこで、本発明は、シングルプロセッサ上で動作するマルチタスク環境下において、タスク処理だけでなく、優先度の高い割込み処理をも含めた処理全体をスケジューリングすることで、上述の問題を解決することを課題とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するため、本発明のストレージシステムは、マルチタスクオペレーティングシステム環境下で動作するシングルプロセッサを搭載している。このストレージシステムは、ストレージシステムの内部及び外部の両方から要求される割込み処理及びタスク処理のそれぞれの処理時間の割合が所定の範囲内に収束するように、割込み処理及びタスク処理のそれぞれの処理時間の割合をバランス調整する動作時間管理部を備える。
【０００８】
動作時間管理部は、ある監視時間内に占める割込み処理時間の割合が所定の範囲から外れるときには、後続の監視時間内において割込み処理を制限する一方、ある監視時間内に占める割込み処理時間の割合が所定の範囲内に収束している場合には、後続の監視時間内において割込み処理の制限を解除する。つまり、動作時間管理部は、ストレージシステムの負荷状況に応じて、監視時間毎に割込み処理に制限をかけたり或いはその制限を解除したりする。
【０００９】
動作時間管理部は、ある監視時間内に占めるタスク処理時間の割合が所定の範囲から外れるときには、後続の監視時間内においてタスク処理を制限する一方、ある監視時間内に占めるタスク処理時間の割合が所定の範囲内に収束している場合には、後続の監視時間内においてタスク処理の制限を解除する。つまり、動作時間管理部は、ストレージシステムの負荷状況に応じて、監視時間毎にタスク処理に制限をかけたり或いはその制限を解除したりする。
【発明の効果】
【００１０】
本発明によれば、ストレージシステムの内外から要求される割込み処理とタスク処理とをバランスよくスケジューリングできるので、ストレージシステムのパフォーマンスを向上させることができる。
【発明を実施するための最良の形態】
【００１１】
以下、各図を参照しながら本発明の実施形態について説明する。
図１は本実施例に係るストレージシステム１０の主要構成を示している。ストレージシステム１０は、通信ネットワーク４０を介して、一つ以上のホスト計算機５０と、一つ以上のネットワークサーバ６０とに接続している。
【００１２】
ホスト計算機５０は、パーソナルコンピュータ、ワークステーション、メインフレーム等である。ホスト計算機５０には、アプリケーションプログラム（例えば、Ｗｅｂアプリケーションソフトウェア、ストリーミングアプリケーションソフトウェア、ｅビジネスアプリケーションソフトウェアなど）が実装されている。
【００１３】
ネットワークサーバ６０は、例えば、ネットワーク管理を行うためのＳＮＭＰ（Simple Network Management Protocol）サーバ、ネットワークタイムプロトコルを管理するためのＳＮＴＰ（Simple Network Time Protocol）サーバ、バックアップ又はリストアを管理するためのバックアップサーバ、ウィルスチェックを行うためのスキャンサーバ等である。
【００１４】
通信ネットワーク４０としては、例えば、ＳＡＮ（Storage Area Network）、ＬＡＮ(Local Area Network)、ＷＡＮ（Wide Area Network）、インターネット、専用回線、公衆回線等を挙げることができる。ホスト計算機５０がＳＡＮを介してストレージシステム１０に接続する場合、ホスト計算機５０は、ファイバチャネルプロトコル又はｉＳＣＳＩ（internet Small Computer System Interface）等のプロトコルにより、ストレージシステム１０の記憶資源のデータ管理単位であるブロックを単位としてデータ入出力を要求する。ホスト計算機５０がＬＡＮを介してストレージシステム１０に接続する場合、ホスト計算機５０は、ＮＦＳ（Network File System）やＣＩＦＳ（Common Interface File System）等のプロトコルにより、ファイル名を指定してファイル単位でのデータ入出力を要求する。ストレージシステム１０がホスト計算機５０からのファイルアクセス要求を受け付けるためには、ＮＡＳ（Network Attached Storage）機能を搭載する必要がある。
【００１５】
ストレージシステム１０は、主に、コントローラ２０、及び記憶装置３０を備える。
【００１６】
記憶装置３０は、複数のディスクドライブ３１を備える。ディスクドライブ３１は、例えば、ＦＣ（Fibre Channel）ディスクドライブ、ＳＡＴＡ（Serial Advanced Technology Attachment）ディスクドライブ、ＰＡＴＡ（Parallel Advanced Technology Attachment）ディスクドライブ、ＦＡＴＡ（Fibre Attached Technology Adapted）ディスクドライブ、ＳＣＳＩ（Small Computer System Interface）ディスクドライブ等の各種ディスクドライブである。
【００１７】
コントローラ２０は、記憶装置３０をいわゆるＲＡＩＤ方式に規定されるＲＡＩＤレベル（例えば、０，１，５）で制御することができる。ＲＡＩＤグループ上には、ホスト計算機５０からのアクセス単位である一つ以上の論理ユニットが定義されている。論理ユニットには、ＬＵＮ（Logical Unit Number）がアサインされる。
【００１８】
コントローラ２０は、主に、プロセッサ２１、ローカルメモリ２２、データコントローラ２３、ホストインターフェース２４、ドライブインタフェース２５、及びキャッシュメモリ２６を備える。コントローラ２０は、一つのプロセッサ２１を備えたシングルプロセッサシステムである。
【００１９】
プロセッサ２１は、ホスト計算機５０からのデータ入出力要求に応答して記憶装置３０へのＩ／Ｏ処理（ライトアクセス、又はリードアクセス）を制御する。ローカルメモリ２２には、プロセッサ２１のマイクロプログラム及び各種テーブル（後述する動作時間割当範囲テーブル８００、通常状態動作時間割当テーブル８１０、及び制限状態動作時間割当テーブル８２０）等を格納する。キャッシュメモリ２６は、記憶装置３０に書き込むためのライトデータ、又は記憶装置３０から読み出したリードデータを一時的に格納するためのバッファメモリである。キャッシュメモリ２６は、電源バックアップされており、ストレージシステム１０に電源障害が発生した場合でも、キャッシュデータのロストを防ぐ不揮発性メモリとして構成されている。
【００２０】
データコントローラ２３は、ホストインターフェース２４、ドライブインタフェース２５、及びキャッシュメモリ２６を相互に接続し、ホスト計算機５０と記憶装置３０との間のデータ転送を制御する。具体的には、ホスト計算機５０からライトアクセスが行われると、データコントローラ２３は、ホストインターフェース２４を介してホスト計算機５０から受け取ったライトデータをキャッシュメモリ２６に書き込む。ドライブインタフェース２５は、キャッシュメモリ２６に書き込まれたライトデータを記憶装置３０に書き込む。一方、ホスト計算機５０からリードアクセスが行われると、データコントローラ２３は、ドライブインタフェース２５を介して記憶装置３０から読みとったリードデータをキャッシュメモリ２６に書き込むとともに、ホストインターフェース２４に転送する。記憶装置３０がＲＡＩＤレベル５で管理されている場合には、データコントローラ２３は、パリティデータを演算する。
【００２１】
ホストインターフェース２４は、ホスト計算機５０とコントローラ２０との間のインターフェースを制御するためのインタフェースコントローラであり、例えば、ファイバチャネルプロトコルに基づくホスト計算機５０からのブロックアクセス要求や、ファイル転送プロトコルに基づくホスト計算機５０からのファイルアクセス要求を受信する機能を有する。ドライブインタフェース２５は、コントローラ２０と記憶装置３０との間のインターフェースを制御すためのるインタフェースコントローラであり、例えば、記憶装置３０を制御するプロトコルに従って、記憶装置３０へのデータ入出力要求を制御する機能を有する。
【００２２】
図２はストレージシステム１０に要求される割込み処理５００とタスク処理６００の発生要因を示す。ストレージシステム１０の外部から要求される処理としては、メインＩ／Ｏ系タスク処理、メインＩ／Ｏ系割込み処理、ネットワーク系タスク処理、ネットワーク系割込み処理がある。ストレージシステム１０の内部から要求される処理としては、監視系タスク処理、監視系割込み処理、障害系タスク処理、障害系割込み処理、ＯＳ系処理がある。
【００２３】
ストレージシステム１０の内部から要求される処理の具体例として、例えば、ディスクドライブ３１に障害が発生しているか否かをチェックするための自己診断処理、あるディスクドライブ３１に格納されているデータを他のストレージデバイス３２にバックアップするためのバックアップ処理、あるディスクドライブ３１に障害が生じたときに、冗長データを用いてエラー訂正を行い、縮退運転しつつ、スペアディスク３３にコレクションコピーを行って、データを復旧させるためのデータ復旧処理等がある。
【００２４】
ストレージシステム１０の外部から要求される処理の具体例として、例えば、ホスト計算機５０からのＩ／Ｏ要求、ネットワークサーバ６０からの各種処理要求（例えば、ＳＮＭＰ処理、ＳＮＴＰ処理、バックアップ要求処理、ウィルスチェック処理等）がある。
【００２５】
図３はストレージシステム１０の制御処理に関連するタスク処理と割込み処理との対応関係を示す。この対応関係は、どの割込み処理がどの処理系統（メインＩ／Ｏ系、監視系、障害系、ＯＳ系）に属するのかを示すとともに、どのタスク処理がどの処理系統に属するのかを示す。例えば、割込み名「ＣＴＬ間通信割込み」は、メインＩ／Ｏ系の割込み処理であることを示す。タスク名「ｔＤＦＣＴＬ」は、メインＩ／Ｏ系のタスク処理であることを示す。同図に示すタスク処理と割込み処理のそれぞれについての詳細な説明は、本発明の要旨とは関係ないので、省略する。
【００２６】
図４はプロセッサ２１上で動作する各種処理の機能ブロックを示す。プロセッサ２１上では、マルチタスクオペレーティングシステム環境下で、割込み処理５００、タスク処理６００、及びスケジューリング処理７００が時分割動作している。割込み処理５００は、割込みレベルで動作する処理であり、タスクスケジューラ２３０の管理外にある。タスク処理６００は、タスクレベルで動作する処理であり、タスクスケジューラ２３０の管理下にある。スケジューリング処理７００は、タイマ割込みレベルで動作する処理であり、タスクスケジューラ２３０の管理外にある。
【００２７】
ホスト計算機５０からのライト系割込み処理３１０、及びリード系割込み処理３２０のうち優先度の高いものは、特化コマンド３３０として、優先的に処理される。ライト系割込み処理３１０、及びリード系割込み処理３２０のうち優先度の低いものは、コマンドキュー３４０に登録され、タスクスケジューラ２３０の管理下でメインＩ／Ｏ処理タスク３５０として処理される。
【００２８】
一方、ネットワークサーバ６０からのネットワーク系割込み処理４１０は、ネットワークキュー４２０に登録され、タスクスケジューラ２３０の管理下でネットワーク処理タスク４３０として処理される。
【００２９】
割込み処理動作時間監視部２１０は、プロセッサ資源を割込み処理５００に割り当てた時間（割込み処理時間）を計測する。タスク処理動作時間監視部２２０は、プロセッサ資源をタスク処理６００に割り当てた時間（タスク処理時間）を計測する。動作時間管理部２４０は、タイマ処理２５０からの割込みを契機として、割込み処理時間とタスク処理時間とをそれぞれ計測し、何れか一方の処理時間に偏りがある場合には、動作時間割当範囲テーブル８００、通常状態動作時間割当テーブル８１０、及び制限状態動作時間割当テーブル８２０に基づいて、割込み処理時間及びタスク処理時間のそれぞれの割合が所定の範囲内に収束するように、割込み処理時間及びタスク処理時間のそれぞれの割合をバランス調整する。タイマ処理２５０は、タイマ更新するためのプロセスである。
【００３０】
尚、上述した割込み処理動作時間監視部２１０、タスク処理動作時間監視部２２０、及び動作時間管理部２４０は、マルチタスクオペレーティングシステム環境下で実現される機能モジュールである。
【００３１】
次に、図５乃至図１４を参照しながら、割込み処理時間とタスク処理時間とのバランス調整を図りつつ、各処理（メインＩ／Ｏ系タスク処理、メインＩ／Ｏ系割込み処理、監視系タスク処理、監視系割込み処理、ネットワーク系タスク処理、ネットワーク系割込み処理、ＯＳ系処理）をスケジューリングする処理の詳細について説明する。
【００３２】
図５は動作時間割当範囲テーブル８００を示す。動作時間割当範囲テーブル８００は、ある一定の監視時間内における各処理（メインＩ／Ｏ系タスク処理、メインＩ／Ｏ系割込み処理、監視系タスク処理、監視系割込み処理、ネットワーク系タスク処理、ネットワーク系割込み処理、ＯＳ系処理）の動作時間の割合範囲（１００分率）設定したテーブルである。各処理の動作時間の割合範囲として、ストレージシステム１０の運用形態やネットワーク環境などに応じて最適な値を適宜設定できる。同図に示すように、動作時間割当範囲テーブル８００には、ある程度の幅を持たせた動作時間割合が設定されている。尚、図中の「−」は、動作時間割合に制限がないことを示す。
【００３３】
図６は通常状態動作時間割当テーブル８１０を示す。通常状態動作時間割当テーブル８１０は、通常状態における各処理の動作時間割合の上限値を設定したテーブルである。通常状態における各処理の動作時間割合の上限値は、動作時間割当範囲テーブル８００に設定された割合範囲内の値に設定される。尚、通常状態とは、割込み処理５００とタスク処理６００のそれぞれの動作時間のバランスが保たれている状態を示す。
【００３４】
図７は制限状態動作時間割当テーブル８２０を示す。制限状態動作時間割当テーブル８２０は、それぞれの制限状態における各処理の動作時間割合の上限値を設定したテーブルである。制限状態における各処理の動作時間割合の上限値は、動作時間割当範囲テーブル８００に設定された割合範囲内の値に設定される。尚、制限状態とは、割込み処理５００とタスク処理６００のそれぞれの動作時間のバランスが崩れており、何れかの動作時間に制限を課している状態である。制限状態は、複数存在し得る。
【００３５】
図８は通常状態から制限状態に状態遷移する過程における各処理のタイムチャートを示す。説明の便宜上、時刻Ｔ０から時刻Ｔ１までをステージ１、時刻Ｔ１から時刻Ｔ２までをステージ２、…、時刻Ｔ５から時刻Ｔ６までをステージ６とする。各ステージ１〜６の時間間隔は、上述した監視時間に等しい。監視時間は、複数の単位時間から成る。動作時間管理部２４０は、時刻Ｔ０，Ｔ１，…，Ｔ６のそれぞれのタイミング（各ステージの終了タイミング）において各ステージ１，２，…，６に占める割込み処理時間とタスク処理時間のそれぞれの割合を周期的にチェックする。
【００３６】
動作時間管理部２４０は、ステージＮ（Ｎは１以上の整数）に占める割込み処理時間の割合又はタスク処理時間の割合が、通常状態動作時間割当テーブル８１０に設定された割合を超えている場合には、制限状態動作時間割当テーブル８２０の「制限状態Ｍ」に設定された割合に基づいて、ステージ（Ｎ＋１）に占める割込み処理時間の割合又はタスク処理時間の割合を制限する。制限状態Ｍは、ステージＮの終了時点において、動作時間割合が上限値を越えた処理の組み合わせによって、一義的に定まる。
【００３７】
例えば、通常状態にあるステージ１では、メインＩ／Ｏ系タスク処理の動作時間割合が８０％、メインＩ／Ｏ系割込み処理の動作時間割合が２０％である。これらの動作時間割合は、通常状態動作時間割当テーブル８１０に設定された動作割合の範囲内にあるので、動作時間管理部２４０は、通常状態動作時間割当テーブル８１０に設定された動作割合に基づいて、ステージ２における各処理の動作時間割合を調整する。
【００３８】
通常状態にあるステージ２では、メインＩ／Ｏ系タスク処理の動作時間割合が２０％、メインＩ／Ｏ系割込み処理の動作時間割合が８０％である。メインＩ／Ｏ系割込み処理の動作時間割合は、その上限値である４０％を超えているので、動作時間管理部２４０は、制限状態動作時間割当テーブル８２０の「制限状態８」に設定された動作割合に基づいて、ステージ３における各処理の動作時間割合を調整する。
【００３９】
制限状態８にあるステージ３では、動作時間管理部２４０は、メインＩ／Ｏ系割込み処理の動作時間割合を４０％に制限する。ところが、ステージ３におけるネットワーク系割込み処理の動作時間割合は、３０％であり、通常状態動作時間割当テーブル８１０に設定された動作割合（１０％）を超えているので、動作時間管理部２４０は、制限状態動作時間割当テーブル８２０の「制限状態９」に設定された動作割合に基づいて、ステージ４における各処理の動作時間割合を調整する。
【００４０】
以下、同様にして、動作時間管理部２４０は、ステージ４，５，６における各処理の動作時間割合を調整する。
【００４１】
図９は制限状態から通常状態に状態遷移する過程における各処理のタイムチャートを示す。説明の便宜上、時刻Ｔ７から時刻Ｔ８までをステージ８、時刻Ｔ８から時刻Ｔ９までをステージ９、…、時刻Ｔ１２から時刻Ｔ１３までをステージ１３とする。各ステージ８〜１３の時間間隔は、上述した監視時間に等しい。動作時間管理部２４０は、時刻Ｔ７，Ｔ８，…，Ｔ１３のそれぞれのタイミング（各ステージの終了タイミング）において各ステージ８，９，…，１３に占める割込み処理時間とタスク処理時間のそれぞれの割合を周期的にチェックする。
【００４２】
制限状態９にあるステージ８では、動作時間管理部２４０は、メインＩ／Ｏ系割込み処理の動作時間割合を４０％に制限し、ネットワーク系割込み処理の動作時間割合を１０％に制限する。メインＩ／Ｏ系割込み処理の動作時間割合もネットワーク系割込み処理の動作時間割合も上限値にあるので、動作時間管理部２４０は、制限状態動作時間割当テーブル８２０の「制限状態９」に設定された動作割合に基づいて、ステージ９における各処理の動作時間割合を調整する。
【００４３】
制限状態９にあるステージ９では、ネットワーク系割込み処理の動作時間割合がその上限値である１０％のままであるのに対し、メインＩ／Ｏ系割込み処理の動作時間割合がその上限値である４０％を下回る３０％まで低下しているので、動作時間管理部２４０は、制限状態動作時間割当テーブル８２０の「制限状態１」に設定された動作割合に基づいて、ステージ１０における各処理の動作時間割合を調整する。
【００４４】
制限状態１にあるステージ１０では、ネットワーク系割込み処理の動作時間割合がその上限値である１０％を下回る０％まで低下し、メインＩ／Ｏ系割込み処理の動作時間割合がその上限値である４０％を下回る２０％まで低下しているので、動作時間管理部２４０は、制限状態を解除し、通常状態動作時間割当テーブル８１０に設定された動作割合に基づいて、ステージ１１における各処理の動作時間割合を調整する
【００４５】
以下、同様にして、動作時間管理部２４０は、ステージ１１，１２，１３における各処理の動作時間割合を調整する。
【００４６】
尚、上述した制限状態においては、各処理の動作時間割合を調整するだけでなく、例えば、図１０に示すように、メインＩ／Ｏ系、監視系、障害系、ネットワーク系、ＯＳ系のそれぞれの制御処理において、優先度の高い制御処理を優先的に処理するようにしてもよい。図中、○は優先度が高いことを示し、×は優先度が低いことを示す。
【００４７】
図１１は割込み処理時間計測処理を記述したフローチャートである。割込み処理時間計測処理は、各ステージにおける割込み処理時間の合計値を求めるための処理であり、ストレージシステム１０への割込み処理要求を契機として、イベントドリブン式に実行される。割込み処理時間計測処理は、１ステージあたり複数回実行されることもある。
【００４８】
割込み処理動作時間監視部２１０は、割込み要求があると、割込み処理時間の計測を開始する（ステップ１１０１）。
【００４９】
その割込み要求が特化コマンドによる割込み要求である場合には（ステップ１１０２；ＹＥＳ）、プロセッサ２１は、特化コマンドを早速実行する（ステップ１１０４）。
【００５０】
その割込み要求が特化コマンドによる割込み要求でない場合には（ステップ１１０２；ＮＯ）、プロセッサ２１は、その割込み要求を一旦、コマンドキュー３４０に登録する（ステップ１１０３）。
【００５１】
次に、割込み処理動作監視部２１０は、割込み処理時間の計測を終了し（ステップ１１０５）、ステップ１１０１〜ステップ１１０５で計測した割込み処理時間を、前回の割込み処理時間計測処理の計測結果に累積加算する（ステップ１１０６）。
【００５２】
図１２はタスク処理時間計測処理を記述したフローチャートである。タスク処理時間計測処理は、各ステージにおけるタスク処理時間の合計値を求めるための処理であり、タスク処理の実行を契機として、イベントドリブン式に実行される。タスク処理時間計測処理は、１ステージあたり複数回実行されることもある。
【００５３】
タスク処理動作時間監視部２２０は、タスクスケジューラ２３０によってタスク処理が呼び出されると、タスク処理時間の計測を開始する（ステップ１２０１）。
【００５４】
プロセッサ２１によってタスク処理が実行されると（ステップ１２０２）、タスク処理動作時間監視部２２０は、タスク処理時間の計測を終了し（ステップ１２０３）、ステップ１２０１〜ステップ１２０３で計測したタスク処理時間を、前回のタスク処理時間計測処理の計測結果に累積加算する（ステップ１１０６）。
【００５５】
図１３はスケジューリング処理を記述したフローチャートである。スケジューリング処理は、上述した通常状態動作時間割当テーブル８１０及び制限状態動作時間割当テーブル８２０に基づいて、各ステージにおける割込み処理時間とタスク処理時間とのバランスを調整するための処理である。スケジューリング処理の詳細については、タイムチャート（図８乃至図９）を用いて説明したが、ここでは、フローチャートを用いて再述する。スケジューリング処理は、タイマ処理２５０からのタイマ割込みを契機として実行される。タイマ割込みは、単位時間につき１回の頻度で発生する。例えば、監視時間が１００単位時間から成る場合には、１ステージあたり１００回のタイマ割込みが発生する。
【００５６】
後述するステップ１３０１〜１３０６は、単位時間につき１回の頻度で実行される（例えば、１ステージあたり１００回の頻度で実行される。）。後述するステップ１３０７は、監視時間につき１回の頻度で実行される（つまり、各ステージの終了タイミングで実行される。）。
【００５７】
動作時間管理部２４０は、タイマ割込みを受けると（ステップ１３０１）、監視時間経過したか否か（つまり、各ステージの終了タイミングになったか否か）を判定する（ステップ１３０２）。監視時間経過した場合には（ステップ１３０２；ＹＥＳ）、動作時間管理部２４０は、バランス調整処理を実行する（ステップ１３０７）。バランス調整処理の詳細については、後述する。
【００５８】
監視時間経過してない場合には（ステップ１３０２；ＮＯ）、動作時間管理部２４０は、監視時間内における割込み処理時間の合計値を割込み処理動作時間監視部２１０から取得し（ステップ１３０３）、次いで、監視時間内におけるタスク処理時間の合計値をタスク処理動作時間監視部２２０から取得する（ステップ１３０４）。
【００５９】
動作時間管理部２４０は、割り込み処理時間又はタスク処理時間がその上限値（制限状態動作時間割当テーブル８２０に設定された上限値）に達すると（ステップ１３０５；ＹＥＳ）、タスク処理を休止し又は割込み処理をマスクする（ステップ１３０６）。割り込み処理時間もタスク処理時間もその上限値に達してないならば（ステップ１３０５；ＮＯ）、スケジューリング処理を終了する。
【００６０】
図１４はバランス調整処理を記述したフローチャートである。バランス調整処理は、監視時間経過した時点（各ステージの終了タイミング）で呼び出されて、実行されるサブルーチンである。
【００６１】
動作時間管理部２４０は、監視時間内に占める割り込み処理時間の割合とタスク処理時間の割合を計算し（ステップ１４０１）、割込み処理時間の割合又はタスク処理時間の割合が上限値を越えているか否かを判定する（ステップ１４０２）。
【００６２】
割込み処理時間の割合又はタスク処理時間の割合が上限値を越えている場合には（ステップ１４０２；ＹＥＳ）、動作時間管理部２４０は、割込み処理時間の割合の上限値又はタスク処理時間の割合の上限値を制限状態に対応した値に設定する（ステップ１４０３）。
【００６３】
割込み処理時間の割合もタスク処理時間の割合も上限値を越えてない場合（ステップ１４０２；ＮＯ）、又はバランス調整処理（ステップ１４０３）を実行した後において、動作時間管理部２４０は、監視時間内に占める割込み処理時間の合計値とタスク処理時間の合計値とをそれぞれゼロクリアする（ステップ１４０４）。
【００６４】
本実施形態によれば、ストレージシステム１０の内外から要求される割込み処理５００とタスク処理６００とをバランスよくスケジューリングできるので、優先度の高い割込み処理が多発したとしても、プロセッサ資源を割込み処理ばかりに偏って割り当てることがない。つまり、ストレージシステム１０の負荷状況やユーザの利用状況に応じて、プロセッサ資源を割込み処理５００とタスク処理６００のそれぞれにバランスよく割り当てることができる。
【図面の簡単な説明】
【００６５】
【図１】本実施形態に係わるストレージシステムのハードウェア構成図である。
【図２】ストレージシステムに要求される割込み処理とタスク処理の発生要因を示す説明図である。
【図３】ストレージシステムの制御処理に関連するタスク処理と割込み処理との対応関係を示す説明図である。
【図４】プロセッサ上で動作する各種機能のブロック図である。
【図５】動作時間割当範囲テーブルの説明図である。
【図６】通常状態動作時間割当テーブルの説明図である。
【図７】制限状態動作時間割当テーブルの説明図である。
【図８】通常状態から制限状態に状態遷移する過程における各処理のタイムチャートである。
【図９】制限状態から通常状態に状態遷移する過程における各処理のタイムチャートである。
【図１０】制限状態における制御処理の優先度を示す説明図である。
【図１１】割込み処理時間計測処理を記述したフローチャートである。
【図１２】タスク処理時間計測処理を記述したフローチャートである。
【図１３】スケジューリング処理を記述したフローチャートである。
【図１４】バランス調整処理を記述したフローチャートである。
【符号の説明】
【００６６】
１０…ストレージシステム  ２０…コントローラ  ２１…プロセッサ  ２２…ローカルメモリ  ２３…データコントローラ  ２４…ホストインターフェース  ２５…ドライブインタフェース  ２６…キャッシュメモリ  ３０…記憶装置  ３１…ディスクドライブ  ２１０…割込み処理動作時間監視部  ２２０…タスク処理動作時間監視部  ２３０…タスクスケジューラ  ２４０…動作時間管理部  ２５０…タイマ処理  ３１０…ライト系割込み処理  ３２０…リード系割込み処理  ３３０…特化コマンド  ３４０…コマンドキュー  ３５０…メインＩ／Ｏ処理タスク  ４１０…ネットワーク系割込み処理  ４２０…ネットワークキュー  ４３０…ネットワーク処理タスク  ５００…割込み処理  ６００…タスク処理
【図１】
2007233847.tif 000003
【図２】
2007233847.tif 000004
【図３】
2007233847.tif 000005
【図４】
2007233847.tif 000006
【図５】
2007233847.tif 000007
【図６】
2007233847.tif 000008
【図７】
2007233847.tif 000009
【図８】
2007233847.tif 000010
【図９】
2007233847.tif 000011
【図１０】
2007233847.tif 000012
【図１１】
2007233847.tif 000013
【図１２】
2007233847.tif 000014
【図１３】
2007233847.tif 000015
【図１４】
2007233847.tif 000016