説明

ストレージ装置及びその負荷状態低減方法

【課題】高負荷状態の緩和を図ったストレージ装置、及びその高負荷状態低減方法を提供する。
【解決手段】コンピュータから送信されたライトコマンドにともなうデータを記憶するストレージ装置において、ライトコマンドを受信した際にライトコマンドに対応するライトジョブを登録するジョブ管理テーブルを記憶するメモリと、ライトコマンドにともなうデータを一時的に格納するキャッシュメモリと、ジョブ管理テーブルに登録されたライトジョブに基づいてキャッシュメモリに格納されたデータを記憶媒体に記録するストレージドライブと、ジョブ管理テーブルから取得したライトジョブの累積数に基づいてストレージ装置の負荷状態を判定するとともに、判定された負荷状態に基づいてライトコマンドに対する完了報告を前記コンピュータに出力するタイミングを制御するコントローラと、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、ストレージ装置及びその負荷状態低減方法に関する。
【背景技術】
【0002】
複数のストレージドライブを備えたストレージ装置として、RAID(Redundant Arrays of Inexpensive Disks)装置が知られている。ストレージドライブの一例としてハードディスクドライブ(HDD)が挙げられる。
【0003】
HDDは、記憶媒体である磁気ディスク媒体を所定の回転数で回転させながら磁気ヘッドを目的のトラックにシークし、磁気ヘッドを磁気ディスク媒体に近接させて磁気的にデータの記録及び再生を行う。
【0004】
従って、HDDにおける書込み処理や読出し処理には機械的動作がともなうため、その処理速度はホストコンピュータのCPUの処理速度に比べて非常に遅い。そのため、HDDには、処理速度の格差(性能限界)を補う様々な機能が搭載されている。その1つとして、ライトバックと呼ばれる機能が知られている。
【0005】
ホストコンピュータが発行するコマンドは、複数のHDDを制御するRAID装置のコントローラが受信し、ジョブ管理テーブルに待ち行列(キュー)としてメモリに格納される。ジョブ管理テーブルに登録された処理待ちのジョブは、HDDに対して順次指示され、実行される。
【0006】
RAID装置のコントローラは、コマンドがライトコマンドの場合、ライトコマンドにともなうライトデータをキャッシュメモリに一時的に格納し、この格納が完了(正常終了)した時点でライトコマンドの完了報告をホストコンピュータに応答する。
【0007】
その後、キャッシュメモリに一時的に格納されたライトデータは、処理の空き時間にHDDに書き込まれる。このように、ライトバック機能は、キャッシュメモリがHDDに比べて記憶動作が高速であるという特性を活かしたものであり、HDDの性能限界の緩和が図られている。
【0008】
しかしながら、ホストコンピュータからストレージ装置へのライトコマンドが頻繁に発生し、ストレージ装置の高負荷状態が継続してしまう場合がある。この場合、HDDへの処理待ちのライトジョブがジョブ管理テーブルに累積し、最終的にはストレージ装置が新規のコマンドを受け付けることができないキューフル(Queue Full)と呼ばれる状態に陥る可能性がある。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開平9−258907号公報
【特許文献2】特開2000−56932号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
開示の技術は、高負荷状態の緩和を図ったストレージ装置、及びストレージ装置の高負荷状態低減方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
開示の技術の一側面によると、コンピュータから送信されたライトコマンドにともなうデータを記憶するストレージ装置において、ライトコマンドを受信した際にライトコマンドに対応するライトジョブを登録するジョブ管理テーブルを記憶するメモリと、ライトコマンドにともなうデータを一時的に格納するキャッシュメモリと、ジョブ管理テーブルに登録されたライトジョブに基づいてキャッシュメモリに格納されたデータを記憶媒体に記録するストレージドライブと、ジョブ管理テーブルから取得したライトジョブの累積数に基づいてストレージ装置の負荷状態を判定するとともに、判定された負荷状態に基づいてライトコマンドに対する完了報告を前記コンピュータに出力するタイミングを制御するコントローラと、を備える。
【発明の効果】
【0012】
開示の技術は、高負荷状態の緩和を図ったストレージ装置、及びストレージ装置の高負荷状態低減方法を提供することができる。
【図面の簡単な説明】
【0013】
【図1】コンピュータシステムの構成概略図である。
【図2】ストレージ装置のライトバック処理の手順を説明するための図である。
【図3】負荷対策処理部を説明するための図である。
【図4】負荷対策処理1を説明するための図である。
【図5】負荷対策処理2を説明するための図である。
【図6】負荷対策処理3を説明するための図である。
【図7】負荷対策処理4を説明するための図である。
【図8】負荷対策処理5を説明するための図である。
【図9】負荷対策処理6を説明するための図である。
【図10】負荷対策処理選択手順を説明するためのフローチャートである。
【図11】負荷対策処理選択手順を説明するための図である。
【発明を実施するための形態】
【0014】
以下、図面を参照して実施の形態を詳細に説明する。図1は、コンピュータシステムの構成概略図である。コンピュータシステム1は、ホストコンピュータの一例であるサーバ装置2と、ストレージ装置3を含む。ストレージ装置3は、RAID装置(Redundant Arrays of Inexpensive Disks)を用いた例で示す。
【0015】
サーバ装置2は、ホストインターフェースを介して、ストレージ装置3に接続される。本実施の形態では、ホストインターフェースとしてファイバチャネル(Fibre Channel)インターフェースを使用する。
【0016】
ストレージ装置3のファイバチャネルポート(FCポート)6a、6bは、ファイバチャネルケーブル4a、4b及びファイバチャネルスイッチ(FCスイッチ)5a、5bを介して、サーバ装置2のファイバチャネルポート(FCポート)11a、11bに接続される。なお、ホストインターフェースとして、iSCSIやSAS(Serial Attached SCSI)を使用することもできる。
【0017】
ストレージ装置3は、第1及び第2コントローラモジュール7a、7bを備えたコントローラ7を含む。また、第1及び第2コントローラモジュール7a、7bは、内部バス8を介して接続され、ライトコマンドやライトデータを互いに送受信することにより、冗長化されている。なお、ストレージ装置3は、各部に電力を供給する電源装置(図示せず)をさらに備える。
【0018】
第1コントローラモジュール(CM1)7aは、第1コントローラ15a、第1メモリ16a、第1キャッシュメモリ18aを含む。また、第1コントローラモジュール(CM1)7aは、デバイスアダプタ(DA)19aを介して接続されたストレージドライブ群10aの複数のストレージドライブ9に対するデータの記録再生制御等を実行する。
【0019】
第1コントローラ15aは、サーバ装置2からのコマンドに対応して各種制御を行う。第1メモリ16aは、第1コントローラ15aによって利用される各種プログラムや各種管理情報を格納するメモリである。第1キャッシュメモリ18aは、ストレージドライブ群10aの入出力データ(ライト/リードデータ)が一時的に格納されるメモリである。
【0020】
第1コントローラ15aにおいて、コマンド処理部21a、負荷対策処理部30a、ジョブ管理部22a、ディスク制御部23a等の制御機能がプログラムによって構築される。また、第1コントローラ15aは、キャッシュメモリ18aのメモリ制御機能も備える。
【0021】
第2コントローラモジュール(CM2)7bも第1コントローラモジュール7aと同様に、第2コントローラ15b、第2メモリ16b、第2キャッシュメモリ18bを含む。また、第2コントローラモジュール(CM2)7bは、デバイスアダプタ(DA)19bを介して接続されたストレージドライブ群10bの複数のストレージドライブ9に対するデータの記録再生制御等を実行する。
【0022】
第2コントローラ15bは、サーバ装置2からのコマンドに対応して各種制御を行う。第2メモリ16bは、第2コントローラ15bによって利用される各種プログラムや各種管理情報を格納するメモリである。第2キャッシュメモリ18bは、ストレージドライブ群10bの入出力データ(ライト/リードデータ)が一時的に格納されるメモリである。
【0023】
第2コントローラ15bは、第1コントローラ15aと同様に、コマンド処理部21b、負荷対策処理部30b、ジョブ管理部22b、ディスク制御部23b等の制御機能がプログラムによって構築される。また、第2コントローラ15bは、キャッシュメモリ18bのメモリ制御機能も備える。
【0024】
コマンド処理部21a、21bは、サーバ装置2からのコマンドを解析し、コマンドに対応するコマンド処理(ジョブ)をジョブ管理部22a、22bに出力する。このコマンド処理(ジョブ)の内容を基に、ストレージドライブ9に対する入出力コマンドが作成される。
【0025】
また、コマンド処理部21a、21bは、コマンド処理が完了した際に、コマンド処理が正常終了した旨を示す完了報告または異常終了した旨を示すエラー報告をFCポート6a、6bを介してサーバ装置2に出力する。
【0026】
コマンド処理部21a、21bは、ライトコマンドにともなうライトデータを第1及び第2キャッシュメモリ18a、18bにそれぞれ一時的に格納する制御を行う。また、コマンド処理部21a、21bは、ストレージドライブ群10a、10bから出力されたリードデータを第1及び第2キャッシュメモリ18a、18bにそれぞれ一時的に格納する制御を行う。
【0027】
ジョブ管理部22a、22bは、コマンド処理部21a、21bから出力されたコマンド処理を受信し、コマンド処理(ジョブ)を処理待ちのキューとして第1及び第2メモリ16a、16bのジョブ管理テーブル17a、17bにそれぞれ登録する。
【0028】
また、ジョブ管理部22a、22bは、ジョブ管理テーブルを参照してコマンド処理状況を把握し、ディスク制御部23a、23bに対してコマンド処理をそれぞれ指示する。例えば、ジョブ管理部22a、22bは、予め設定されたジョブ実行タイミングで、ディスク制御部23a、23bに対してライト処理を指示する。
【0029】
なお、ジョブ実行タイミングは、ジョブ管理テーブル17a、17bに登録されたライトジョブの累積数が例えば70%を超えた場合や、キャッシュメモリに18a、18bの使用率が例えば70%を超えた場合等である。
【0030】
ディスク制御部23a、23bは、ジョブ管理部22a、22bからのコマンド処理の指示を受けて、目的の論理アドレスに対するデータの記録または再生を実行させるための入出力コマンドを作成する。そして、ディスク制御部23a、23bは、作成した入出力コマンドをストレージドライブ群10a、10bに発行する。
【0031】
負荷対策処理部30a、30bは、第1及び第2コントローラ15a、15bの負荷状態を監視して、ストレージ装置2が高負荷状態になっているか否かを判定する。そして、負荷対策処理部30a、30bは、高負荷状態の場合負荷対策を実行する。なお、負荷状態は、ジョブ管理テーブルから取得したライトジョブの累積数から求める。また、負荷対策処理部30a、30bの詳細については、後述する。
【0032】
複数のストレージドライブ9は、ハードディスクドライブ(HDD)であり、一部ソリッドステートドライブ(SSD)であっても良い。なお、HDDは、記録媒体として磁気ディスク媒体を使用したものであり、複数の磁気ディスク及び複数の磁気ヘッドを筐体内に有し、大容量記憶が可能である。
【0033】
また、HDDは、磁気ディスク媒体を所定の回転数で回転させながら磁気ヘッドを目的のトラックにシークし、磁気ヘッドを磁気ディスク媒体に近接させて磁気的にデータの記録及び再生を行う。
【0034】
従って、HDDは、磁気ディスク媒体の回転駆動や磁気ヘッドのシーク制御といった機械的な駆動をともなう為、HDDの入出力帯域はホストインターフェースの入出力帯域よりも狭い。つまり、データ処理速度に格差が生じる。その為、通常処理時、ストレージ装置はライトバック処理を実行する。
【0035】
図2は、ストレージ装置のライトバック処理の手順を説明するための図である。サーバ装置2は、ストレージドライブ群10aの目的のストレージドライブに対するライトコマンドを第1コントローラモジュール7aに対して発行する(処理1)。
【0036】
ライトコマンドを受信すると、コマンド処理部21aは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部22aに出力する。ジョブ管理部22aは、コマンド処理部21aから出力されたライトジョブを処理待ちのキューとしてジョブ管理テーブル17aに登録する(処理2)。そして、コマンド処理部21aは、ライトコマンドにともなうライトデータを第1キャッシュメモリ18aに格納する。
【0037】
また、第1コントローラ15aは、冗長化のためのライトコマンドと、第1キャッシュメモリ18aに格納されたライトデータを第2コントローラモジュール7bに出力する。ライトコマンドを受信すると、コマンド処理部21bは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部22bに出力する。
【0038】
ジョブ管理部22bは、コマンド処理部21bから出力されたライトジョブを処理待ちのキューとしてジョブ管理テーブルに登録する(処理3)。また、第2コントローラ15bは、ライトデータを第2キャッシュメモリ18bに格納する(処理4)。そして、第2コントローラモジュール7bは第1コントローラモジュール7aに完了応答を出力する。
【0039】
第1コントローラ15aは、完了応答を受けて、サーバ装置2へライトコマンドに対する完了報告を作成し、サーバ装置2へ出力する(処理5)。そして、第1コントローラモジュール7aはコマンド待機状態になる。その後、ジョブ管理部22aは、所定のジョブ実行タイミングで、ディスク制御部23aに対してライト指示を出力する。
【0040】
そして、ディスク制御部23aは、ストレージドライブ群10aのライト対象のストレージドライブ9にライトコマンドを発行し、第1キャッシュメモリ18aに格納されたライトデータのライト処理を実行させる(処理6)。その後、ライト対象のストレージドライブ9からライト処理の完了応答を受信すると、ジョブ管理部22aは、ジョブ管理テーブル17aから処理が完了したライト処理を削除する。
【0041】
ジョブ管理部22bは、所定のジョブ実行タイミングで、ディスク制御部23bに対してストレージドライブ群10bのライト対象のストレージドライブ9にライト指示を出力する。
【0042】
そして、ディスク制御部23bは、第2キャッシュメモリ18bに格納されたライトデータのライト処理を実行する(処理7)。ライト対象のストレージドライブ9からライト処理の完了応答を受信すると、ジョブ管理部22bは、ジョブ管理テーブル17bから処理が完了したライトジョブを削除する。
【0043】
このように、ライトバック処理では、サーバ装置2からのライトコマンドを受信するたびに、ライトコマンドに対応するライトジョブがジョブ管理テーブルに蓄積される。また、ライトコマンドにともなうデータがキャッシュメモリに蓄積される。
【0044】
従って、サーバ装置2からライトコマンドが頻繁に発行された場合に、ストレージドライブ9へのライト処理待ちが累積し、キューフル状態が発生する可能性がある。
【0045】
そのため、ストレージドライブ9の性能に応じて、最大I/O多重度をサーバ装置2のオペレーティングシステムやホストバスアダプタ等に設定することにより、サーバ装置2のコマンド発行数を制限することができる。なお、最大I/O多重度は、ストレージ装置3が受付可能な入出力コマンド数である。
【0046】
しかしながら、最大I/O多重度は、オペレーティングシステム、ホストバスアダプタ、及びストレージ装置の仕様に合わせてユーザによって設定される。そのため、最大I/O多重度が適切に設定されない場合がある。
【0047】
この場合、FCインターフェース(ホストバスアダプタ)の使用帯域がドライブインターフェース(デバイスアダプタ)の使用帯域を超える状況が継続し、新規に追加されるライト処理の増加量に対してジョブ処理能力が追いつかなくなってしまう。そして、最終的には管理可能なジョブ数が限界を超えて、キューフル状態が発生する。
【0048】
そこで、ストレージ装置自身が負荷状態を判断し、継続的な過負荷が予期される場合は、負荷対策処理部30a、30bによって負荷対策を実施して負荷を低減させる。具体的には、サーバ装置2への完了報告の出力を意図的に通常処理時よりも遅延させる。
【0049】
つまり、サーバ装置2は、ストレージ装置3からの完了報告が来るまではコマンドを発行することができないインターフェースの仕様を利用する。このため、ストレージ装置3はコマンドの受け付けを中断することができる。
【0050】
そして、ライトコマンド受信から完了報告の出力までの時間を延長することにより、ライト処理の時間を確保して、ストレージドライブへのライト処理を促進し、処理待ちのライト処理を減らして負荷状態を低減する。このように、負荷状態を低減することにより、最大I/O多重度を最適に設定する必要がなくなり、ストレージ装置の処理性能に応じた最適なシステム運用が可能になる。
【0051】
図3(A)、(B)は、負荷対策処理部を説明するための図である。図3(A)は、負荷対策処理部の構成概略図である。図3(B)は、モード管理テーブルを示す。負荷対策処理部30a、30bは、負荷状態判定部31、第1モード/第2モード選択部32、負荷対策処理選択部33、負荷対策処理実行指示部34を有する。これらはプログラムによって構築される。
【0052】
負荷状態判定部31は、所定時間毎やライトコマンドの受信時等の予め定められた判定タイミングで負荷状態を判定する。負荷状態判定部31は、ジョブ管理部22a、22bに指示して、ジョブ管理テーブル17a、17bにキューとして登録されたライトジョブの累積数を取得する。
【0053】
そして、負荷状態判定部31は、取得したライトジョブの累積数と最大値(ジョブ管理テーブルに登録可能なライトジョブの最大値)を基に負荷率を算出する。従って、ストレージ装置自身が負荷状態を判定することができる。そのため、サーバ装置等のホストコンピュータ側に特別な仕組みを持たせる必要がない。
【0054】
第1モード/第2モード選択部32は、判定された負荷率に基づいて、第1モード(通常処理モード)と第2モード(負荷対策モード)のいずれかを選択する。例えば、負荷率が70%以上であれば第2モードが選択される。
【0055】
負荷対策処理選択部33は、負荷状態の改善具合に応じて、複数の負荷対策処理の中から1つを選択する。第1及び第2コントローラモジュール7a、7bは、選択されたモードと負荷対策処理に応じて動作設定が行われる。そして、負荷対策処理実行指示部34は設定された負荷対策処理の実行するように各制御部に指示する。
【0056】
図3(B)に示すように、モード管理テーブル35は第1及び第2メモリ16a、16bに格納されている。モード管理テーブル35には、モード種別、処理種別、処理内容、及び動作設定フラグが登録されている。第1モード/第2モード選択部32及び負荷対策処理選択部33は、このモード管理テーブル35を参照して、モード及び負荷対策処理の選択を行う。
【0057】
また、第1モード/第2モード選択部32及び負荷対策処理選択部33は、動作設定フラグの登録を行う。その後、負荷対策処理部30は、動作設定フラグを参照して、動作設定フラグに対応したモード制御や負荷対策処理制御を行う。
【0058】
第1モードは通常処理モードであり、ライトコマンド受信時ライトバック処理を実行するものである。第2モードは負荷対策処理モードであり、サーバ装置2への完了報告の出力タイミングを通常処理モードの時より遅延させるものである。
【0059】
モード管理テーブル35には、6種類の負荷対策処理が登録されている。負荷対策処理1は、ライトコマンドを処理する担当コントローラを他のコントローラと交替する処理である。負荷対策処理2は、第1及び第2コントローラモジュール7a、7bのコントローラ間の通信帯域を変更する処理である。
【0060】
負荷対策処理3は、予め定められた待ち時間を付加して、サーバ装置2への完了報告の出力タイミングを遅らせる処理である。負荷対策処理4は、ライトスルーモードに設定し、ライトコマンド受信時にストレージドライブ9にライトデータを直接転送してライト処理し、同時にキャシュメモリ18a、18bにもライトデータを格納する処理である。
【0061】
負荷対策処理5は、ホストインターフェース(ホストI/F)における転送速度の設定を変更する処理である。負荷対策処理6は、FC設定の変更を行う処理である。例えば、負荷対策処理6によってBBクレジット(Buffer−to−Buffer Credit)の設定を変更する。そして、サーバ装置2と第1コントローラモジュール7aのインターフェース間において送受信可能なフレーム数を変更する。
【0062】
図4は、負荷対策処理1を説明するための図である。負荷対策処理部30aにおいて、負荷状態判定部31が判定した負荷率が第1しきい値(例えば70%)を超えている場合に、第1モード/第2モード選択部32は、第2モードを選択する。
【0063】
また、負荷対策処理選択部33は、負荷対策処理1を選択する。そして、第1コントローラモジュール7aの動作設定フラグは第2モードの負荷対策処理1に設定される。負荷対策処理部30aは、負荷対策処理部30bに動作設定変更のコマンドを発行し、負荷対策処理部30bは第2コントローラモジュール7bの動作設定フラグを第2モードの負荷対策処理1に設定する(処理1)。
【0064】
負荷対策実行指示部34は、第1メモリ16aに格納されたグループ情報24aを第2メモリ16bに格納されたグループ情報24bと入れ換える制御を行う(処理2)。なお、グループ情報は、複数のストレージドライブを識別するためのLUN(論理ユニットナンバー)の割り当て情報である。
【0065】
このLUNがサーバ装置2からコマンドにより指定されることで、サーバ装置2は目的のストレージドライブへのアクセスを行うことができる。このグループ情報を入れ換えることで、目的のストレージドライブを制御する担当コントローラを第1コントローラモジュール7aから第2コントローラモジュール7bに交替させる(処理3)。
【0066】
なお、処理1〜3は、負荷状態判定時に実行する。また、負荷状態判定部31による負荷状態の判定は、所定時間毎やライトコマンドの受信時等の予め定められた判定タイミングで実施される。なお、動作設定フラグが第2モードの負荷対策処理1に設定された後のライトコマンドに対する処理は下記のとおりである。
【0067】
サーバ装置2は、ストレージドライブ群10aの目的のストレージドライブに対するライトコマンドを第1コントローラモジュール7aに対して発行する(処理4)。ライトコマンドを受信すると、コマンド処理部21aは、ライトコマンドを解析し、ライト対象のLUNを取得する。
【0068】
コマンド処理部21aは、グループ情報24aを確認し、ライト対象のLUNが存在しないことを認識する。その為、コマンド処理部21aは、第2モードの負荷対策処理1の設定に対応して、内部バス8を介して、第2コントローラモジュール7bにライトコマンドを発行するとともに、ライトコマンドにともなうライトデータを出力する。
【0069】
第1コントローラ15aは、第2コントローラモジュール7bからの完了応答を受信するまでの時間を利用して、ジョブ管理テーブル17aに登録されたライトジョブを実行し、できる限り処理待ちのジョブ数を減らしていく(処理5)。
【0070】
第1コントローラモジュール7aからライトコマンドを受信した第2コントローラ15bのコマンド処理部21bは、ライトコマンドを解析する。そして、コマンド処理部21bは、グループ情報24bを確認し、ライト対象のLUNが存在することを認識する。
【0071】
コマンド処理部21bは、ライトコマンドに対応するライトジョブをジョブ管理部22aに出力する。ジョブ管理部22bは、ライトコマンドに対応するライトジョブをジョブ管理テーブル17bに登録する(処理6)。また、コマンド処理部21bは、ライトデータを第2キャッシュメモリ18bに格納する(処理7)。
【0072】
第2コントローラ15bは、冗長化のためのライトコマンドと、第2キャッシュメモリ18bに格納されたライトデータを第1コントローラモジュール7aに出力する。ライトコマンドを受信した第1コントローラモジュール7aのコマンド処理部21aは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部22aに出力する。
【0073】
そして、ジョブ管理部22aは、ライトコマンドに対応するライトジョブをジョブ管理テーブル17aに登録する(処理8)。また、コマンド処理部21aは、ライトデータを第1キャッシュメモリ18aに格納する(処理9)。格納が完了すると、第1コントローラモジュール7aは第2コントローラモジュール7bに完了応答を出力する。
【0074】
この完了応答を受信すると、第2コントローラモジュール7bは第1コントローラモジュール7aに完了応答を出力する。この完了応答を受けて、第1コントローラ15aは、サーバ装置2に対してライトコマンドの完了報告を出力する(処理10)。
【0075】
その後、第1コントローラ15aは、ジョブ管理テーブル17aに登録されたライトジョブを継続的に処理し、できる限り処理待ちのジョブ数を減らしていく。また、第2コントローラ15bは、ジョブ管理テーブル17bに登録されたライトジョブを独自に実行する(処理11)。
【0076】
従って、負荷対策処理1を用いてライトコマンド受信から完了報告の出力までの時間を延長することにより、ライト処理の時間の確保することができる。ゆえに、このライト処理の時間を利用して、第1コントローラモジュール7aの処理待ちのジョブ数を減らして高負荷状態の緩和を図ることができる。
【0077】
なお、サーバ装置2への完了報告が通常処理時(第1モード設定時)よりも遅延するが、この遅延時間はサーバ装置2のタイムアウト設定時間以内である。その為、負荷対策処理1がストレージ装置3の処理性能に与える影響は小である。
【0078】
つまり、処理性能がコントローラ間の通信状況に応じて約10%程度低下する。しかし、サーバ装置2は負荷対策処理1の実行を認識する必要はなく、サーバ装置2は特別な処理を実行する必要はない。
【0079】
図5は、負荷対策処理2を説明するための図である。負荷対策処理部30aにおいて、負荷状態判定部31が判定した負荷率が第1しきい値(例えば70%)を超えている場合に、第1モード/第2モード選択部32は、第2モードを選択する。
【0080】
また、負荷対策処理選択部33は、負荷対策処理2を選択する。そして、第1コントローラモジュール7aの動作設定フラグは第2モードの負荷対策処理2に設定される。負荷対策処理部30aは、負荷対策処理部30bに動作設定変更のコマンドを発行し、負荷対策処理部30bは第2コントローラモジュール7bの動作設定フラグを第2モードの負荷対策処理2に設定する(処理1)。
【0081】
負荷対策実行指示部34は、バスクロック制御部25a、25bのクロック周波数を通常処理時よりも低下させて、第1及び第2コントローラモジュール7a、7bのコントローラ間の通信帯域を変更する。つまり、内部バス8のデータ転送速度を例えば20〜50%の間で予め選択された値に設定変更する(処理2)。
【0082】
このため、第1及び第2コントローラモジュール7a、7bのデータ転送を通常処理時よりも遅くすることができる。なお、処理1〜2は、負荷状態判定時に実行する。また、負荷状態判定部31による負荷状態の判定は、所定時間毎やライトコマンドの受信時等の予め定められた判定タイミングで実施される。なお、動作設定フラグが第2モードの負荷対策処理2に設定された後のライトコマンドに対する処理は下記のとおりである。
【0083】
サーバ装置2は、ストレージドライブ群10aの目的のストレージドライブに対するライトコマンドを第1コントローラモジュール7aに対して発行する(処理3)。ライトコマンドを受信すると、コマンド処理部21aは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部22aに出力する。
【0084】
そして、コマンド処理部21aは、ライトコマンドにともなうライトデータを第1キャッシュメモリ18aに格納する。ジョブ管理部22aは、ライトジョブを処理待ちのキューとしてジョブ管理テーブル17aに登録する(処理4)。
【0085】
第1コントローラ15aは、ライトコマンド受信から第2コントローラモジュール7bからの完了応答を受信するまでの時間を利用して、ジョブ管理テーブル17aに登録されたライトジョブを実行し、できる限り処理待ちのジョブ数を減らしていく(処理5)。また、第1コントローラ15aは、冗長化のためのライトコマンドと、第1キャッシュメモリ18aに格納されたライトデータを第2コントローラモジュール7bに出力する。
【0086】
第2コントローラモジュール7bのコマンド処理部21bは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部22bに出力する。そして、第2コントローラモジュール7bのジョブ管理部22bは、受信したライトコマンドに対応するライトジョブをジョブ管理テーブルに登録する(処理6)。
【0087】
また、コマンド処理部21bはライトデータを第2キャッシュメモリ18bに格納する(処理7)。格納が完了すると、第2コントローラモジュール7bは第1コントローラモジュール7aに完了応答を出力する。
【0088】
完了応答を受信すると、第1コントローラ15aはサーバ装置2へライトコマンドに対する完了報告を出力する(処理8)。そして、第1コントローラモジュール7aはコマンド待機状態になる。
【0089】
その後、第1コントローラ15aは、ジョブ管理テーブル17aに登録されたライトジョブを継続的に処理し、できる限り処理待ちのジョブ数を減らしていく。また、第2コントローラ15bは、ジョブ管理テーブル17bに登録されたライトジョブを独自に実行する(処理9)。
【0090】
以上のように、第1及び第2コントローラモジュール7a、7bのコントローラ間の通信帯域を通常処理時よりも低下させることにより、第2コントローラモジュール7bの冗長化(データの同期化)にかかる時間を通常処理時よりも遅延させる。
【0091】
従って、負荷対策処理2を用いてライトコマンド受信から完了報告の出力までの時間を延長することにより、ライト処理の時間の確保することができる。ゆえに、このライト処理の時間を利用して、第1コントローラモジュール7aの処理待ちのジョブ数を減らして、高負荷状態の緩和を図ることができる。
【0092】
なお、サーバ装置2への完了報告が通常処理時(第1モード設定時)よりも遅延するが、この遅延時間はサーバ装置2のタイムアウト設定時間以内である。その為、負荷対策処理2はストレージ装置3としての処理性能への影響は中程度である。つまり、処理性能が通信帯域の設定に応じて例えば20〜30%程度低下する。しかし、サーバ装置2は負荷対策処理2の実行を認識する必要はなく、サーバ装置2は特別な処理を実行する必要はない。
【0093】
図6は、負荷対策処理3を説明するための図である。負荷対策処理部30aにおいて、負荷状態判定部31が判定した負荷率が第1しきい値(例えば70%)を超えている場合に、第1モード/第2モード選択部32は、第2モードを選択する。また、負荷対策処理選択部33は、負荷対策処理3を選択する。そして、第1コントローラモジュール7aの動作設定フラグは第2モードの負荷対策処理3に設定される。
【0094】
負荷対策処理部30aは、負荷対策処理部30bに動作設定変更のコマンドを発行し、負荷対策処理部30bは第2コントローラモジュール7bの動作設定フラグを第2モードの負荷対策処理3に設定する(処理1)。
【0095】
そして、負荷対策実行指示部34は、待ち時間付加部26aをオンに設定する。なお、動作設定フラグが第2モードの負荷対策処理3に設定された後のライトコマンドに対する処理は下記のとおりである。
【0096】
サーバ装置2は、ストレージドライブ群10aの目的のストレージドライブに対するライトコマンドを第1コントローラモジュール7aに対して発行する(処理2)。ライトコマンドを受信すると、コマンド処理部21aは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部22aに出力する。
【0097】
そして、コマンド処理部21aは、ライトコマンドにともなうライトデータを第1キャッシュメモリ18aに格納する。ジョブ管理部22aは、ライトジョブを処理待ちのキューとしてジョブ管理テーブル17aに登録する(処理3)。
【0098】
第1コントローラ15aは、ライトコマンド受信から第2コントローラモジュール7bからの完了応答を受信するまでの時間を利用して、ジョブ管理テーブル17aに登録されたライトジョブを実行し、できる限り処理待ちのジョブ数を減らしていく(処理4)。また、第1コントローラ15aは、冗長化のためのライトコマンドと、第1キャッシュメモリ18aに格納されたライトデータを第2コントローラモジュール7bに出力する。
【0099】
第2コントローラモジュール7bのコマンド処理部21bは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部22bに出力する。そして、第2コントローラ15bのジョブ管理部22bは、受信したライトコマンドに対応するライトジョブをジョブ管理テーブルに登録する(処理5)。
【0100】
コマンド処理部21bは、ライトデータを第2キャッシュメモリ18bに格納する(処理6)。そして、第2コントローラモジュール7bは第1コントローラモジュール7aに完了応答を出力する。
【0101】
ここで、第1コントローラモジュール7aは、第2コントローラモジュール7bから完了応答を受信してもすぐにサーバ装置2への完了報告を出力しない。つまり、待ち時間付加部26aは、完了報告の出力タイミングに予め定められた待ち時間(例えば、1〜10ms)を付加する(処理7)。
【0102】
この待ち時間をさらに利用して、コマンド処理部21aは、ジョブ管理テーブル17aに登録されたライトジョブを処理し、処理待ちのジョブ数を減らしていく。待ち時間経過後に、第1コントローラ15aはサーバ装置2へライトコマンドに対する完了報告を出力する(処理8)。
【0103】
そして、第1コントローラモジュール7aはコマンド待機状態になる。また、第2コントローラ15bは、ジョブ管理テーブル17aに登録されたライトジョブを独自に実行する(処理9)。
【0104】
従って、負荷対策処理3を用いてライトコマンド受信から完了報告の出力までの時間を延長することにより、ライト処理の時間の確保することができる。ゆえに、このライト処理の時間を利用して、第1コントローラモジュール7aの処理待ちのジョブ数をより減少させて高負荷状態の緩和を図ることができる。
【0105】
なお、待ち時間は、サーバ装置2への完了報告の出力がサーバ装置2のタイムアウト設定時間以内になるように設定しておく。その為、負荷対策処理3はストレージ装置3としての処理性能への影響は中程度である。
【0106】
つまり、処理性能が待ち時間付加部に設定された待ち時間によって、例えば30〜40%程度低下する。しかし、サーバ装置2は負荷対策処理3の実行を認識する必要はなく、サーバ装置2は特別な処理を実行する必要はない。
【0107】
図7は、負荷対策処理4を説明するための図である。負荷状態判定部31が判定した負荷率が第1しきい値(例えば70%)を超えている場合に、第1モード/第2モード選択部32は、第2モードを選択する。
【0108】
また、負荷対策処理選択部33は、負荷対策処理4を選択する。そして、第1コントローラモジュール7aの動作設定フラグは第2モードの負荷対策処理4に設定される。負荷対策処理部30aは、負荷対策処理部30bに動作設定変更のコマンドを発行し、負荷対策処理部30bは第2コントローラモジュール7bの動作設定フラグを第2モードの負荷対策処理4に設定する(処理1)。
【0109】
負荷対策実行指示部34は、ライトスルーモード設定部をオンに設定する。(処理2)。これによって、第1及び第2コントローラモジュール7a、7bは、ライトバックモードからライトスルーモードに切り換えられる。
【0110】
従って、ライトコマンドに対応するライトジョブはジョブ管理テーブル17aに処理待ちのジョブとして登録せずに、ディスク制御部23aによってすぐにライト対象のストレージドライブ9へのライト処理が実行される。その為、処理待ちのジョブの増加が防止できる。
【0111】
なお、処理1〜2は、負荷状態判定時に実行する。また、負荷状態判定部31による負荷状態の判定は、所定時間毎やライトコマンドの受信時等の予め定められた判定タイミングで実施される。なお、動作設定フラグが第2モードの負荷対策処理4に設定された後のライトコマンドに対する処理は下記のとおりである。
【0112】
サーバ装置2は、ストレージドライブ群10aの目的のストレージドライブに対するライトコマンドを第1コントローラモジュール7aに対して発行する(処理3)。ライトコマンドを受信すると、コマンド処理部21aは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部22aに出力する。
【0113】
そして、第1コントローラ15aは、ストレージドライブ群10aのライト対象のストレージドライブ9へのライト処理を実行すると、同時にライトコマンドにともなうライトデータを第1キャッシュメモリ18aに一時的に格納する。
【0114】
つまり、ジョブ管理部22aは、ライトコマンドに対応するライト処理をすぐに実行するようにディスク制御部23aに対して指示する(処理4)。そして、ディスク制御部23aは、ライト対象のストレージドライブ9にライト指示を発行し、サーバ装置2から受信したライトデータをライト対象のストレージドライブ9に出力する(処理5)。
【0115】
そして、ライト対象のストレージドライブ9は受信したライトデータを記憶媒体に記録する。また、第1コントローラ15aは、冗長化のためのライトコマンドと、第1キャッシュメモリ18aに格納されたライトデータを第2コントローラモジュール7bに出力する。
【0116】
第1コントローラ15aは、第2コントローラモジュール7bからの完了応答を受信するまでの時間を利用して、さらに、ジョブ管理テーブル17aに登録されたライト処理を実行し、できる限り処理待ちのジョブ数を減らしていく。
【0117】
第2コントローラ15bは、ストレージドライブ群10bのライト対象のストレージドライブ9へのライト処理を実行する。
【0118】
つまり、ジョブ管理部22bは、ライトコマンドに対応するライト処理をすぐに実行するようにディスク制御部23bに対して指示する(処理6)。そして、ディスク制御部23bは、ライト対象のストレージドライブ9にライト指示を発行し、第1コントローラモジュール7aから出力されたライトデータをライト対象のストレージドライブ9に出力する(処理7)。
【0119】
そして、ライト対象のストレージドライブ9は受信したライトデータを記憶媒体に記録する。その後、冗長化の為のライト処理が完了すると、第2コントローラモジュール7bは第1コントローラモジュール7aに完了応答を出力する。完了応答を受信すると、第1コントローラ15aはサーバ装置2へライトコマンドに対する完了報告を出力する(処理8)。
【0120】
そして、第1コントローラモジュール7aはコマンド待機状態になる。その後、第1コントローラ15aは、ジョブ管理テーブル17aに登録されたライト処理を継続的に処理し、できる限り処理待ちのジョブ数を減らしていく。
【0121】
従って、ストレージ装置3は、負荷対策処理4により、第1コントローラモジュール7aの処理待ちのジョブ数の増加を防止して、高負荷状態に移行するのを防止する。また、負荷対策処理4を用いてライトコマンド受信から完了報告の出力までの時間を延長することにより、ライト処理の時間の確保することができる。ゆえに、このライト処理の時間を利用して、第1コントローラモジュール7aの処理待ちのジョブ数をより減少させて高負荷状態の緩和を図ることができる。
【0122】
なお、ライトスルーモードによるライト処理は、ストレージドライブ9の駆動をともなう為、サーバ装置2への完了報告が通常処理時(ライトバックモード)よりも遅くなる。サーバ装置2のタイムアウト設定時間は、ライトスルーモードによるライト処理を行った場合の最大時間で設定されている。
【0123】
その為、負荷対策処理4はストレージ装置3としての処理性能への影響は大である。つまり、処理性能がライトコマンドにともなうライトデータ量に応じて、例えば40%〜50%程度低下する)。しかし、サーバ装置2は負荷対策処理4の実行を認識する必要はなく、サーバ装置2は特別な処理を実行する必要はない。
【0124】
図8は、負荷対策処理5を説明するための図である。負荷対策処理部30aにおいて、負荷状態判定部31が判定した負荷率が第1しきい値(例えば70%)を超えている場合に、第1モード/第2モード選択部32は、第2モードを選択する。
【0125】
また、負荷対策処理選択部33は、負荷対策処理5を選択する。そして、第1コントローラモジュール7aの動作設定フラグは第2モードの負荷対策処理5に設定される。負荷対策処理部30aは、負荷対策処理部30bに動作設定変更のコマンドを発行し、負荷対策処理部30bは第2コントローラモジュール7bの動作設定フラグを第2モードの負荷対策処理5に設定する(処理1)。
【0126】
第1コントローラモジュール7aにおいて、負荷対策実行指示部34は、転送速度設定部28aに指示してホストI/Fのデータ転送速度を通常処理時よりも低下させて、サーバ装置2と第1コントローラモジュール7aのインターフェース間の通信帯域を変更する。
【0127】
つまり、負荷対策処理5によって、ホストI/Fのデータ転送速度を通常処理時より低い予め定められた値に設定変更する。第2コントローラモジュール7bにおいても、同様に、ホストI/Fのデータ転送速度を設定変更する(処理2)。
【0128】
FCインターフェースの場合、高速モード(例:8Gbps)と低速モード(例:4Gbps)等の仕様を利用して設定変更を行う。なお、iSCSIやSUSの場合も、同様に、高速モード(例:6Gbps)と低速モード(例:3Gbps)等の仕様を利用して設定変更を行うことができる。
【0129】
第2モードの負荷対策処理5に設定された際に、転送速度設定部28a、28bは、FCスイッチ5a、5bに通知して、FCポート11aとFCポート6a間の接続、及びFCポート11bとFCポート6b間の接続を切断する。
【0130】
そして、ストレージ装置3は、サーバ装置2との接続を切断する。その後、転送速度設定部28a、28bは、低速モードに切り換えて、FCスイッチ5a、5bに再接続する。そして、FCスイッチ5a、5bは、サーバ装置2に再接続する(処理3)。このため、サーバ装置2のオペレーティングシステム(OS)はストレージ装置3の装置エラー及び処理性能低下を認識する。
【0131】
サーバ装置2は、負荷対策処理5によって、低速モードのデータ転送速度でストレージ装置3とのデータの送受信を行うことになる。従って、ストレージ装置3は、サーバ装置2からのコマンド及びデータの受け付け速度を低下させることができる。ゆえに、処理待ちのジョブ数の増加速度を低下させることができる。
【0132】
その為、ライトコマンド受信からサーバ装置2への完了応答を出力する迄の時間を利用して、負荷対策処理5は、ジョブ管理テーブル17aに登録されたライトジョブを実行し、できる限り処理待ちのジョブ数を減らしていく。なお、処理1〜3は、負荷状態判定時に実行する。
【0133】
また、負荷状態判定部31による負荷状態の判定は、所定時間毎やライトコマンドの受信時等の予め定められた判定タイミングで実施される。なお、動作設定フラグが第2モードの負荷対策処理5に設定された後のライトコマンドに対する処理は下記のとおりである。
【0134】
サーバ装置2は、ストレージドライブ群10aの目的のストレージドライブに対するライトコマンドを第1コントローラモジュール7aに対して発行する(処理4)。ライトコマンドを受信すると、コマンド処理部21aは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部22aに出力する。
【0135】
そして、コマンド処理部21aは、ライトコマンドにともなうライトデータを第1キャッシュメモリ18aに格納する。ジョブ管理部22aは、ライトジョブを処理待ちのキューとしてジョブ管理テーブル17aに登録する(処理5)。
【0136】
その間に、第1コントローラ15aは、ジョブ管理テーブル17aに登録された処理待ちのライトジョブを実行し、できる限り処理待ちのジョブ数を減らしていく(処理6)。また、第1コントローラ15aは、冗長化のためのライトコマンドと、第1キャッシュメモリ18aに格納されたライトデータを第2コントローラモジュール7bに出力する。
【0137】
第2コントローラモジュール7bのコマンド処理部21bは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部22bに出力する。そして、ジョブ管理部22bは、受信したライトコマンドに対応するライトジョブをジョブ管理テーブル17bに登録する(処理7)。
【0138】
また、コマンド処理部21bはライトデータを第2キャッシュメモリ18bに格納する(処理8)。そして、第2コントローラモジュール7bは第1コントローラモジュール7aに完了応答を出力する。
【0139】
完了応答を受信した第1コントローラ15aはサーバ装置2へライトコマンドに対する完了報告を出力する(処理9)。そして、第1コントローラモジュール7aはコマンド待機状態になる。
【0140】
その後、第1コントローラ15aは、ジョブ管理テーブル17aに登録された処理待ちのライト処理を継続的に処理し、できる限り処理待ちのジョブ数を減らしていく。また、第2コントローラ15bは、ジョブ管理テーブル17bに登録されたライト処理を独自に実行する(処理10)。
【0141】
以上のように、ストレージ装置3は、負荷対策処理5により、サーバ装置2からのコマンド及びデータの受け付け速度を低下させて、処理待ちのジョブ数の増加速度を低下させることができる。また、負荷対策処理5の実施により、通常処理時(第1モード設定時)よりも完了報告の出力を数百ms遅延させることができる。
【0142】
従って、負荷対策処理5を用いてライトコマンド受信から完了報告の出力までの時間を延長することにより、ライト処理の時間の確保することができる。ゆえに、このライト処理の時間を利用して、第1コントローラモジュール7aの処理待ちのジョブ数を減らして、高負荷状態の緩和を図ることができる。
【0143】
なお、負荷対策処理5はストレージ装置3の処理性能への影響は中程度である。しかし、サーバ装置2は負荷対策処理5の実行をインターフェースの切断により認識し、エラーを検出する為、負荷対策処理5はサーバ装置2の処理性能にも影響を与える。従って、負荷対策処理5は、負荷状態の低減を優先する場合に実行するのが望ましい。
【0144】
図9は、負荷対策処理6を説明するための図である。負荷対策処理部30aにおいて、負荷状態判定部31が判定した負荷率が第1しきい値(例えば70%)を超えている場合に、第1モード/第2モード選択部32は、第2モードを選択する。
【0145】
また、負荷対策処理選択部33は、ホストI/FがFCインターフェースの場合に負荷対策処理6を選択する。つまり、ホストI/Fが他のインターフェースの場合には、負荷対策処理選択部33は、負荷対策処理6を選択しない。
【0146】
そして、第1コントローラモジュール7aの動作設定フラグは第2モードの負荷対策処理6に設定される。負荷対策処理部30aは、負荷対策処理部30bに動作設定変更のコマンドを発行し、負荷対策処理部30bは第2コントローラモジュール7bの動作設定フラグを第2モードの負荷対策処理6に設定する(処理1)。
【0147】
第1コントローラモジュール7aにおいて、負荷対策実行指示部34は、FC設定部29aに指示してBBクレジットの設定を変更する。つまり、FCポート11aとFCポート6a間における送受信可能なフレーム数を変更する。
【0148】
ファイバチャネルのフロー制御では、BBクレジットという仕組みが採用されている。そして、リンク確立時に送受信ポート間でネゴシェーションを行い、お互いが持つバッファサイズ(1バッファは1フレーム分)のどちらか小さい方のバッファサイズでリンクを確立する。これにより送信側は受信側が受信できるフレーム数を認識することができる。従って、受信側で受信できない量のフレームを送信することができない。
【0149】
負荷対策処理6はこの仕組みを利用したものであり、BBクレジットの設定変更によって、ストレージ装置側のバッファサイズを通常時よりも小さい値(例えば、50%)に設定する。
【0150】
これにより、サーバ装置側の送受信可能なフレーム数を変更することができる。第2コントローラモジュール7bにおいても、同様に、FCポート11bとFCポート6b間における送受信可能なフレーム数を変更する。(処理2)。
【0151】
第2モードの負荷対策処理6に設定された際に、FC設定部29a、29bは、それぞれのFCスイッチ5a、5bに通知して、サーバ装置2とストレージ装置3との接続を切断する。
【0152】
その後、FC設定部29a、29bは、BBクレジットの設定変更を行って、FCスイッチ5a、5bに再接続し、サーバ装置2との接続を再開する(処理3)。このため、サーバ装置2のオペレーティングシステムは、ストレージ装置3の装置エラー及び処理性能低下を認識する。
【0153】
サーバ装置2は、負荷対策処理6により、通常処理時よりも小さいフレーム数でストレージ装置3とのデータの送受信を行うことになる。従って、ストレージ装置3は、サーバ装置2からのコマンド及びデータの受け付け速度を低下させることができる。ゆえに、処理待ちのジョブ数の増加速度を低下させることができる。
【0154】
そのため、ライトコマンド受信からサーバ装置2への完了応答を出力する迄の時間を利用して、負荷対策処理6は、ジョブ管理テーブル17aに登録されたライトジョブを実行し、できる限り処理待ちのジョブ数を減らしていく。
【0155】
なお、処理1〜3は、負荷状態判定時に実行する。また、負荷状態判定部31による負荷状態の判定は、所定時間毎やライトコマンドの受信時等の予め定められた判定タイミングで実施される。また、動作設定フラグが第2モードの負荷対策処理6に設定された後のライトコマンドに対する処理は下記のとおりである。
【0156】
サーバ装置2は、ストレージドライブ群10aの目的のストレージドライブに対するライトコマンドを第1コントローラモジュール7aに対して発行する(処理4)。ライトコマンドを受信すると、コマンド処理部21aは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部22aに出力する。
【0157】
そして、コマンド処理部21aは、ライトコマンドにともなうライトデータを第1キャッシュメモリ18aに格納する。ジョブ管理部22aは、ライトジョブを処理待ちのキューとしてジョブ管理テーブル17aに登録する(処理5)。
【0158】
その間に、第1コントローラ15aは、ジョブ管理テーブル17aに登録された処理待ちのライトジョブを実行し、できる限り処理待ちのジョブ数を減らしていく(処理6)。また、第1コントローラ15aは、冗長化のためのライトコマンドと、第1キャッシュメモリ18aに格納されたライトデータを第2コントローラモジュール7bに出力する。
【0159】
第2コントローラモジュール7bのコマンド処理部21bは、ライトコマンドを解析して、ライトコマンドに対応するライトジョブをジョブ管理部22bに出力する。そして、ジョブ管理部22bは、受信したライトコマンドに対応するライトジョブをジョブ管理テーブル17bに登録する(処理7)。
【0160】
コマンド処理部21bはライトデータを第2キャッシュメモリ18bに格納する(処理8)。そして、第2コントローラモジュール7bは第1コントローラモジュール7aに完了応答を出力する。
【0161】
完了応答を受信すると、第1コントローラ15aはサーバ装置2へライトコマンドに対する完了報告を出力する(処理9)。そして、第1コントローラモジュール7aはコマンド待機状態になる。
【0162】
その後、第1コントローラ15aは、ジョブ管理テーブル17aに登録されたライト処理を継続的に処理し、できる限り処理待ちのジョブ数を減らしていく。また、第2コントローラ15bは、ジョブ管理テーブル17bに登録されたライト処理を独自に実行する(処理10)。
【0163】
以上のように、ストレージ装置3は、負荷対策処理6により、サーバ装置2からのコマンド及びデータの受け付け速度を低下させて、処理待ちのジョブ数の増加速度を低下させることができる。
【0164】
また、負荷対策処理6を用いてライトコマンド受信から完了報告の出力までの時間を延長することにより、ライト処理の時間の確保することができる。ゆえに、このライト処理の時間を利用して、第1コントローラモジュール7aの処理待ちのジョブ数を減らして、高負荷状態の緩和を図ることができる。
【0165】
なお、負荷対策処理6はストレージ装置3の処理性能への影響は大であり、サーバ装置2のオペレーティングシステムは負荷対策処理6の実行をインターフェースの切断により認識し、エラーを検出する為、サーバ装置2の処理性能にも影響を与える。従って、負荷対策処理6は、負荷状態の低減を優先する場合に実行するのが望ましい。
【0166】
また、高負荷状態は一時的な場合が多いので、負荷対策処理1から6の中の1つを運用形態に応じて選択的にストレージ装置2に搭載するだけでも負荷状態の低減効果を得ることができる。また、負荷対策処理1〜6は、様々な運用形態に対応して、処理待ちのジョブの累積状況や高負荷状態の継続状況に基づいて、1つまたは複数の処理を適宜選択するようにしても良い。
【0167】
図10は、負荷対策処理選択手順を説明するためのフローチャートである。図10は、負荷対策処理選択部33が負荷対策処理1〜6を順に選択する手順を示す。図10では、サーバへの影響が小さいものから順番に負荷対策処理1〜6を並べ、負荷状態が低減されなければ、次の負荷対策処理を選択していく様子を示す。
【0168】
また、高負荷状態を判定した回数に応じて負荷対策処理が選択される。つまり、負荷状態が低減されずに継続すればするほど、サーバへの影響が大きくても低減効果が大きい負荷対策処理が次々選択される。また、負荷対策処理が継続しているか否かは負荷状態判定部31が検出する負荷率を用いて判断する。
【0169】
装置電源投入時、第1及び第2コントローラモジュール7a、7bのモードは、第1モード(通常処理モード)に設定される(S1)。負荷対策処理部30aの負荷状態判定部31は、所定の判定タイミングで負荷率を判定する。そして、負荷率が第1しきい値(例えば70%)以下の場合(S2、NO)、第1モードのままとし、モードの変更は行わない。そして、次の判定タイミングを待つ。
【0170】
負荷率がBUSYの場合、つまり第1しきい値を超えている場合(S2、YES)、第1モード/第2モード選択部32は第2モード(負荷対策モード)を選択する(S3)。負荷対策処理選択部33は、ストレージ装置3の処理性能への影響が小さい負荷対策処理1を選択する。
【0171】
そして、負荷対策処理部30aは、第1及び第2コントローラモジュール7a、7bの動作設定フラグを第2モードの負荷対策処理1に設定し、図4において説明した負荷対策処理1の担当コントローラの交替が行われる(S4)。これにより、負荷対策処理部30a、30bが負荷対策を開始する。
【0172】
負荷対策処理1の設定後の次の判定タイミングで、負荷状態判定部31は負荷率を判定する。負荷対策処理部30aは、負荷率が第2しきい値(例えば50%)以下であれば(S5、NO)、負荷対策処理1の設定を解除する(S6)。さらに、第1モード/第2モード選択部32は、第2モードから第1モードに切り替える(S1)。
【0173】
負荷対策処理1に設定しても、負荷率が第1しきい値以下にならずBUSYのままであれば(S5、YES)、負荷対策処理選択部33は、ストレージ装置3の処理性能への影響が中程度の負荷対策処理2を選択する。
【0174】
そして、負荷対策処理部30aは、第1及び第2コントローラモジュール7a、7bの動作設定フラグを第2モードの負荷対策処理2に設定し、図5において説明した負荷対策処理2のコントローラ間通信帯域変更が行われる(S7)。
【0175】
負荷対策処理2の設定後の次の判定タイミングで、負荷状態判定部31は負荷率を判定する。負荷対策処理部30aは、負荷率が第2しきい値以下であれば(S8、NO)、負荷対策処理2の設定を解除し(S9)、負荷対策処理1に設定を戻す。そして、次の判定タイミングを待つ。
【0176】
負荷対策処理2に設定しても、負荷率が第1しきい値以下にならずBUSYのままであれば(S8、YES)、負荷対策処理選択部33は、ストレージ装置3の処理性能への影響が中程度の負荷対策処理3を選択する。
【0177】
そして、負荷対策処理部30aは、第1及び第2コントローラモジュール7a、7bの動作設定フラグを第2モードの負荷対策処理3に設定し、図6において説明した負荷対策処理3の待ち時間付加の処理が行われる(S10)。
【0178】
負荷対策処理3の設定後の次の判定タイミングで、負荷状態判定部31は負荷率を判定する。負荷対策処理部30aは、負荷率が第2しきい値以下であれば(S11、NO)、負荷対策処理3の設定を解除し(S12)、負荷対策処理2に設定を戻す。そして、次の判定タイミングを待つ。
【0179】
負荷対策処理3に設定しても、負荷率が第1しきい値以下にならずBUSYのままであれば(S11、YES)、負荷対策処理選択部33は、ストレージ装置3の処理性能への影響が大の負荷対策処理4を選択する。そして、負荷対策処理部30aは、第1及び第2コントローラモジュール7a、7bの動作設定フラグを第2モードの負荷対策処理4に設定し、図7において説明した負荷対策処理4のライトスルーモードへの変更処理が行われる(S13)。
【0180】
負荷対策処理4の設定後の次の判定タイミングで、負荷状態判定部31は負荷率を判定する。負荷対策処理部30aは、負荷率が第2しきい値以下であれば(S14、NO)、負荷対策処理4の設定を解除し(S15)、負荷対策処理3に設定を戻す。そして、次の判定タイミングを待つ。
【0181】
負荷対策処理4に設定しても、負荷率が第1しきい値以下にならずBUSYのままであれば(S14、YES)、負荷対策処理選択部33は負荷対策処理5を選択する。負荷対策処理5は、オペレーティングシステムによる装置エラーの検出が有りストレージ装置3の処理性能への影響が中程度であるが、低減効果が大きい。
【0182】
そして、負荷対策処理部30aは、第1及び第2コントローラモジュール7a、7bの動作設定フラグを第2モードの負荷対策処理5に設定し、図8において説明した負荷対策処理5の転送速度設定変更処理が行われる(S16)。
【0183】
負荷対策処理5の設定後の次の判定タイミングで、負荷状態判定部31は負荷率を判定する。負荷対策処理部30aは、負荷率が第2しきい値以下であれば(S17、NO)、負荷対策処理5の設定を解除し(S18)、負荷対策処理4に設定を戻す。そして、次の判定タイミングを待つ。
【0184】
負荷対策処理5に設定しても、負荷率が第1しきい値以下にならずBUSYのままであれば(S17、YES)、負荷対策処理選択部33は、負荷対策処理6を選択する。負荷対策処理6は、オペレーティングシステムによる装置エラーの検出が有りかつストレージ装置3の処理性能への影響が大きいが、低減効果が大きい。
【0185】
そして、負荷対策処理部30aは、第1及び第2コントローラモジュール7a、7bの動作設定フラグを第2モードの負荷対策処理6に設定し、図9において説明した負荷対策処理6のFC設定変更処理が行われる(S19)。
【0186】
負荷対策処理6の設定後の次の判定タイミングで、負荷状態判定部31は負荷率を判定する。負荷対策処理部30aは、負荷率が第2しきい値以下であれば(S20、NO)、負荷対策処理6の設定を解除し(S21)、負荷対策処理5に設定を戻す。そして、次の判定タイミングを待つ。
【0187】
負荷対策処理6に設定しても、負荷率が第1しきい値以下にならずBUSYのままであれば(S20、YES)、負荷対策処理選択部33は、第1コントローラモジュール7aは、コマンドを受け付け不可能である旨の異常報告をサーバ装置2に出力する(S22)。このように、負荷対策処理部30aは、ストレージ装置3の処理性能への影響度を考慮して負荷対策処理を段階的に設定することができる。
【0188】
図11は、負荷対策処理選択手順を説明するための図である。図11は、縦軸に負荷率(%)、横軸に時間(ms)を示し、各負荷対策処理の時間的な推移を示す。判定タイミングT1で負荷率が第1しきい値(70%)を超えている場合、第1モード/第2モード選択部32は第1及び第2コントローラモジュール7a、7bのモードを第2モードに切り替える。
【0189】
また、負荷対策処理選択部33は、第1及び第2コントローラモジュール7a、7bの動作設定を負荷対策処理1に設定する。負荷対策処理1の設定後の判定タイミングT2で負荷率が第1しきい値を超えている場合、負荷対策処理2に設定が切り替えられる。
【0190】
負荷対策処理2の設定後の判定タイミングT3で負荷率が第1しきい値を超えている場合、負荷対策処理3に設定が切り替えられる。負荷対策処理3の設定後の判定タイミングT4で負荷率が第2しきい値(50%)以下であれば、負荷対策処理3の設定が解除され、負荷対策処理2に設定が戻される。
【0191】
その後の判定タイミングT5で負荷率が第2しきい値(50%)以下であれば、負荷対策処理2の設定が解除され、負荷対策処理1に設定が戻される。次の判定タイミングで負荷率が第2しきい値(50%)以下であれば、負荷対策処理1の設定が解除され、第2モードから第1モードに切り替えられる。
【0192】
また、負荷対策処理1の設定後の判定タイミングT2で負荷率が第1しきい値(70%)を大幅に超えており、負荷状態に改善がみられない場合、負荷対策処理選択部33は、より効果が大きい負荷対策処理3等を選択する。このように、負荷対策処理選択部33は負荷状態の改善状況に応じて負荷対策処理を選択することができるので、高負荷状態の緩和を図ることができる。
【0193】
なお、本実施の形態において、モード及び負荷対策処理の設定用の第1しきい値や解除用の第2しきい値は、ストレージ装置の仕様に応じて適宜変更可能である。また、本実施の形態において、第1コントローラモジュール7aが高負荷状態の場合を一例として説明したが、第2コントローラモジュール7bが高負荷状態の場合も同様に負荷対策処理部30b等によって同様に負荷対策を実行することができる。
【0194】
また、負荷対策処理の数は単純に効果大中小の3つとし、例えば、負荷対策処理1、3、5にして複雑な処理を省略しても良い。判定しきい値も複数設けて、負荷状態のレベルに応じて、きめ細かく負荷対策処理を選択できるようにしても良い。
【0195】
本発明は上記実施の形態に限定されるものではない。矛盾のない限りにおいて、複数の実施の形態を組み合わせても構わない。上記実施形態は例示であり、本発明の特許請求の範囲に記載された技術的思想と実質的に同一な構成を有し、同様な作用効果を奏するものは、いかなるものであっても本発明の技術的範囲に包含される。
【0196】
以上の実施形態に関して、さらに以下の付記を開示する。
(付記1)
コンピュータから送信されたライトコマンドにともなうデータを記憶するストレージ装置において、
前記ライトコマンドを受信した際に前記ライトコマンドに対応するライトジョブを登録するジョブ管理テーブルを記憶するメモリと、
前記ライトコマンドにともなうデータを一時的に格納するキャッシュメモリと、
前記ジョブ管理テーブルに登録された前記ライトジョブに基づいて前記キャッシュメモリに格納された前記データを記憶媒体に記録するストレージドライブと、
前記ジョブ管理テーブルから取得したライトジョブの累積数に基づいて前記ストレージ装置の負荷状態を判定するとともに、判定された負荷状態に基づいて前記ライトコマンドに対する完了報告を前記コンピュータに出力するタイミングを制御するコントローラと、
を備えたことを特徴とするストレージ装置。
(付記2)
前記コントローラは、前記ライトコマンドにともなうデータの前記キャシュメモリへの格納が完了した時に前記コンピュータへの前記ライトコマンドに対する完了報告を出力する第1モードと、
前記ライトコマンドに対する完了報告の出力を前記第1モードにおける出力タイミングよりも遅延させる負荷対策処理を実行するとともに、前記ライトコマンドの受信から前記負荷対策処理によって遅延された完了報告の出力までの間に前記ジョブ管理テーブルに登録されたライトジョブに基づいて前記ストレージドライブに前記記憶媒体へのデータ記録を実行させる制御を行う第2モードのいずれか一方を前記負荷状態に基づいて選択することを特徴とする付記1に記載のストレージ装置。
(付記3)
前記コントローラは、前記負荷状態に基づいて、複数の負荷対策処理の中から1つを選択して、選択した負荷対策処理を実行することを特徴とする付記1または付記2に記載のストレージ装置。
(付記4)
前記コントローラは、前記負荷状態の継続状況に応じて、負荷対策処理を選択することを特徴とする付記3に記載のストレージ装置。
(付記5)
前記コントローラは、第1コントローラと、前記第1コントローラに冗長化された第2コントローラと、を備え、
前記第1コントローラは、前記第1コントローラの負荷状態に基づいて前記第2モードを選択し、前記ライトコマンドを受信した際に前記負荷対策処理を実行するとともに、前記第1コントローラによって制御されるストレージドライブに前記ジョブ管理テーブルに登録されたライトジョブに基づいて記憶媒体へのデータ記録を実行させる制御を行うことを特徴とする付記2または付記3に記載のストレージ装置。
(付記6)
前記負荷対策処理は、
前記第1コントローラへのライトコマンドに対する処理を前記第2コントローラに実行させる第1負荷対策処理を含むことを特徴とする付記5に記載のストレージ装置。
(付記7)
前記負荷対策処理は、
前記第1コントローラと前記第2コントローラとを接続するバスの通信帯域を変更する第2負荷対策処理を含むことを特徴とする付記5に記載のストレージ装置。
(付記8)
前記負荷対策処理は、
前記ライトコマンドに対するライト処理完了後の予め定められた時間経過した際に、前記第1コントローラが前記コンピュータに前記ライトコマンドに対する完了報告を出力する第3負荷対策処理を含むことを特徴とする付記5に記載のストレージ装置。
(付記9)
前記負荷対策処理は、
前記第1コントローラが前記ライトコマンドを受信した時に、前記ライトコマンドに対応するデータ記録を前記ストレージ装置に実行させるとともに、前記第2コントローラに前記データ記録に対応する同期処理を実行させて、前記ストレージ装置からのデータ記録完了応答及び前記第2コントローラからの同期処理完了応答を受信した後に、第1コントローラから前記コンピュータにライトコマンドに対する完了報告を出力する第4負荷対策処理を含むことを特徴とする付記5に記載のストレージ装置。
(付記10)
前記負荷対策処理は、
前記ストレージ装置と前記コンピュータとを接続するインターフェースのデータ転送速度を変更する第5負荷対策処理を含むことを特徴とする付記5に記載のストレージ装置。
(付記11)
前記負荷対策処理は、
コンピュータがファイバチャネルインターフェースに接続されている場合、前記第1コントローラは、バッファツーバッファクレジットを変更する第6負荷対策処理を含む付記5に記載のストレージ装置。
(付記12)
データ処理を実行するコンピュータから送信されたライトコマンドにともなうデータを一時的にキャッシュメモリに格納するとともに、前記ライトコマンドに対応するライトジョブをジョブ管理テーブルに登録しておき、前記キャシュメモリに格納されたデータを登録されたライトジョブに基づいてストレージドライブ内の記憶媒体に記録するストレージ装置の負荷状態低減方法において、
前記ジョブ管理テーブルから取得したライトジョブの累積数に基づいて前記ストレージ装置の負荷状態を判定し、
判定された負荷状態に基づいて、前記ライトコマンドに対する完了報告を前記コンピュータに出力するタイミングを制御し、
前記ライトコマンドの受信からタイミング制御された完了報告の出力までの間に、前記ジョブ管理テーブルに登録されたライトジョブに基づいて前記ストレージドライブに前記記憶媒体へのデータ記録を実行させる
ことを特徴とするストレージ装置の負荷状態低減方法。
【符号の説明】
【0197】
1 コンピュータシステム
2 サーバ装置
3 ストレージ装置
4a、4b ファイバチャネルケーブル
5a、5b ファイバチャネルスイッチ
6a、6b ファイバチャネルポート(FCポート)
7 コントローラ
7a 第1コントローラモジュール
7b 第2コントローラモジュール
8 内部バス
9 ストレージドライブ
10a、10b ストレージドライブ群
11a、11b ファイバチャネルポート(FCポート)
15a 第1コントローラ
15b 第2コントローラ
16a 第1メモリ
16b 第2メモリ
17a、17b ジョブ管理テーブル
18a 第1キャッシュメモリ
18b 第2キャシュメモリ
19a、19b デバイスアダプタ
21a、21b コマンド処理部
22a、22b ジョブ管理部
23a、23b ディスク制御部
24a、24b グループ情報
25a、25b バスクロック制御部
26a、26b 待ち時間付加部
27a、27b ライトスルーモード設定部
28a、28b 転送速度設定部
29a、29b FC設定部
30a、30b 負荷対策処理部
31 負荷状態判定部
32 第1モード/第2モード選択部
33 負荷対策処理選択部
34 負荷対策処理実行指示部
35 モード管理テーブル


【特許請求の範囲】
【請求項1】
コンピュータから送信されたライトコマンドにともなうデータを記憶するストレージ装置において、
前記ライトコマンドを受信した際に前記ライトコマンドに対応するライトジョブを登録するジョブ管理テーブルを記憶するメモリと、
前記ライトコマンドにともなうデータを一時的に格納するキャッシュメモリと、
前記ジョブ管理テーブルに登録された前記ライトジョブに基づいて前記キャッシュメモリに格納された前記データを記憶媒体に記録するストレージドライブと、
前記ジョブ管理テーブルから取得したライトジョブの累積数に基づいて前記ストレージ装置の負荷状態を判定するとともに、判定された負荷状態に基づいて前記ライトコマンドに対する完了報告を前記コンピュータに出力するタイミングを制御するコントローラと、
を備えたことを特徴とするストレージ装置。
【請求項2】
前記コントローラは、前記ライトコマンドにともなうデータの前記キャシュメモリへの格納が完了した時に前記コンピュータへの前記ライトコマンドに対する完了報告を出力する第1モードと、
前記ライトコマンドに対する完了報告の出力を前記第1モードにおける出力タイミングよりも遅延させる負荷対策処理を実行するとともに、前記ライトコマンドの受信から前記負荷対策処理によって遅延された完了報告の出力までの間に前記ジョブ管理テーブルに登録されたライトジョブに基づいて前記ストレージドライブに前記記憶媒体へのデータ記録を実行させる制御を行う第2モードのいずれか一方を前記負荷状態に基づいて選択することを特徴とする請求項1に記載のストレージ装置。
【請求項3】
前記コントローラは、前記負荷状態に基づいて、複数の負荷対策処理の中から1つを選択して、選択した負荷対策処理を実行することを特徴とする請求項1または請求項2に記載のストレージ装置。
【請求項4】
前記コントローラは、第1コントローラと、前記第1コントローラに冗長化された第2コントローラと、を備え、
前記第1コントローラは、前記第1コントローラの負荷状態に基づいて前記第2モードを選択し、前記ライトコマンドを受信した際に前記負荷対策処理を実行するとともに、前記第1コントローラによって制御されるストレージドライブに前記ジョブ管理テーブルに登録されたライトジョブに基づいて記憶媒体へのデータ記録を実行させる制御を行うことを特徴とする請求項2または請求項3に記載のストレージ装置。
【請求項5】
前記負荷対策処理は、
前記第1コントローラへのライトコマンドに対する処理を前記第2コントローラに実行させる負荷対策処理を含むことを特徴とする請求項4に記載のストレージ装置。
【請求項6】
前記負荷対策処理は、
前記第1コントローラと前記第2コントローラとを接続するバスの通信帯域を変更する負荷対策処理を含むことを特徴とする請求項4に記載のストレージ装置。
【請求項7】
前記負荷対策処理は、
前記ストレージ装置と前記コンピュータとを接続するインターフェースのデータ転送速度を変更する負荷対策処理を含むことを特徴とする請求項4に記載のストレージ装置。
【請求項8】
データ処理を実行するコンピュータから送信されたライトコマンドにともなうデータを一時的にキャッシュメモリに格納するとともに、前記ライトコマンドに対応するライトジョブをジョブ管理テーブルに登録しておき、前記キャシュメモリに格納されたデータを登録されたライトジョブに基づいてストレージドライブ内の記憶媒体に記録するストレージ装置の負荷状態低減方法において、
前記ジョブ管理テーブルから取得したライトジョブの累積数に基づいて前記ストレージ装置の負荷状態を判定し、
判定された負荷状態に基づいて、前記ライトコマンドに対する完了報告を前記コンピュータに出力するタイミングを制御し、
前記ライトコマンドの受信からタイミング制御された完了報告の出力までの間に、前記ジョブ管理テーブルに登録されたライトジョブに基づいて前記ストレージドライブに前記記憶媒体へのデータ記録を実行させる
ことを特徴とするストレージ装置の負荷状態低減方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate