(58)【調査した分野】(Int.Cl.,DB名)
第1記憶装置と、第2記憶装置とに第1の間隔でI/O(Input/Output)要求を送信し、前記第1記憶装置の応答時間である第1応答時間と、前記第2記憶装置の応答時間である第2応答時間とを計る処理手段と、
計測した前記第1応答時間と前記第2応答時間との関係性を示す第1の値が閾値以上か否か判定する判定処理を行う判定手段と、
前記閾値を変更する変更処理を行う変更手段と、を備え、
前記判定手段は、前記第1の値が閾値未満の場合、過去の前記判定処理の結果が所定の条件を満たすか否か判定し、
前記処理手段は、前記第1の値が閾値以上の場合、前記第1の間隔よりも狭い第2の間隔で前記第1応答時間および第2応答時間を複数計り、
前記判定手段は、前記第2の間隔で計った前記第1応答時間および第2応答時間に基づいて前記第1記憶装置に異常があるか否か判定し、
前記変更手段は、過去の前記判定処理の結果が所定の条件を満たす場合、または前記第1記憶装置に異常がない場合、前記閾値を変更し、
前記処理手段は、前記第2の間隔において前記第2応答時間を複数計り、
前記判定手段は、前記第2の間隔で計った複数の前記第1応答時間の夫々が、該第1応答時間と同じタイミングで計った第2応答時間より長いか否か判定し、前記第2の間隔で計った複数の前記第1応答時間の夫々が、該第1応答時間と同じタイミングで計った前記第2応答時間より長い場合、前記第2の間隔で計った前記第1応答時間の平均である第1平均応答時間と前記第2の間隔で計った前記第2応答時間の平均である第2平均応答時間との関係性を示す第2の値が、前記閾値以上か否か判定し、前記第2の値が前記閾値以上の場合、前記第1記憶装置に異常があると判定する
監視装置。
前記変更手段は、過去の前記判定処理の結果が所定の条件を満たす場合、前記第1記憶装置に異常があると判定されやすくなるように前記閾値を変更し、前記第1記憶装置に異常がない場合、前記第1記憶装置に異常がないと判定されやすくなるように前記閾値を変更する請求項1に記載の監視装置。
前記所定の条件は、前記変更手段が前記変更処理を行ってから所定の期間内の判定処理の結果に、前記第1の値が前記閾値以上であるという判定がないことである請求項1または2に記載の監視装置。
第1記憶装置と、第2記憶装置とに第1の間隔でI/O(Input/Output)要求を送信し、前記第1記憶装置の応答時間である第1応答時間と、前記第2記憶装置の応答時間である第2応答時間とを計り、
計測した前記第1応答時間と前記第2応答時間との関係性を示す第1の値が閾値以上か否か判定する判定処理を行い、
前記第1の値が閾値未満の場合、過去の前記判定処理の結果が所定の条件を満たすか否か判定し、
前記第1の値が閾値以上の場合、前記第1の間隔よりも狭い第2の間隔で前記第1応答時間および第2応答時間を複数計り、
前記第2の間隔で計った前記第1応答時間および第2応答時間に基づいて前記第1記憶装置に異常があるか否か判定し、
過去の前記判定処理の結果が所定の条件を満たす場合、または前記第1記憶装置に異常がない場合、前記閾値を変更する変更処理を行い、
前記第2の間隔において前記第2応答時間を複数計り、
前記第2の間隔で計った複数の前記第1応答時間の夫々が、該第1応答時間と同じタイミングで計った第2応答時間より長いか否か判定し、前記第2の間隔で計った複数の前記第1応答時間の夫々が、該第1応答時間と同じタイミングで計った前記第2応答時間より長い場合、前記第2の間隔で計った前記第1応答時間の平均である第1平均応答時間と前記第2の間隔で計った前記第2応答時間の平均である第2平均応答時間との関係性を示す第2の値が、前記閾値以上か否か判定し、前記第2の値が前記閾値以上の場合、前記第1記憶装置に異常があると判定する
監視方法。
第1記憶装置と、第2記憶装置とに第1の間隔でI/O(Input/Output)要求を送信し、前記第1記憶装置の応答時間である第1応答時間と、前記第2記憶装置の応答時間である第2応答時間とを計る計時処理と、
計測した前記第1応答時間と前記第2応答時間との関係性を示す第1の値が閾値以上か否か判定する判定処理と、
前記閾値を変更する変更処理と、をコンピュータに実行させ、
前記判定処理は、前記第1の値が閾値未満の場合、過去の前記判定処理の結果が所定の条件を満たすか否か判定し、
前記計時処理は、前記第1の値が閾値以上の場合、前記第1の間隔よりも狭い第2の間隔で前記第1応答時間および第2応答時間を複数計り、
前記判定処理は、前記第2の間隔で計った前記第1応答時間および第2応答時間に基づいて前記第1記憶装置に異常があるか否か判定し、
前記変更処理は、過去の前記判定処理の結果が所定の条件を満たす場合、または前記第1記憶装置に異常がない場合、前記閾値を変更し、
前記計時処理は、前記第2の間隔において前記第2応答時間を複数計り、
前記判定処理は、前記第2の間隔で計った複数の前記第1応答時間の夫々が、該第1応答時間と同じタイミングで計った第2応答時間より長いか否か判定し、前記第2の間隔で計った複数の前記第1応答時間の夫々が、該第1応答時間と同じタイミングで計った前記第2応答時間より長い場合、前記第2の間隔で計った前記第1応答時間の平均である第1平均応答時間と前記第2の間隔で計った前記第2応答時間の平均である第2平均応答時間との関係性を示す第2の値が、前記閾値以上か否か判定し、前記第2の値が前記閾値以上の場合、前記第1記憶装置に異常があると判定する
プログラム。
【発明を実施するための形態】
【0014】
以下、本発明の実施形態について図面を参照して詳細に説明する。
【0015】
<第1実施形態>
図1は、本発明の第1実施形態に係る監視システム1の構成の一例を示すブロック図である。
図1において、監視システム1は、監視装置10と、第1記憶装置20と、第2記憶装置30とを備える。
【0016】
監視装置10は、処理部11と、記憶部12と、判定部13と、カウンタ部14と、変更部15とを備える。
【0017】
処理部11は、所定の間隔(以下、第1間隔)ごとに第1記憶装置20と、第2記憶装置30とにI/O要求を送信する。I/O要求は、処理部11がI/O要求を送信してからI/O要求に対する応答を受信するまでの時間(以下、応答時間)を計るためのI/O要求である。そして、処理部11は、応答時間を記憶装置ごとに計る。そして、処理部11は、計った応答時間を記憶部12に記憶させる。
【0018】
図2は、第1間隔における応答時間の一例を示すテーブルである。
図2に示すように、処理部11は、応答時間を計った時間(以下、計測日時)と、各記憶装置の応答時間とをそれぞれ関連付けて記憶部12に記憶させる。処理部11は、第1間隔ごとに応答時間を計るため、応答時間を計る度に
図2に示すテーブルを更新してもよいし、新たに行を追加してもよい。なお、
図2に示す応答時間の数値は例示であり、この数値には限定されない。
【0019】
また、処理部11は、判定部13からの通知に基づき、第1間隔よりも狭い所定の間隔(以下、第2間隔)ごとにI/O要求を第1記憶装置20と、第2記憶装置30とに所定の回数分送信し、応答時間を記憶装置ごとに計る。そして、処理部11は、計った応答時間を記憶部12に記憶させる。処理部11は、より早期に記憶装置の異常を検出するために、第1間隔よりも狭い第2間隔でI/O要求を送信する。
【0020】
そして、処理部11は、第1記憶装置20と、第2記憶装置30とがミラーリング構成になっているか否か、つまり第1記憶装置20と、第2記憶装置30とがRAID 1(Redundant Arrays of Inexpensive Disks 1)の構成になっているか否かを判定する。
【0021】
第1記憶装置20と、第2記憶装置30とがミラーリング構成になっている場合、処理部11は、第1間隔における応答時間の計測が終了したことを示す通知を、判定部13に送信する。一方で、第1記憶装置20と、第2記憶装置30とがミラーリング構成になっていない場合、処理部11は、図示しない表示部にエラー表示をさせてもよい。
【0022】
図3は、第2間隔における応答時間の一例を示すテーブルである。
図3に示すように処理部11は、応答時間を計った回数と、各記憶装置の応答時間とをそれぞれ関連付けて記憶部12に記憶させる。
【0023】
例えば、処理部11は、第2間隔において応答時間を4回計るとする。この場合、処理部11は、
図3に示すように、応答時間を計った回数と、各記憶装置との各列にそれぞれ値を記憶させる。例えば、1回目の計測において、第1記憶装置20の応答時間は「21ms(ms:ミリ秒)」であり、第2記憶装置30の応答時間は「7ms」である場合、処理部11は、
図3に示すテーブルの2行目の1列目に「1」と、2行目の2列目に「21ms」と、2行目の3列目に「7ms」とを記憶させる。
【0024】
また、処理部11は4回の計測が終了すると、各記憶装置の応答時間の平均(以下、平均応答時間)を算出し、
図3に示すように平均応答時間を記憶させる。そして、処理部11は、各記憶装置の平均応答時間を記憶部12に記憶させたことを示す通知を判定部13に送信する。
【0025】
また処理部11は、第2間隔において所定の回数分応答時間を計るため、応答時間を計る度に
図3に示すテーブルに新たに列を追加し、それぞれの項目に値を格納させる。また、処理部11は、判定部13から送信された判定結果に基づいて、図示しない表示部に、傾向記憶装置(後述)に異常がある旨のエラーを表示させる。
【0026】
判定部13は、処理部11から、第1間隔における応答時間の計測が終了したことを示す通知を受信し、この通知を契機に、第1間隔における第1記憶装置20の応答時間(第1応答時間とも呼ぶ)と、第2記憶装置30の応答時間(第2応答時間とも呼ぶ)とを比較する。そして、判定部13は、短い方の応答時間に対する長い方の応答時間の倍率(以下、第1倍率)を求め、第1倍率が閾値以上か否か判定する。第1倍率が閾値以上の場合、判定部13は、応答時間が長い方の記憶装置を、異常傾向がある記憶装置(以下、傾向記憶装置)として特定する。そして、判定部13は、傾向記憶装置を判定結果として処理部11に通知する。なお、閾値は任意に設定することが可能である。また、閾値は、予め記憶部12に記憶されても良い。また、判定部13は、第1間隔における第1記憶装置20の応答時間と、第2記憶装置30の応答時間との差を求め、求めた差が閾値以上か否か判定してもよい。また、この場合、閾値には具体的な数値、例えば「30ms」等の数値が設定されていてもよい。よって判定部13は、第1記憶装置20の応答時間と、第2記憶装置30の応答時間との関係性を示す値(以下、第1の値)が、閾値以上か否か判定する。
【0027】
具体的に
図2に示すテーブルを確認すると、第1記憶装置20の応答時間は「25ms」であり、第2記憶装置30の応答時間は「8ms」である。例えば閾値が「長い方の応答時間が、短い方の応答時間の3倍」であるとすると、第2記憶装置30の応答時間は、第1記憶装置20の応答時間の3倍以上となる。よって判定部13は、第1記憶装置20を傾向記憶装置として特定する。
【0028】
そして、判定部13は、処理部11から各記憶装置の平均応答時間を記憶部12に記憶させたことを示す通知を受信し、この通知を契機に、第2間隔において計った第1記憶装置20の応答時間と、第2記憶装置30の応答時間とを比較する。具体的に判定部13は、所定の回数のすべての計測において傾向記憶装置の応答時間のほうが長いか否か判定する。また、判定部13は、傾向記憶装置の平均応答時間の、もう一方の記憶装置の平均応答時間に対する倍率(以下、第2倍率)を求め、第2倍率が閾値以上か否か判定する。
【0029】
図3に示すテーブルを確認すると、1回目の第1記憶装置20の応答時間は「21ms」であり、第2記憶装置30の応答時間は「7ms」である。傾向記憶装置が第1記憶装置20であるとすると、判定部13は、傾向記憶装置の応答時間の方が長いと判定し、次に2回目の計測における傾向記憶装置の応答時間のほうが長いか否か判定する。
【0030】
図3を参照すると、2〜4回目の計測において、すべて傾向記憶装置である第1記憶装置20の応答時間のほうが、第2記憶装置30の応答時間に比べ長い。そして、判定部13は、傾向記憶装置の平均応答時間の、もう一方の記憶装置の平均応答時間に対する第2倍率を求め、第2倍率が閾値以上か否か判定する。
【0031】
また、判定部13は、傾向記憶装置の応答時間の中央値の、もう一方の記憶装置の応答時間の中央値に対する第2倍率を求め、第2倍率が閾値以上か否か判定してもよい。また、判定部13は、傾向記憶装置の応答時間の最頻値のもう一方の記憶装置の応答時間の最頻値に対する第2倍率を求め、求めた第2倍率が閾値以上か否か判定してもよい。つまり、判定部13は、第1記憶装置20の平均応答時間と、第2記憶装置30の平均応答時間との関係を示す値(以下、第2の値)が、閾値以上か否か判定する。
【0032】
図3を参照すると、第1記憶装置20の平均応答時間は「22.5ms」であり、第2記憶装置30の平均応答時間は「7ms」である。例えば閾値が「長い方の応答時間が、短い方の応答時間の3倍」であるとすると、求めた第2倍率は3倍以上である。よって、判定部13は、傾向記憶装置である第1記憶装置20に異常があると判定する。そして、判定部13は、異常があるという判定結果を処理部11に送信する。また、判定部13は、傾向記憶装置に異常があると判定した後、その傾向記憶装置にI/O要求を送信しないようにしてもよい。
【0033】
また判定部13は、傾向記憶装置の応答時間のほうが短い計測があった場合と、第2倍率が閾値未満である場合とにおいて、傾向記憶装置に異常がないと判定し、傾向記憶装置に異常がない旨を処理部11と、カウンタ部14とに通知する。
【0034】
また、判定部13は、所定の期間内に、第1倍率が閾値以上であると判定したことがあるか否か判定する。
【0035】
例えば、判定部13は記憶部12に第1間隔における第1記憶装置20の応答時間と、第2記憶装置30と応答時間とのうち、長い方の応答時間の、短い方の応答時間に対する第1倍率を求め、第1倍率が閾値以上であると判定したログを記憶させる。そして、判定部13は、このログを参照し、所定の期間内に第1倍率が閾値以上であると判定したことがあるか否か判定してもよい。そして、判定部13は、所定の期間内に第1倍率が閾値以上であると判定したことがない場合、所定の期間内に第1倍率が閾値以上であると判定したことがない旨を、変更部15に通知する。
【0036】
カウンタ部14は、判定部13からの通知に基づいて、カウンタをインクリメントする。
【0037】
判定部13からの所定の期間内に第1倍率が閾値以上であると判定したことがない旨の通知を契機に、変更部15は、閾値を予め定められた値(以下、変更値)分小さくした場合、その小さくした閾値が、閾値の変更可能な範囲(以下、閾値範囲)の下限以上か否か判定する。小さくした閾値が、閾値範囲の下限以上の場合、変更部15は、新たな閾値として小さくした閾値に更新する。つまり、判定部13は、現在の閾値が大きすぎるため閾値を小さくする方向に調整する。その後、変更部15は、カウンタ部14のカウンタを初期化させる。
【0038】
なお、変更部15は、処理部11及び判定部13に新たな閾値を通知してもよい。所定の期間内とは、例えば、変更部15が、過去に閾値を変更した時から今までの間でもよい。変更値は、例えば現在の閾値から何パーセント大きくまたは小さくする値が設定されていてもよい。
【0039】
また、変更部はカウンタ部14を監視する。そしてカウンタ部のカウンタが所定の値になったことを契機に、変更部15は、閾値を変更値分大きくした場合、その大きくした閾値が、閾値範囲の上限以下か否か判定する。大きくした閾値が、閾値範囲の上限以下の場合、変更部15は、新たな閾値として大きくした閾値に更新する。つまり、判定部13は現在の閾値が小さすぎるため閾値を大きくする方法に調整する。その後、変更部15は、カウンタ部14のカウンタを初期化させる。
【0040】
第1記憶装置20と、第2記憶装置30は、監視装置10からのI/O要求に基づき、データを記憶する。
【0041】
図4は、第1実施形態に係る監視システム1の動作の一例を示すフローチャートである。監視システム1は
図4に示す動作を定期的に(つまり、第1間隔ごとに)行う。つまり、監視システム1は、
図4に示す動作を実行後、該動作が終了する前に、第1間隔分の時間が経過すると、
図4に示す動作を並行して実行してもよい。
【0042】
まず、処理部11は、第1間隔ごとに第1記憶装置20と第2記憶装置30とにI/O要求を送信する(ステップS1)。そして、処理部11は、記憶装置ごとに応答時間を計り(ステップS2)、記憶部12に記憶させる。処理部11は、第1記憶装置20と、第2記憶装置30とがミラーリング構成になっているか否か判定する(ステップS3)。なお、ステップS3は、ステップS1の前に実行されてもよい。この場合、ステップS3にてYESの場合、処理はステップS1に進む。
【0043】
第1記憶装置20と、第2記憶装置30とがミラーリング構成になっていない場合(ステップS3にてNO)、処理は後述するステップS7に進む。
【0044】
第1記憶装置20と、第2記憶装置30とがミラーリング構成になっている場合(ステップS3にてYES)、処理部11は、第1間隔における応答時間の計測が終了したことを、判定部13に通知する。そして、判定部13は処理部11からの通知に基づいて、第1記憶装置20の応答時間と、第2記憶装置30の応答時間とのうち、短い方の応答時間に対する長い方の応答時間の第1倍率を求め、第1倍率が閾値以上か否かを判定する(ステップS4)。
【0045】
第1倍率が閾値以上である場合(ステップS4にてYES)、判定部13は、応答時間が長い方の記憶装置を傾向記憶装置として特定し、そして、傾向記憶装置を判定結果として処理部11に通知する。そして、照合処理(ステップS5)が行われる。照合処理の詳細は後述する。
【0046】
第1倍率が閾値未満の場合(ステップS4にてNO)、判定部13は、所定の期間内に、第1倍率が閾値以上だと判定したことがあるか否か判定する(ステップS8)。所定の期間内に、第1倍率が閾値以上だと判定したことがない場合(ステップS8にてNO)、処理は第1変更処理(ステップS9)に進む。第1変更処理の詳細は後述する。
【0047】
所定の期間内に、第1倍率が閾値以上だと判定したことがある場合(ステップS8にてYES)、処理は終了する。
【0048】
ステップS5の終了後、処理部11は、判定部13から送信された判定結果が異常ありを示すか否か判定する(ステップS6)。
【0049】
判定結果が異常ありの場合(ステップS6にてYES)、処理部11は、エラーを図示しない表示部に表示させる(ステップS7)。
【0050】
判定結果が異常なしの場合(ステップS6にてNO)、処理部11は、カウンタ部14がカウントした数が所定の値以上か否か判定する(ステップS10)。
【0051】
カウントした数が所定の値以上である場合(ステップS10にてYES)、処理は第2変更処理(ステップS11)に進む。第2変更処理の詳細は後述する。
【0052】
カウントした数が所定の値以上でない場合(ステップS10にてNO)、処理は終了する。
【0053】
監視装置10は、第1記憶装置及び第2記憶装置を監視し、第1の値と閾値とを比較する判定処理を行う。その判定処理の結果に基づき、監視装置10は異常の傾向がある記憶装置(傾向記憶装置)を特定する。そして、傾向記憶装置の応答時間が、傾向記憶装置ではない記憶装置の応答時間より長い場合に、第2の値と閾値を比較し、異常がある記憶装置を特定する。なお、監視装置10が監視する記憶装置は2台以上あればよい。
【0054】
つまり、第1間隔における第1の値と閾値との比較は、第1記憶装置または第2記憶装置に異常の傾向があるか否かを判定するために行う。また、第2間隔における第2の値と閾値との比較は、異常の傾向がある記憶装置に異常があると確定するために行う。
【0055】
また、監視装置10は閾値を判定処理の結果に応じて自動で変更する。よって、監視装置10は、精度よくハードディスクの異常を検知することができる。
【0056】
図5は、本発明の第1実施形態に係る監視装置10が行う照合処理の一例を示すフローチャートである。この照合処理は、傾向記憶装置の異常の傾向は、システム負荷等による偶発的なものなのか、または性能の低下による異常なのかを判定するために行う。
【0057】
まず、処理部11は、第2間隔ごとに、第1記憶装置20と第2記憶装置30とにI/O要求を送信する(ステップS21)。そして、処理部11は、記憶装置ごとに応答時間を計り(ステップS22)、記憶部12に記憶させる。処理部11は、所定の回数分ステップS21の処理と、ステップS22の処理とを繰り返し実行する(ステップS23)。
【0058】
所定の回数分ステップS21の処理と、ステップS22の処理とが実行された場合(ステップS23にてYES)、処理部11は、各記憶装置の平均応答時間を算出し(ステップS24)、算出した平均応答時間を記憶部12に記憶させる。そして、処理部11は、各記憶装置の平均応答時間を記憶部12に記憶させたことを判定部13に通知する。
【0059】
判定部13は、該通知に基づいて、所定の回数のすべての計測において傾向記憶装置の応答時間が、もう一方の記憶装置の応答時間よりも長いか否か判定する(ステップS25)。
【0060】
傾向記憶装置の応答時間が、もう一方の記憶装置の応答時間よりも短い計測があった場合(ステップS25にてNO)、判定部13は、傾向記憶装置の応答時間がもう一方の記憶装置の応答時間よりも短い旨をカウンタ部14に通知する。そして、処理は後述のステップS28に進む。
【0061】
所定の回数のすべての計測において傾向記憶装置の応答時間が、もう一方の記憶装置の応答時間よりも長い場合(ステップS25にてYES)、判定部13は、傾向記憶装置の平均応答時間のもう一方の記憶装置の平均応答時間に対する第2倍率を求め、第2倍率が閾値以上であるか否か判定する(ステップS26)。
【0062】
第2倍率が閾値以上である場合(ステップS26にてYES)、判定部13は、傾向記憶装置は異常ありと判定し(ステップS27)、傾向記憶装置は異常ありという判定結果を、処理部11に送信する。そして、処理は
図5に示すステップS6に進む。
【0063】
第2倍率が閾値未満の場合(ステップS26にてNO)、判定部13は、第2倍率が閾値未満である旨をカウンタ部14に通知する。そしてカウンタ部14は、カウンタをインクリメントする(ステップS28)。そして、判定部13は、傾向記憶装置は異常なしと判定し(ステップS29)、傾向記憶装置は異常なしという判定結果を、処理部11とに送信する。そして、処理は
図5に示すステップS6に進む。なお、ステップS28とステップS29とは順不同である。
【0064】
図6は、第1変更処理の一例を示すフローチャートである。
図4のステップS4において、一定の期間閾値以上の判定がされていない場合、どちらの記憶装置も正常であるか、閾値の設定値が大きすぎるため、監視装置10が性能低下を見逃している可能性もある。そのため、この第1変更処理は、閾値を小さくする方向で調整するために行われる。
【0065】
まず変更部15は、判定部13からの通知を契機に、現在の閾値を変更値分小さくした場合、その小さくした閾値が、閾値範囲の下限以上か否か判定する(ステップS31)。小さくした閾値が、閾値範囲の下限以上の場合(ステップS31にてYES)、変更部15は、現在の閾値を新たな閾値として小さくした閾値に更新する(ステップS32)。そして、変更部15は、カウンタ部14のカウンタを初期化させる(ステップS33)。一方で小さくした閾値が、閾値範囲の下限未満の場合(ステップS31にてNO)、処理はステップS33に進む。
【0066】
図7は、第2変更処理の一例を示すフローチャートである。カウンタ部14のカウント数が所定の値以上になる場合、例えば、システムの負荷等によって、傾向記憶装置に一時的に閾値以上の応答時間の遅延が発生しているが問題はない場合がある。したがって、閾値が小さすぎるため、監視装置10は、システムの負荷等による遅延を異常と判定してしまっている可能性がある。そのため、第2変更処理は、閾値を大きくする方向に調整するために行われる。
【0067】
変更部15は、カウンタ部14を監視し、カウンタ部14のカウンタが所定の値以上になったことを契機に、閾値を変更値分大きくした場合、その大きくした閾値が、閾値範囲の上限以下か否か判定する(ステップS41)。大きくした閾値が、閾値範囲の上限以下の場合、変更部15は、現在の閾値を新たな閾値として大きくした閾値に更新する(ステップS42)。そして、変更部15は、カウンタ部14のカウンタを初期化させる(ステップS43)。一方で大きくした閾値が、閾値範囲の上限より大きい場合(ステップS41にてNO)、処理はステップS43に進む。
【0068】
監視装置10は、第1間隔より狭い第2間隔において傾向記憶装置と、もう一方の記憶装置にI/O要求を複数送信し、それぞれの応答時間を計測する。そして、すべての計測において傾向記憶装置の応答時間が、もう一方の記憶装置の応答時間よりも長い場合、第2の値が閾値以上であるか否か判定する。このように、監視装置が第1間隔より狭い第2間隔において応答時間を計測し、判定を複数行うことで、検知した異常の精度が上がる。よって、監視装置10は、精度よくハードディスクの異常を検知することができる。
【0069】
また、監視装置10は、閾値を判定部13の判定処理の判定結果に応じて適切な値に自動で調整することができる。よって監視装置10は、閾値が小さすぎることによる記憶装置の異常誤検出または閾値が大きすぎることによる記憶装置の異常の未検出を防ぐことができる。このように、監視装置10によれば、精度よく異常を検出することができる。
【0070】
また、ユーザが閾値の最初の値と、閾値範囲を決めるだけで、監視装置10は、判定部13の判定処理の判定結果に応じて適切な値に自動で調整する。そのため、ユーザが適宜閾値を設定する必要がなくなる。
【0071】
(変形例)
また、本実施形態の変形例として、監視装置10は、3台以上の記憶装置を監視してもよい。例えば、監視装置10は、複数の記憶装置の応答時間を計る。そして、判定部13は、その中で応答時間が最も長い記憶装置と、応答時間が最も短い記憶装置とについて、最も長い応答時間の、最も短い応答時間に対する第1倍率を求め、第1倍率が閾値以上か否か判定してもよい。
【0072】
監視装置10は、3台以上の記憶装置においてその中で応答時間が最も長い記憶装置と、応答時間が最も短い記憶装置とについて判定することで、精度よく異常を検知することができる。
【0073】
<第2実施形態>
図8は、第2実施形態に係る監視システム2の構成の一例を示すブロック図である。監視システム2は、監視装置40と、第1記憶装置20と、第2記憶装置30とを備える。なお、本実施形態の説明において参照する各図面において、他の実施形態と同様な構成は、同一の符号を付し、本実施形態において重複する説明は省略する(他実施形態においても同様)。
【0074】
監視装置40は、処理部41と、記憶部12と、判定部13と、カウンタ部14と、変更部15と、回数決定部16とを備える。
【0075】
回数決定部16は、判定部13を監視し、判定部13が傾向記憶装置を処理部41に通知したことを検知し、閾値に応じて処理部41が第2間隔においてI/O要求を第1記憶装置20と、第2記憶装置30とにI/O要求を送信する回数(測定回数)を決定する。そして、回数決定部16は、測定回数を処理部41に送信する。回数決定部16は、例えば、閾値が小さくなればなるほどわずかな性能差で異常判定を行うことになるので、測定回数が少ないと負荷の影響等でハードディスクに問題がないのに異常判定されてしまう可能性が高くなる。よって、処理部41は、閾値が小さくなるほど測定回数を増やして慎重にチェックしたほうが望ましい。そのため、回数決定部16は、測定回数の値と、閾値の値とが反比例するように測定回数の値を算出し、算出した測定回数に決定してもよい。そして、回数決定部16は、測定回数を記憶部12に記憶させてもよい。
【0076】
図9は、閾値と測定回数とが関連付けられた測定回数テーブルの一例を示す図である。
図9に示す測定回数テーブルが予め記憶部12に記憶されていてもよい。
図9に示すテーブルを参照すると、閾値が「3倍」のとき、測定回数は「4回」である。回数決定部16は、現時点の閾値を用いて、例えば
図9に示すテーブルを参照し、測定回数を決定してもよい。なお、
図4に示す閾値及び測定回数の数値は例示であり、この数値には限定されない。
【0077】
処理部41は、回数決定部16から、測定回数を受信し、受信した測定回数に基づいて、第2間隔ごとに、第1記憶装置20と第2記憶装置30とにI/O要求を送信する。処理部41は記憶部12から測定回数を取得し、取得した測定回数に基づいて、第2間隔ごとに、第1記憶装置20と第2記憶装置30とにI/O要求を送信してもよい。そして、処理部41は、記憶装置ごとに応答時間を計り、記憶部12に記憶させる。また、処理部41は、処理部11の機能を含む。以下、監視システム2の動作を説明する。
【0078】
図10は、本発明の第2実施形態に係る監視システム2の動作の一例を示すフローチャートである。監視システム2は
図10に示す動作を定期的に行う。
【0079】
まず、処理部41は、第1間隔ごとに第1記憶装置20と第2記憶装置30とにI/O要求を送信する(ステップS61)。そして、処理部41は、記憶装置ごとに応答時間を計り(ステップS62)、記憶部12に記憶させる。処理部41は、第1記憶装置20と、第2記憶装置30とがミラーリング構成になっているか否か判定する(ステップS63)。
【0080】
第1記憶装置20と、第2記憶装置30とがミラーリング構成になっていない場合(ステップS63にてNO)、処理は後述するステップS67に進む。
【0081】
第1記憶装置20と、第2記憶装置30とがミラーリング構成になっている場合(ステップS63にてYES)、処理部41は、第1間隔における応答時間の計測が終了したことを、判定部13に通知する。そして判定部13は、処理部41からの通知に基づいて第1記憶装置20の応答時間と、第2記憶装置30の応答時間とにおいて、長い方の応答時間の、短い方の応答時間に対する第1倍率を求め、第1倍率が閾値以上か否かを判定する(ステップS64)。
【0082】
第1倍率が閾値以上である場合(ステップS64にてYES)、判定部13は、応答時間が長い方の記憶装置を傾向記憶装置として特定する。そして、判定部13は、傾向記憶装置を処理部41に通知する。そして、照合処理(ステップS65)が行われる。照合処理の詳細は後述する。
【0083】
第1倍率が閾値未満の場合(ステップS64にてNO)、判定部13は、所定の期間内に、第1倍率が閾値以上だと判定したことがあるか否か判定する(ステップS68)。所定の期間内に、第1倍率が閾値以上だと判定したことがない場合(ステップS68にてNO)、処理は第1変更処理(ステップS69)に進む。ステップS69の第1変更処理は、
図4に示すステップS9の第1変更処理と同じであるため、説明を省略する。
【0084】
所定の期間内に、第1倍率が閾値以上だと判定したことがある場合(ステップS68にてYES)、処理は終了する。
【0085】
ステップS65の終了後、処理部41は、判定部13から送信された判定結果が異常ありを示すか否か判定する(ステップS66)。
【0086】
判定結果が異常ありの場合(ステップS66にてYES)、処理部41は、エラーを図示しない表示部に表示させる(ステップS67)。
【0087】
判定結果が異常なしの場合(ステップS66にてNO)、処理部41は、カウンタ部14がカウントした数が所定の値以上か否か判定する(ステップS70)。
【0088】
カウントした数が所定の値以上である場合(ステップS70にてYES)、処理は第2変更処理(ステップS71)に進む。ステップS71の第2変更処理は、
図4に示すステップS11の第2変更処理と同じであるため、説明を省略する。
【0089】
カウントした数が所定の値以上でない場合(ステップS70にてNO)、処理は終了する。
【0090】
監視装置40は、第1の値と閾値とを比較する判定処理を行う。その判定処理の結果に基づき、監視装置40は異常の傾向がある記憶装置(傾向記憶装置)を特定する。そして、傾向記憶装置の応答時間が、傾向記憶装置ではない記憶装置の応答時間より長い場合に、第2の値と閾値を比較し、異常がある記憶装置特定する。また、監視装置40は閾値を判定処理の結果に応じて自動で変更する。よって、監視装置40は、精度よくハードディスクの異常を検知することができる。
【0091】
図11は、本発明の第2実施形態に係る監視装置40が行う照合処理の一例を示すフローチャートである。
【0092】
まず、回数決定部16は、判定部13を監視し、判定部13が傾向記憶装置を処理部41に通知したことを検知し、閾値の値に応じて測定回数を決定する(ステップS81)。そして、回数決定部16は決定した測定回数を処理部41に送信する。処理部41は、回数決定部16から測定回数を受信し、受信した測定回数分、第2間隔ごとに、第1記憶装置20と第2記憶装置30とにI/O要求を送信する(ステップS82)。そして、処理部41は、記憶装置ごとに応答時間を計り(ステップS83)、記憶部12に記憶させる。処理部41は、回数決定部16から受信した測定回数分、ステップS82の処理と、ステップS83の処理とを実行したか確認する(ステップS84)。実行していない場合(ステップS84にてNO)、処理部41は、上記回数分、ステップS82と、ステップS83とを繰り返し実行する(ステップS84)。
【0093】
測定回数分ステップS82の処理と、ステップS83の処理とが実行された場合(ステップS84にてYES)、処理部41は、各記憶装置の平均応答時間を算出し(ステップS85)、算出した平均応答時間を記憶部12に記憶させる。そして、処理部41は、各記憶装置の平均応答時間を記憶部12に記憶させたことを判定部13に通知する。
【0094】
判定部13は、該通知に基づいて、所定の回数のすべての計測において傾向記憶装置の応答時間が、もう一方の記憶装置の応答時間よりも長いか否か判定する(ステップS86)。
【0095】
傾向記憶装置の応答時間が、もう一方の記憶装置の応答時間よりも短い計測があった場合(ステップS86にてNO)、判定部13は、傾向記憶装置の応答時間がもう一方の記憶装置の応答時間よりも短い旨をカウンタ部14に通知する。そして、処理は後述のステップS89に進む。
【0096】
所定の回数のすべての計測において傾向記憶装置の応答時間が、もう一方の記憶装置の応答時間よりも長い場合(ステップS86にてYES)、判定部13は、傾向記憶装置の平均応答時間の、もう一方の記憶装置の平均応答時間に対する第2倍率を求め、第2倍率が閾値以上であるか否か判定する(ステップS87)。
【0097】
第2倍率が閾値以上である場合(ステップS87にてYES)、判定部13は、傾向記憶装置は異常ありと判定し(ステップS88)、特定した記憶装置は異常ありという判定結果を、処理部41に送信する。そして、処理は
図10に示すステップS66に進む。
【0098】
第2倍率が閾値未満の場合(ステップS87にてNO)、判定部13は、第2倍率が閾値未満である旨をカウンタ部14に通知する。そしてカウンタ部14は、カウンタをインクリメントする(ステップS89)。そして、判定部13は、傾向記憶装置は異常なしと判定し(ステップS90)、傾向記憶装置は異常なしという判定結果を、処理部41とに送信する。そして、処理は
図5に示すステップS66に進む。なお、ステップS89とステップS90とは順不同である。
【0099】
監視装置40は、照合処理において傾向記憶装置と、もう一方の記憶装置との応答時間を測定する回数(測定回数)を閾値に応じて決定することができる。これによって、監視装置40は測定回数が多すぎたり少なすぎたりすることなく、適切な回数に設定することができる。また、監視装置40は、閾値に反比例するように測定回数を決定するため、閾値が小さい場合のシステムに掛かる負荷等による異常の誤検出をすることなく、精度よく異常を検出することができる。
【0100】
<第3実施形態>
図12は、本発明の第3実施形態に係る監視装置50の構成の一例を示すブロック図である。
【0101】
監視装置50は、判定部51と、処理部52と、変更部53とを備える。
【0102】
処理部52は、第1記憶装置と、第2記憶装置とに第1の間隔でI/O(Input/Output)要求を送信し、第1記憶装置の応答時間である第1応答時間と、第2記憶装置の応答時間である第2応答時間とを計る。
【0103】
判定部51は、計測した第1応答時間と第2応答時間との関係性を示す第1の値が閾値以上か否か判定する判定処理を行う。
【0104】
変更部53は、閾値を変更する変更処理を行う。
【0105】
判定部51は、第1の値が閾値未満の場合、過去の判定処理の結果が所定の条件を満たすか否か判定する。
【0106】
処理部52は、第1の値が閾値以上の場合、第1の間隔よりも狭い第2の間隔で第1応答時間および第2応答時間を複数計る。
【0107】
判定手段51は、第2の間隔で計った第1応答時間および第2応答時間に基づいて第1記憶装置に異常があるか否か判定する。
【0108】
変更部53は、過去の判定処理の結果が所定の条件を満たす場合、または第1記憶装置に異常がない場合、閾値を変更する。
【0109】
以上の動作によって、監視装置50は、計測した応答時間と閾値とを比較する判定処理を行い、異常を検知する。さらにその閾値を判定処理の結果に応じて自動で変更するので、監視装置50は、精度よくハードディスクの異常を検知することができる。
【0110】
本発明の各実施形態において、各装置の各構成要素は、機能単位のブロックを示している。各装置の各構成要素の一部又は全部は、例えば
図13に示すような情報処理装置900とプログラムとの任意の組み合わせにより実現される。情報処理装置900は、一例として、以下のような構成を含む。
【0111】
・CPU(Central Processing Unit)901
・ROM(Read Only Memory)902
・RAM(Random Access Memory)903
・RAM903にロードされるプログラム904
・プログラム904を格納する記憶装置905
・記録媒体906の読み書きを行うドライブ装置907
・通信ネットワーク909と接続する通信インターフェース908
・データの入出力を行う入出力インターフェース910
・各構成要素を接続するバス911
各実施形態における各装置の各構成要素は、これらの機能を実現するプログラム904をCPU901が取得して実行することで実現される。各装置の各構成要素の機能を実現するプログラム904は、例えば、予め記憶装置905やRAM903に格納されており、必要に応じてCPU901が読み出す。なお、プログラム904は、通信ネットワーク909を介してCPU901に供給されてもよいし、予め記録媒体906に格納されており、ドライブ装置907が当該プログラムを読み出してCPU901に供給してもよい。
【0112】
各装置の実現方法には、様々な変形例がある。例えば、各装置は、構成要素毎にそれぞれ別個の情報処理装置900とプログラムとの任意の組み合わせにより実現されてもよい。また、各装置が備える複数の構成要素が、一つの情報処理装置900とプログラムとの任意の組み合わせにより実現されてもよい。
【0113】
また、各装置の各構成要素の一部又は全部は、その他の汎用または専用の回路、プロセッサ等やこれらの組み合わせによって実現される。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。
【0114】
各装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【0115】
各装置の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【0116】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。