(57)【要約】【課題】ホスト計算機内のＯＳ／ＦＳ／ドライバ／ＨＢＡなどがアプリケーションプログラムのＩ／Ｏ要求に与える影響を考慮した上でのストレージシステムの性能チューニングを実施する。【解決手段】計算機システム１０は、ホスト計算機１と、ホスト計算機１から発行されるＩ／Ｏ要求を処理するストレージシステム２と、ストレージシステム２からホストＩ／Ｏ情報及び性能情報を受信し、ホストＩ／Ｏ情報及び性能情報に基づいて、ストレージシステム２がＩ／Ｏ要求を処理するときの内部処理状況を再現することにより、ストレージシステム２のＩ／Ｏ性能をシミュレーションするストレージシステム３とを備える。【選択図】図１
2008065433.tif 000002
【特許請求の範囲】
【請求項１】
ホスト計算機と、
前記ホスト計算機から発行されるＩ／Ｏ要求を処理する第一のストレージシステムと、
前記第一のストレージシステムからホストＩ／Ｏ情報及び性能情報を受信し、前記ホストＩ／Ｏ情報及び前記性能情報に基づいて、前記第一のストレージシステムが前記Ｉ／Ｏ要求を処理するときの内部処理状況を再現することにより、前記第一のストレージシステムのＩ／Ｏ性能をシミュレーションする第二のストレージシステムと、
を備える計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記第二のストレージシステムは、前記第一のストレージシステムが前記Ｉ／Ｏ要求を処理するときの内部処理状況を再現しつつ、チューニングパラメータを様々な設定に変更することにより、性能向上の有無をテストする、計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
前記第二のストレージシステムは、性能向上がみられるチューニングパラメータの設定変更例をユーザに提示する、計算機システム。
【請求項４】
請求項１に記載の計算機システムであって、
前記ホストＩ／Ｏ情報は、前記第一のストレージシステムが前記ホスト計算機から前記Ｉ／Ｏ要求を受領した時刻を示す受領時刻、前記第一のストレージシステムが前記Ｉ／Ｏ要求の処理を終えた時刻を示す応答時刻、前記Ｉ／Ｏ要求のコマンドデータブロック、前記第一のストレージシステムが前記Ｉ／Ｏ要求を処理したときの動作状況のうち何れかの情報を含む、ストレージシステム。
【請求項５】
請求項１に記載の計算機システムであって、
前記性能情報は、前記第一のストレージシステムが有するＲＡＩＤグループのＲＡＩＤタイプ、前記ＲＡＩＤグループを構成する複数のストレージデバイスの物理スペック、前記第一のストレージシステムのリソース使用率のうち何れかの情報を含む、ストレージシステム。
【請求項６】
ホスト計算機から発行されるＩ／Ｏ要求を第一のストレージシステムによって処理するステップと、
前記第一のストレージシステムから第二のストレージシステムへホストＩ／Ｏ情報及び性能情報を送信するステップと、
前記第一のストレージシステムが前記Ｉ／Ｏ要求を処理するときの内部処理状況を、前記ホストＩ／Ｏ情報及び前記性能情報に基づいて、前記第二のストレージシステムにおいて再現することにより、前記第一のストレージシステムのＩ／Ｏ性能をシミュレーションするステップと、
を備える性能チューニング方法。
【請求項７】
請求項６に記載の性能チューニング方法であって、
前記第一のストレージシステムが前記Ｉ／Ｏ要求を処理するときの内部処理状況を前記第二のストレージシステムにおいて再現しつつ、チューニングパラメータを様々な設定に変更することにより、性能向上の有無をテストするステップを更に備える、性能チューニング方法。
【請求項８】
請求項７に記載の性能チューニング方法であって、
性能向上がみられるチューニングパラメータの設定変更例を前記第二のストレージシステムによってユーザに提示するステップを更に備える、性能チューニング方法。
【請求項９】
請求項６に記載の性能チューニング方法であって、
前記ホストＩ／Ｏ情報は、前記第一のストレージシステムが前記ホスト計算機から前記Ｉ／Ｏ要求を受領した時刻を示す受領時刻、前記第一のストレージシステムが前記Ｉ／Ｏ要求の処理を終えた時刻を示す応答時刻、前記Ｉ／Ｏ要求のコマンドデータブロック、前記第一のストレージシステムが前記Ｉ／Ｏ要求を処理したときの動作状況のうち何れかの情報を含む、性能チューニング方法。
【請求項１０】
請求項６に記載の性能チューニング方法であって、
前記性能情報は、前記第一のストレージシステムが有するＲＡＩＤグループのＲＡＩＤタイプ、前記ＲＡＩＤグループを構成する複数のストレージデバイスの物理スペック、前記第一のストレージシステムのリソース使用率のうち何れかの情報を含む、性能チューニング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージシステムのＩ／Ｏ性能をチューニングするための計算機システム及び性能チューニング方法に関する。
【背景技術】
【０００２】
コンピュータシステムの発展に伴い、ストレージシステムの用途は多様化しつつある。また、ストレージシステムの用途の多様化に伴い、ホスト計算機からストレージシステムに発行される入出力要求（Ｉ／Ｏ要求）の特性（Ｉ／Ｏ特性）も多様化している。様々なＩ／Ｏ特性を有するＩ／Ｏ要求に対してストレージシステムの性能向上を実現する上で、それぞれのＩ／Ｏ特性に応じた最適な性能チューニングを実施するのが有効である。例えば、特開２０００−２９３３１７号公報には、ホスト計算機から発行されるＩ／Ｏ要求がシーケンシャルアクセスの場合や、ランダムアクセスの場合であってキャッシュヒット率が小さい場合であっても、Ｉ／Ｏ性能の向上を実現できるストレージシステムが提案されている。
【０００３】
通常、コンピュータシステムを設計或いは使用するユーザは、ホスト計算機上で動作するアプリケーションプログラムのＩ／Ｏ特性を把握している。このため、アプリケーションプログラムが発行するＩ／Ｏ要求のＩ／Ｏ特性に基づいてストレージシステムの性能チューニングを実施することとなる。
【特許文献１】特開２０００−２９３３１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、ユーザが容易に把握可能なアプリケーションレベルでのＩ／Ｏ特性と、ストレージシステムがホスト計算機から実際に受信するＩ／Ｏ要求のＩ／Ｏ特性は、異なったものとなる場合がある。これは、ホスト計算機から発行されるＩ／Ｏ要求がホスト計算機内のオペレーティングシステム、ファイルシステム、デバイスドライバ、ホストバスアダプタ（以下、ＯＳ／ＦＳ／ドライバ／ＨＢＡと称する。）などの影響を受けることにより、Ｉ／Ｏ特性が変化するためである。例えば、オペレーティングシステム内のバッファサイズが制限されていることにより、アプリケーションプログラムが発行するＩ／Ｏ要求が複数のＩ／Ｏ要求に分割されて発行されたり、或いはアプリケーションプログラムでは、極めて大きなサイズのファイルにアクセスしたにも拘わらず、ファイルシステム上で小さなサイズの複数のＩ／Ｏ要求に分割されたりすることがある。
【０００５】
更に、オペレーティングシステムやファイルシステムの機能により、アプリケーションプログラムが発行したＩ／Ｏ要求が指定する読み出し範囲よりも広範囲にデータを先読みし、キャッシュヒットによるＩ／Ｏ性能の向上を図る場合があったり、或いはホスト計算機内のホストバスアダプタのハードウェア仕様によりＩ／Ｏ多重度に制限があるため、アプリケーションプログラムが発行したＩ／Ｏ要求よりも少ないＩ／Ｏ多重度でＩ／Ｏ要求を発行する場合があったりする。
【０００６】
上記のように、ユーザが容易に把握可能なアプリケーションレベルでのＩ／Ｏ特性と、ストレージシステムがホスト計算機から実際に受信するＩ／Ｏ要求のＩ／Ｏ特性とは、異なる場合があるにも拘わらず、ユーザは、アプリケーションレベルでのＩ／Ｏ特性に基づいてストレージシステムの性能チューニングを実施する事が多く、それ故に誤った性能チューニングによって、性能低下を来たしてしまうことがあった。
【０００７】
また上記のように、ホスト計算機から発行されるＩ／Ｏ要求の特性は複雑化しつつあり、ホスト計算機内のアプリケーションプログラムだけでなく、ホスト計算機内のＯＳ／ＦＳ／ドライバ／ＨＢＡなどが変更された場合にも、ホスト計算機からストレージシステムに発行されるＩ／Ｏ要求のＩ／Ｏ特性は変化する。それ故、ホスト計算機内のＯＳ／ＦＳ／ドライバ／ＨＢＡなどがアプリケーションプログラムのＩ／Ｏ要求に与える影響を考慮した上でのストレージシステムの性能チューニングが必要となる。
【０００８】
更に、顧客所有のストレージシステムは、２４時間稼動し続ける場合が多いので、顧客所有のストレージシステムに対して性能チューニングの改善効果を試すのは困難である。
【０００９】
そこで、本発明は、ホスト計算機内のＯＳ／ＦＳ／ドライバ／ＨＢＡなどがアプリケーションプログラムのＩ／Ｏ要求に与える影響を考慮した上でのストレージシステムの性能チューニングを実施することを課題とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するため、本発明に係る計算機システムは、ホスト計算機と、ホスト計算機から発行されるＩ／Ｏ要求を処理する第一のストレージシステムと、第一のストレージシステムからホストＩ／Ｏ情報及び性能情報を受信し、ホストＩ／Ｏ情報及び性能情報に基づいて、第一のストレージシステムがＩ／Ｏ要求を処理するときの内部処理状況を再現することにより、第一のストレージシステムのＩ／Ｏ性能をシミュレーションする第二のストレージシステムと、を備える。
【００１１】
かかる構成により、ホスト計算機内のＯＳ／ＦＳ／ドライバ／ＨＢＡなどがアプリケーションプログラムのＩ／Ｏ要求に与える影響を考慮した上でのストレージシステムの性能チューニングを実施することができる。
【００１２】
ここで、第二のストレージシステムは、第一のストレージシステムがＩ／Ｏ要求を処理するときの内部処理状況を再現しつつ、チューニングパラメータを様々な設定に変更することにより、性能向上の有無をテストするのが好ましい。
【００１３】
第一のストレージシステムがＩ／Ｏ要求を処理するときの内部処理状況は、第二のストレージシステムにおいて、何度でも再現できるので、チューニングパラメータを様々な設定に変更することにより、性能向上の有無を効果的にテストできる。
【００１４】
第二のストレージシステムは、性能向上がみられるチューニングパラメータの設定変更例をユーザに提示するのが好ましい。
【００１５】
ホストＩ／Ｏ情報は、例えば、第一のストレージシステムがホスト計算機からＩ／Ｏ要求を受領した時刻を示す受領時刻、第一のストレージシステムがＩ／Ｏ要求の処理を終えた時刻を示す応答時刻、Ｉ／Ｏ要求のコマンドデータブロック、第一のストレージシステムがＩ／Ｏ要求を処理したときの動作状況のうち何れかの情報を含むものである。
【００１６】
性能情報は、例えば、第一のストレージシステムが有するＲＡＩＤグループのＲＡＩＤタイプ、ＲＡＩＤグループを構成する複数のストレージデバイスの物理スペック、第一のストレージシステムのリソース使用率のうち何れかの情報を含むものである。
【００１７】
本発明に係わる性能チューニング方法は、ホスト計算機から発行されるＩ／Ｏ要求を第一のストレージシステムによって処理するステップと、第一のストレージシステムから第二のストレージシステムへホストＩ／Ｏ情報及び性能情報を送信するステップと、第一のストレージシステムがＩ／Ｏ要求を処理するときの内部処理状況を、ホストＩ／Ｏ情報及び性能情報に基づいて、第二のストレージシステムにおいて再現することにより、第一のストレージシステムのＩ／Ｏ性能をシミュレーションするステップと、を備える。
【００１８】
この方法により、ホスト計算機内のＯＳ／ＦＳ／ドライバ／ＨＢＡなどがアプリケーションプログラムのＩ／Ｏ要求に与える影響を考慮した上でのストレージシステムの性能チューニングを実施することができる。
【００１９】
この性能チューニング方法は、第一のストレージシステムがＩ／Ｏ要求を処理するときの内部処理状況を第二のストレージシステムにおいて再現しつつ、チューニングパラメータを様々な設定に変更することにより、性能向上の有無をテストするステップを更に備えても良い。
【００２０】
この性能チューニング方法は、性能向上がみられるチューニングパラメータの設定変更例を第二のストレージシステムによってユーザに提示するステップを更に備えてもよい。
【発明の効果】
【００２１】
本発明によれば、ホスト計算機内のＯＳ／ＦＳ／ドライバ／ＨＢＡなどがアプリケーションプログラムのＩ／Ｏ要求に与える影響を考慮した上でのストレージシステムの性能チューニングを実施することができる。
【発明を実施するための最良の形態】
【００２２】
本実施形態に係わる計算機システムは、ホスト計算機と、ホスト計算機から発行されるＩ／Ｏ要求を処理する実運用系ストレージシステムと、実運用系ストレージシステムからホストＩ／Ｏ情報及び性能情報を受信し、ホストＩ／Ｏ情報及び性能情報に基づいて、実運用系ストレージシステムがＩ／Ｏ要求を処理するときの内部処理状況を再現することにより、実運用系ストレージシステムのＩ／Ｏ性能をシミュレーションするＩ／Ｏ性能再現用ストレージシステムと、を備える。ここで、ホストＩ／Ｏ情報は、例えば、実運用系ストレージシステムがホスト計算機からＩ／Ｏ要求を受領した時刻を示す受領時刻、実運用系ストレージシステムがＩ／Ｏ要求の処理を終えた時刻を示す応答時刻、Ｉ／Ｏ要求のコマンドデータブロック、実運用系ストレージシステムがＩ／Ｏ要求を処理したときの動作状況のうち何れかの情報を含むものである。性能情報は、例えば、実運用系ストレージシステムが有するＲＡＩＤグループのＲＡＩＤタイプ、ＲＡＩＤグループを構成する複数のストレージデバイスの物理スペック、実運用系ストレージシステムのリソース使用率のうち何れかの情報を含むものである。
【実施例】
【００２３】
図１は本実施例に係わる計算機システム１０のシステム構成を示す。
計算機システム１０は、一つ以上のホスト計算機１、実運用に供されるストレージシステム２、及びＩ／Ｏ性能再現用に供されるストレージシステム３を備える。
【００２４】
ホスト計算機１は、パーソナルコンピュータ、ワークステーション、メインフレームコンピュータ等である。ホスト計算機１は、ブロックＩ／Ｏインタフェースを介してストレージシステム２に接続されており、ストレージシステム２にＩ／Ｏ要求を発行して、ストレージシステム２の記憶資源にデータアクセスする。ホスト計算機１は、ストレージシステム２が提供する記憶資源を利用し、各種の業務処理（例えば、データベース処理、Ｗｅｂアプリケーション処理、ストリーミング処理など）を実行する。ストレージシステム２は、ネットワーク４を介してストレージシステム３に接続されており、ストレージシステム３との間でホストＩ／Ｏ情報及び性能情報を送受信する。ホストＩ／Ｏ情報及び性能情報の詳細については後述する（図５，図６参照）。
【００２５】
尚、ストレージシステム２のマシン性能と、ストレージシステム３のマシン性能とは、同一であるのが好ましい。また、ホスト計算機１とストレージシステム２とを接続する箇所は、ストレージシステム２とストレージシステム３とを接続する箇所と同一であってもよく、或いは異なっていてもよい。また、ホスト計算機１とストレージシステム２とは、ネットワークを介さずに直結されていてもよく、或いはＳＡＮ（Storage Area Network）、ＬＡＮ(Local Area Network)、ＰＡＮ（Personal Area Network）、ＭＡＮ（Metropolitan Area Network）、ＷＡＮ（Wide Area Network）、インターネット、専用回線、公衆回線等のネットワークを介して接続されていてもよい。
【００２６】
例えば、ホスト計算機１がＳＡＮを介してストレージシステム２に接続する場合、ホスト計算機１は、ファイバチャネルプロトコル又はｉＳＣＳＩ（internet Small Computer System Interface）等のプロトコルにより、ストレージシステム２の記憶資源のデータ管理単位であるブロックを単位としてデータ入出力を要求する。
【００２７】
例えば、ホスト計算機１がＬＡＮを介してストレージシステム２に接続する場合、ホスト計算機１は、ＮＦＳ（Network File System）又はＣＩＦＳ（Common Interface File System）等のプロトコルにより、ファイル名を指定した上でのファイル単位でのデータ入出力を要求する。
【００２８】
図２はホスト計算機１からストレージシステム２に発行されるＩ／Ｏ要求がＯＳ／ＦＳ／ドライバ／ＨＢＡなどの影響を受ける様子を示す説明図である。
ホスト計算機１内部では、アプリケーションプログラム１０１がＩ／Ｏ要求１１０を発行する。Ｉ／Ｏ要求１１０は、ホスト計算機１のユーザが容易に把握することのできるＩ／Ｏ特性を有している。Ｉ／Ｏ要求１１０のＩ／Ｏ特性は、アプリケーションプログラム１０１がアクセスするファイルのサイズや、アプリケーションプログラム１０１のデータアクセスパターンを基に把握できる。Ｉ／Ｏ要求１１０は、アプリケーションプログラム１０１から発行された後、ＯＳ／ＦＳ／ドライバ／ＨＢＡ１０２の影響によりＩ／Ｏ特性に変更が加えられ、Ｉ／Ｏ要求１１１としてストレージシステム２に発行される。Ｉ／Ｏ要求１１１のＩ／Ｏ特性は、ユーザが把握しているＩ／Ｏ要求１１０のＩ／Ｏ特性とは異なったものである場合がある。
【００２９】
図３はストレージシステム２のハードウェア構成を示す。
ストレージシステム２は、コントローラ２０１、複数のディスクドライブ２０２、コントローラ２０１と複数のディスクドライブ２０２とを接続するバス２０３を備える。
【００３０】
ディスクドライブ２０２は、例えば、ＦＣ（Fibre Channel）ディスクドライブ、ＳＡＴＡ（Serial Advanced Technology Attachment）ディスクドライブ、ＰＡＴＡ（Parallel Advanced Technology Attachment）ディスクドライブ、ＦＡＴＡ（Fibre Attached Technology Adapted）ディスクドライブ、ＳＣＳＩ（Small Computer System Interface）ディスクドライブなどである。
【００３１】
コントローラ２０１は、複数のディスクドライブ２０２をいわゆるＲＡＩＤ方式に規定されるＲＡＩＤレベル（例えば、０，１，４，５，６）で制御することができる。ＲＡＩＤグループは、例えば、４つのディスクドライブ７１を一組としてグループ化することにより（３Ｄ＋１Ｐ）、或いは８つのディスクドライブ７１を一組としてグループ化することにより（７Ｄ＋１Ｐ）、構成される。即ち、複数のディスクドライブ２０２のそれぞれが提供する記憶領域が集合して一つのＲＡＩＤグループが構成される。ＲＡＩＤグループはパリティグループ又はＥＣＣグループと別称することもできる。ＲＡＩＤグループ上には、ホスト計算機１からのアクセス単位である一つ以上の論理ボリュームが定義される。各論理ボリュームには、ＬＵＮ（Logical Unit Number）がアサインされる。
【００３２】
コントローラ２０１はホストインタフェース制御部２１１、キャッシュメモリ２１２、プロセッサ２１３、データ転送制御部２１４、ローカルメモリ２１５、ディスクインタフェース制御部２１６、管理インタフェース２１７、及びこれらを接続する内部バス２１８を備える。
【００３３】
プロセッサ２１３は、ホスト計算機１からのデータ入出力要求に応答してディスクドライブ２０２へのＩ／Ｏ処理（ライトアクセス、又はリードアクセス）を制御する。ローカルメモリ２１５には、各種制御プログラム及び情報が格納されている。プロセッサ２１３はローカルメモリ２１５に格納されている各種制御プログラムを実行することにより、ストレージシステム３との間でホストＩ／Ｏ情報及び性能情報を送受信する。キャッシュメモリ２１２は、ディスクドライブ２０２に読み書きされるデータを一時的に格納するためのバッファメモリである。キャッシュメモリ２１２は、電源バックアップされており、ストレージシステム２に電源障害が発生した場合でも、キャッシュデータのロストを防ぐ不揮発性メモリとして構成されている。
【００３４】
データ転送制御部２１４は、ホストインタフェース制御部２１１、キャッシュメモリ２１２、プロセッサ２１３、ローカルメモリ２１５、及びディスクインタフェース制御部２１６を相互に接続し、ホスト計算機１とディスクドライブ２０２との間のデータ転送を制御する。
【００３５】
例えば、ホスト計算機１からのライトアクセスに対し、データ転送制御部２１４は、ホストインタフェース制御部２１１を介してホスト計算機１から受け取ったライトデータをキャッシュメモリ２１２に書き込む。その後、ディスクインタフェース制御部２１６は、キャッシュメモリ２１２に書き込まれたライトデータをディスクドライブ２０２に書き込む。
【００３６】
一方、ホスト計算機１からのリードアクセスに対し、データ転送制御部２１４は、ディスクインタフェース制御部２１６を介してディスクドライブ２０２から読みとったリードデータをキャッシュメモリ２１２に書き込むとともに、ホストインタフェース制御部２１１に転送する。ホストインタフェース制御部２１１は、リードデータをホスト計算機１に送信する。
【００３７】
尚、複数のディスクドライブ２０２がＲＡＩＤレベル５で管理される場合には、パリティデータは、データ転送制御部２１４によって演算される。
【００３８】
ホストインタフェース制御部２１１は、ホスト計算機１とコントローラ２０１との間のインタフェースを制御するコントローラであり、例えば、ファイバチャネルプロトコルに基づくホスト計算機１からのブロックアクセス要求や、ファイル転送プロトコルに基づくホスト計算機１からのファイルアクセス要求を受信する機能を有する。ホスト計算機１からのファイルアクセス要求を処理するためには、ホストインタフェース制御部２１１は、ＮＡＳ（Network Attached Storage）機能を搭載している必要がある。
【００３９】
ディスクインタフェース制御部２１６は、ディスクドライブ２０２とコントローラ２０１との間のインタフェースを制御するコントローラであり、例えば、ディスクドライブ２０２を制御するプロトコルに従って、ディスクドライブ２０２へのデータ入出力要求を制御する機能を有する。
【００４０】
管理インタフェース２１７は、管理計算機（図示せず）からストレージシステム２に向けて発行される管理コマンドを受信する。ストレージ管理者は、管理計算機から管理コマンドを入力することによって、例えば、ディスクドライブ２０２の構成の設定、ストレージシステム２の構成情報の取得、ホスト計算機１とホストインタフェース制御部２１１との間のパスの設定、ホストインタフェース制御部２１１やディスクインタフェース制御部２１６において実行されるマイクロプログラムのインストール等を行うことができる。ここで、ディスクドライブ２０２の構成の設定とは、例えば、ディスクドライブ２０２の増設或いは減設、ＲＡＩＤ構成の変更（例えば、ＲＡＩＤ１からＲＡＩＤ５への変更）等をいう。更に、管理計算機からは、ストレージシステム２の動作状態の確認や故障部位の特定などを行うこともできる。
【００４１】
尚、ホストインタフェース制御部２１１と管理インタフェース２１７とは、別異のデバイスである必要はなく、ホストインタフェース制御部２１１に管理インタフェース２１７の機能を実装してもよい。
【００４２】
ストレージシステム３のハードウェア構成は、ストレージシステム２のハードウェア構成と同様であるため、その詳細な説明は省略する。
【００４３】
図４はローカルメモリ２１５内に格納されている各種制御プログラム及び情報を示す。同図に示すように、ローカルメモリ２１５には、オペレーティングシステム３０１、ディスクアレイ制御プログラム３０２、データ転送制御部制御プログラム３０３、入出力制御部制御プログラム３０４、ホストＩ／Ｏ記録プログラム３１１、ホストＩ／Ｏ通信プログラム３１２、ホストＩ／Ｏ再現プログラム３１３、ホストＩ／Ｏ情報３１４、性能情報記録プログラム３２１、性能情報通信プログラム３２２、性能情報解析プログラム３２３、及び性能情報３２４が格納されている。
【００４４】
尚、ホストＩ／Ｏ再現プログラム３１３、及び性能情報解析プログラム３２３は、ストレージシステム２のローカルメモリ２１５に格納されている必要はなく、ストレージシステム３のローカルメモリに格納されるべきものであるが、説明の便宜上、図２に図示している。
【００４５】
オペレーティングシステム３０１は、上述した各制御プログラム３０２，３０３，３０４，３１１，３１２，３１３，３２１，３２２，３２３の実行をスケジューリングする機能を有する。
【００４６】
ディスクアレイ制御プログラム３０２は、ＲＡＩＤ変換や、論理アドレスと物理アドレスとの間の相互変換などを行う。
【００４７】
データ転送制御部制御プログラム３０３は、ホストインタフェース制御部２１１、キャッシュメモリ２１２、プロセッサ２１３、ローカルメモリ２１５、及びディスクインタフェース制御部２１６の間のデータ転送を制御するためのものであり、データ転送制御部２１４によって実行される。
【００４８】
入出力制御部制御プログラム３０４は、ホストインタフェース制御部２１１及びディスクインタフェース制御部２１６を制御するためのものである。
【００４９】
ホストＩ／Ｏ記録プログラム３１１は、ホスト計算機１からストレージシステム２に発行されたＩ／Ｏ要求１１１を記録するためのものである。
【００５０】
ホストＩ／Ｏ通信プログラム３１２は、ストレージシステム２とストレージシステム３との間でホストＩ／Ｏ情報３１４を送受信するためのものである。
【００５１】
ホストＩ／Ｏ再現プログラム３１３は、ホスト計算機１からストレージシステム２に発行されたＩ／Ｏ要求１１１をホストＩ／Ｏ情報３１４を基にして再現するためのものである。ホストＩ／Ｏ再現プログラム３１３は、ストレージシステム３に実装されており、ストレージシステム３において、Ｉ／Ｏ要求１１１が再現される。
【００５２】
ホストＩ／Ｏ情報３１４は、ホスト計算機１からストレージシステム２に発行されたＩ／Ｏ要求１１１に関する情報（受領時刻、応答時刻、ＣＤＢ、動作状況など）を含む。
【００５３】
性能情報記録プログラム３２１は、それぞれのストレージシステム２，３の動作状況など、Ｉ／Ｏ処理性能に関係する情報を記録するためのものである。
【００５４】
性能情報通信プログラム３２２は、ストレージシステム２とストレージシステム３との間で性能情報３２４を送受信するためのものである。
【００５５】
性能情報解析プログラム３２３は、性能情報３２４を解析するためのものである。性能情報解析プログラム３２３は、ストレージシステム３に実装されており、ストレージシステム２からストレージシステム３に送信された性能情報３２４を解析する。
【００５６】
性能情報３２４は、それぞれのストレージシステム２，３の動作状況など、Ｉ／Ｏ処理性能に関係する情報を含む。
【００５７】
図５はホストＩ／Ｏ情報３１４のテーブル構造を示す。同図に示すように、ホストＩ／Ｏ情報３１４は、ホストＩ／Ｏテーブル４０１を含む。ホストＩ／Ｏテーブル４０１は、ホスト計算機１から受領したそれぞれのＩ／Ｏ要求１１１について、内部で独自に付与したＩＤと、Ｉ／Ｏ要求１１１を受領した時刻を示す受領時刻と、Ｉ／Ｏ要求１１１の処理を終えた時刻を示す応答時刻と、Ｉ／Ｏ要求１１１のコマンド種別（ライトコマンドとリードコマンドの区別）や、アクセス先アドレスなどを示すＣＤＢ（コマンドデータブロック）と、ストレージシステム２がＩ／Ｏ要求１１１を処理したときのストレージシステム２内部の動作状況（キャッシュヒットの有無、データ処理時間など）と、をそれぞれ対応付けて管理している。
【００５８】
ホストＩ／Ｏテーブル４０１に格納される動作状況には、例えば、「全てのデータがキャッシュヒットした」、「一部のデータのみがキャッシュヒットした」、「全てのデータがキャッシュヒットしなかった」というキャッシュヒットに関する情報が含まれる他、ストレージシステム２が暗号化機能又はデータ圧縮機能を有している場合には、暗号化処理又はデータ圧縮処理に要する時間なども含まれる。暗号化処理等は、実装によっては、データの内容によってその処理時間が変化する。最も忠実に動作を再現するには、ストレージシステム２からストレージシステム３にデータを送信することが望ましいが、データがネットワーク４を流れることを考慮すると、ストレージシステム２からストレージシステム３に処理時間のみを送信するのがセキュリティ上、好ましい。
【００５９】
ストレージシステム２がホスト計算機１から受領したＩ／Ｏ要求１１１を処理するときの内部処理状況は、ストレージシステム２に設定されているチューニングパラメータ、ＲＡＩＤ構成、ディスクドライブ２０２の物理スペック、内部処理（暗号化処理やデータ圧縮処理など）の有無などによって大きく影響を受ける。ストレージシステム２がホスト計算機１から受領したＩ／Ｏ要求１１１を処理したときの内部処理状況と同じ内部処理状況をストレージシステム３において再現するには、ストレージシステム２に設定されているチューニングパラメータ、ＲＡＩＤ構成、ディスクドライブ２０２の物理スペック、内部処理（暗号化処理やデータ圧縮処理など）の有無などの情報（以下、内部処理状況再現情報と称する。）が必要となる。内部処理状況再現情報のうち一部の情報は、上述したホストＩ／Ｏテーブル４０１に格納されている情報であり、残りの一部の情報は、後述する性能情報３２４である。
【００６０】
ストレージシステム３は、ストレージシステム２がホスト計算機１から実際に受け取ったデータをストレージシステム２から受け取らなくても、ストレージシステム２からホストＩ／Ｏ情報３１４及び性能情報３２４を受信することにより、ストレージシステム２がＩ／Ｏ要求１１１を処理したときの内部処理状況と同じ内部処理状況をストレージシステム３において再現することができる。
【００６１】
尚、ストレージシステム２がホスト計算機１から受領したデータをそのままストレージシステム３に転送するように構成してもよい。このように構成した場合、ストレージシステム３は、ストレージシステム２からホストＩ／Ｏ情報３２４を受信しなくても、ストレージシステム２から性能情報３２４を受信することにより、ストレージシステム２がＩ／Ｏ要求１１１を処理したときの内部処理状況と同じ内部処理状況をストレージシステム３において再現することができる。
【００６２】
図６は性能情報３２４のテーブル構造を示す。同図に示すように、性能情報３２４は、性能パラメータテーブル５０１と、性能状況テーブル５０２とを含む。
【００６３】
性能パラメータテーブル５０１は、ＲＡＩＤグループにアサインされたＬＵＮと、ＲＡＩＤグループのＲＡＩＤタイプと、ＲＡＩＤグループを構成する各ディスクドライブ２０２の物理スペック（ドライブ種別、回転数、容量など）と、性能チューニングパラメータと、をそれぞれ対応付けて管理している。性能チューニングパラメータには、内部制御に関わるチューニングパラメータと、外部仕様に関わるチューニングパラメータとがある。内部制御に関わるチューニングパラメータとして、例えば、シーケンシャルリードの「先読み」、シーケンシャルライトの「まとめ書き」などがある。外部仕様に関わるチューニングパラメータとして、例えば、「ＲＡＩＤレベル」、「ドラブ構成」、「ディスクタイプ」、「ストライプサイズ」などがある。
【００６４】
性能状況テーブル５０２には、ストレージシステム２の稼動状況を示す情報（例えば、ＣＰＵ使用率、キャッシュデータ量など）が含まれる。
【００６５】
尚、性能情報３２４として、一般的なストレージシステムが性能チューニングパラメータとして保持しているものらリソース情報を例示したが、これ以外にも、例えば、各ＲＡＩＤグループが使用可能なキャッシュサイズ、内部処理方式（例えば、暗号化機能やデータ圧縮機能など）のモード設定、内部バスやその他の各種リソースの使用率など、ストレージシステム２のＩ／Ｏ性能に影響を与える情報が含まれていても良い。
【００６６】
図７はストレージシステム２からストレージシステム３にホストＩ／Ｏ情報３１４及び性能情報３２４を送信する処理ルーチンを示すフローチャートである。
ストレージシステム２は、ホスト計算機１からＩ／Ｏ要求１１１を受領し、このＩ／Ｏ要求１１１を処理する（ステップ７０１）。
【００６７】
ストレージシステム２は、ホストＩ／Ｏ情報３１４をローカルメモリ２１５に記録する必要があるか否かを判定する（ステップ７０２）。この判定は、性能チューニングのためにホストＩ／Ｏ情報３１４を記録するようにストレージ管理者から指定されているか否かに基づく。
【００６８】
ホストＩ／Ｏ情報３１４を記録する必要がないときには（ステップ７０２；ＮＯ）、ストレージシステム２は、処理ルーチンを抜けて終了する。
【００６９】
ホストＩ／Ｏ情報３１４を記録する必要があるときには（ステップ７０２；ＮＯ）、ストレージシステム２は、ホストＩ／Ｏ情報３１４をローカルメモリ２１５に記録する（ステップ７０３）。
【００７０】
ストレージシステム２は、ホストＩ／Ｏ情報３１４をストレージシステム３に送信する必要があるか否かを判定する（ステップ７０４）。
【００７１】
ホストＩ／Ｏ情報３１４は、ストレージシステム３において、内部処理状況の再現に利用されるものであるが、ストレージシステム３における内部処理状況の再現処理と、ストレージシステム２におけるＩ／Ｏ要求１１１の処理とは、必ずしも同期して行う必要はない。このため、ある程度まとめて、ストレージシステム２からストレージシステム３にホストＩ／Ｏ情報３１４を送信するのがネットワーク４の負荷の観点からも効率的である。この判定は、ホストＩ／Ｏ情報３１４を格納するバッファが満杯になったか否かの情報や、現時点でホストＩ／Ｏ情報３１４を送信しても効率的な通信が可能か否かという情報に基づく。
【００７２】
ホストＩ／Ｏ情報３１４を送信する必要がないときには（ステップ７０４；ＮＯ）、ストレージシステム２は、ステップ６０６へジャンプする。
【００７３】
ホストＩ／Ｏ情報３１４を送信する必要があるときには（ステップ７０４；ＹＥＳ）、ストレージシステム２は、ホストＩ／Ｏ情報３１４をストレージシステム３に送信する（ステップ７０５）。
【００７４】
尚、ストレージシステム２は、ホストＩ／Ｏ情報３１４を暗号化する等して、ホストＩ／Ｏ情報３１４がネットワーク４上に漏洩しないようにセキュリティを確保した上でストレージシステム３に送信するのが好ましい。
【００７５】
そして、ストレージシステム２は、性能情報３２４をストレージシステム３に送信する必要があるか否かを判定する（ステップ７０６）。
【００７６】
性能情報３２４は、内部処理状況の再現には必須の情報であるが、性能情報３２４に変更がない限り、何度も送信する必要はない。特に、性能パラメータテーブル５０１については、ホストＩ／Ｏ情報と比較すると、その更新頻度は極めて少ないため、一度送信すれば、再度送信する必要は殆どない。性能状況テーブル５０２についても、性能状況テーブル５０２に格納される情報は、ある一定間隔で取得すれば十分なので、ホストＩ／Ｏ情報３１４の送信頻度よりも少ない頻度でストレージシステム３に送信すればよい。
【００７７】
性能情報３２４を送信する必要がないときには（ステップ７０６；ＮＯ）、ストレージシステム２は、処理ルーチンを抜けて終了する。
【００７８】
性能情報３２４を送信する必要があるときには（ステップ７０６；ＹＥＳ）、ストレージシステム２は、送信情報３２４をストレージシステム３に送信し（ステップ７０７）、処理ルーチンを終了する。
【００７９】
尚、ストレージシステム２は、性能情報３２４を暗号化する等して、性能情報３２４がネットワーク４上に漏洩しないようにセキュリティを確保した上でストレージシステム３に送信するのが好ましい。
【００８０】
図８はストレージシステム３において内部処理状況を再現し、性能改善を提案する処理ルーチンを示すフローチャートである。
ストレージシステム３は、ホストＩ／Ｏ情報３１４を基にホストＩ／Ｏパターンを解析し、性能改善が見込まれるチューニングパラメータの設定変更例（以下、パラメータパターンと称する。）を作成する（ステップ８０１）。
【００８１】
例えば、アプリケーションプログラム１０１が発行したＩ／Ｏ要求１１０がＯＳ／ＦＳ／ドライバ／ＨＢＡ１０２の影響を受けて複数のＩ／Ｏ要求１１１に分割されるような場合には、先読みを小さく設定するのがよい。
【００８２】
尚、効率的な性能チューニングを希望しない場合や、チューニングパラメータの設定変更を網羅的に行いたいときには、ステップ８０１は不要である。
【００８３】
ストレージシステム３は、ステップ８０１で作成したパラメータパターンに基づいてチューニングパラメータを設定変更する（ステップ８０２）。このとき、過去に一度テストしたパラメータパターンについては、チューニングテストを実施する必要はない。また、パラメータパターンのテスト順によっては、チューニングに要する時間が大きく異なる場合があるので、適切な順序で実施するのが好ましい。
【００８４】
例えば、（４Ｄ＋１Ｐ）構成を有するＲＡＩＤグループについて、先読みモードのオン／オフ設定と、（４Ｄ＋１Ｐ）構成から（５Ｄ＋１Ｐ）構成へのドライブ構成変更をテストする場合は、先読みモードのオン／オフ設定をテストしてから、（４Ｄ＋１Ｐ）構成から（５Ｄ＋１Ｐ）構成へのドライブ構成変更をテストするのが好ましい。先読みモードのオン／オフ設定は、ストレージシステム３の内部制御に関わるものであるから、短時間かつ低負荷で変更可能である。これに対し、ドライブ構成変更は、ストレージシステム３の外部仕様に関わるものであり、このようなチューニングパラメータを変更するには、複数のディスクドライブ２０２間のデータ移動が必要になるので、長時間かつ高負荷を要するためである。
【００８５】
そして、ストレージシステム３は、ステップ８０２でチューニングパラメータを設定変更した環境下において、ホストＩ／Ｏ要求１１１の内部処理状況を再現し（ステップ８０３）、テスト結果の情報をローカルメモリに記録する（ステップ８０４）。
【００８６】
ステップ８０４で取得するテスト結果には、ホストＩ／Ｏ要求１１１に対する応答時間がどの程度変化したかを示す情報や、ホストＩ／Ｏ要求１１１を内部処理する際のリソース使用率がどの程度変化したかを示す情報が含まれており、Ｉ／Ｏ性能改善の有無を判定する際に参酌される。
【００８７】
ストレージシステム３は、ステップ８０１で作成した全てのパラメータパターンについて、チューニングテストを実施したか否かを判定する（ステップ８０５）。
【００８８】
一部のパラメータパターンについて、チューニングテストを実施してない場合には（ステップ８０５；ＮＯ）、ストレージシステム３は、ステップ８０２の処理に戻る。
【００８９】
全てのパラメータパターンについて、チューニングテストを実施した場合には（ステップ８０５；ＹＥＳ）、ストレージシステム３は、ストレージシステム２のＩ／Ｏ性能と比較して、性能改善がみられるパラメータパターンが存在するか否かを判定する（ステップ８０５）。
【００９０】
このとき、ステップ８０４で取得したテスト結果を使用し、ストレージシステム２に設定されているチューニングパラメータに比べて、ホストＩ／Ｏ応答時間が短縮したパラメータパターンや、内部リソース使用率が低下するパラメータパターンが存在するか否かに基づいて、性能改善の有無を判定する。
【００９１】
性能改善がみられるようなパラメータパターンが存在しない場合には（ステップ８０６；ＮＯ）、ストレージシステム２に設定されているチューニングパラメータが最適であることを意味しているので、ストレージシステム３は、性能改善を提案することなく、処理ルーチンを抜けて終了する。
【００９２】
性能改善がみられるようなパラメータパターンが存在する場合には（ステップ８０６；ＹＥＳ）、ストレージシステム３は、性能改善方法を提示する（ステップ８０７）。
【００９３】
性能改善方法には、新規デバイスを採用するものや、有償のデバイス又は高性能オプションの追加が必要になるもの、或いはチューニングパラメータの変更にリソースの追加が必要になるものがあり、これらはユーザがコストをかけて性能改善することになる。故に性能向上の引き換えにユーザが負担すべきコストを提示すのが好ましい。また、性能向上がどの程度であるかについては、どのＩ／Ｏ要求がどの程度向上するという具体的な数値で示すのが好ましい。
【００９４】
本実施例によれば、ホスト計算機１内のＯＳ／ＦＳ／ドライバ／ＨＢＡ１０２などがアプリケーションプログラム１０１のＩ／Ｏ要求１１０に与える影響を考慮した上でのストレージシステム２の性能チューニングを実施することができる。
【図面の簡単な説明】
【００９５】
【図１】本実施例に係わる計算機システムのシステム構成図である。
【図２】ホスト計算機からストレージシステムに発行されるＩ／Ｏ要求がＯＳ／ＦＳ／ドライバ／ＨＢＡなどの影響を受ける様子を示す説明図である。
【図３】ストレージシステムのハードウェア構成図である。
【図４】ローカルメモリ内に格納されている各種制御プログラム及び情報を示す説明図である。
【図５】ホストＩ／Ｏ情報のテーブル構造を示す説明図である。
【図６】性能情報のテーブル構造を示す説明図である。
【図７】実運用に供されるストレージシステムから性能再現用に供されるストレージシステムにホストＩ／Ｏ情報と性能情報を送信する処理を示すフローチャートである。
【図８】性能再現用に供されるストレージシステムにおいて性能改善を提案する処理ルーチンを示すフローチャートである。
【符号の説明】
【００９６】
１…ホスト計算機
２…ストレージシステム（実運用系）
３…ストレージシステム（Ｉ／Ｏ性能再現用）
１０…計算機システム
【図１】
2008065433.tif 000003
【図２】
2008065433.tif 000004
【図３】
2008065433.tif 000005
【図４】
2008065433.tif 000006
【図５】
2008065433.tif 000007
【図６】
2008065433.tif 000008
【図７】
2008065433.tif 000009
【図８】
2008065433.tif 000010