(57)【要約】【課題】本発明のコンピュータシステムは、ホストから発行されるコマンドとストレージから発行されるコマンドとの、実行頻度を調節することができる。【解決手段】ホスト３に設けられる外部マネージャ４は、ホスト内のコマンド発行部４Ａから発行されるホストコマンドに優先度を設定する。ストレージ１に設けられる内部マネージャ６は、ストレージ内のコマンド発行部７Ａから発行される内部コマンドに優先度を設定する。内部マネージャ６は、ホストコマンドの優先度及び内部コマンドの優先度に基づいて、ホストコマンドの実行頻度と内部コマンドの実行頻度とを調整する。【選択図】図１
2009223863.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータと、前記ホストコンピュータにより利用される複数の記憶制御装置とを備えるコンピュータシステムであって、
前記ホストコンピュータに設けられる第１管理部であって、第１管理テーブルに基づいて、前記ホストコンピュータから発行される第１コマンドに第１優先度を対応付ける第１管理部と、
前記複数の記憶制御装置のうち少なくともいずれか一つの所定の記憶制御装置に設けられ、前記所定の記憶制御装置から発行される第２コマンドと前記ホストコンピュータから発行される前記第１コマンドとをそれぞれ受領する第２管理部であって、（１）第２管理テーブルに基づいて前記第２コマンドに第２優先度を設定し、（２）さらに、前記第１コマンドの実行頻度と前記第２コマンドの実行頻度とを、前記第１優先度と前記第２優先度とに基づいてそれぞれ制御し、（３）さらに、前記第１コマンドまたは前記第２コマンドのうちいずれか所定のコマンドの実行頻度を、予め設定される目標値に一致させるべく、前記第１優先度または前記第２優先度の少なくともいずれか一方を調節する、第２管理部と、
を備えるコンピュータシステム。
【請求項２】
前記第１管理部は、ユーザからの指示に基づいて前記第１管理テーブル及び前記第２管理テーブルをそれぞれ設定し、
前記第２管理部は、前記所定のコマンドの前記実行頻度と前記目標値との差分に基づいて、前記第１管理テーブルの内容及び前記第２管理テーブルの内容をそれぞれ更新させることにより、前記第１優先度または前記第２優先度の少なくともいずれか一方を調節するものである、請求項１に記載のコンピュータシステム。
【請求項３】
前記第２管理部は、前記所定のコマンドの前記実行頻度の変化が少なくなるように、前記第１優先度と前記第２優先度のうちいずれか一方の優先度の値を調節する、請求項１または請求項２のいずれかに記載のコンピュータシステム。
【請求項４】
前記第１管理部は、前記所定のコマンドの前記実行頻度に関する情報をユーザに提示することができる、請求項１〜請求項３のいずれかに記載のコンピュータシステム。
【請求項５】
前記第１管理部は、前記第２管理部から前記所定のコマンドの前記実行頻度に関する情報を取得し、この取得した情報をユーザに提示する、請求項１〜請求項４のいずれかに記載のコンピュータシステム。
【請求項６】
前記第１管理テーブル及び前記第２管理テーブルは、前記第１コマンド及び前記第２コマンドの各コマンド毎に予め優先度の値がそれぞれ対応付けられているコマンド別優先度管理テーブルと、前記優先度の値毎に予め起動比率が対応付けられている優先度別起動比率管理テーブルと、をそれぞれ備えている、請求項１〜請求項５のいずれかに記載のコンピュータシステム。
【請求項７】
前記第２コマンドは、前記所定の記憶制御装置を含む複数の記憶制御装置によって処理される、請求項１〜請求項６のいずれかに記載のコンピュータシステム。
【請求項８】
ホストコンピュータから発行されるコマンドが記憶制御装置内で実行される頻度と前記記憶制御装置内で発行されるコマンドが前記記憶制御装置内で実行される頻度とを制御するためのコマンド実行頻度制御方法であって、
第１管理テーブルに基づいて、前記ホストコンピュータから発行される第１コマンドに第１優先度を対応付けるステップと、
第２管理テーブルに基づいて、前記記憶制御装置から発行される第２コマンドに第２優先度を対応付けるステップと、
前記第１優先度の設定される前記第１コマンドと前記第２優先度の設定される前記第２コマンドとをそれぞれ受領するステップと、
前記第１コマンドの実行頻度と前記第２コマンドの実行頻度とを、前記第１優先度と前記第２優先度とに基づいてそれぞれ制御するステップと、
前記第１コマンドまたは前記第２コマンドのうちいずれか所定のコマンドの実行頻度を、予め設定される目標値に一致させるべく、前記第１優先度または前記第２優先度の少なくともいずれか一方を調節するステップと、
をそれぞれ実行するコマンド実行頻度制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステム及びコマンド実行頻度制御方法に関する。
【背景技術】
【０００２】
例えば、企業等では、多種多量のデータを取り扱うために、比較的大規模な記憶容量を有する記憶制御装置を用いてデータを管理する。記憶制御装置は、例えば、ハードディスク装置のような多数の記憶装置を備えている。記憶制御装置は、ＲＡＩＤ（Redundant Array of Inexpensive Disks）に基づく記憶領域を、ホストコンピュータ（以下、ホスト）に提供することができる。論理ボリュームは、記憶装置の有する記憶領域を使用することにより生成される。ホストは、所望の論理ボリュームを指定してリードコマンドやライトコマンドを発行する。これにより、ホストは、所望の論理ボリュームからデータを読み出したり、所望の論理ボリュームにデータを書き込む。
【０００３】
記憶制御装置は、複数の論理ボリュームを備えており、各論理ボリューム毎にそれぞれ異なる処理を実行可能である。従って、例えば、第１の論理ボリュームから第２の論理ボリュームにデータをコピーさせながら、同時に、ホストから受領したライトデータを第３の論理ボリュームに書き込むことができる。
【０００４】
このため、記憶制御装置内で実行されている他の処理のために、ホストから発行されたコマンドの処理が遅れ、応答性能が低下する可能性がある。この問題に直接関係する技術ではないが、一つの従来技術として、記憶制御装置の有する複数の通信ポートを優先ポートと非優先ポートとに分類し、優先ポートに到着したコマンドを優先的に処理するシステムは知られている（特許文献１）。
【特許文献１】特開２００２−１０８５６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前記従来技術では、優先ポートで受信したコマンドを優先的に処理するため、優先ポートを使用するホストへの応答性能を改善することができる。しかし、従来技術は、ホストと記憶制御装置との間のＩ／Ｏ（Input/Output）制御を行うものであり、記憶制御装置内または記憶制御装置間のＩ／Ｏ制御を行うものではない。
【０００６】
従って、記憶制御装置内で実行される処理、または、複数の記憶制御装置間で実行される処理のために、ホストから発行されるコマンドの処理が遅れてしまい、記憶制御装置の応答性能が低下する場合がある。
【０００７】
本発明は、上記の問題点に鑑みてなされたもので、本発明の目的は、ホストコンピュータから発行されるコマンドの実行頻度と記憶制御装置内で発行されるコマンドの実行頻度とを制御することができるコンピュータシステム及びコマンド実行頻度制御方法を提供することにある。本発明の更なる目的は、後述する実施の形態の記載から明らかになるであろう。
【課題を解決するための手段】
【０００８】
上記課題を解決すべく、本発明の第１観点に従うコンピュータシステムは、ホストコンピュータと、ホストコンピュータにより利用される複数の記憶制御装置とを備えるコンピュータシステムであって、ホストコンピュータに設けられる第１管理部であって、第１管理テーブルに基づいて、ホストコンピュータから発行される第１コマンドに第１優先度を対応付ける第１管理部と、複数の記憶制御装置のうち少なくともいずれか一つの所定の記憶制御装置に設けられ、所定の記憶制御装置から発行される第２コマンドとホストコンピュータから発行される第１コマンドとをそれぞれ受領する第２管理部であって、（１）第２管理テーブルに基づいて第２コマンドに第２優先度を設定し、（２）さらに、第１コマンドの実行頻度と第２コマンドの実行頻度とを、第１優先度と第２優先度とに基づいてそれぞれ制御し、（３）さらに、第１コマンドまたは第２コマンドのうちいずれか所定のコマンドの実行頻度を、予め設定される目標値に一致させるべく、第１優先度または第２優先度の少なくともいずれか一方を調節する、第２管理部と、を備える。
【０００９】
第２観点では、第１観点において、第１管理部は、ユーザからの指示に基づいて第１管理テーブル及び第２管理テーブルをそれぞれ設定し、第２管理部は、所定のコマンドの実行頻度と目標値との差分に基づいて、第１管理テーブルの内容及び第２管理テーブルの内容をそれぞれ更新させることにより、第１優先度または第２優先度の少なくともいずれか一方を調節する。
【００１０】
第３観点では、第１観点または第２観点のいずれかにおいて、第２管理部は、所定のコマンドの実行頻度の変化が少なくなるように、第１優先度と第２優先度のうちいずれか一方の優先度の値を調節する。
【００１１】
第４観点では、第１〜第３観点のいずれかにおいて、第１管理部は、所定のコマンドの実行頻度に関する情報をユーザに提示することができる。
【００１２】
第５観点では、第１〜第４観点のいずれかにおいて、第１管理部は、第２管理部から所定のコマンドの実行頻度に関する情報を取得し、取得した情報をユーザに提示する。
【００１３】
第６観点では、第１〜第５観点のいずれかにおいて、第１管理テーブル及び第２管理テーブルは、第１コマンド及び第２コマンドの各コマンド毎に予め優先度の値がそれぞれ対応付けられているコマンド別優先度管理テーブルと、優先度の値毎に予め起動比率が対応付けられている優先度別起動比率管理テーブルと、をそれぞれ備えている。
【００１４】
第７観点では、第１〜第６観点のいずれかにおいて、第２コマンドは、所定の記憶制御装置を含む複数の記憶制御装置によって処理される。
【００１５】
第８観点に従うコマンド実行頻度制御方法は、ホストコンピュータから発行されるコマンドが記憶制御装置内で実行される頻度と記憶制御装置内で発行されるコマンドが記憶制御装置内で実行される頻度とを制御するためのコマンド実行頻度制御方法であって、第１管理テーブルに基づいて、ホストコンピュータから発行される第１コマンドに第１優先度を対応付けるステップと、第２管理テーブルに基づいて、記憶制御装置から発行される第２コマンドに第２優先度を対応付けるステップと、第１優先度の設定される第１コマンドと第２優先度の設定される第２コマンドとをそれぞれ受領するステップと、第１コマンドの実行頻度と第２コマンドの実行頻度とを、第１優先度と第２優先度とに基づいてそれぞれ制御するステップと、第１コマンドまたは第２コマンドのうちいずれか所定のコマンドの実行頻度を、予め設定される目標値に一致させるべく、第１優先度または第２優先度の少なくともいずれか一方を調節するステップと、をそれぞれ実行する。
【００１６】
本発明の手段、機能、ステップの全部または一部は、コンピュータシステムにより実行されるコンピュータプログラムとして構成可能な場合がある。本発明の構成の全部または一部がコンピュータプログラムから構成された場合、このコンピュータプログラムは、例えば、各種記憶媒体に固定して配布等することができ、あるいは、通信ネットワークを介して送信することもできる。
【発明を実施するための最良の形態】
【００１７】
図１は、本発明の実施形態の全体概要を示す構成説明図である。図１に示す構成は、本発明の理解及び実施に必要な程度で、本発明の概要を示しており、本発明の範囲を図１に示す構成に限定するものではない。
【００１８】
本実施形態では、後述のように、ホスト３内の管理部（外部マネージャ４）とストレージ１内の管理部（内部マネージャ６）とが連携して動作することにより、ホスト３から発行されるコマンドの実行頻度とストレージ１内で発行されるコマンドの実行頻度とを調節する。
【００１９】
図１に示すコンピュータシステムは、例えば、複数のストレージ１，２と、少なくとも一つのホスト３とを備える。なお、図示の構成に代えて、例えば、複数のホスト３と一つのストレージとからコンピュータシステムを構成してもよいし、あるいは、一つのホスト３と、一つのストレージ１と、複数のストレージ２とからコンピュータシステムを構成してもよい。
【００２０】
ストレージ１，２は「記憶制御装置」に該当する。また、ストレージ１は「所定の記憶制御装置」に該当する。さらに、後述の外部マネージャ４は「第１管理部」に、内部マネージャ６は「第２管理部」に、それぞれ該当する。
【００２１】
先にホスト３の構成から説明する。ホスト３は、例えば、サーバコンピュータのようなコンピュータ装置として構成されており、マイクロプロセッサやメモリ等のコンピュータ資源を備えている。ホスト３は、例えば、外部マネージャ４と、アプリケーションプログラム５とを備える。このほかに、ホスト３は、オペレーティングシステムや各種ドライバ等のコンピュータプログラムを備える。
【００２２】
本実施形態では、第１ストレージ１をコンピュータシステムの中心として考える。従って、第１ストレージ１の外部に設けられている管理機能を外部マネージャ４と呼び、第１ストレージ１内に設けられている管理機能を内部マネージャ６と呼ぶ。
【００２３】
アプリケーションプログラム５は、例えば、顧客管理プログラム、電子メール管理プログラム、売上げ管理プログラム、文書管理プログラム等のような各種アプリケーション用のプログラムである。ホスト３には複数のアプリケーションプログラム５を設けることができるが、説明の便宜上、一つだけ示す。なお、図１の例では、アプリケーションプログラム５は、ストレージ１内の論理ボリューム８Ａを使用するものとする。
【００２４】
外部マネージャ４は、例えば、コマンド発行部４Ａと、優先度設定部４Ｂと、管理テーブル４Ｃと、テーブル設定部４Ｄとを備える。コマンド発行部４Ａは、アプリケーションプログラム５からの要求に対応する一つまたは複数のコマンドを発行する。
【００２５】
例えば、アプリケーションプログラム５が論理ボリューム８Ａ内のデータの読み出しを要求する場合、コマンド発行部４Ａは、ストレージ１内の論理ボリューム８Ａに向けて、リードコマンドを発行する。例えば、アプリケーションプログラム５が論理ボリューム８Ａへのデータの書込みを要求する場合、コマンド発行部４Ａは、論理ボリューム８Ａに向けてライトコマンドを発行する。
【００２６】
優先度設定部４Ｂは、コマンド発行部４Ａから発行される各種コマンドについて、優先度をそれぞれ設定する。「第１管理テーブル」としての管理テーブル４Ｃは、例えば、複数のテーブルを含んで構成することができる。
【００２７】
例えば、管理テーブル４Ｃを構成する一つのテーブルには、各コマンドの種別毎に優先度が予め対応付けられている。管理テーブル４Ｃを構成する別の一つのテーブルには、各優先度毎の起動比率が予め対応付けられている。例えば、優先度が高くなるほど起動比率が大きくなるように設定される。つまり、優先されるべきコマンドの起動比率は高く設定される。
【００２８】
このように構成される管理テーブル４Ｃを参照することにより、各コマンドに設定されている優先度を検出することができ、その優先度に設定されている起動比率を得ることができる。つまり、管理テーブル４Ｃを用いることにより、各コマンド別の起動比率が求められる。
【００２９】
なお、第１ストレージ１の内部マネージャ６に設けられている管理テーブル６Ｄも、管理テーブル４Ｃと同様に、各コマンド別の優先度を管理するためのテーブルと、各優先度毎に起動比率を管理するためのテーブルとが設けられている。各管理テーブル４Ｃ，６Ｄには、コンピュータシステム内で使用される全てのコマンドについて、それぞれの優先度が設定されている。
【００３０】
テーブル設定部４Ｄは、ユーザからの指示に基づいて、各管理テーブル４Ｃ，６Ｄをそれぞれ設定する。ユーザは、例えば、各優先度毎の起動比率を外部マネージャ４に手動で入力することができる。テーブル設定部４Ｄは、ユーザの指示に応じて管理テーブル４Ｃを設定し、さらに、管理テーブル６Ｄも設定する。
【００３１】
また、テーブル設定部４Ｄは、内部マネージャ６からの要求に基づいて、管理テーブル４Ｃの内容を再設定する。つまり、後述のように、内部マネージャ６が所定のコマンドに設定されている優先度の変更を要求すると、テーブル設定部４Ｄは、管理テーブル４Ｃの内容を更新させる。
【００３２】
ストレージ１，２について説明する。ストレージ１，２とホスト３とは、例えば、ＦＣ＿ＳＡＮ（Fibre Channel_Storage Area Network）やＩＰ＿ＳＡＮ（Internet Protocol_SAN）等の通信ネットワークを介して接続される。なお、ＩＰ＿ＳＡＮには、例えば、ｉＳＣＳＩ（internet Small Computer System Interface）やＦＣｏＥ（Fibre Channel over Ethernet（Ethernetは登録商標））が含まれる。
「記憶制御装置」としてのストレージ１，２は、例えば、コントローラと、コントローラによって制御される複数の記憶装置とを備えて構成される。コントローラの提供する機能には、例えば、内部マネージャ６及びバックアップ処理部７がある。
【００３３】
記憶装置としては、例えば、ハードディスク装置、半導体メモリ装置、光ディスク装置、光磁気ディスク装置、磁気テープ装置、フレキシブルディスク装置等の、データを読み書き可能な種々の装置を利用可能である。記憶装置としてハードディスク装置を用いる場合、例えば、ＦＣ（Fibre Channel）ディスク、ＳＣＳＩ（Small Computer System Interface）ディスク、ＳＡＴＡディスク、ＡＴＡ（AT Attachment）ディスク、ＳＡＳ（Serial Attached SCSI）ディスク等を用いることができる。
【００３４】
記憶装置として半導体メモリ装置を用いる場合、例えば、フラッシュメモリ、ＦｅＲＡＭ（Ferroelectric Random Access Memory）、ＭＲＡＭ（MagnetoresistiveRandom Access Memory）、相変化メモリ（Ovonic Unified Memory）、ＲＲＡＭ（Resistance RAM）」等の種々のメモリ装置を利用可能である。
【００３５】
記憶装置の有する物理的記憶領域上に、論理ボリューム８Ａ，８Ｂが形成される。論理ボリューム８Ａ，８Ｂは、例えば、ＲＡＩＤ５やＲＡＩＤ６のような冗長化された物理的記憶領域上に設けることができる。なお、以下の説明では、「論理ボリューム」を「ボリューム」と略記する場合がある。
【００３６】
内部マネージャ６は、例えば、起動順序制御部６Ａと、コマンド実行部６Ｂと、優先度更新部６Ｃと、管理テーブル６Ｄと、優先度設定部６Ｅとを備えている。起動順序制御部６Ａは、各コマンドに対応付けられる起動比率に基づいて、各コマンドの実行を制御するものである。例えば、起動比率が６０％のコマンドＣ１と、起動比率がそれぞれ２０％ずつのコマンドＣ２，Ｃ３とがある場合、起動順序制御部６Ａは、コマンドＣ１が１０回に６回の頻度で実行され、各コマンドＣ２，Ｃ３が１０回に２回ずつの頻度で実行されるように、制御する。
【００３７】
コマンド実行部６Ｂは、起動順序制御部６Ａによって選択されたコマンドを実行する機能である。説明の便宜上一つのみ示すが、コマンド実行部６Ｂは、各コマンド毎にそれぞれ用意することができる。
【００３８】
優先度設定部６Ｅは、ストレージ１の内部で発行されるコマンドに、優先度を設定するための機能である。優先度設定部６Ｅは、管理テーブル６Ｄに基づいて、ストレージ１内部で発行されるコマンドに所定の優先度を設定する。
【００３９】
上述の通り、本実施例では、ホスト３から発行されるコマンドと、ストレージ１内で発行されるコマンドとの２種類のコマンドが実行される。ホスト３から発行されるコマンドは「第１コマンド」に該当し、ストレージ１内で発行されるコマンドは「第２コマンド」に該当する。以下の説明では、理解を容易にするために、ホスト３から発行されるコマンドを「ホストコマンド」と、ストレージ１内部で発行されるコマンドを「内部コマンド」と、それぞれ呼ぶことにする。
【００４０】
内部コマンドとして、本実施例では、バックアップ処理部７で使用されるコマンドを例に挙げる。本実施例では、例えば、ストレージ１内の論理ボリューム８Ｂとストレージ２内の論理ボリューム８Ｃとの間でデータをコピーするためのコマンドが、コマンド発行部７Ａから発行される。
【００４１】
上述の通り、管理テーブル６Ｄには、各コマンド毎に優先度が予めそれぞれ設定されている。そこで、優先度設定部６Ｅは、管理テーブル６Ｄを参照することにより、コマンド発行部７Ａから発行される内部コマンドに優先度を設定する。
【００４２】
起動順序制御部６Ａは、ホスト３から受信したホストコマンドとバックアップ処理部７から受領した内部コマンドとのそれぞれの実行頻度（起動順序）を、ホストコマンドの優先度（第１優先度）と内部コマンドの優先度（第２優先度）とに基づいて制御する。
【００４３】
優先度更新部６Ｃは、例えば、内部コマンドの実行頻度が予め設定される目標値に一致するように、ホストコマンドに設定される優先度または内部コマンドに設定される優先度のいずれか又は双方を調整する。
【００４４】
例えば、内部コマンドの実行頻度が目標値に達していない場合、優先度更新部６Ｃは、内部コマンドの優先度を上げるか、あるいは、ホストコマンドの優先度を下げることができる。例えば、内部コマンドの実行頻度が目標値を超えている場合、優先度更新部６Ｃは、内部コマンドの優先度を下げるか、あるいは、ホストコマンドの優先度を上げることができる。
【００４５】
なお、優先度更新部６Ｃは、ホストコマンドの実行頻度が目標値に一致するように、ホストコマンドの優先度または内部コマンドの優先度のいずれか又は両方を調整することも可能である。
【００４６】
後述の実施例で明らかとなるように、優先度更新部６Ｃは、制御対象のコマンドの実行頻度が急激に変化しないように、ホストコマンドの優先度または内部コマンドの優先度のいずれか又は両方を変化させることができる。
【００４７】
第１ストレージ１は、複数の論理ボリューム８Ａ，８Ｂを備えている。一方の論理ボリューム８Ａは、ホスト３に提供されている。アプリケーションプログラム５は、論理ボリューム８Ａにアクセスして、データの読み書きを行う。
【００４８】
他方の論理ボリューム８Ｂは、第２ストレージ２内の論理ボリューム８Ｃとコピーペアを形成する。バックアップ処理部７は、定期的に又は不定期に、論理ボリューム８Ｂの記憶内容と論理ボリューム８Ｃの記憶内容との差分データを、論理ボリューム８Ｂから論理ボリューム８Ｃに転送させる。これにより、論理ボリューム８Ｂの記憶内容と論理ボリューム８Ｃの記憶内容は一致する。
【００４９】
ホスト３による論理ボリューム８Ａへのアクセス処理と、各論理ボリューム８Ｂ，８Ｃ間のコピー処理とは、全く無関係とする構成でもよいし、両方の処理が関連を有する構成でもよい。
【００５０】
例えば、論理ボリューム８Ａを正ボリューム、論理ボリューム８Ｂを副ボリューム、論理ボリューム８Ｃをバックアップボリュームとして使用することもできる。論理ボリューム８Ａの記憶内容は、副ボリュームである論理ボリューム８Ｂにも記憶される。さらに、論理ボリューム８Ｂの記憶内容を、第２ストレージ２内の論理ボリューム８Ｃにコピーさせる。これにより、データのバックアップを複数設けることができ、耐障害性を向上させることができる。
【００５１】
本実施例によるコンピュータシステムは、以下のように動作する。アプリケーションプログラム５からの要求に応じてホストコマンドが発行される場合、優先度設定部４Ｂは、管理テーブル４Ｃを参照して、そのホストコマンドに優先度を設定する。管理テーブル４Ｃ，６Ｄには、各ホストコマンド及び各内部コマンドのそれぞれに関する優先度と、各優先度毎の起動比率とが管理されている。コマンド発行部４Ａは、優先度の設定されたホストコマンドを第１ストレージ１に送信する。
【００５２】
第１ストレージ１の内部では、バックアップ処理部７が、バックアップスケジュールに基づいて、バックアップ用の内部コマンドを発行する。優先度設定部６Ｅは、管理テーブル６Ｄを参照することにより、その内部コマンドに優先度を設定する。コマンド発行部７Ａは、優先度の設定された内部コマンドを内部マネージャ６に送信する。
【００５３】
起動順序制御部６Ａは、ホストコマンド及び内部コマンドをそれぞれ受信し、待機キューに格納させる。起動順序制御部６Ａは、ホストコマンドの優先度と内部コマンドの優先度とに基づいて、待機キューからホストコマンド又は内部コマンドを所定の頻度で取り出し、コマンド実行部６Ｂに引き渡す。コマンドの実行結果は、そのコマンドの発行元に送信される。
【００５４】
優先度更新部６Ｃは、ホストコマンドまたは内部コマンドのうち制御対象のコマンドの実行頻度が目標値に一致するか否かを監視している。優先度更新部６Ｃは、制御対象コマンドの実行頻度が目標値と一致しない場合、または、ユーザから指示があった場合、のいずれかの場合に、ホストコマンドの優先度または内部コマンドの優先度のいずれか一方又は両方を変更させる。優先度更新部６Ｃからの要求によって、各管理テーブル４Ｃ，６Ｄの内容はそれぞれ更新される。
【００５５】
このように構成される本実施形態では、外部マネージャ４と内部マネージャ６とが連携して動作することにより、ホストコマンドの実行頻度と内部コマンドの実行頻度とを自動的に調整することができる。従って、バックアップ処理のようなバックグラウンドで行われる処理によって、ホストコマンドに関する応答性能が低下するのを抑制でき、サービス品質の低下を防止して、使い勝手を改善することができる。以下、本実施形態を詳細に説明する。
【実施例１】
【００５６】
図２は、本実施例によるコンピュータシステムの全体概要を示す説明図である。先に図１との対応関係について説明すると、第１ストレージ１０は図１中の第１ストレージ１に、第２ストレージ２０は図１中の第２ストレージ２に、ホスト３０は図１中のホスト３に、それぞれ対応する。
【００５７】
このコンピュータシステムは、例えば、第１ストレージ１０と、第２ストレージ２０と、ホスト３０と、管理サーバ４０とを備えている。各ストレージ１０，２０とホスト３０とは、第１通信ネットワークＣＮ１０を介して相互通信可能に接続されている。第１ストレージ１０と第２ストレージ２０とは、第２通信ネットワークＣＮ２０を介して相互通信可能に接続される。第１通信ネットワークＣＮ１及び第２通信ネットワークＣＮ２０は、例えば、ＦＣ＿ＳＡＮやＩＰ＿ＳＡＮのように構成される。管理サーバ４０と、各ストレージ１０，２０及びホスト３０とは、第３通信ネットワークＣＮ３０を介して相互通信可能に接続されている。第３通信ネットワークＣＮ３０は、例えば、ＬＡＮ（Local Area Network）のように構成することができる。なお、第１通信ネットワークＣＮ１０のみで、各ストレージ１０，２０と、ホスト３０と、管理サーバ４０とを相互通信可能に接続する構成でもよい。
【００５８】
ホスト３０は、例えば、マイクロプロセッサ３１と、メモリ３２と、Ｉ／Ｏ用通信インターフェース３３と、管理用通信インターフェース３４と、補助記憶装置３５とを備えて構成される。
【００５９】
管理サーバ４０は、コンピュータシステムの状態を管理する装置である。管理サーバ４０は、例えば、マイクロプロセッサやメモリ及び通信インターフェース等を含んで構成されており、各ストレージ１０，２０やホスト３０の状態を監視する。監視対象の情報としては、例えば、キャッシュメモリ使用量、ボリューム使用量、Ｉ／Ｏ量等を挙げることができる。
【００６０】
第１ストレージ１０は、例えば、コントローラ１００と記憶装置搭載部１２０（以下、ＨＤＵ１２０）とを備えている。コントローラ１００は、ストレージ装置１０の動作を制御するものである。コントローラ１００は、例えば、チャネルアダプタ１１０（以下、ＣＨＡ１１０）と、ディスクアダプタ１１１（以下、ＤＫＡ１１１）と、キャッシュメモリ１１２（図中、ＣＭ）と、共有メモリ（図中、ＳＭ）１１３と、接続制御部（図中、ＳＷ）１１４と、サービスプロセッサ１１５（以下、ＳＶＰ１１５）とを備える。
【００６１】
ＣＨＡ１１０は、ホスト３０または第２ストレージ２０との間でデータ通信を行う装置である。ＣＨＡ１１０は、少なくとも一つ以上の通信ポートを備える。通信ポートには、例えば、ＩＰ（Internet Protocol）アドレスやＷＷＮ（World Wide Name）のようなネットワークアドレスが対応付けられている。
【００６２】
ＤＫＡ１１１は、ＨＤＵ１２０が有するディスクドライブ１２１との間でデータ授受を行う装置である。ＤＫＡ１１１は、ＣＨＡ１１０と同様に、ＣＰＵやメモリ等を備えたマイクロコンピュータシステムとして構成される。ＤＫＡ１１１は、例えば、ＣＨＡ１１０がホスト３０から受信したデータを、所定のディスクドライブ１２１に書込む。また、ＤＫＡ１１１は、所定のディスクドライブ１２１からデータを読み出し、ホスト３０または第２ストレージ２０に送信することもできる。ＤＫＡ１１１は、ディスクドライブ１２１との間でデータ入出力を行う場合、論理的なアドレス（LBA：Logical Block Address））を物理的なアドレスに変換する。
【００６３】
ＤＫＡ１１１は、ディスクドライブ１２１がＲＡＩＤに従って管理されている場合、ＲＡＩＤ構成に応じたデータアクセスを行う。例えば、ＤＫＡ１１１は、同一のデータを別々のディスクドライブ群（ＲＡＩＤグループ）にそれぞれ書き込んだり（ＲＡＩＤ１）、あるいは、パリティ計算を実行して、データ及びパリティをディスクドライブ群に書き込む（ＲＡＩＤ５、ＲＡＩＤ６等）。
【００６４】
キャッシュメモリ１１２は、ホスト３０または第２ストレージ２０から受信したデータを記憶する。また、キャッシュメモリ１１２は、ディスクドライブ１２１から読み出されたデータを記憶する。
【００６５】
共有メモリ１１３には、第１ストレージ１０の作動に使用するための各種制御情報等が格納される。また、共有メモリ１１３には、ワーク領域が設定されるほか、後述する各種テーブル類も格納される。
【００６６】
なお、ディスクドライブ１２１のいずれか一つあるいは複数を、キャッシュ用のディスクとして使用してもよい。また、キャッシュメモリ１１２と共有メモリ１１３とは、それぞれ別々のメモリとして構成することもできるし、同一のメモリの一部の記憶領域をキャッシュ領域として使用し、他の記憶領域を制御領域として使用することもできる。
【００６７】
接続制御部１１４は、各ＣＨＡ１１０，各ＤＫＡ１１１，キャッシュメモリ１１２及び共有メモリ１１３を相互に接続させる。接続制御部１１４は、例えば、クロスバスイッチ等として構成される。
【００６８】
ＨＤＵ１２０は、複数のディスクドライブ１２１を備える。ディスクドライブ１２１としては、例えば、ハードディスクドライブ、フラッシュメモリデバイス、フレキシブルディスクドライブ、磁気テープドライブ、半導体メモリドライブ、光ディスクドライブ等のような各種記憶装置及びこれらの均等物を用いることができる。
【００６９】
例えば、複数のディスクドライブ１２１の物理的記憶領域を一つにまとめてＲＡＩＤグループ１２２を構成することができる。このＲＡＩＤグループ１２２の物理的記憶領域に、固定サイズまたは可変サイズの論理ボリューム１２３を少なくとも一つ以上設けることができる。なお、一つのディスクドライブ１２１の物理的記憶領域に一つまたは複数の論理ボリューム１２３を設けることもできる。図中では、論理ボリュームを「ＬＤＥＶ（Logical DEVice）」と表示する場合がある。
【００７０】
ＳＶＰ１１５は、ＬＡＮ等の内部ネットワークを介して、各ＣＨＡ１１０とそれぞれ接続されている。ＳＶＰ１１５は、ＣＨＡ１１０を介して、共有メモリ１１３やＤＫＡ１１１とデータ授受を行うことができる。ＳＶＰ１１５は、第１ストレージ１０内の各種情報を収集し、管理サーバ４０に提供する。
【００７１】
第２ストレージ２０も第１ストレージ１０と同様に構成可能である。第２ストレージ２０は、コントローラ２００とＨＤＵ２２０とを備える。ＨＤＵ２２０は、複数のディスクドライブ２２１を備えている。論理ボリューム２２３は、ディスクドライブ２２１の有する物理的記憶領域を利用して生成される。
【００７２】
第１ストレージ１０と第２ストレージ２０とは、同一構成としてもよいし、異なる構成であってもよい。例えば、第１ストレージ１０と第２ストレージ２０とが、ベンダ、機種、型式、キャッシュメモリサイズ等の点で異なっている場合でも、本発明を適用することができる。
【００７３】
図３は、外部マネージャ３０１と内部マネージャ１０１の構成をそれぞれ簡略化して示す説明図である。上述の通り、本実施例では、ストレージ装置をコンピュータシステムの中心に据えているため、ストレージ１０，２０の外部に位置する管理機能を外部マネージャと呼び、ストレージ内の管理機能を内部マネージャと呼ぶ。
【００７４】
「第１管理部」としての外部マネージャ３０１は、例えば、コマンド優先度管理テーブルＴ３０と、起動比率管理テーブルＴ３１と、コピー完了時間Ｔ３２とを備える。これらの各テーブルＴ３０〜Ｔ３２は「第１管理テーブル」に該当する。各テーブルＴ３０〜Ｔ３１の詳細は、図５と共に後述する。
【００７５】
「第２管理部」としての内部マネージャ１０１は、コントローラ１００内に設けられている。内部マネージャ１０１は、例えば、コマンド優先度管理テーブルＴ１０と、起動比率管理テーブルＴ１１と、目標値管理テーブルＴ１２とを備える。コントローラ１００は、コピー管理テーブルＴ１３及びボリューム管理テーブルＴ１４を備える。各テーブルＴ１０〜Ｔ１４の詳細は、図６，図７と共に後述する。
【００７６】
図４は、ホストコマンドの起動比率（実行頻度）と内部コマンドの起動比率（実行頻度）とが段階的に調整されていく様子を示す説明図である。ここで、ホストコマンドとは、ホスト３０から発行されるコマンドを意味する。内部コマンドとは、ストレージ装置の内部で発行されるコマンドを意味する。内部コマンドは、例えば、第１ストレージ１０内で発行される。
【００７７】
図４では、リモートコピーを例に挙げて説明する。リモートコピーとは、一方のストレージから他方のストレージにデータをコピーさせる処理である。これにより、物理的に離れた複数のストレージ内に同一のデータを保持させることができる。
【００７８】
リモートコピーは、初期コピー（形成コピー）と、更新コピーとに大別される。初期コピーは、リモートコピーのペアを形成する複数の論理ボリューム間において、記憶内容を同一にする処理である。つまり、初期コピーとは、コピー元ボリュームに記憶されている全ブロックデータを、コピー先ボリュームに転送して記憶させる処理である。更新コピーとは、初期コピー完了後に生じたライトデータをコピー元ボリューム及びコピー先ボリュームの両方に書き込む処理である。
【００７９】
図４（ａ）では、第１ストレージ１０内の第１ボリューム１２３（ＰＶＯＬ１）から第２ストレージ２０内の第２ボリューム２２３（ＳＶＯＬ２）に向けてデータがコピーされている。つまり、ボリューム１２３（ＰＶＯＬ１）がコピー元ボリューム、ボリューム２２３（ＳＶＯＬ２）がコピー先ボリュームであり、コピー元ボリューム（ＰＶＯＬ１）からコピー先ボリューム（ＳＶＯＬ２）に向けて初期コピーが実行されている。
【００８０】
図４（ｂ）では、初期コピーの途中で、別のリモートコピーペア（ＰＶＯＬ２とＳＶＯＬ１）について更新コピーが実行されている。ホスト３０から送信された更新データは、第１ストレージ１０内の第２ボリューム（ＰＶＯＬ２）と、第２ストレージ２０内の第１ボリューム（ＳＶＯＬ１）とにそれぞれ書き込まれる。もしも、初期コピーに関するコマンドの優先度が高い場合、ストレージ１０，２０の各種資源（キャッシュメモリ量や通信帯域等）の多くが初期コピーのために使用される。この場合、更新コピーに割り当てられる資源の量は少なくなり、応答性能は低下する。
【００８１】
図４（ｃ）では、初期コピーの優先度を低下させることにより、あるいは、更新コピーの優先度を上げることにより、初期コピーの起動比率と更新コピーの起動比率とを調節している。
【００８２】
なお、図４では、更新コピーがホストコマンドによって実行され、初期コピーが内部コマンドにより実行される場合を例に挙げたが、これとは逆に、更新コピーを内部コマンドにより実行し、初期コピーをホストコマンドにより実行することもできる。さらに、リモートコピーに限らず、例えば、データマイグレーション処理等にも適用できる。データマイグレーション処理とは、例えば、データの価値の変動に応じて、そのデータの記憶先を変更する処理である。
【００８３】
図５は、外部マネージャ３０１によって使用される各テーブルＴ３０〜Ｔ３１の構成例を示す説明図である。
【００８４】
コマンド優先度管理テーブルＴ３０は、各コマンド別にそれぞれ対応付けられる優先度を管理するテーブルである。コマンド優先度管理テーブルＴ３０は、例えば、各コマンドを識別するためのコマンド欄Ｃ３００と、各コマンドに設定される優先度を示す優先度欄Ｃ３０１とを備える。
【００８５】
コマンド欄Ｃ３００には、ホストコマンド及び内部コマンドがそれぞれ登録される。コマンド欄Ｃ３００には、コンピュータシステム内で使用される全てのホストコマンド及び全ての内部コマンドを事前に登録することができる。つまり、コンピュータシステム内で使用される全てのコマンドについて、予め優先度を設定する構成でもよい。これに代えて、コマンド欄Ｃ３００に一部のホストコマンド及び一部の内部コマンドのみを事前に登録する構成でもよい。この場合、コマンド欄Ｃ３００に登録されていないコマンドには、初期値として予め用意されている優先度を用いる構成とすればよい。
【００８６】
優先度欄Ｃ３０１には、例えば、Ｐ０〜Ｐ１５の１６段階で優先度が設定される。本実施例では、優先度の値が小さくなるほど優先して実行される。なお、１６段階に限らず、１６未満または１７以上の段階で優先度を設定する構成でもよい。
【００８７】
起動比率管理テーブルＴ３１は、各優先度毎の起動比率を管理するテーブルである。この管理テーブルＴ３１は、例えば、優先度が設定される優先度欄Ｃ３１０と、起動比率が設定される起動比率欄Ｃ３１１とを備えている。
【００８８】
コピー完了時間Ｔ３２は、コピー処理に要する時間ｔｃを管理する。コピー完了に要する時間であるから、コピー所要時間とも呼ぶ。コピー処理としては、例えば、初期コピー、バックアップコピー等を挙げることができる。コピー所要時間ｔｃは、例えば、ユーザによって設定される。例えば、コピー処理の開始から８時間以内にコピー処理の終了を希望するユーザは、コピーｔｃとして８時間を設定する。
【００８９】
図６は、内部マネージャ１０１により使用される各テーブルＴ１０〜Ｔ１２の構成例を示す説明図である。コマンド優先度管理テーブルＴ１０は、コマンド優先度管理テーブルＴ３０と同様に、各コマンドを識別するためのコマンド欄Ｃ１００と、各コマンド毎の優先度を示す優先度欄Ｃ１０１とを備える。この管理テーブルＴ１０は、外部マネージャ３０１により使用される管理テーブルＴ３０と同一構成である。つまり、本実施例では、先に管理テーブルＴ３０が作成され、管理テーブルＴ３０の内容が外部マネージャ３０１から内部マネージャ１０１に送信される。これにより、内部マネージャ１０１は、管理テーブルＴ３０と同一内容の管理テーブルＴ１０を作成する。
【００９０】
起動比率管理テーブルＴ１１は、各優先度毎の起動比率をそれぞれ管理するテーブルである。この管理テーブルＴ１１は、各優先度を示す優先度欄Ｃ１１０と、各優先度毎の起動比率を示す起動比率欄Ｃ１１１とを備える。図６に示す起動比率管理テーブルＴ１１は、図５に示す管理テーブルＴ３１と同一である。
【００９１】
目標値管理テーブルＴ１２は、制御対象の処理（制御対象のコマンド）についての目標値を管理するテーブルである。本実施例では、コピーコマンドを制御対象にする場合を説明する。目標値管理テーブルＴ１２は、例えば、コピー対象のトラック数ＬＴを示す欄Ｃ１２０と、目標コピー速度ＶＣＳを示す欄Ｃ１２１と、実測されたコピー速度ＶＣＡを示す欄Ｃ１２２とを備えている。目標コピー速度ＶＣＳは、コピー対象の全トラック数をコピー完了時間ｔｃで除算することにより、求めることができる。後述のように、内部マネージャ１０１は、目標値管理テーブルＴ１２を用いることにより、コマンドの優先度を変更させる。
【００９２】
図７は、第１ストレージ１０内の第１コントローラ１００に記憶されている、他の管理テーブルＴ１３，Ｔ１４の構成例を示す。コピー管理テーブルＴ１３は、論理ボリューム間のコピーを管理するためのテーブルである。
【００９３】
コピー管理テーブルＴ１３は、例えば、各コピーペアを識別するための番号欄Ｃ１３０と、コピー元ボリュームを識別するためのコピー元ボリューム欄Ｃ１３１と、コピー先ボリュームを識別するためのコピー先ボリューム欄Ｃ１３２と、差分を管理するための情報を識別するための差分管理欄Ｃ１３３と、コピーペアの状態を示すための状態欄Ｃ１３４と、その他の欄Ｃ１３５とを備えて構成することができる。
【００９４】
差分管理欄Ｃ１３３は、コピー元ボリュームとコピー先ボリュームとの間の差分データを管理するための情報を特定する。差分データを管理するための情報としては、例えば、差分ビットマップ等を挙げることができる。
【００９５】
その他の欄Ｃ１３５では、例えば、コピーの進捗状況やコピー開始時刻、終了予定時刻等を管理することができる。
【００９６】
ボリューム管理テーブルＴ１４は、第１ストレージ１０及び第２ストレージ２０の有する論理ボリュームを管理するためのテーブルである。本実施例では、第１ストレージ１０が代表ストレージとして、第２ストレージ２０内の論理ボリューム２２３も一緒に管理する場合を説明する。
【００９７】
ボリューム管理テーブルＴ１４は、例えば、番号欄Ｃ１４０と、ＬＵＮ欄Ｃ１４１と、サイズ欄Ｃ１４２と、ＶＤＥＶ番号欄Ｃ１４３と、ＰＤＥＶ番号欄Ｃ１４４と、アクセス経路情報欄Ｃ１４５と、その他の欄Ｃ１４６とを備える。
【００９８】
ＬＵＮ欄Ｃ１４１は、各論理ボリュームに対応付けられるＬＵＮ（Logical Unit Number）を管理する。サイズ欄Ｃ１４２は、各論理ボリュームの記憶容量を管理する。ＶＤＥＶ欄Ｃ１４３は、各論理ボリュームが対応付けられている中間記憶デバイス（ＶＤＥＶ：Virtual DEVice）を管理する。ＰＤＥＶ欄Ｃ１４４は、各論理ボリュームが対応付けられている物理的記憶デバイス（ＰＤＥＶ：Physical DEVice）を管理する。アクセス経路情報欄Ｃ１４５は、論理ボリュームにアクセスするための経路を管理する。
【００９９】
中間記憶デバイスとは、図２に示すＲＡＩＤグループ１２２が該当する。物理的記憶デバイスとは、図２に示すディスクドライブ１２１が該当する。中間記憶デバイス１２２は、物理的記憶デバイス１２１の有する物理的記憶領域を仮想化したものである。この仮想化された物理的記憶領域の一部を利用して、論理ボリューム１２３が形成される。
【０１００】
ここで、後述のように、第１ストレージ１０内には、２種類の中間記憶デバイス１２２を設けることができる。一つの種類の中間記憶デバイス１２２は、第１ストレージ１０内のディスクドライブ１２１に直接対応付けられている。ディスクドライブ１２１に直接対応付けられている中間記憶デバイス１２２を用いて生成される論理ボリューム１２３を、内部ボリュームと呼ぶことができる。
【０１０１】
他の一つの種類の中間記憶デバイス１２２は、図１６に示すように、第２ストレージ２０内の論理ボリューム２２３に対応付けられており、第１ストレージ１０内のディスクドライブ１２１とは無関係である。第１ストレージ１０の外部に存在する論理ボリューム２２３に対応付けられる中間記憶デバイス１２２を用いて生成される論理ボリューム１２３Ｖを、外部ボリュームと呼ぶことができる。
【０１０２】
外部ボリューム１２３Ｖは、中間記憶デバイス１２２を介して、第２ストレージ２０内の論理ボリューム２２３に対応付けられる。外部ボリューム１２３Ｖ内のデータは、実際には、その外部ボリューム１２３Ｖに対応する論理ボリューム２２３を構成するディスクドライブ２２１に記憶されている。
【０１０３】
第１ストレージ１０の第１コントローラ１００が、外部ボリューム１２３Ｖを書込先とするライトコマンドをホスト３０から受信した場合を説明する。第１コントローラ１００は、ボリューム管理テーブルＴ１４を参照して、書込先を第２ストレージ２０内の論理ボリューム２２３に変更する。そして、第１コントローラ１００は、その論理ボリューム２２３にアクセスするための経路を特定し、その論理ボリューム２２３に向けてライトコマンド及びライトデータを送信する。第２ストレージ２０の第２コントローラ２００は、第１コントローラ１００から受信したライトデータをキャッシュメモリに記憶し、そのライトデータを論理ボリューム２２３に書き込む。
【０１０４】
第１コントローラ１００が、外部ボリューム１２３Ｖを読出し先とするリードコマンドをホスト３０から受信した場合、第１コントローラ１００は、外部ボリューム１２３Ｖに対応する論理ボリューム２２３からデータを読み出して、ホスト３０に送信する。
【０１０５】
このように、第１ストレージ１０は、第２ストレージ２０の有する記憶資源（論理ボリューム２２３）を、それがあたかも第１ストレージ１０の内部ボリュームであるかのようにホスト３０に見せかけることができ、実際、内部ボリュームであるかのように使用することができる。第１ストレージ１０が内部ボリューム１２３に提供する各種の機能は、外部ボリューム１２３Ｖにも同様にして提供される。
【０１０６】
図８は、リモートコピー処理の動作を示すフローチャートである。第１ストレージ１０をコピー元ストレージ、第２ストレージ２０をコピー先ストレージとする。第１ストレージ１０内の論理ボリューム１２３が正ボリューム（コピー元ボリューム）であり、第２ストレージ２０内の論理ボリューム２２３が副ボリューム（コピー先ボリューム）であるとする。なお、説明の便宜上、コピー元ボリュームは、第１ストレージ１０の内部ボリューム１２３であるとする。
【０１０７】
以下に示す各フローチャートは、本発明の理解及び実施に必要な範囲で各処理の概要をそれぞれ示しており、実際のコンピュータプログラムと相違する可能性がある。また、いわゆる当業者であれば、図示されたステップの変更や削除、順番の入れ替え、新たなステップの追加を容易に行うことができるであろう。
【０１０８】
まず最初に、初期コピーが実行される（Ｓ１０，Ｓ１１，Ｓ２０）。第１ストレージ１０の第１コントローラ１００は、正ボリューム１２３の記憶内容を第２ストレージ２０に転送する（Ｓ１０）。第２ストレージ２０の第２コントローラ２００は、第１ストレージ１０から受信したデータを副ボリューム２２３に記憶させる（Ｓ２０）。正ボリューム１２３に記憶されている全データを副ボリューム２２３に書き込むまで、Ｓ１０，Ｓ２０が繰り返し実行される（Ｓ１１）。
【０１０９】
初期コピーが完了すると（S11:YES）、ホスト３０からの更新に応じて（S12:YES）、更新コピーが実行される。第１コントローラ１００は、ホスト３０から受信したデータをキャッシュメモリ１１２に記憶させた後で（Ｓ１３）、ホスト３０に更新完了を報告する（Ｓ１４）。即ち、正ボリューム１２３に対応するディスクドライブ１２１にデータを記憶させる前に、ホスト３０に処理完了を報告する。ディスクドライブ１２１へのデータの書込みは、別のタイミングで行われる。このような非同期式の処理に代えて、ホスト３０から受信したデータをディスクドライブ１２１に書き込んだ後で、ホスト３０に処理完了を報告する構成でもよい。
【０１１０】
第１コントローラ１００は、正ボリューム１２３に書き込まれたデータについて、差分管理を行う（Ｓ１５）。差分管理とは、初期コピーの完了後に生じた差分データの位置等を管理する処理である。
【０１１１】
第１コントローラ１００は、所定のタイミングで、更新データを副ボリューム２２３に送信する（Ｓ１６）。第２コントローラ２００は、更新データを受信すると（S21:YES）、受信した更新データを副ボリュームに記憶させる（Ｓ２３）。
【０１１２】
所定のタイミングとしては、例えば、更新データが所定量以上蓄積された場合等を挙げることができる。なお、正ボリューム１２への更新データ書込みと同時に、副ボリューム２２３に更新データを書き込むようにしてもよい。
【０１１３】
第１コントローラ１００は、デステージ処理を行う（Ｓ１７）。デステージ処理とは、キャッシュメモリ１１２に記憶された更新データを、正ボリューム１２３に対応するディスクドライブ１２１に書き込む処理である。図示は省略するが、第２コントローラ２００も、適当なタイミングでデステージ処理を行う。
【０１１４】
このように、リモートコピー処理は、初期コピー処理と更新コピー処理とを含んで構成される。コンピュータシステムには、リモートコピーのペアを複数設けることができ、各コピーペア毎にそれぞれ並列的に動作可能である。従って、あるコピーペアが初期コピーを実施している最中に、別のコピーペアが更新コピーを行う場合がある。あるコピーペア間の初期コピーがストレージの資源の多くを使用している場合、他のコピーペアに関する更新コピーの処理が遅れる可能性がある。
【０１１５】
そこで、本実施例では、図９以下に示すように、ホストコマンド（例えば、更新コピーの契機となる更新要求等）と内部コマンド（例えば、初期コピー等）の起動比率を調整し、ホスト３０への応答性能を改善する。
【０１１６】
図９は、本実施例による動作の全体概要を示すフローチャートである。図８に示す処理は、各設定値等を設定するための準備段階（Ｓ３０〜Ｓ３３）と、設定された値に基づいて制御を行う実行段階（Ｓ３４）と、制御の実行結果に応じて設定値を見直す修正段階（Ｓ３５〜Ｓ３８）とに分けることができる。
【０１１７】
ユーザは、キーボードスイッチ等のユーザインターフェースを介して、外部マネージャ３０１に目標値及び起動比率をそれぞれ設定する（Ｓ３０）。本実施例では、目標値を算出するための基礎データとして、図５に示すコピー完了時間ｔｃの値が、ユーザにより設定される。続けてユーザは、各優先度別の起動比率を設定する（Ｓ３０）。ユーザは、各優先度毎に、起動比率をそれぞれ設定することができる。ユーザから入力された時間ｔｃは、テーブルＴ３２に登録される（Ｓ３０）。同様に、ユーザから入力された起動比率は、起動比率テーブルＴ３１に登録される（Ｓ３０）。
【０１１８】
Ｓ３０で設定された目標値（コピー完了時間ｔｃ）及び起動比率は、外部マネージャ３０１から内部マネージャ１０１に送信される。内部マネージャ１０１は、受信した起動比率を起動比率管理テーブルＴ１１に登録する（Ｓ３１）。さらに、内部マネージャ１０１は、図１１で述べるように、コピー完了時間ｔｃ等に基づいて、目標値管理テーブルＴ１２を作成する（Ｓ３１）。
【０１１９】
なお、ユーザが各コマンド毎に優先度を設定できる構成としてもよい。さらに、ユーザによる起動比率の設定を廃止してもよい。例えば、各優先度別の起動比率は、固定値としてもよいし、起動比率設定プログラム等によって自動的に設定及び変更する構成としてもよい。
【０１２０】
ホスト３０がホストコマンドを発行する場合、外部マネージャ３０１は、コマンド優先度管理テーブルＴ３０を用いることにより、そのホストコマンドに対応する優先度を該ホストコマンドに設定する（Ｓ３２）。
【０１２１】
第１ストレージ１０の第１コントローラ１００が内部コマンドを発行する場合、内部マネージャ１０１は、コマンド優先度管理テーブルＴ１０を用いることにより、その内部コマンドに対応する優先度を該内部コマンドに設定する（Ｓ３３）。
【０１２２】
内部マネージャ１０１は、ホストコマンド及び内部コマンドをそれぞれ受領し、ホストコマンドの優先度及び内部コマンドの優先度に応じて、各コマンドの起動比率を制御する（Ｓ３４）。
【０１２３】
図１０を参照する。図１０は、起動比率に応じて、コマンドの実行順序をスケジューリングする様子を示す説明図である。内部マネージャ１０１は、各優先度Ｐ０〜Ｐｎ毎のキューＱ０〜Ｑｎを備えている。内部マネージャ１０１に受信されたコマンドＣＭＤは、設定されている優先度に応じたキューに格納される。図１０中、ホストコマンドをＣＭＤ（Ｈ）と、内部コマンドをＣＭＤ（Ｓ）と表示している。
【０１２４】
内部マネージャ１０１は、各キューＱ０〜Ｑｎを順番に検索し、キューにコマンドＣＭＤが格納されている場合は、そのコマンドをキューから取り出して起動させる。この際、内部マネージャ１０１は、各キューＱ０〜Ｑｎから起動されるコマンドの数が、各優先度Ｐ０〜Ｐｎの起動比率Ｒ０〜Ｒｎとなるように、調節する。
【０１２５】
図９に戻る。内部マネージャ１０１は、目標値である目標コピー速度ＶＣＳと実測値である実測コピー速度ＶＣＡとを比較し、両者が一致するか否かを判定する。目標値と実測値が一致しない場合（S35:NO）、優先度更新処理が実行される（Ｓ３６）。優先度更新処理では、図１３で後述するように、目標値と実測値とが一致するようにして、かつ、起動比率の変化ができるだけ少なくなるようにして、コマンドに対応付けられる優先度を変更する（Ｓ３６）。
【０１２６】
目標値と実測値とが一致する場合（S35:YES）、外部マネージャ３０１は、ユーザの希望に応じて、モニタ情報をユーザに提供する（Ｓ３７）。ここで、モニタ情報とは、コマンドの起動比率制御に関する情報であり、例えば、目標値ＶＣＳ及び実測値ＶＣＡ等が含まれている。
【０１２７】
ユーザは、モニタ情報に基づいて目標値を再設定するか否かを判断する（Ｓ３８）。ユーザが現在の目標値に満足せず、再設定を希望する場合（S38:NO）、Ｓ３０に戻る。ユーザが現在の目標値に満足している場合（S38:YES）、Ｓ３２に戻る。なお、ユーザが目標値の再設定について判断する構成に代えて、予め用意された閾値等に基づいて、目標値を自動的に制御する構成としてもよい。
【０１２８】
図１１は、目標値管理テーブルＴ１２を作成するための処理を示す。この処理は、図９中のＳ３０内で実行される。ユーザは、コピー完了時間ｔｃを外部マネージャ３０１に設定する（Ｓ５０）。外部マネージャ３０１は、コピー完了時間ｔｃを内部マネージャ１０１に送信する（Ｓ５１）。
【０１２９】
内部マネージャ１０１は、コピー完了時間ｔｃを受信すると（Ｓ５２）、例えば、コピー管理テーブルＴ１３等を参照することにより、コピー対象トラック数ＬＴを検出する（Ｓ５３）。内部マネージャ１０１は、コピー対象トラック数をコピー完了時間ｔｃで除算することにより、目標コピー速度ＶＣＳを算出する（Ｓ５４）。内部マネージャ１０１は、Ｓ５４で算出された目標コピー速度ＶＣＳとＳ５３で検出したコピー対象トラック数ＬＴとを、目標値管理テーブルＴ１２にそれぞれ登録する（Ｓ５５）。
【０１３０】
図１２は、各優先度別に起動比率をそれぞれ設定するための処理を示すフローチャートである。この処理は、図９中のＳ３０内で実行される。まず最初に、ユーザは、各優先度毎の起動比率を外部マネージャ３０１に設定する（Ｓ６０）。
【０１３１】
外部マネージャ３０１は、ユーザにより設定された起動比率を起動比率管理テーブルＴ３１に登録し（Ｓ６１）、さらに、その起動比率を内部マネージャ１０１に送信する（Ｓ６２）。内部マネージャ１０１は、外部マネージャ３０１から受信した起動比率を、起動比率管理テーブルＴ１１に登録する（Ｓ６３）。
【０１３２】
図１３及び図１４は、図９中にＳ３６で示される、優先度更新処理のフローチャートである。優先度更新処理では、以下に述べるように、目標値と実測値との差に基づいて、ホストコマンドまたは内部コマンドのいずれかの優先度を低下または増加させる。
【０１３３】
内部マネージャ１０１は、目標値管理テーブルＴ１２から目標コピー速度ＶＣＳ及び実測コピー速度ＶＣＡをそれぞれ取得する（Ｓ７０，Ｓ７１）。以下、説明の便宜上、目標コピー速度ＶＣＳを目標値ＶＣＳと、実測コピー速度ＶＣＡを実測値ＶＣＡと、それぞれ呼ぶ。
【０１３４】
次に、内部マネージャ１０１は、目標値ＶＣＳと実測値ＶＣＡの大小関係を判定する（Ｓ７２）。目標値ＶＣＳと実測値ＶＣＡとが一致する場合（ＶＣＳ＝ＶＣＡ）、本処理は終了する。目標値ＶＣＳが実測値ＶＣＡを超えている場合（ＶＣＳ＞ＶＣＡ）、つまり、ストレージ内部のコピー処理（初期コピーまたはバックアップコピー等）の速度ＶＣＡが目標値ＶＣＳよりも低い場合は、図１４で後述する。
【０１３５】
目標値ＶＣＳが実測値ＶＣＡ未満の場合（ＶＣＳ＜ＶＣＡ）、つまり、実際のコピー速度ＶＣＡの方が目標値ＶＣＳを超えている場合、内部コマンドの優先度を下げるか、または、ホストコマンドの優先度を上げることが考えられる。
【０１３６】
そこで、内部マネージャ１０１は、ホストコマンドの優先度を上げた場合における、内部コマンドの起動比率ＲＩに対するホストコマンドの起動比率ＲＨｕの比Ｒａ（Ｒａ＝ＲＨｕ／ＲＩ）を算出する（Ｓ７３）。
【０１３７】
さらに、内部マネージャ１０１は、内部コマンドの優先度を下げた場合における、内部コマンドの起動比率ＲＩｄに対するホストコマンドの起動比率ＲＨの比Ｒｂ（Ｒｂ＝ＲＨ／ＲＩｄ）を算出する（Ｓ７４）。
【０１３８】
内部マネージャ１０１は、Ｓ７３で求めたＲａとＳ７４で求めたＲｂとを比較し、ＲａがＲｂよりも大きいか否かを判定する（Ｓ７５）。ＲａがＲｂよりも大きい場合（S75:YES）、内部マネージャ１０１は、内部コマンドの優先度を低下させる（Ｓ７６）。
【０１３９】
Ｒａ＞Ｒｂが成立する場合とは、ホストコマンドの優先度を上げた場合の変化Ｒａの方が、内部コマンドの優先度を下げる場合の変化Ｒｂよりも大きい場合である。従って、内部マネージャ１０１は、変動をできるだけ低減すべく、内部コマンドの優先度を低下させる（Ｓ７６）。これにより、内部コマンドの起動比率ＲＩが低下し、ストレージ１０，２０間で実行されるコピー処理の速度を相対的に低下させることができる。
【０１４０】
ＲａがＲｂよりも小さい場合（S75:NO）、内部マネージャ１０１は、ホストコマンドの優先度を増加させる（Ｓ７７）。これにより、ホスト３０から発行されるホストコマンドの起動比率ＲＨが上昇し、ストレージ１０，２０間で実行されるコピー処理の速度を相対的に低下させることができる。
【０１４１】
図１４は、目標値ＶＣＳが実測値ＶＣＡを超えている場合（ＶＣＳ＞ＶＣＡ）のフローチャートを示す。ストレージ１０，２０間のコピー処理の実測値ＶＣＡが目標値ＶＣＳよりも低い場合、ホストコマンドの優先度を低下させるか、または、内部コマンドの優先度を増加させることにより、対応する。
【０１４２】
そこで、内部マネージャ１０１は、ホストコマンドの優先度を下げた場合における、内部コマンドの起動比率ＲＩに対するホストコマンドの起動比率ＲＨｄの比Ｒａ（Ｒａ＝ＲＨｄ／ＲＩ）を算出する（Ｓ８０）。
【０１４３】
さらに、内部マネージャ１０１は、内部コマンドの優先度を上げた場合における、内部コマンドの起動比率ＲＩｕに対するホストコマンドの起動比率ＲＨの比Ｒｂ（Ｒｂ＝ＲＨ／ＲＩｕ）を算出する（Ｓ８１）。
【０１４４】
図１３で述べたと同様に、内部マネージャ１０１は、Ｓ８０で求めたＲａとＳ８１で求めたＲｂとを比較し、ＲａがＲｂよりも大きいか否かを判定する（Ｓ８２）。ＲａがＲｂよりも大きい場合（S82:YES）、内部マネージャ１０１は、ホストコマンドの優先度を低下させる（Ｓ８３）。
【０１４５】
ホストコマンドの優先度を下げる場合の変化Ｒａの方が、内部コマンドの優先度を上げる場合の変化Ｒｂよりも大きい場合であるため、内部マネージャ１０１は、変動をできるだけ低減すべく、ホストコマンドの優先度を低下させる（Ｓ８３）。これにより、ホストコマンドの起動比率ＲＨが低下し、ストレージ１０，２０間で実行されるコピー処理の速度を相対的に高めることができる。
【０１４６】
ＲａがＲｂよりも小さい場合（S82:NO）、内部マネージャ１０１は、内部コマンドの優先度を増加させる（Ｓ８４）。これにより、ストレージ１０，２０間で実行されるコピー処理の速度を相対的に上昇させることができる。
【０１４７】
図１５は、ホストコマンドの優先度を変更させる処理のフローチャートである。この処理は、例えば、図１３中のＳ７７及び図１４中のＳ８３において、ホストコマンドの優先度を変更する場合に実行される。
【０１４８】
内部マネージャ１０１は、優先度の変更対象であるホストコマンドの番号と、優先度を増加または減少させる要求とをそれぞれ取得する（Ｓ９０）。つまり、内部マネージャ１０１は、優先度の変更対象となっているホストコマンドを特定するための情報と、そのホストコマンドの優先度を増加させるのか、それとも減少させるのかを特定するための情報とを、それぞれ取得する（Ｓ９０）。
【０１４９】
内部マネージャ１０１は、Ｓ９０で取得した情報に基づいて、コマンド優先度管理テーブルＴ１０を更新させる（Ｓ９１）。内部マネージャ１０１は、外部マネージャ３０１にコマンド優先度管理テーブルＴ３０の更新を要求する（Ｓ９２）。外部マネージャ３０１は、内部マネージャ１０１からの要求を受信すると（Ｓ９３）、コマンド優先度管理テーブルＴ３０を更新する（Ｓ９４）。
【０１５０】
本実施例では、ユーザから入力される設定値は、外部マネージャ３０１に設定された後で、内部マネージャ１０１に伝達される。コマンド起動比率の制御が開始された後では、内部マネージャ１０１がストレージ側の管理テーブルＴ１０を更新した後で、外部マネージャ３０１に伝達する。
【０１５１】
本実施例は、上述のように構成されるため、外部マネージャ３０１と内部マネージャ１０１とが連携して動作し、ホストコマンドの起動比率（実行頻度）と内部コマンドの起動比率（実行頻度）とを自動的に調整できる。
【０１５２】
この結果、例えば、初期コピー処理やバックアップ処理、あるいはデータマイグレーション処理等のような、バックグラウンドで行われる処理によって、ホストコマンドに関する応答性能が低下するのを抑制することができ、サービス品質の低下を防止して、使い勝手を改善することができる。
【０１５３】
本実施例では、ホストコマンドまたは内部コマンドの優先度を増減する場合に、いずれか変化量の少ない方のコマンドの優先度を変更する。つまり、本実施例では、優先度の変更による影響の少ない方のコマンドについて、その優先度を変化させる。従って、起動比率を段階的に変化させることができ、ストレージ１０，２０の動作の安定を保ちながら、より適切にコマンドの起動比率を調節することができる。
【実施例２】
【０１５４】
図１６，図１７を参照して第２実施例を説明する。本実施例を含む以下の各実施例は、第１実施例の変形例に該当する。以下、第１実施例と重複する説明は割愛する。本実施例では、内部ボリューム１２３と外部ボリューム１２３Ｖとを分けて、ボリュームの種類毎に優先度を変更する。そのために、本実施例では、各コマンド毎のＩＯＰＳを（Input Output Per Second）目標値として採用する。
【０１５５】
図１６は、本実施例によるコンピュータシステムの概要を示す説明図である。本実施例の第１ストレージ１０には、内部ボリューム１２３と、外部ボリューム１２３Ｖとが設けられている。上述の通り、外部ボリューム１２３Ｖは、第２ストレージ２０内の論理ボリューム２２３にＶＤＥＶ１２２を介して対応付けられている。
【０１５６】
ホスト３０は、内部ボリューム１２３及び外部ボリューム１２３Ｖの両方にアクセスすることができる。内部マネージャ１０１は、内部ボリューム１２３に関するコマンドと、外部ボリューム１２３Ｖに関するコマンドとの両方を監視する。
【０１５７】
図１７は、内部マネージャ１０１により使用されるテーブルを示す。本実施例の目標値管理テーブルＴ１２Ａは、内部ボリューム１２３及び外部ボリューム１２３Ｖのそれぞれについて、目標値及び実測値をＩＯＰＳの値で設定する。つまり、内部ボリューム１２３については、目標値ＩＯＰＳ（ＩＳ）及び実測値ＩＯＰＳ（ＩＡ）が設定されており、外部ボリューム１２３Ｖについては、目標値ＩＯＰＳ（ＥＳ）及び実測値ＩＯＰＳ（ＥＡ）が設定されている。
【０１５８】
このように構成される本実施例においても、第１実施例と同様に、複数種類のコマンド間で起動比率を調整することができる。つまり、本実施例では、内部ボリューム１２３に関するコマンドの起動比率と外部ボリューム１２３Ｖに関するコマンドの起動比率とを、段階的に調整することができる。例えば、内部ボリューム１２３に関するコマンドをホストコマンドとして捉え、外部ボリューム１２３に関するコマンドを内部コマンドとして捉えることができる。これにより、第１実施例で述べた方法で、複数種類のコマンド間において、起動比率を制御することができる。
【実施例３】
【０１５９】
図１８は、第３実施例によるコンピュータシステムで使用される目標値管理テーブルＴ１２Ｂを示す。本実施例では、各コマンド種別毎にそれぞれＩＯＰＳの比率を目標値として管理する。
【０１６０】
図１８において、ホストコマンドはＨ−ＣＭＤと示されており、内部コマンドはＩ−ＣＭＤとして示されている。（ＨＳ）はホストコマンドに関する設定値を示し、（ＩＳ）は内部コマンドに関する設定値を示す。（ＨＡ）はホストコマンドに関する実測値を示し、（ＩＡ）は内部コマンドに関する実測値を示す。
【０１６１】
このように構成される本実施例によれば、各コマンド毎に、それぞれの起動比率を自動的に調整することができ、使い勝手が向上する。
【実施例４】
【０１６２】
図１９〜図２１に基づいて第４実施例を説明する。本実施例では、第２ストレージ２０内に内部マネージャ２０１を設ける。図１９は、本実施例のコンピュータシステムを示す説明図である。
【０１６３】
第１ストレージ１０に内部マネージャは設けられておらず、第２ストレージ２０に内部マネージャ２０１が設けられている。ホスト３０の外部マネージャ３０１は、第１ストレージ１０の第１コントローラ１００を介して、内部マネージャ２０１と通信できるようになっている。
【０１６４】
図２０は、目標値設定処理を示すフローチャートである。ユーザが外部マネージャ３０１にコピー完了時間ｔｃを設定すると（Ｓ５０）、外部マネージャ３０１は、コピー完了時間ｔｃを第１ストレージ１０の第１コントローラ１００に送信する（Ｓ１００）。
【０１６５】
第１ストレージ１０の第１コントローラ１００は、コピー完了時間ｔｃを内部マネージャ２０１に送信する（Ｓ１０１）。以下、図１１と共に上述した通り、内部マネージャ２０１は目標値管理テーブルＴ１２を作成する（Ｓ５２〜Ｓ５５）。
【０１６６】
図２１は、内部マネージャ２０１が実測値を取得する処理のフローチャートである。外部マネージャ３０１は、未だコピーされていないトラックの数を、第１ストレージ１０の第１コントローラ１００から取得する（Ｓ１１０）。
【０１６７】
外部マネージャ３０１は、未コピートラック数を第１コントローラ１００を介して内部マネージャ２０１に通知する（Ｓ１１１）。内部マネージャ２０１は、未コピートラック数に基づいて、実測値ＶＣＡを算出する（Ｓ１１２）。
【０１６８】
このように構成される本実施例も第１実施例と同様の効果を奏する。
【実施例５】
【０１６９】
図２２は、第５実施例によるコンピュータシステムの全体構成を示す説明図である。本実施例では、第１ストレージ１０に第１内部マネージャ１０１Ａを設け、第２ストレージ２０に第２内部マネージャ２０１Ａを設ける。
【０１７０】
第１内部マネージャ１０１Ａは、コマンド優先度管理テーブルＴ１０を保持しており、第１ストレージ１０内で発行される内部コマンドに優先度を設定する。第２内部マネージャ２０１Ａは、起動比率管理テーブルＴ１１を保持しており、起動比率に応じて各コマンドの起動をスケジューリングする。
【０１７１】
このように構成される本実施例も第１実施例と同様の効果を奏する。さらに、本実施例では、第１内部マネージャ１０１Ａと第２内部マネージャ２０１Ａとによって内部マネージャの機能を分担して実行する。従って、各ストレージ１０，２０の負担を軽減することができる。
【０１７２】
なお、本発明は、上述した各実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
【図面の簡単な説明】
【０１７３】
【図１】本発明の実施形態を示す概念図である。
【図２】本実施例によるコンピュータシステムの全体構成を示すブロック図である。
【図３】外部マネージャ及び内部マネージャの構成を示す説明図である。
【図４】複数のコマンドの起動比率が調整される様子を示す説明図である。
【図５】外部マネージャの使用するテーブルの構成を示す説明図である。
【図６】内部マネージャの使用するテーブルの構成を示す説明図である。
【図７】第１コントローラの有するテーブルの構成を示す説明図である。
【図８】リモートコピー処理を示すフローチャートである。
【図９】起動比率を制御する処理の全体を示すフローチャートである。
【図１０】コマンドの起動をスケジューリングする様子を示す説明図である。
【図１１】目標値設定処理のフローチャートである。
【図１２】起動比率設定処理のフローチャートである。
【図１３】優先度更新処理のフローチャートである。
【図１４】図１３に続くフローチャートである。
【図１５】コマンドの優先度を変更する処理を示すフローチャートである。
【図１６】第２実施例に係るコンピュータシステムの概要を示す説明図である。
【図１７】内部マネージャの保持するテーブルの構成を示す説明図である。
【図１８】第３実施例に係るコンピュータシステムで使用される目標値管理テーブルを示す説明図である。
【図１９】第４実施例に係るコンピュータシステムの概要を示す説明図である。
【図２０】目標値設定処理のフローチャートである。
【図２１】実測値取得処理のフローチャートである。
【図２２】第５実施例に係るコンピュータシステムの概要を示す説明図である。
【符号の説明】
【０１７４】
１：第１ストレージ、２：第２ストレージ、３：ホストコンピュータ、４：外部マネージャ、４Ａ：コマンド発行部、４Ｂ：優先度設定部、４Ｃ：管理テーブル、４Ｄ：テーブル設定部、５：アプリケーションプログラム、６：内部マネージャ、６Ａ：起動順序制御部、６Ｂ：コマンド実行部、６Ｃ：優先度更新部、６Ｄ：管理テーブル、６Ｅ：優先度設定部、７：バックアップ処理部、７Ａ：コマンド発行部、８Ａ，８Ｂ，８Ｃ：論理ボリューム、１０：第１ストレージ、２０：第２ストレージ、３０：ホストコンピュータ、３１：マイクロプロセッサ、３２：メモリ、３３：Ｉ／Ｏ用通信インターフェース、３４：管理用通信インターフェース、３５：補助記憶装置、４０：管理サーバ、１００：第１コントローラ、１０１，１０１Ａ：内部マネージャ、１１０：チャネルアダプタ、１１１：ディスクアダプタ、１１２：キャッシュメモリ、１１３：共有メモリ、１１４：接続制御部、１１５：サービスプロセッサ、１２０：記憶装置搭載部、１２１：ディスクドライブ（ＰＤＥＶ）、１２２：ＲＡＩＤグループ（ＶＤＥＶ）、１２３：論理ボリューム（ＬＤＥＶ）、１２３Ｖ：外部ボリューム、２００：第２コントローラ、２０１，２０１Ａ：内部マネージャ、２２１：ディスクドライブ、２２３：論理ボリューム、３０１：外部マネージャ。
【図１】
2009223863.tif 000003
【図２】
2009223863.tif 000004
【図３】
2009223863.tif 000005
【図４】
2009223863.tif 000006
【図５】
2009223863.tif 000007
【図６】
2009223863.tif 000008
【図７】
2009223863.tif 000009
【図８】
2009223863.tif 000010
【図９】
2009223863.tif 000011
【図１０】
2009223863.tif 000012
【図１１】
2009223863.tif 000013
【図１２】
2009223863.tif 000014
【図１３】
2009223863.tif 000015
【図１４】
2009223863.tif 000016
【図１５】
2009223863.tif 000017
【図１６】
2009223863.tif 000018
【図１７】
2009223863.tif 000019
【図１８】
2009223863.tif 000020
【図１９】
2009223863.tif 000021
【図２０】
2009223863.tif 000022
【図２１】
2009223863.tif 000023
【図２２】
2009223863.tif 000024