(57)【特許請求の範囲】
【請求項１】
コンピュータから送信されたライトコマンドにともなうデータをライトバックにて記憶するストレージ装置において、
前記ライトコマンドを受信した際に前記ライトコマンドに対応するライトジョブを登録するジョブ管理テーブルを記憶するメモリと、
前記ライトコマンドにともなうデータを一時的に格納するキャッシュメモリと、
前記ジョブ管理テーブルから取得したライトジョブの累積数に基づいて前記ストレージ装置の負荷状態を判定するとともに、判定された負荷状態に基づいて前記ライトコマンドに対する完了報告を前記コンピュータに出力するタイミングを制御するコントローラと、を備える第１コントローラモジュールと、
前記第１コントローラモジュールに接続される第１のストレージドライブと、
前記第１コントローラモジュールと冗長構成をなす第２コントローラモジュールと、
前記第２コントローラモジュールに接続される第２のストレージドライブと、を有し、
前記第１コントローラモジュールの前記コントローラは、
前記ジョブ管理テーブルから取得した前記ライトジョブの累積数に基づいて前記ストレージ装置の負荷状態を高負荷と判定した場合には、負荷対策として動作モードをライトバックモードからライトスルーモードに設定変更するとともに、前記第２コントローラモジュールに対してライトスルーモードへの設定変更コマンドを送信し、
前記ライトスルーモードのときには、前記コンピュータから受信したライトコマンドに対応するライトジョブを前記ジョブ管理テーブルに登録せずに、ライトコマンドにともなうデータを直ちに第１のストレージドライブに出力し、
冗長化のためのライトコマンドおよび前記コンピュータから受信したライトコマンドにともなうデータを第２コントローラモジュールに送信し、
前記第２コントローラモジュールに送信した前記ライトコマンドにともなうデータの第２のストレージドライブへの出力完了を示す完了応答を第２コントローラモジュールから受けるまでの時間を利用して、前記ジョブ管理テーブルに登録された処理待ちのライトジョブに基づいて前記キャッシュメモリからデータを取得して前記第１のストレージドライブに出力し、
前記第２コントローラモジュールに送信した前記ライトコマンドにともなうデータの第２のストレージドライブへの出力完了を示す完了応答を第２コントローラモジュールから受けると、前記コンピュータから受信した前記ライトコマンドに対する完了報告を前記コンピュータへ出力することを特徴とするストレージ装置。
【請求項２】
前記第１のコントローラモジュールは、
前記ジョブ管理テーブルから取得した前記ライトジョブの累積数に基づいて前記ストレージ装置の負荷状態を高負荷ではないと判定した場合には、
前記ライトコマンドに対応するライトジョブを処理待ちのキューとして前記ジョブ管理テーブルに登録し、前記ライトコマンドにともなうデータを前記キャシュメモリに格納し、
冗長化のためのライトコマンドおよび前記コンピュータから受信したライトコマンドにともなうデータを第２コントローラモジュールに送信し、
前記第２コントローラモジュールに送信した前記ライトコマンドにともなうデータに対する処理の完了応答を第２コントローラモジュールから受信したときに、前記コンピュータへの前記ライトコマンドに対する完了報告を出力することを特徴とする請求項１に記載のストレージ装置。
【請求項３】
データ処理を実行するコンピュータから送信されたライトコマンドにともなうデータを一時的にキャッシュメモリに格納するとともに、前記ライトコマンドに対応するライトジョブをジョブ管理テーブルに登録しておき、前記キャシュメモリに格納されたデータを前記ジョブ管理テーブルに登録されたライトジョブに基づいて第１のストレージドライブ内の記憶媒体に記録するライトバック処理を行う第１コントローラモジュールと、第１コントローラモジュールと冗長構成をなす第２コントローラモジュールと、第２コントローラモジュールに接続される第２のストレージドライブとを有するストレージ装置の負荷状態低減方法において、
前記ジョブ管理テーブルから取得した前記ライトジョブの累積数に基づいて前記ストレージ装置の負荷状態を判定し、
前記負荷状態が、高負荷と判定した場合には、負荷対策として動作モードをライトバックモードからライトスルーモードに設定変更し、
前記第２コントローラモジュールに対してライトスルーモードへの設定変更コマンドを送信し、
前記ライトスルーモードのときには、前記コンピュータから受信した前記ライトコマンドに対応するライトジョブを前記ジョブ管理テーブルに登録せずに、前記ライトコマンドにともなうデータを直ちに第１のストレージドライブに出力し、
冗長化のためのライトコマンドおよび前記コンピュータから受信したライトコマンドにともなうデータを第２コントローラモジュールに送信し、
前記第２コントローラモジュールに送信した前記ライトコマンドにともなうデータの第２のストレージドライブへの出力完了を示す完了応答を第２コントローラモジュールから受けるまでの時間を利用して、前記ジョブ管理テーブルに登録された処理待ちのライトジョブに基づいて前記キャッシュメモリからデータを取得して前記第１のストレージドライブに出力し、
前記第２コントローラモジュールに送信した前記ライトコマンドにともなうデータの第２のストレージドライブへの出力完了を示す完了応答を第２コントローラモジュールから受けると、前記コンピュータから受信した前記ライトコマンドに対する完了報告を前記コンピュータへ出力することを特徴とするストレージ装置の負荷状態低減方法。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、ストレージ装置及びその負荷状態低減方法に関する。
【背景技術】
【０００２】
複数のストレージドライブを備えたストレージ装置として、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）装置が知られている。ストレージドライブの一例としてハードディスクドライブ（ＨＤＤ）が挙げられる。
【０００３】
ＨＤＤは、記憶媒体である磁気ディスク媒体を所定の回転数で回転させながら磁気ヘッドを目的のトラックにシークし、磁気ヘッドを磁気ディスク媒体に近接させて磁気的にデータの記録及び再生を行う。
【０００４】
従って、ＨＤＤにおける書込み処理や読出し処理には機械的動作がともなうため、その処理速度はホストコンピュータのＣＰＵの処理速度に比べて非常に遅い。そのため、ＨＤＤには、処理速度の格差（性能限界）を補う様々な機能が搭載されている。その１つとして、ライトバックと呼ばれる機能が知られている。
【０００５】
ホストコンピュータが発行するコマンドは、複数のＨＤＤを制御するＲＡＩＤ装置のコントローラが受信し、ジョブ管理テーブルに待ち行列（キュー）としてメモリに格納される。ジョブ管理テーブルに登録された処理待ちのジョブは、ＨＤＤに対して順次指示され、実行される。
【０００６】
ＲＡＩＤ装置のコントローラは、コマンドがライトコマンドの場合、ライトコマンドにともなうライトデータをキャッシュメモリに一時的に格納し、この格納が完了（正常終了）した時点でライトコマンドの完了報告をホストコンピュータに応答する。
【０００７】
その後、キャッシュメモリに一時的に格納されたライトデータは、処理の空き時間にＨＤＤに書き込まれる。このように、ライトバック機能は、キャッシュメモリがＨＤＤに比べて記憶動作が高速であるという特性を活かしたものであり、ＨＤＤの性能限界の緩和が図られている。
【０００８】
しかしながら、ホストコンピュータからストレージ装置へのライトコマンドが頻繁に発生し、ストレージ装置の高負荷状態が継続してしまう場合がある。この場合、ＨＤＤへの処理待ちのライトジョブがジョブ管理テーブルに累積し、最終的にはストレージ装置が新規のコマンドを受け付けることができないキューフル（Ｑｕｅｕｅ  Ｆｕｌｌ）と呼ばれる状態に陥る可能性がある。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平９−２５８９０７号公報
【特許文献２】特開２０００−５６９３２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
開示の技術は、高負荷状態の緩和を図ったストレージ装置、及びストレージ装置の高負荷状態低減方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
開示の技術の一側面によると、コンピュータから送信されたライトコマンドにともなうデータをライトバックにて記憶するストレージ装置において、ストレージ装置は、ライトコマンドを受信した際にライトコマンドに対応するライトジョブを登録するジョブ管理テーブルを記憶するメモリと、ライトコマンドにともなうデータを一時的に格納するキャッシュメモリと、ジョブ管理テーブルから取得したライトジョブの累積数に基づいてストレージ装置の負荷状態を判定するとともに、判定された負荷状態に基づいてライトコマンドに対する完了報告をコンピュータに出力するタイミングを制御するコントローラと、を備える第１コントローラモジュールと、第１コントローラモジュールに接続される第１のストレージドライブと、第１コントローラモジュールと冗長構成をなす第２コントローラモジュールと、第２コントローラモジュールに接続される第２のストレージドライブと、を有し、第１コントローラモジュールのコントローラは、ジョブ管理テーブルから取得したライトジョブの累積数に基づいてストレージ装置の負荷状態を高負荷と判定した場合には、負荷対策として動作モードをライトバックモードからライトスルーモードに設定変更するとともに、第２コントローラモジュールに対してライトスルーモードへの設定変更コマンドを送信し、ライトスルーモードのときには、コンピュータから受信したライトコマンドに対応するライトジョブをジョブ管理テーブルに登録せずに、ライトコマンドにともなうデータを直ちに第１のストレージドライブに出力し、冗長化のためのライトコマンドおよびコンピュータから受信したライトコマンドにともなうデータを第２コントローラモジュールに送信し、第２コントローラモジュールに送信したライトコマンドにともなうデータの第２のストレージドライブへの出力完了を示す完了応答を第２コントローラモジュールから受けるまでの時間を利用して、ジョブ管理テーブルに登録された処理待ちのライトジョブに基づいてキャッシュメモリからデータを取得して第１のストレージドライブに出力し、第２コントローラモジュールに送信したライトコマンドにともなうデータの第２のストレージドライブへの出力完了を示す完了応答を第２コントローラモジュールから受けると、コンピュータから受信したライトコマンドに対する完了報告をコンピュータへ出力する構成を備える。
【発明の効果】
【００１２】
開示の技術は、高負荷状態の緩和を図ったストレージ装置、及びストレージ装置の高負荷状態低減方法を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】コンピュータシステムの構成概略図である。
【図２】ストレージ装置のライトバック処理の手順を説明するための図である。
【図３】負荷対策処理部を説明するための図である。
【図４】負荷対策処理１を説明するための図である。
【図５】負荷対策処理２を説明するための図である。
【図６】負荷対策処理３を説明するための図である。
【図７】負荷対策処理４を説明するための図である。
【図８】負荷対策処理５を説明するための図である。
【図９】負荷対策処理６を説明するための図である。
【図１０】負荷対策処理選択手順を説明するためのフローチャートである。
【図１１】負荷対策処理選択手順を説明するための図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して実施の形態を詳細に説明する。図１は、コンピュータシステムの構成概略図である。コンピュータシステム１は、ホストコンピュータの一例であるサーバ装置２と、ストレージ装置３を含む。ストレージ装置３は、ＲＡＩＤ装置（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）を用いた例で示す。
【００１５】
サーバ装置２は、ホストインターフェースを介して、ストレージ装置３に接続される。本実施の形態では、ホストインターフェースとしてファイバチャネル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）インターフェースを使用する。
【００１６】
ストレージ装置３のファイバチャネルポート（ＦＣポート）６ａ、６ｂは、ファイバチャネルケーブル４ａ、４ｂ及びファイバチャネルスイッチ（ＦＣスイッチ）５ａ、５ｂを介して、サーバ装置２のファイバチャネルポート（ＦＣポート）１１ａ、１１ｂに接続される。なお、ホストインターフェースとして、ｉＳＣＳＩやＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）を使用することもできる。
【００１７】
ストレージ装置３は、第１及び第２コントローラモジュール７ａ、７ｂを備えたコントローラ７を含む。また、第１及び第２コントローラモジュール７ａ、７ｂは、内部バス８を介して接続され、ライトコマンドやライトデータを互いに送受信することにより、冗長化されている。なお、ストレージ装置３は、各部に電力を供給する電源装置（図示せず）をさらに備える。
【００１８】
第１コントローラモジュール（ＣＭ１）７ａは、第１コントローラ１５ａ、第１メモリ１６ａ、第１キャッシュメモリ１８ａを含む。また、第１コントローラモジュール（ＣＭ１）７ａは、デバイスアダプタ（ＤＡ）１９ａを介して接続されたストレージドライブ群１０ａの複数のストレージドライブ９に対するデータの記録再生制御等を実行する。
【００１９】
第１コントローラ１５ａは、サーバ装置２からのコマンドに対応して各種制御を行う。第１メモリ１６ａは、第１コントローラ１５ａによって利用される各種プログラムや各種管理情報を格納するメモリである。第１キャッシュメモリ１８ａは、ストレージドライブ群１０ａの入出力データ（ライト／リードデータ）が一時的に格納されるメモリである。
【００２０】
第１コントローラ１５ａにおいて、コマンド処理部２１ａ、負荷対策処理部３０ａ、ジョブ管理部２２ａ、ディスク制御部２３ａ等の制御機能がプログラムによって構築される。また、第１コントローラ１５ａは、キャッシュメモリ１８ａのメモリ制御機能も備える。
【００２１】
第２コントローラモジュール（ＣＭ２）７ｂも第１コントローラモジュール７ａと同様に、第２コントローラ１５ｂ、第２メモリ１６ｂ、第２キャッシュメモリ１８ｂを含む。また、第２コントローラモジュール（ＣＭ２）７ｂは、デバイスアダプタ（ＤＡ）１９ｂを介して接続されたストレージドライブ群１０ｂの複数のストレージドライブ９に対するデータの記録再生制御等を実行する。
【００２２】
第２コントローラ１５ｂは、サーバ装置２からのコマンドに対応して各種制御を行う。第２メモリ１６ｂは、第２コントローラ１５ｂによって利用される各種プログラムや各種管理情報を格納するメモリである。第２キャッシュメモリ１８ｂは、ストレージドライブ群１０ｂの入出力データ（ライト／リードデータ）が一時的に格納されるメモリである。
【００２３】
第２コントローラ１５ｂは、第１コントローラ１５ａと同様に、コマンド処理部２１ｂ、負荷対策処理部３０ｂ、ジョブ管理部２２ｂ、ディスク制御部２３ｂ等の制御機能がプログラムによって構築される。また、第２コントローラ１５ｂは、キャッシュメモリ１８ｂのメモリ制御機能も備える。
【００２４】
コマンド処理部２１ａ、２１ｂは、サーバ装置２からのコマンドを解析し、コマンドに対応するコマンド処理（ジョブ）をジョブ管理部２２ａ、２２ｂに出力する。このコマンド処理（ジョブ）の内容を基に、ストレージドライブ９に対する入出力コマンドが作成される。
【００２５】
また、コマンド処理部２１ａ、２１ｂは、コマンド処理が完了した際に、コマンド処理が正常終了した旨を示す完了報告または異常終了した旨を示すエラー報告をＦＣポート６ａ、６ｂを介してサーバ装置２に出力する。
【００２６】
コマンド処理部２１ａ、２１ｂは、ライトコマンドにともなうライトデータを第１及び第２キャッシュメモリ１８ａ、１８ｂにそれぞれ一時的に格納する制御を行う。また、コマンド処理部２１ａ、２１ｂは、ストレージドライブ群１０ａ、１０ｂから出力されたリードデータを第１及び第２キャッシュメモリ１８ａ、１８ｂにそれぞれ一時的に格納する制御を行う。
【００２７】
ジョブ管理部２２ａ、２２ｂは、コマンド処理部２１ａ、２１ｂから出力されたコマンド処理を受信し、コマンド処理（ジョブ）を処理待ちのキューとして第１及び第２メモリ１６ａ、１６ｂのジョブ管理テーブル１７ａ、１７ｂにそれぞれ登録する。
【００２８】
また、ジョブ管理部２２ａ、２２ｂは、ジョブ管理テーブルを参照してコマンド処理状況を把握し、ディスク制御部２３ａ、２３ｂに対してコマンド処理をそれぞれ指示する。例えば、ジョブ管理部２２ａ、２２ｂは、予め設定されたジョブ実行タイミングで、ディスク制御部２３ａ、２３ｂに対してライト処理を指示する。
【００２９】
なお、ジョブ実行タイミングは、ジョブ管理テーブル１７ａ、１７ｂに登録されたライトジョブの累積数が例えば７０％を超えた場合や、キャッシュメモリに１８ａ、１８ｂの使用率が例えば７０％を超えた場合等である。
【００３０】
ディスク制御部２３ａ、２３ｂは、ジョブ管理部２２ａ、２２ｂからのコマンド処理の指示を受けて、目的の論理アドレスに対するデータの記録または再生を実行させるための入出力コマンドを作成する。そして、ディスク制御部２３ａ、２３ｂは、作成した入出力コマンドをストレージドライブ群１０ａ、１０ｂに発行する。
【００３１】
負荷対策処理部３０ａ、３０ｂは、第１及び第２コントローラ１５ａ、１５ｂの負荷状態を監視して、ストレージ装置２が高負荷状態になっているか否かを判定する。そして、負荷対策処理部３０ａ、３０ｂは、高負荷状態の場合負荷対策を実行する。なお、負荷状態は、ジョブ管理テーブルから取得したライトジョブの累積数から求める。また、負荷対策処理部３０ａ、３０ｂの詳細については、後述する。
【００３２】
複数のストレージドライブ９は、ハードディスクドライブ（ＨＤＤ）であり、一部ソリッドステートドライブ（ＳＳＤ）であっても良い。なお、ＨＤＤは、記録媒体として磁気ディスク媒体を使用したものであり、複数の磁気ディスク及び複数の磁気ヘッドを筐体内に有し、大容量記憶が可能である。
【００３３】
また、ＨＤＤは、磁気ディスク媒体を所定の回転数で回転させながら磁気ヘッドを目的のトラックにシークし、磁気ヘッドを磁気ディスク媒体に近接させて磁気的にデータの記録及び再生を行う。
【００３４】
従って、ＨＤＤは、磁気ディスク媒体の回転駆動や磁気ヘッドのシーク制御といった機械的な駆動をともなう為、ＨＤＤの入出力帯域はホストインターフェースの入出力帯域よりも狭い。つまり、データ処理速度に格差が生じる。その為、通常処理時、ストレージ装置はライトバック処理を実行する。
【００３５】
図２は、ストレージ装置のライトバック処理の手順を説明するための図である。サーバ装置２は、ストレージドライブ群１０ａの目的のストレージドライブに対するライトコマンドを第１コントローラモジュール７ａに対して発行する（処理１）。
【００３６】
ライトコマンドを受信すると、コマンド処理部２１ａは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部２２ａに出力する。ジョブ管理部２２ａは、コマンド処理部２１ａから出力されたライトジョブを処理待ちのキューとしてジョブ管理テーブル１７ａに登録する（処理２）。そして、コマンド処理部２１ａは、ライトコマンドにともなうライトデータを第１キャッシュメモリ１８ａに格納する。
【００３７】
また、第１コントローラ１５ａは、冗長化のためのライトコマンドと、第１キャッシュメモリ１８ａに格納されたライトデータを第２コントローラモジュール７ｂに出力する。ライトコマンドを受信すると、コマンド処理部２１ｂは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部２２ｂに出力する。
【００３８】
ジョブ管理部２２ｂは、コマンド処理部２１ｂから出力されたライトジョブを処理待ちのキューとしてジョブ管理テーブルに登録する（処理３）。また、第２コントローラ１５ｂは、ライトデータを第２キャッシュメモリ１８ｂに格納する（処理４）。そして、第２コントローラモジュール７ｂは第１コントローラモジュール７ａに完了応答を出力する。
【００３９】
第１コントローラ１５ａは、完了応答を受けて、サーバ装置２へライトコマンドに対する完了報告を作成し、サーバ装置２へ出力する（処理５）。そして、第１コントローラモジュール７ａはコマンド待機状態になる。その後、ジョブ管理部２２ａは、所定のジョブ実行タイミングで、ディスク制御部２３ａに対してライト指示を出力する。
【００４０】
そして、ディスク制御部２３ａは、ストレージドライブ群１０ａのライト対象のストレージドライブ９にライトコマンドを発行し、第１キャッシュメモリ１８ａに格納されたライトデータのライト処理を実行させる（処理６）。その後、ライト対象のストレージドライブ９からライト処理の完了応答を受信すると、ジョブ管理部２２ａは、ジョブ管理テーブル１７ａから処理が完了したライト処理を削除する。
【００４１】
ジョブ管理部２２ｂは、所定のジョブ実行タイミングで、ディスク制御部２３ｂに対してストレージドライブ群１０ｂのライト対象のストレージドライブ９にライト指示を出力する。
【００４２】
そして、ディスク制御部２３ｂは、第２キャッシュメモリ１８ｂに格納されたライトデータのライト処理を実行する（処理７）。ライト対象のストレージドライブ９からライト処理の完了応答を受信すると、ジョブ管理部２２ｂは、ジョブ管理テーブル１７ｂから処理が完了したライトジョブを削除する。
【００４３】
このように、ライトバック処理では、サーバ装置２からのライトコマンドを受信するたびに、ライトコマンドに対応するライトジョブがジョブ管理テーブルに蓄積される。また、ライトコマンドにともなうデータがキャッシュメモリに蓄積される。
【００４４】
従って、サーバ装置２からライトコマンドが頻繁に発行された場合に、ストレージドライブ９へのライト処理待ちが累積し、キューフル状態が発生する可能性がある。
【００４５】
そのため、ストレージドライブ９の性能に応じて、最大Ｉ／Ｏ多重度をサーバ装置２のオペレーティングシステムやホストバスアダプタ等に設定することにより、サーバ装置２のコマンド発行数を制限することができる。なお、最大Ｉ／Ｏ多重度は、ストレージ装置３が受付可能な入出力コマンド数である。
【００４６】
しかしながら、最大Ｉ／Ｏ多重度は、オペレーティングシステム、ホストバスアダプタ、及びストレージ装置の仕様に合わせてユーザによって設定される。そのため、最大Ｉ／Ｏ多重度が適切に設定されない場合がある。
【００４７】
この場合、ＦＣインターフェース（ホストバスアダプタ）の使用帯域がドライブインターフェース（デバイスアダプタ）の使用帯域を超える状況が継続し、新規に追加されるライト処理の増加量に対してジョブ処理能力が追いつかなくなってしまう。そして、最終的には管理可能なジョブ数が限界を超えて、キューフル状態が発生する。
【００４８】
そこで、ストレージ装置自身が負荷状態を判断し、継続的な過負荷が予期される場合は、負荷対策処理部３０ａ、３０ｂによって負荷対策を実施して負荷を低減させる。具体的には、サーバ装置２への完了報告の出力を意図的に通常処理時よりも遅延させる。
【００４９】
つまり、サーバ装置２は、ストレージ装置３からの完了報告が来るまではコマンドを発行することができないインターフェースの仕様を利用する。このため、ストレージ装置３はコマンドの受け付けを中断することができる。
【００５０】
そして、ライトコマンド受信から完了報告の出力までの時間を延長することにより、ライト処理の時間を確保して、ストレージドライブへのライト処理を促進し、処理待ちのライト処理を減らして負荷状態を低減する。このように、負荷状態を低減することにより、最大Ｉ／Ｏ多重度を最適に設定する必要がなくなり、ストレージ装置の処理性能に応じた最適なシステム運用が可能になる。
【００５１】
図３（Ａ）、（Ｂ）は、負荷対策処理部を説明するための図である。図３（Ａ）は、負荷対策処理部の構成概略図である。図３（Ｂ）は、モード管理テーブルを示す。負荷対策処理部３０ａ、３０ｂは、負荷状態判定部３１、第１モード／第２モード選択部３２、負荷対策処理選択部３３、負荷対策処理実行指示部３４を有する。これらはプログラムによって構築される。
【００５２】
負荷状態判定部３１は、所定時間毎やライトコマンドの受信時等の予め定められた判定タイミングで負荷状態を判定する。負荷状態判定部３１は、ジョブ管理部２２ａ、２２ｂに指示して、ジョブ管理テーブル１７ａ、１７ｂにキューとして登録されたライトジョブの累積数を取得する。
【００５３】
そして、負荷状態判定部３１は、取得したライトジョブの累積数と最大値（ジョブ管理テーブルに登録可能なライトジョブの最大値）を基に負荷率を算出する。従って、ストレージ装置自身が負荷状態を判定することができる。そのため、サーバ装置等のホストコンピュータ側に特別な仕組みを持たせる必要がない。
【００５４】
第１モード／第２モード選択部３２は、判定された負荷率に基づいて、第１モード（通常処理モード）と第２モード（負荷対策モード）のいずれかを選択する。例えば、負荷率が７０％以上であれば第２モードが選択される。
【００５５】
負荷対策処理選択部３３は、負荷状態の改善具合に応じて、複数の負荷対策処理の中から１つを選択する。第１及び第２コントローラモジュール７ａ、７ｂは、選択されたモードと負荷対策処理に応じて動作設定が行われる。そして、負荷対策処理実行指示部３４は設定された負荷対策処理の実行するように各制御部に指示する。
【００５６】
図３（Ｂ）に示すように、モード管理テーブル３５は第１及び第２メモリ１６ａ、１６ｂに格納されている。モード管理テーブル３５には、モード種別、処理種別、処理内容、及び動作設定フラグが登録されている。第１モード／第２モード選択部３２及び負荷対策処理選択部３３は、このモード管理テーブル３５を参照して、モード及び負荷対策処理の選択を行う。
【００５７】
また、第１モード／第２モード選択部３２及び負荷対策処理選択部３３は、動作設定フラグの登録を行う。その後、負荷対策処理部３０は、動作設定フラグを参照して、動作設定フラグに対応したモード制御や負荷対策処理制御を行う。
【００５８】
第１モードは通常処理モードであり、ライトコマンド受信時ライトバック処理を実行するものである。第２モードは負荷対策処理モードであり、サーバ装置２への完了報告の出力タイミングを通常処理モードの時より遅延させるものである。
【００５９】
モード管理テーブル３５には、６種類の負荷対策処理が登録されている。負荷対策処理１は、ライトコマンドを処理する担当コントローラを他のコントローラと交替する処理である。負荷対策処理２は、第１及び第２コントローラモジュール７ａ、７ｂのコントローラ間の通信帯域を変更する処理である。
【００６０】
負荷対策処理３は、予め定められた待ち時間を付加して、サーバ装置２への完了報告の出力タイミングを遅らせる処理である。負荷対策処理４は、ライトスルーモードに設定し、ライトコマンド受信時にストレージドライブ９にライトデータを直接転送してライト処理し、同時にキャシュメモリ１８ａ、１８ｂにもライトデータを格納する処理である。
【００６１】
負荷対策処理５は、ホストインターフェース（ホストＩ／Ｆ）における転送速度の設定を変更する処理である。負荷対策処理６は、ＦＣ設定の変更を行う処理である。例えば、負荷対策処理６によってＢＢクレジット（Ｂｕｆｆｅｒ−ｔｏ−Ｂｕｆｆｅｒ  Ｃｒｅｄｉｔ）の設定を変更する。そして、サーバ装置２と第１コントローラモジュール７ａのインターフェース間において送受信可能なフレーム数を変更する。
【００６２】
図４は、負荷対策処理１を説明するための図である。負荷対策処理部３０ａにおいて、負荷状態判定部３１が判定した負荷率が第１しきい値（例えば７０％）を超えている場合に、第１モード／第２モード選択部３２は、第２モードを選択する。
【００６３】
また、負荷対策処理選択部３３は、負荷対策処理１を選択する。そして、第１コントローラモジュール７ａの動作設定フラグは第２モードの負荷対策処理１に設定される。負荷対策処理部３０ａは、負荷対策処理部３０ｂに動作設定変更のコマンドを発行し、負荷対策処理部３０ｂは第２コントローラモジュール７ｂの動作設定フラグを第２モードの負荷対策処理１に設定する（処理１）。
【００６４】
負荷対策実行指示部３４は、第１メモリ１６ａに格納されたグループ情報２４ａを第２メモリ１６ｂに格納されたグループ情報２４ｂと入れ換える制御を行う（処理２）。なお、グループ情報は、複数のストレージドライブを識別するためのＬＵＮ（論理ユニットナンバー）の割り当て情報である。
【００６５】
このＬＵＮがサーバ装置２からコマンドにより指定されることで、サーバ装置２は目的のストレージドライブへのアクセスを行うことができる。このグループ情報を入れ換えることで、目的のストレージドライブを制御する担当コントローラを第１コントローラモジュール７ａから第２コントローラモジュール７ｂに交替させる（処理３）。
【００６６】
なお、処理１〜３は、負荷状態判定時に実行する。また、負荷状態判定部３１による負荷状態の判定は、所定時間毎やライトコマンドの受信時等の予め定められた判定タイミングで実施される。なお、動作設定フラグが第２モードの負荷対策処理１に設定された後のライトコマンドに対する処理は下記のとおりである。
【００６７】
サーバ装置２は、ストレージドライブ群１０ａの目的のストレージドライブに対するライトコマンドを第１コントローラモジュール７ａに対して発行する（処理４）。ライトコマンドを受信すると、コマンド処理部２１ａは、ライトコマンドを解析し、ライト対象のＬＵＮを取得する。
【００６８】
コマンド処理部２１ａは、グループ情報２４ａを確認し、ライト対象のＬＵＮが存在しないことを認識する。その為、コマンド処理部２１ａは、第２モードの負荷対策処理１の設定に対応して、内部バス８を介して、第２コントローラモジュール７ｂにライトコマンドを発行するとともに、ライトコマンドにともなうライトデータを出力する。
【００６９】
第１コントローラ１５ａは、第２コントローラモジュール７ｂからの完了応答を受信するまでの時間を利用して、ジョブ管理テーブル１７ａに登録されたライトジョブを実行し、できる限り処理待ちのジョブ数を減らしていく（処理５）。
【００７０】
第１コントローラモジュール７ａからライトコマンドを受信した第２コントローラ１５ｂのコマンド処理部２１ｂは、ライトコマンドを解析する。そして、コマンド処理部２１ｂは、グループ情報２４ｂを確認し、ライト対象のＬＵＮが存在することを認識する。
【００７１】
コマンド処理部２１ｂは、ライトコマンドに対応するライトジョブをジョブ管理部２２ａに出力する。ジョブ管理部２２ｂは、ライトコマンドに対応するライトジョブをジョブ管理テーブル１７ｂに登録する（処理６）。また、コマンド処理部２１ｂは、ライトデータを第２キャッシュメモリ１８ｂに格納する（処理７）。
【００７２】
第２コントローラ１５ｂは、冗長化のためのライトコマンドと、第２キャッシュメモリ１８ｂに格納されたライトデータを第１コントローラモジュール７ａに出力する。ライトコマンドを受信した第１コントローラモジュール７ａのコマンド処理部２１ａは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部２２ａに出力する。
【００７３】
そして、ジョブ管理部２２ａは、ライトコマンドに対応するライトジョブをジョブ管理テーブル１７ａに登録する（処理８）。また、コマンド処理部２１ａは、ライトデータを第１キャッシュメモリ１８ａに格納する（処理９）。格納が完了すると、第１コントローラモジュール７ａは第２コントローラモジュール７ｂに完了応答を出力する。
【００７４】
この完了応答を受信すると、第２コントローラモジュール７ｂは第１コントローラモジュール７ａに完了応答を出力する。この完了応答を受けて、第１コントローラ１５ａは、サーバ装置２に対してライトコマンドの完了報告を出力する（処理１０）。
【００７５】
その後、第１コントローラ１５ａは、ジョブ管理テーブル１７ａに登録されたライトジョブを継続的に処理し、できる限り処理待ちのジョブ数を減らしていく。また、第２コントローラ１５ｂは、ジョブ管理テーブル１７ｂに登録されたライトジョブを独自に実行する（処理１１）。
【００７６】
従って、負荷対策処理１を用いてライトコマンド受信から完了報告の出力までの時間を延長することにより、ライト処理の時間の確保することができる。ゆえに、このライト処理の時間を利用して、第１コントローラモジュール７ａの処理待ちのジョブ数を減らして高負荷状態の緩和を図ることができる。
【００７７】
なお、サーバ装置２への完了報告が通常処理時（第１モード設定時）よりも遅延するが、この遅延時間はサーバ装置２のタイムアウト設定時間以内である。その為、負荷対策処理１がストレージ装置３の処理性能に与える影響は小である。
【００７８】
つまり、処理性能がコントローラ間の通信状況に応じて約１０％程度低下する。しかし、サーバ装置２は負荷対策処理１の実行を認識する必要はなく、サーバ装置２は特別な処理を実行する必要はない。
【００７９】
図５は、負荷対策処理２を説明するための図である。負荷対策処理部３０ａにおいて、負荷状態判定部３１が判定した負荷率が第１しきい値（例えば７０％）を超えている場合に、第１モード／第２モード選択部３２は、第２モードを選択する。
【００８０】
また、負荷対策処理選択部３３は、負荷対策処理２を選択する。そして、第１コントローラモジュール７ａの動作設定フラグは第２モードの負荷対策処理２に設定される。負荷対策処理部３０ａは、負荷対策処理部３０ｂに動作設定変更のコマンドを発行し、負荷対策処理部３０ｂは第２コントローラモジュール７ｂの動作設定フラグを第２モードの負荷対策処理２に設定する（処理１）。
【００８１】
負荷対策実行指示部３４は、バスクロック制御部２５ａ、２５ｂのクロック周波数を通常処理時よりも低下させて、第１及び第２コントローラモジュール７ａ、７ｂのコントローラ間の通信帯域を変更する。つまり、内部バス８のデータ転送速度を例えば２０〜５０％の間で予め選択された値に設定変更する（処理２）。
【００８２】
このため、第１及び第２コントローラモジュール７ａ、７ｂのデータ転送を通常処理時よりも遅くすることができる。なお、処理１〜２は、負荷状態判定時に実行する。また、負荷状態判定部３１による負荷状態の判定は、所定時間毎やライトコマンドの受信時等の予め定められた判定タイミングで実施される。なお、動作設定フラグが第２モードの負荷対策処理２に設定された後のライトコマンドに対する処理は下記のとおりである。
【００８３】
サーバ装置２は、ストレージドライブ群１０ａの目的のストレージドライブに対するライトコマンドを第１コントローラモジュール７ａに対して発行する（処理３）。ライトコマンドを受信すると、コマンド処理部２１ａは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部２２ａに出力する。
【００８４】
そして、コマンド処理部２１ａは、ライトコマンドにともなうライトデータを第１キャッシュメモリ１８ａに格納する。ジョブ管理部２２ａは、ライトジョブを処理待ちのキューとしてジョブ管理テーブル１７ａに登録する（処理４）。
【００８５】
第１コントローラ１５ａは、ライトコマンド受信から第２コントローラモジュール７ｂからの完了応答を受信するまでの時間を利用して、ジョブ管理テーブル１７ａに登録されたライトジョブを実行し、できる限り処理待ちのジョブ数を減らしていく（処理５）。また、第１コントローラ１５ａは、冗長化のためのライトコマンドと、第１キャッシュメモリ１８ａに格納されたライトデータを第２コントローラモジュール７ｂに出力する。
【００８６】
第２コントローラモジュール７ｂのコマンド処理部２１ｂは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部２２ｂに出力する。そして、第２コントローラモジュール７ｂのジョブ管理部２２ｂは、受信したライトコマンドに対応するライトジョブをジョブ管理テーブルに登録する（処理６）。
【００８７】
また、コマンド処理部２１ｂはライトデータを第２キャッシュメモリ１８ｂに格納する（処理７）。格納が完了すると、第２コントローラモジュール７ｂは第１コントローラモジュール７ａに完了応答を出力する。
【００８８】
完了応答を受信すると、第１コントローラ１５ａはサーバ装置２へライトコマンドに対する完了報告を出力する（処理８）。そして、第１コントローラモジュール７ａはコマンド待機状態になる。
【００８９】
その後、第１コントローラ１５ａは、ジョブ管理テーブル１７ａに登録されたライトジョブを継続的に処理し、できる限り処理待ちのジョブ数を減らしていく。また、第２コントローラ１５ｂは、ジョブ管理テーブル１７ｂに登録されたライトジョブを独自に実行する（処理９）。
【００９０】
以上のように、第１及び第２コントローラモジュール７ａ、７ｂのコントローラ間の通信帯域を通常処理時よりも低下させることにより、第２コントローラモジュール７ｂの冗長化（データの同期化）にかかる時間を通常処理時よりも遅延させる。
【００９１】
従って、負荷対策処理２を用いてライトコマンド受信から完了報告の出力までの時間を延長することにより、ライト処理の時間の確保することができる。ゆえに、このライト処理の時間を利用して、第１コントローラモジュール７ａの処理待ちのジョブ数を減らして、高負荷状態の緩和を図ることができる。
【００９２】
なお、サーバ装置２への完了報告が通常処理時（第１モード設定時）よりも遅延するが、この遅延時間はサーバ装置２のタイムアウト設定時間以内である。その為、負荷対策処理２はストレージ装置３としての処理性能への影響は中程度である。つまり、処理性能が通信帯域の設定に応じて例えば２０〜３０％程度低下する。しかし、サーバ装置２は負荷対策処理２の実行を認識する必要はなく、サーバ装置２は特別な処理を実行する必要はない。
【００９３】
図６は、負荷対策処理３を説明するための図である。負荷対策処理部３０ａにおいて、負荷状態判定部３１が判定した負荷率が第１しきい値（例えば７０％）を超えている場合に、第１モード／第２モード選択部３２は、第２モードを選択する。また、負荷対策処理選択部３３は、負荷対策処理３を選択する。そして、第１コントローラモジュール７ａの動作設定フラグは第２モードの負荷対策処理３に設定される。
【００９４】
負荷対策処理部３０ａは、負荷対策処理部３０ｂに動作設定変更のコマンドを発行し、負荷対策処理部３０ｂは第２コントローラモジュール７ｂの動作設定フラグを第２モードの負荷対策処理３に設定する（処理１）。
【００９５】
そして、負荷対策実行指示部３４は、待ち時間付加部２６ａをオンに設定する。なお、動作設定フラグが第２モードの負荷対策処理３に設定された後のライトコマンドに対する処理は下記のとおりである。
【００９６】
サーバ装置２は、ストレージドライブ群１０ａの目的のストレージドライブに対するライトコマンドを第１コントローラモジュール７ａに対して発行する（処理２）。ライトコマンドを受信すると、コマンド処理部２１ａは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部２２ａに出力する。
【００９７】
そして、コマンド処理部２１ａは、ライトコマンドにともなうライトデータを第１キャッシュメモリ１８ａに格納する。ジョブ管理部２２ａは、ライトジョブを処理待ちのキューとしてジョブ管理テーブル１７ａに登録する（処理３）。
【００９８】
第１コントローラ１５ａは、ライトコマンド受信から第２コントローラモジュール７ｂからの完了応答を受信するまでの時間を利用して、ジョブ管理テーブル１７ａに登録されたライトジョブを実行し、できる限り処理待ちのジョブ数を減らしていく（処理４）。また、第１コントローラ１５ａは、冗長化のためのライトコマンドと、第１キャッシュメモリ１８ａに格納されたライトデータを第２コントローラモジュール７ｂに出力する。
【００９９】
第２コントローラモジュール７ｂのコマンド処理部２１ｂは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部２２ｂに出力する。そして、第２コントローラ１５ｂのジョブ管理部２２ｂは、受信したライトコマンドに対応するライトジョブをジョブ管理テーブルに登録する（処理５）。
【０１００】
コマンド処理部２１ｂは、ライトデータを第２キャッシュメモリ１８ｂに格納する（処理６）。そして、第２コントローラモジュール７ｂは第１コントローラモジュール７ａに完了応答を出力する。
【０１０１】
ここで、第１コントローラモジュール７ａは、第２コントローラモジュール７ｂから完了応答を受信してもすぐにサーバ装置２への完了報告を出力しない。つまり、待ち時間付加部２６ａは、完了報告の出力タイミングに予め定められた待ち時間（例えば、１〜１０ｍｓ）を付加する（処理７）。
【０１０２】
この待ち時間をさらに利用して、コマンド処理部２１ａは、ジョブ管理テーブル１７ａに登録されたライトジョブを処理し、処理待ちのジョブ数を減らしていく。待ち時間経過後に、第１コントローラ１５ａはサーバ装置２へライトコマンドに対する完了報告を出力する（処理８）。
【０１０３】
そして、第１コントローラモジュール７ａはコマンド待機状態になる。また、第２コントローラ１５ｂは、ジョブ管理テーブル１７ａに登録されたライトジョブを独自に実行する（処理９）。
【０１０４】
従って、負荷対策処理３を用いてライトコマンド受信から完了報告の出力までの時間を延長することにより、ライト処理の時間の確保することができる。ゆえに、このライト処理の時間を利用して、第１コントローラモジュール７ａの処理待ちのジョブ数をより減少させて高負荷状態の緩和を図ることができる。
【０１０５】
なお、待ち時間は、サーバ装置２への完了報告の出力がサーバ装置２のタイムアウト設定時間以内になるように設定しておく。その為、負荷対策処理３はストレージ装置３としての処理性能への影響は中程度である。
【０１０６】
つまり、処理性能が待ち時間付加部に設定された待ち時間によって、例えば３０〜４０％程度低下する。しかし、サーバ装置２は負荷対策処理３の実行を認識する必要はなく、サーバ装置２は特別な処理を実行する必要はない。
【０１０７】
図７は、負荷対策処理４を説明するための図である。負荷状態判定部３１が判定した負荷率が第１しきい値（例えば７０％）を超えている場合に、第１モード／第２モード選択部３２は、第２モードを選択する。
【０１０８】
また、負荷対策処理選択部３３は、負荷対策処理４を選択する。そして、第１コントローラモジュール７ａの動作設定フラグは第２モードの負荷対策処理４に設定される。負荷対策処理部３０ａは、負荷対策処理部３０ｂに動作設定変更のコマンドを発行し、負荷対策処理部３０ｂは第２コントローラモジュール７ｂの動作設定フラグを第２モードの負荷対策処理４に設定する（処理１）。
【０１０９】
負荷対策実行指示部３４は、ライトスルーモード設定部をオンに設定する。（処理２）。これによって、第１及び第２コントローラモジュール７ａ、７ｂは、ライトバックモードからライトスルーモードに切り換えられる。
【０１１０】
従って、ライトコマンドに対応するライトジョブはジョブ管理テーブル１７ａに処理待ちのジョブとして登録せずに、ディスク制御部２３ａによってすぐにライト対象のストレージドライブ９へのライト処理が実行される。その為、処理待ちのジョブの増加が防止できる。
【０１１１】
なお、処理１〜２は、負荷状態判定時に実行する。また、負荷状態判定部３１による負荷状態の判定は、所定時間毎やライトコマンドの受信時等の予め定められた判定タイミングで実施される。なお、動作設定フラグが第２モードの負荷対策処理４に設定された後のライトコマンドに対する処理は下記のとおりである。
【０１１２】
サーバ装置２は、ストレージドライブ群１０ａの目的のストレージドライブに対するライトコマンドを第１コントローラモジュール７ａに対して発行する（処理３）。ライトコマンドを受信すると、コマンド処理部２１ａは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部２２ａに出力する。
【０１１３】
そして、第１コントローラ１５ａは、ストレージドライブ群１０ａのライト対象のストレージドライブ９へのライト処理を実行すると、同時にライトコマンドにともなうライトデータを第１キャッシュメモリ１８ａに一時的に格納する。
【０１１４】
つまり、ジョブ管理部２２ａは、ライトコマンドに対応するライト処理をすぐに実行するようにディスク制御部２３ａに対して指示する（処理４）。そして、ディスク制御部２３ａは、ライト対象のストレージドライブ９にライト指示を発行し、サーバ装置２から受信したライトデータをライト対象のストレージドライブ９に出力する（処理５）。
【０１１５】
そして、ライト対象のストレージドライブ９は受信したライトデータを記憶媒体に記録する。また、第１コントローラ１５ａは、冗長化のためのライトコマンドと、第１キャッシュメモリ１８ａに格納されたライトデータを第２コントローラモジュール７ｂに出力する。
【０１１６】
第１コントローラ１５ａは、第２コントローラモジュール７ｂからの完了応答を受信するまでの時間を利用して、さらに、ジョブ管理テーブル１７ａに登録されたライト処理を実行し、できる限り処理待ちのジョブ数を減らしていく。
【０１１７】
第２コントローラ１５ｂは、ストレージドライブ群１０ｂのライト対象のストレージドライブ９へのライト処理を実行する。
【０１１８】
つまり、ジョブ管理部２２ｂは、ライトコマンドに対応するライト処理をすぐに実行するようにディスク制御部２３ｂに対して指示する（処理６）。そして、ディスク制御部２３ｂは、ライト対象のストレージドライブ９にライト指示を発行し、第１コントローラモジュール７ａから出力されたライトデータをライト対象のストレージドライブ９に出力する（処理７）。
【０１１９】
そして、ライト対象のストレージドライブ９は受信したライトデータを記憶媒体に記録する。その後、冗長化の為のライト処理が完了すると、第２コントローラモジュール７ｂは第１コントローラモジュール７ａに完了応答を出力する。完了応答を受信すると、第１コントローラ１５ａはサーバ装置２へライトコマンドに対する完了報告を出力する（処理８）。
【０１２０】
そして、第１コントローラモジュール７ａはコマンド待機状態になる。その後、第１コントローラ１５ａは、ジョブ管理テーブル１７ａに登録されたライト処理を継続的に処理し、できる限り処理待ちのジョブ数を減らしていく。
【０１２１】
従って、ストレージ装置３は、負荷対策処理４により、第１コントローラモジュール７ａの処理待ちのジョブ数の増加を防止して、高負荷状態に移行するのを防止する。また、負荷対策処理４を用いてライトコマンド受信から完了報告の出力までの時間を延長することにより、ライト処理の時間の確保することができる。ゆえに、このライト処理の時間を利用して、第１コントローラモジュール７ａの処理待ちのジョブ数をより減少させて高負荷状態の緩和を図ることができる。
【０１２２】
なお、ライトスルーモードによるライト処理は、ストレージドライブ９の駆動をともなう為、サーバ装置２への完了報告が通常処理時（ライトバックモード）よりも遅くなる。サーバ装置２のタイムアウト設定時間は、ライトスルーモードによるライト処理を行った場合の最大時間で設定されている。
【０１２３】
その為、負荷対策処理４はストレージ装置３としての処理性能への影響は大である。つまり、処理性能がライトコマンドにともなうライトデータ量に応じて、例えば４０％〜５０％程度低下する）。しかし、サーバ装置２は負荷対策処理４の実行を認識する必要はなく、サーバ装置２は特別な処理を実行する必要はない。
【０１２４】
図８は、負荷対策処理５を説明するための図である。負荷対策処理部３０ａにおいて、負荷状態判定部３１が判定した負荷率が第１しきい値（例えば７０％）を超えている場合に、第１モード／第２モード選択部３２は、第２モードを選択する。
【０１２５】
また、負荷対策処理選択部３３は、負荷対策処理５を選択する。そして、第１コントローラモジュール７ａの動作設定フラグは第２モードの負荷対策処理５に設定される。負荷対策処理部３０ａは、負荷対策処理部３０ｂに動作設定変更のコマンドを発行し、負荷対策処理部３０ｂは第２コントローラモジュール７ｂの動作設定フラグを第２モードの負荷対策処理５に設定する（処理１）。
【０１２６】
第１コントローラモジュール７ａにおいて、負荷対策実行指示部３４は、転送速度設定部２８ａに指示してホストＩ／Ｆのデータ転送速度を通常処理時よりも低下させて、サーバ装置２と第１コントローラモジュール７ａのインターフェース間の通信帯域を変更する。
【０１２７】
つまり、負荷対策処理５によって、ホストＩ／Ｆのデータ転送速度を通常処理時より低い予め定められた値に設定変更する。第２コントローラモジュール７ｂにおいても、同様に、ホストＩ／Ｆのデータ転送速度を設定変更する（処理２）。
【０１２８】
ＦＣインターフェースの場合、高速モード（例：８Ｇｂｐｓ）と低速モード（例：４Ｇｂｐｓ）等の仕様を利用して設定変更を行う。なお、ｉＳＣＳＩやＳＵＳの場合も、同様に、高速モード（例：６Ｇｂｐｓ）と低速モード（例：３Ｇｂｐｓ）等の仕様を利用して設定変更を行うことができる。
【０１２９】
第２モードの負荷対策処理５に設定された際に、転送速度設定部２８ａ、２８ｂは、ＦＣスイッチ５ａ、５ｂに通知して、ＦＣポート１１ａとＦＣポート６ａ間の接続、及びＦＣポート１１ｂとＦＣポート６ｂ間の接続を切断する。
【０１３０】
そして、ストレージ装置３は、サーバ装置２との接続を切断する。その後、転送速度設定部２８ａ、２８ｂは、低速モードに切り換えて、ＦＣスイッチ５ａ、５ｂに再接続する。そして、ＦＣスイッチ５ａ、５ｂは、サーバ装置２に再接続する（処理３）。このため、サーバ装置２のオペレーティングシステム（ＯＳ）はストレージ装置３の装置エラー及び処理性能低下を認識する。
【０１３１】
サーバ装置２は、負荷対策処理５によって、低速モードのデータ転送速度でストレージ装置３とのデータの送受信を行うことになる。従って、ストレージ装置３は、サーバ装置２からのコマンド及びデータの受け付け速度を低下させることができる。ゆえに、処理待ちのジョブ数の増加速度を低下させることができる。
【０１３２】
その為、ライトコマンド受信からサーバ装置２への完了応答を出力する迄の時間を利用して、負荷対策処理５は、ジョブ管理テーブル１７ａに登録されたライトジョブを実行し、できる限り処理待ちのジョブ数を減らしていく。なお、処理１〜３は、負荷状態判定時に実行する。
【０１３３】
また、負荷状態判定部３１による負荷状態の判定は、所定時間毎やライトコマンドの受信時等の予め定められた判定タイミングで実施される。なお、動作設定フラグが第２モードの負荷対策処理５に設定された後のライトコマンドに対する処理は下記のとおりである。
【０１３４】
サーバ装置２は、ストレージドライブ群１０ａの目的のストレージドライブに対するライトコマンドを第１コントローラモジュール７ａに対して発行する（処理４）。ライトコマンドを受信すると、コマンド処理部２１ａは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部２２ａに出力する。
【０１３５】
そして、コマンド処理部２１ａは、ライトコマンドにともなうライトデータを第１キャッシュメモリ１８ａに格納する。ジョブ管理部２２ａは、ライトジョブを処理待ちのキューとしてジョブ管理テーブル１７ａに登録する（処理５）。
【０１３６】
その間に、第１コントローラ１５ａは、ジョブ管理テーブル１７ａに登録された処理待ちのライトジョブを実行し、できる限り処理待ちのジョブ数を減らしていく（処理６）。また、第１コントローラ１５ａは、冗長化のためのライトコマンドと、第１キャッシュメモリ１８ａに格納されたライトデータを第２コントローラモジュール７ｂに出力する。
【０１３７】
第２コントローラモジュール７ｂのコマンド処理部２１ｂは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部２２ｂに出力する。そして、ジョブ管理部２２ｂは、受信したライトコマンドに対応するライトジョブをジョブ管理テーブル１７ｂに登録する（処理７）。
【０１３８】
また、コマンド処理部２１ｂはライトデータを第２キャッシュメモリ１８ｂに格納する（処理８）。そして、第２コントローラモジュール７ｂは第１コントローラモジュール７ａに完了応答を出力する。
【０１３９】
完了応答を受信した第１コントローラ１５ａはサーバ装置２へライトコマンドに対する完了報告を出力する（処理９）。そして、第１コントローラモジュール７ａはコマンド待機状態になる。
【０１４０】
その後、第１コントローラ１５ａは、ジョブ管理テーブル１７ａに登録された処理待ちのライト処理を継続的に処理し、できる限り処理待ちのジョブ数を減らしていく。また、第２コントローラ１５ｂは、ジョブ管理テーブル１７ｂに登録されたライト処理を独自に実行する（処理１０）。
【０１４１】
以上のように、ストレージ装置３は、負荷対策処理５により、サーバ装置２からのコマンド及びデータの受け付け速度を低下させて、処理待ちのジョブ数の増加速度を低下させることができる。また、負荷対策処理５の実施により、通常処理時（第１モード設定時）よりも完了報告の出力を数百ｍｓ遅延させることができる。
【０１４２】
従って、負荷対策処理５を用いてライトコマンド受信から完了報告の出力までの時間を延長することにより、ライト処理の時間の確保することができる。ゆえに、このライト処理の時間を利用して、第１コントローラモジュール７ａの処理待ちのジョブ数を減らして、高負荷状態の緩和を図ることができる。
【０１４３】
なお、負荷対策処理５はストレージ装置３の処理性能への影響は中程度である。しかし、サーバ装置２は負荷対策処理５の実行をインターフェースの切断により認識し、エラーを検出する為、負荷対策処理５はサーバ装置２の処理性能にも影響を与える。従って、負荷対策処理５は、負荷状態の低減を優先する場合に実行するのが望ましい。
【０１４４】
図９は、負荷対策処理６を説明するための図である。負荷対策処理部３０ａにおいて、負荷状態判定部３１が判定した負荷率が第１しきい値（例えば７０％）を超えている場合に、第１モード／第２モード選択部３２は、第２モードを選択する。
【０１４５】
また、負荷対策処理選択部３３は、ホストＩ／ＦがＦＣインターフェースの場合に負荷対策処理６を選択する。つまり、ホストＩ／Ｆが他のインターフェースの場合には、負荷対策処理選択部３３は、負荷対策処理６を選択しない。
【０１４６】
そして、第１コントローラモジュール７ａの動作設定フラグは第２モードの負荷対策処理６に設定される。負荷対策処理部３０ａは、負荷対策処理部３０ｂに動作設定変更のコマンドを発行し、負荷対策処理部３０ｂは第２コントローラモジュール７ｂの動作設定フラグを第２モードの負荷対策処理６に設定する（処理１）。
【０１４７】
第１コントローラモジュール７ａにおいて、負荷対策実行指示部３４は、ＦＣ設定部２９ａに指示してＢＢクレジットの設定を変更する。つまり、ＦＣポート１１ａとＦＣポート６ａ間における送受信可能なフレーム数を変更する。
【０１４８】
ファイバチャネルのフロー制御では、ＢＢクレジットという仕組みが採用されている。そして、リンク確立時に送受信ポート間でネゴシェーションを行い、お互いが持つバッファサイズ（１バッファは１フレーム分）のどちらか小さい方のバッファサイズでリンクを確立する。これにより送信側は受信側が受信できるフレーム数を認識することができる。従って、受信側で受信できない量のフレームを送信することができない。
【０１４９】
負荷対策処理６はこの仕組みを利用したものであり、ＢＢクレジットの設定変更によって、ストレージ装置側のバッファサイズを通常時よりも小さい値（例えば、５０％）に設定する。
【０１５０】
これにより、サーバ装置側の送受信可能なフレーム数を変更することができる。第２コントローラモジュール７ｂにおいても、同様に、ＦＣポート１１ｂとＦＣポート６ｂ間における送受信可能なフレーム数を変更する。（処理２）。
【０１５１】
第２モードの負荷対策処理６に設定された際に、ＦＣ設定部２９ａ、２９ｂは、それぞれのＦＣスイッチ５ａ、５ｂに通知して、サーバ装置２とストレージ装置３との接続を切断する。
【０１５２】
その後、ＦＣ設定部２９ａ、２９ｂは、ＢＢクレジットの設定変更を行って、ＦＣスイッチ５ａ、５ｂに再接続し、サーバ装置２との接続を再開する（処理３）。このため、サーバ装置２のオペレーティングシステムは、ストレージ装置３の装置エラー及び処理性能低下を認識する。
【０１５３】
サーバ装置２は、負荷対策処理６により、通常処理時よりも小さいフレーム数でストレージ装置３とのデータの送受信を行うことになる。従って、ストレージ装置３は、サーバ装置２からのコマンド及びデータの受け付け速度を低下させることができる。ゆえに、処理待ちのジョブ数の増加速度を低下させることができる。
【０１５４】
そのため、ライトコマンド受信からサーバ装置２への完了応答を出力する迄の時間を利用して、負荷対策処理６は、ジョブ管理テーブル１７ａに登録されたライトジョブを実行し、できる限り処理待ちのジョブ数を減らしていく。
【０１５５】
なお、処理１〜３は、負荷状態判定時に実行する。また、負荷状態判定部３１による負荷状態の判定は、所定時間毎やライトコマンドの受信時等の予め定められた判定タイミングで実施される。また、動作設定フラグが第２モードの負荷対策処理６に設定された後のライトコマンドに対する処理は下記のとおりである。
【０１５６】
サーバ装置２は、ストレージドライブ群１０ａの目的のストレージドライブに対するライトコマンドを第１コントローラモジュール７ａに対して発行する（処理４）。ライトコマンドを受信すると、コマンド処理部２１ａは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部２２ａに出力する。
【０１５７】
そして、コマンド処理部２１ａは、ライトコマンドにともなうライトデータを第１キャッシュメモリ１８ａに格納する。ジョブ管理部２２ａは、ライトジョブを処理待ちのキューとしてジョブ管理テーブル１７ａに登録する（処理５）。
【０１５８】
その間に、第１コントローラ１５ａは、ジョブ管理テーブル１７ａに登録された処理待ちのライトジョブを実行し、できる限り処理待ちのジョブ数を減らしていく（処理６）。また、第１コントローラ１５ａは、冗長化のためのライトコマンドと、第１キャッシュメモリ１８ａに格納されたライトデータを第２コントローラモジュール７ｂに出力する。
【０１５９】
第２コントローラモジュール７ｂのコマンド処理部２１ｂは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部２２ｂに出力する。そして、ジョブ管理部２２ｂは、受信したライトコマンドに対応するライトジョブをジョブ管理テーブル１７ｂに登録する（処理７）。
【０１６０】
コマンド処理部２１ｂはライトデータを第２キャッシュメモリ１８ｂに格納する（処理８）。そして、第２コントローラモジュール７ｂは第１コントローラモジュール７ａに完了応答を出力する。
【０１６１】
完了応答を受信すると、第１コントローラ１５ａはサーバ装置２へライトコマンドに対する完了報告を出力する（処理９）。そして、第１コントローラモジュール７ａはコマンド待機状態になる。
【０１６２】
その後、第１コントローラ１５ａは、ジョブ管理テーブル１７ａに登録されたライト処理を継続的に処理し、できる限り処理待ちのジョブ数を減らしていく。また、第２コントローラ１５ｂは、ジョブ管理テーブル１７ｂに登録されたライト処理を独自に実行する（処理１０）。
【０１６３】
以上のように、ストレージ装置３は、負荷対策処理６により、サーバ装置２からのコマンド及びデータの受け付け速度を低下させて、処理待ちのジョブ数の増加速度を低下させることができる。
【０１６４】
また、負荷対策処理６を用いてライトコマンド受信から完了報告の出力までの時間を延長することにより、ライト処理の時間の確保することができる。ゆえに、このライト処理の時間を利用して、第１コントローラモジュール７ａの処理待ちのジョブ数を減らして、高負荷状態の緩和を図ることができる。
【０１６５】
なお、負荷対策処理６はストレージ装置３の処理性能への影響は大であり、サーバ装置２のオペレーティングシステムは負荷対策処理６の実行をインターフェースの切断により認識し、エラーを検出する為、サーバ装置２の処理性能にも影響を与える。従って、負荷対策処理６は、負荷状態の低減を優先する場合に実行するのが望ましい。
【０１６６】
また、高負荷状態は一時的な場合が多いので、負荷対策処理１から６の中の１つを運用形態に応じて選択的にストレージ装置２に搭載するだけでも負荷状態の低減効果を得ることができる。また、負荷対策処理１〜６は、様々な運用形態に対応して、処理待ちのジョブの累積状況や高負荷状態の継続状況に基づいて、１つまたは複数の処理を適宜選択するようにしても良い。
【０１６７】
図１０は、負荷対策処理選択手順を説明するためのフローチャートである。図１０は、負荷対策処理選択部３３が負荷対策処理１〜６を順に選択する手順を示す。図１０では、サーバへの影響が小さいものから順番に負荷対策処理１〜６を並べ、負荷状態が低減されなければ、次の負荷対策処理を選択していく様子を示す。
【０１６８】
また、高負荷状態を判定した回数に応じて負荷対策処理が選択される。つまり、負荷状態が低減されずに継続すればするほど、サーバへの影響が大きくても低減効果が大きい負荷対策処理が次々選択される。また、負荷対策処理が継続しているか否かは負荷状態判定部３１が検出する負荷率を用いて判断する。
【０１６９】
装置電源投入時、第１及び第２コントローラモジュール７ａ、７ｂのモードは、第１モード（通常処理モード）に設定される（Ｓ１）。負荷対策処理部３０ａの負荷状態判定部３１は、所定の判定タイミングで負荷率を判定する。そして、負荷率が第１しきい値（例えば７０％）以下の場合（Ｓ２、ＮＯ）、第１モードのままとし、モードの変更は行わない。そして、次の判定タイミングを待つ。
【０１７０】
負荷率がＢＵＳＹの場合、つまり第１しきい値を超えている場合（Ｓ２、ＹＥＳ）、第１モード／第２モード選択部３２は第２モード（負荷対策モード）を選択する（Ｓ３）。負荷対策処理選択部３３は、ストレージ装置３の処理性能への影響が小さい負荷対策処理１を選択する。
【０１７１】
そして、負荷対策処理部３０ａは、第１及び第２コントローラモジュール７ａ、７ｂの動作設定フラグを第２モードの負荷対策処理１に設定し、図４において説明した負荷対策処理１の担当コントローラの交替が行われる（Ｓ４）。これにより、負荷対策処理部３０ａ、３０ｂが負荷対策を開始する。
【０１７２】
負荷対策処理１の設定後の次の判定タイミングで、負荷状態判定部３１は負荷率を判定する。負荷対策処理部３０ａは、負荷率が第２しきい値（例えば５０％）以下であれば（Ｓ５、ＮＯ）、負荷対策処理１の設定を解除する（Ｓ６）。さらに、第１モード／第２モード選択部３２は、第２モードから第１モードに切り替える（Ｓ１）。
【０１７３】
負荷対策処理１に設定しても、負荷率が第１しきい値以下にならずＢＵＳＹのままであれば（Ｓ５、ＹＥＳ）、負荷対策処理選択部３３は、ストレージ装置３の処理性能への影響が中程度の負荷対策処理２を選択する。
【０１７４】
そして、負荷対策処理部３０ａは、第１及び第２コントローラモジュール７ａ、７ｂの動作設定フラグを第２モードの負荷対策処理２に設定し、図５において説明した負荷対策処理２のコントローラ間通信帯域変更が行われる（Ｓ７）。
【０１７５】
負荷対策処理２の設定後の次の判定タイミングで、負荷状態判定部３１は負荷率を判定する。負荷対策処理部３０ａは、負荷率が第２しきい値以下であれば（Ｓ８、ＮＯ）、負荷対策処理２の設定を解除し（Ｓ９）、負荷対策処理１に設定を戻す。そして、次の判定タイミングを待つ。
【０１７６】
負荷対策処理２に設定しても、負荷率が第１しきい値以下にならずＢＵＳＹのままであれば（Ｓ８、ＹＥＳ）、負荷対策処理選択部３３は、ストレージ装置３の処理性能への影響が中程度の負荷対策処理３を選択する。
【０１７７】
そして、負荷対策処理部３０ａは、第１及び第２コントローラモジュール７ａ、７ｂの動作設定フラグを第２モードの負荷対策処理３に設定し、図６において説明した負荷対策処理３の待ち時間付加の処理が行われる（Ｓ１０）。
【０１７８】
負荷対策処理３の設定後の次の判定タイミングで、負荷状態判定部３１は負荷率を判定する。負荷対策処理部３０ａは、負荷率が第２しきい値以下であれば（Ｓ１１、ＮＯ）、負荷対策処理３の設定を解除し（Ｓ１２）、負荷対策処理２に設定を戻す。そして、次の判定タイミングを待つ。
【０１７９】
負荷対策処理３に設定しても、負荷率が第１しきい値以下にならずＢＵＳＹのままであれば（Ｓ１１、ＹＥＳ）、負荷対策処理選択部３３は、ストレージ装置３の処理性能への影響が大の負荷対策処理４を選択する。そして、負荷対策処理部３０ａは、第１及び第２コントローラモジュール７ａ、７ｂの動作設定フラグを第２モードの負荷対策処理４に設定し、図７において説明した負荷対策処理４のライトスルーモードへの変更処理が行われる（Ｓ１３）。
【０１８０】
負荷対策処理４の設定後の次の判定タイミングで、負荷状態判定部３１は負荷率を判定する。負荷対策処理部３０ａは、負荷率が第２しきい値以下であれば（Ｓ１４、ＮＯ）、負荷対策処理４の設定を解除し（Ｓ１５）、負荷対策処理３に設定を戻す。そして、次の判定タイミングを待つ。
【０１８１】
負荷対策処理４に設定しても、負荷率が第１しきい値以下にならずＢＵＳＹのままであれば（Ｓ１４、ＹＥＳ）、負荷対策処理選択部３３は負荷対策処理５を選択する。負荷対策処理５は、オペレーティングシステムによる装置エラーの検出が有りストレージ装置３の処理性能への影響が中程度であるが、低減効果が大きい。
【０１８２】
そして、負荷対策処理部３０ａは、第１及び第２コントローラモジュール７ａ、７ｂの動作設定フラグを第２モードの負荷対策処理５に設定し、図８において説明した負荷対策処理５の転送速度設定変更処理が行われる（Ｓ１６）。
【０１８３】
負荷対策処理５の設定後の次の判定タイミングで、負荷状態判定部３１は負荷率を判定する。負荷対策処理部３０ａは、負荷率が第２しきい値以下であれば（Ｓ１７、ＮＯ）、負荷対策処理５の設定を解除し（Ｓ１８）、負荷対策処理４に設定を戻す。そして、次の判定タイミングを待つ。
【０１８４】
負荷対策処理５に設定しても、負荷率が第１しきい値以下にならずＢＵＳＹのままであれば（Ｓ１７、ＹＥＳ）、負荷対策処理選択部３３は、負荷対策処理６を選択する。負荷対策処理６は、オペレーティングシステムによる装置エラーの検出が有りかつストレージ装置３の処理性能への影響が大きいが、低減効果が大きい。
【０１８５】
そして、負荷対策処理部３０ａは、第１及び第２コントローラモジュール７ａ、７ｂの動作設定フラグを第２モードの負荷対策処理６に設定し、図９において説明した負荷対策処理６のＦＣ設定変更処理が行われる（Ｓ１９）。
【０１８６】
負荷対策処理６の設定後の次の判定タイミングで、負荷状態判定部３１は負荷率を判定する。負荷対策処理部３０ａは、負荷率が第２しきい値以下であれば（Ｓ２０、ＮＯ）、負荷対策処理６の設定を解除し（Ｓ２１）、負荷対策処理５に設定を戻す。そして、次の判定タイミングを待つ。
【０１８７】
負荷対策処理６に設定しても、負荷率が第１しきい値以下にならずＢＵＳＹのままであれば（Ｓ２０、ＹＥＳ）、負荷対策処理選択部３３は、第１コントローラモジュール７ａは、コマンドを受け付け不可能である旨の異常報告をサーバ装置２に出力する（Ｓ２２）。このように、負荷対策処理部３０ａは、ストレージ装置３の処理性能への影響度を考慮して負荷対策処理を段階的に設定することができる。
【０１８８】
図１１は、負荷対策処理選択手順を説明するための図である。図１１は、縦軸に負荷率（％）、横軸に時間（ｍｓ）を示し、各負荷対策処理の時間的な推移を示す。判定タイミングＴ１で負荷率が第１しきい値（７０％）を超えている場合、第１モード／第２モード選択部３２は第１及び第２コントローラモジュール７ａ、７ｂのモードを第２モードに切り替える。
【０１８９】
また、負荷対策処理選択部３３は、第１及び第２コントローラモジュール７ａ、７ｂの動作設定を負荷対策処理１に設定する。負荷対策処理１の設定後の判定タイミングＴ２で負荷率が第１しきい値を超えている場合、負荷対策処理２に設定が切り替えられる。
【０１９０】
負荷対策処理２の設定後の判定タイミングＴ３で負荷率が第１しきい値を超えている場合、負荷対策処理３に設定が切り替えられる。負荷対策処理３の設定後の判定タイミングＴ４で負荷率が第２しきい値（５０％）以下であれば、負荷対策処理３の設定が解除され、負荷対策処理２に設定が戻される。
【０１９１】
その後の判定タイミングＴ５で負荷率が第２しきい値（５０％）以下であれば、負荷対策処理２の設定が解除され、負荷対策処理１に設定が戻される。次の判定タイミングで負荷率が第２しきい値（５０％）以下であれば、負荷対策処理１の設定が解除され、第２モードから第１モードに切り替えられる。
【０１９２】
また、負荷対策処理１の設定後の判定タイミングＴ２で負荷率が第１しきい値（７０％）を大幅に超えており、負荷状態に改善がみられない場合、負荷対策処理選択部３３は、より効果が大きい負荷対策処理３等を選択する。このように、負荷対策処理選択部３３は負荷状態の改善状況に応じて負荷対策処理を選択することができるので、高負荷状態の緩和を図ることができる。
【０１９３】
なお、本実施の形態において、モード及び負荷対策処理の設定用の第１しきい値や解除用の第２しきい値は、ストレージ装置の仕様に応じて適宜変更可能である。また、本実施の形態において、第１コントローラモジュール７ａが高負荷状態の場合を一例として説明したが、第２コントローラモジュール７ｂが高負荷状態の場合も同様に負荷対策処理部３０ｂ等によって同様に負荷対策を実行することができる。
【０１９４】
また、負荷対策処理の数は単純に効果大中小の３つとし、例えば、負荷対策処理１、３、５にして複雑な処理を省略しても良い。判定しきい値も複数設けて、負荷状態のレベルに応じて、きめ細かく負荷対策処理を選択できるようにしても良い。
【０１９５】
本発明は上記実施の形態に限定されるものではない。矛盾のない限りにおいて、複数の実施の形態を組み合わせても構わない。上記実施形態は例示であり、本発明の特許請求の範囲に記載された技術的思想と実質的に同一な構成を有し、同様な作用効果を奏するものは、いかなるものであっても本発明の技術的範囲に包含される。
【０１９６】
以上の実施形態に関して、さらに以下の付記を開示する。
（付記１）
コンピュータから送信されたライトコマンドにともなうデータを記憶するストレージ装置において、
前記ライトコマンドを受信した際に前記ライトコマンドに対応するライトジョブを登録するジョブ管理テーブルを記憶するメモリと、
前記ライトコマンドにともなうデータを一時的に格納するキャッシュメモリと、
前記ジョブ管理テーブルに登録された前記ライトジョブに基づいて前記キャッシュメモリに格納された前記データを記憶媒体に記録するストレージドライブと、
前記ジョブ管理テーブルから取得したライトジョブの累積数に基づいて前記ストレージ装置の負荷状態を判定するとともに、判定された負荷状態に基づいて前記ライトコマンドに対する完了報告を前記コンピュータに出力するタイミングを制御するコントローラと、
を備えたことを特徴とするストレージ装置。
（付記２）
前記コントローラは、前記ライトコマンドにともなうデータの前記キャシュメモリへの格納が完了した時に前記コンピュータへの前記ライトコマンドに対する完了報告を出力する第１モードと、
前記ライトコマンドに対する完了報告の出力を前記第１モードにおける出力タイミングよりも遅延させる負荷対策処理を実行するとともに、前記ライトコマンドの受信から前記負荷対策処理によって遅延された完了報告の出力までの間に前記ジョブ管理テーブルに登録されたライトジョブに基づいて前記ストレージドライブに前記記憶媒体へのデータ記録を実行させる制御を行う第２モードのいずれか一方を前記負荷状態に基づいて選択することを特徴とする付記１に記載のストレージ装置。
（付記３）
前記コントローラは、前記負荷状態に基づいて、複数の負荷対策処理の中から１つを選択して、選択した負荷対策処理を実行することを特徴とする付記１または付記２に記載のストレージ装置。
（付記４）
前記コントローラは、前記負荷状態の継続状況に応じて、負荷対策処理を選択することを特徴とする付記３に記載のストレージ装置。
（付記５）
前記コントローラは、第１コントローラと、前記第１コントローラに冗長化された第２コントローラと、を備え、
前記第１コントローラは、前記第１コントローラの負荷状態に基づいて前記第２モードを選択し、前記ライトコマンドを受信した際に前記負荷対策処理を実行するとともに、前記第１コントローラによって制御されるストレージドライブに前記ジョブ管理テーブルに登録されたライトジョブに基づいて記憶媒体へのデータ記録を実行させる制御を行うことを特徴とする付記２または付記３に記載のストレージ装置。
（付記６）
前記負荷対策処理は、
前記第１コントローラへのライトコマンドに対する処理を前記第２コントローラに実行させる第１負荷対策処理を含むことを特徴とする付記５に記載のストレージ装置。
（付記７）
前記負荷対策処理は、
前記第１コントローラと前記第２コントローラとを接続するバスの通信帯域を変更する第２負荷対策処理を含むことを特徴とする付記５に記載のストレージ装置。
（付記８）
前記負荷対策処理は、
前記ライトコマンドに対するライト処理完了後の予め定められた時間経過した際に、前記第１コントローラが前記コンピュータに前記ライトコマンドに対する完了報告を出力する第３負荷対策処理を含むことを特徴とする付記５に記載のストレージ装置。
（付記９）
前記負荷対策処理は、
前記第１コントローラが前記ライトコマンドを受信した時に、前記ライトコマンドに対応するデータ記録を前記ストレージ装置に実行させるとともに、前記第２コントローラに前記データ記録に対応する同期処理を実行させて、前記ストレージ装置からのデータ記録完了応答及び前記第２コントローラからの同期処理完了応答を受信した後に、第１コントローラから前記コンピュータにライトコマンドに対する完了報告を出力する第４負荷対策処理を含むことを特徴とする付記５に記載のストレージ装置。
（付記１０）
前記負荷対策処理は、
前記ストレージ装置と前記コンピュータとを接続するインターフェースのデータ転送速度を変更する第５負荷対策処理を含むことを特徴とする付記５に記載のストレージ装置。
（付記１１）
前記負荷対策処理は、
コンピュータがファイバチャネルインターフェースに接続されている場合、前記第１コントローラは、バッファツーバッファクレジットを変更する第６負荷対策処理を含む付記５に記載のストレージ装置。
（付記１２）
データ処理を実行するコンピュータから送信されたライトコマンドにともなうデータを一時的にキャッシュメモリに格納するとともに、前記ライトコマンドに対応するライトジョブをジョブ管理テーブルに登録しておき、前記キャシュメモリに格納されたデータを登録されたライトジョブに基づいてストレージドライブ内の記憶媒体に記録するストレージ装置の負荷状態低減方法において、
前記ジョブ管理テーブルから取得したライトジョブの累積数に基づいて前記ストレージ装置の負荷状態を判定し、
判定された負荷状態に基づいて、前記ライトコマンドに対する完了報告を前記コンピュータに出力するタイミングを制御し、
前記ライトコマンドの受信からタイミング制御された完了報告の出力までの間に、前記ジョブ管理テーブルに登録されたライトジョブに基づいて前記ストレージドライブに前記記憶媒体へのデータ記録を実行させる
ことを特徴とするストレージ装置の負荷状態低減方法。
【符号の説明】
【０１９７】
１      コンピュータシステム
２      サーバ装置
３      ストレージ装置
４ａ、４ｂ  ファイバチャネルケーブル
５ａ、５ｂ  ファイバチャネルスイッチ
６ａ、６ｂ  ファイバチャネルポート（ＦＣポート）
７      コントローラ
７ａ    第１コントローラモジュール
７ｂ    第２コントローラモジュール
８      内部バス
９      ストレージドライブ
１０ａ、１０ｂ  ストレージドライブ群
１１ａ、１１ｂ  ファイバチャネルポート（ＦＣポート）
１５ａ  第１コントローラ
１５ｂ  第２コントローラ
１６ａ  第１メモリ
１６ｂ  第２メモリ
１７ａ、１７ｂ  ジョブ管理テーブル
１８ａ  第１キャッシュメモリ
１８ｂ  第２キャシュメモリ
１９ａ、１９ｂ  デバイスアダプタ
２１ａ、２１ｂ  コマンド処理部
２２ａ、２２ｂ  ジョブ管理部
２３ａ、２３ｂ  ディスク制御部
２４ａ、２４ｂ  グループ情報
２５ａ、２５ｂ  バスクロック制御部
２６ａ、２６ｂ  待ち時間付加部
２７ａ、２７ｂ  ライトスルーモード設定部
２８ａ、２８ｂ  転送速度設定部
２９ａ、２９ｂ  ＦＣ設定部
３０ａ、３０ｂ  負荷対策処理部
３１    負荷状態判定部
３２    第１モード／第２モード選択部
３３    負荷対策処理選択部
３４    負荷対策処理実行指示部
３５    モード管理テーブル
【図１】
0005742542.tif 000002
【図２】
0005742542.tif 000003
【図３】
0005742542.tif 000004
【図４】
0005742542.tif 000005
【図５】
0005742542.tif 000006
【図６】
0005742542.tif 000007
【図７】
0005742542.tif 000008
【図８】
0005742542.tif 000009
【図９】
0005742542.tif 000010
【図１０】
0005742542.tif 000011
【図１１】
0005742542.tif 000012