特許第6946716号(P6946716)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許6946716ストレージ制御装置,ストレージ制御プログラムおよびストレージ制御方法
<>
  • 特許6946716-ストレージ制御装置,ストレージ制御プログラムおよびストレージ制御方法 図000003
  • 特許6946716-ストレージ制御装置,ストレージ制御プログラムおよびストレージ制御方法 図000004
  • 特許6946716-ストレージ制御装置,ストレージ制御プログラムおよびストレージ制御方法 図000005
  • 特許6946716-ストレージ制御装置,ストレージ制御プログラムおよびストレージ制御方法 図000006
  • 特許6946716-ストレージ制御装置,ストレージ制御プログラムおよびストレージ制御方法 図000007
  • 特許6946716-ストレージ制御装置,ストレージ制御プログラムおよびストレージ制御方法 図000008
  • 特許6946716-ストレージ制御装置,ストレージ制御プログラムおよびストレージ制御方法 図000009
  • 特許6946716-ストレージ制御装置,ストレージ制御プログラムおよびストレージ制御方法 図000010
  • 特許6946716-ストレージ制御装置,ストレージ制御プログラムおよびストレージ制御方法 図000011
  • 特許6946716-ストレージ制御装置,ストレージ制御プログラムおよびストレージ制御方法 図000012
  • 特許6946716-ストレージ制御装置,ストレージ制御プログラムおよびストレージ制御方法 図000013
  • 特許6946716-ストレージ制御装置,ストレージ制御プログラムおよびストレージ制御方法 図000014
  • 特許6946716-ストレージ制御装置,ストレージ制御プログラムおよびストレージ制御方法 図000015
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6946716
(24)【登録日】2021年9月21日
(45)【発行日】2021年10月6日
(54)【発明の名称】ストレージ制御装置,ストレージ制御プログラムおよびストレージ制御方法
(51)【国際特許分類】
   G06F 3/06 20060101AFI20210927BHJP
   G06F 11/34 20060101ALI20210927BHJP
【FI】
   G06F3/06 304Z
   G06F3/06 304P
   G06F3/06 540
   G06F11/34 119
   G06F11/34 133
【請求項の数】4
【全頁数】27
(21)【出願番号】特願2017-89936(P2017-89936)
(22)【出願日】2017年4月28日
(65)【公開番号】特開2018-190055(P2018-190055A)
(43)【公開日】2018年11月29日
【審査請求日】2020年2月13日
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100092978
【弁理士】
【氏名又は名称】真田 有
(72)【発明者】
【氏名】安部 麻理恵
(72)【発明者】
【氏名】仁村 康太郎
(72)【発明者】
【氏名】今村 洋
【審査官】 打出 義尚
(56)【参考文献】
【文献】 特開2002−229867(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06
G06F 11/34
(57)【特許請求の範囲】
【請求項1】
複数の記憶装置を制御するストレージ制御装置であって、
前記複数の記憶装置に対して行なわれたデータアクセスに関する情報を採取する情報採取部と、
前記情報採取部によって採取された前記情報を、データアクセスに関するデータ量に基づいて複数のデータ範囲に区画するデータ区分け部と、
前記複数の記憶装置のうち第1の記憶装置に対して行なわれた第1のデータアクセス要求に対する応答実績時間と、前記第1の記憶装置に対して前記第1のデータアクセス要求より前に行なわれた、複数のデータアクセス要求に対する複数の応答実績時間に基づいて前記第1のデータアクセス要求に対応するデータ範囲で算出された応答時間平均値および応答時間標準偏差とに基づき、前記第1のデータアクセス要求に対する応答実績時間が、前記応答時間平均値と前記応答時間標準偏差とを用いて算出した算出値よりも大きい場合に、前記第1の記憶装置の性能低下のおそれがあると判断し、前記性能低下のおそれがあると判断した場合に、前記第1のデータアクセス要求に対する応答実績時間、前記第1の記憶装置と同一のRAID(Redundant Arrays of Inexpensive Disks)を構成する他の記憶装置における、前記第1のデータアクセス要求に対応するデータ範囲で算出された、応答時間平均値および応答時間標準偏差に基づき、前記第1の記憶装置の性能低下を判断する判断部と
を備える
ことを特徴とする、ストレージ制御装置。
【請求項2】
前記判断部が、前記第1のデータアクセス要求に対する応答実績時間が、前記第1の記憶装置と同一のRAIDを構成する他の記憶装置における、前記第1のデータアクセス要求に対応するデータ範囲で算出された、前記応答時間平均値に前記応答時間標準偏差に3を乗算した値を加えた算出値よりも大きい場合に、前記第1の記憶装置性能低下判断する
ことを特徴とする、請求項1記載のストレージ制御装置。
【請求項3】
複数の記憶装置を制御するストレージ制御装置の処理装置に、
前記複数の記憶装置に対して行なわれたデータアクセスに関する情報を採取し、
採取された前記情報を、データアクセスに関するデータ量に基づいて複数のデータ範囲に区画し、
前記複数の記憶装置のうち第1の記憶装置に対して行なわれた第1のデータアクセス要求に対する応答実績時間と、前記第1の記憶装置に対して前記第1のデータアクセス要求より前に行なわれた、複数のデータアクセス要求に対する複数の応答実績時間に基づいて前記第1のデータアクセス要求に対応するデータ範囲で算出された応答時間平均値および応答時間標準偏差とに基づき、前記第1のデータアクセス要求に対する応答実績時間が、前記応答時間平均値と前記応答時間標準偏差とを用いて算出した算出値よりも大きい場合に、前記第1の記憶装置の性能低下のおそれがあると判断し、
前記性能低下のおそれがあると判断した場合に、前記第1のデータアクセス要求に対する応答実績時間、前記第1の記憶装置と同一のRAID(Redundant Arrays of Inexpensive Disks)を構成する他の記憶装置における、前記第1のデータアクセス要求に対応するデータ範囲で算出された、応答時間平均値および応答時間標準偏差に基づき、前記第1の記憶装置の性能低下を判断する
処理を実行させる、ストレージ制御プログラム。
【請求項4】
処理装置を備え、複数の記憶装置を制御するストレージ制御装置において、
前記処理装置が、
前記複数の記憶装置に対して行なわれたデータアクセスに関する情報を採取する処理と、
採取された前記情報を、データアクセスに関するデータ量に基づいて複数のデータ範囲に区画する処理と、
前記複数の記憶装置のうち第1の記憶装置に対して行なわれた第1のデータアクセス要求に対する応答実績時間と、前記第1の記憶装置に対して前記第1のデータアクセス要求より前に行なわれた、複数のデータアクセス要求に対する複数の応答実績時間に基づいて前記第1のデータアクセス要求に対応するデータ範囲で算出された応答時間平均値および応答時間標準偏差とに基づき、前記第1のデータアクセス要求に対する応答実績時間が、前記応答時間平均値と前記応答時間標準偏差とを用いて算出した算出値よりも大きい場合に、前記第1の記憶装置の性能低下のおそれがあると判断する処理と、
前記性能低下のおそれがあると判断した場合に、前記第1のデータアクセス要求に対する応答実績時間、前記第1の記憶装置と同一のRAID(Redundant Arrays of Inexpensive Disks)を構成する他の記憶装置における、前記第1のデータアクセス要求に対応するデータ範囲で算出された、応答時間平均値および応答時間標準偏差に基づき、前記第1の記憶装置の性能低下を判断する処理と
を実行する、ストレージ制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージ制御装置,ストレージ制御プログラムおよびストレージ制御方法に関する。
【背景技術】
【0002】
従来、ストレージシステムにおいては、ディスク装置(以下、単にディスクという)の故障を統計加点を行なうことで検出している。
【0003】
例えば、ディスクエラーや経路エラーを検出した際に加点を行ない、加点値が一定の値(例えば、255点)を超えた部品から優先的に切り離す。
【0004】
なお、加点値や加点対象はエラーによって異なる。ディスクエラーの場合にはディスクのみに加点を行ない、経路エラーの場合にはコマンドを発行した経路全ての部品に加点を実施する。
【0005】
ストレージ装置は複数ディスクを用いて運用されることが一般的であるため、経路エラーが生じた場合には、複数ディスクへの個々のI/O(Input/Output;入出力)アクセス毎に加点が行なわれる。この為、相対的に共通経路となる経路部品への加点がディスクより多くなることから、経路部品の方が先に加点値の上限に達し、切り離しが行なわれる事がある。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006−92070号公報
【特許文献2】特開2005−182658号公報
【特許文献3】特開2006−318246号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、このような統計加点による故障検出および対策を行なう従来のストレージ装置においては、スローダウンの状態となったディスクを切り離すことができない。
【0008】
スローダウン状態のディスクとは、レスポンスの低下が生じているがレスポンス値がドライバタイムアウトの閾値(例えば5秒)に達しないためにタイムアウトとして検出されず、またハードエラーも検出されない状態のディスクのことをいう。なお、スローダウンは、品質劣化等に起因してディスク自体でのリトライ繰り返し動作によりI/Oレスポンス遅延が生じることにより発生する。
【0009】
従って、スローダウン状態のディスクとは、性能低下した状態であり、故障とは判断されないが故障の予兆を示す被疑状態のディスクであるといえる。
【0010】
RAID(Redundant Arrays of Inexpensive Disks)においては、RAIDグループの一部のメンバーディスクがスローダウン状態になると、RAIDグループとしてのI/O性能の低下が生じる。
【0011】
また、従来のストレージシステムにおいては、ディスクアクセス処理のレスポンス遅延が発生した際には、解析ログとしてバックエンド遅延情報を採取している。しかし遅延情報を採取するレスポンス遅延の閾値はドライバタイムアウトと同じ(例えば5秒)である。従って、ドライバタイムアウトと同程度のレスポンス遅延が発生しないとログが採取されないため、スローダウンしたディスクが解析ログに残らず、管理者等が遅延の発生を把握できない。
【0012】
さらに、スローダウン状態のディスクが切り離されないままストレージシステムに残り続けるので、レスポンス遅延が再発する可能性が高く、2点故障の原因となるおそれもある。
【0013】
また、一部のホスト装置では、I/Oタイムアウトを非常に短い時間(例えば8秒)に設定しているものもあり、このような装置において遅延ログが複数発生した場合には、ホストI/Oに影響を与えるおそれもある。
【0014】
なお、RAIDグループの一部のメンバーディスクがスローダウンによるRAIDグループのI/O性能の低下を阻止するために、ドライバタイムアウトの閾値を引き下げることが考えられる。
【0015】
しかしながら、ドライバタイムアウトの閾値を引き下げると、スローダウン事象として意図しない、「高負荷I/O時に発生する過負荷によるディスクのレスポンス遅延」までもが、ドライバタイムアウトとして検出されてしまい、以下のような新たな問題が発生する。
【0016】
(1)高負荷のI/O動作時に統計処理が過剰に動作し、ディスクが切り離されるおそれがある。
【0017】
(2)遅延ログが大量に採取されることで、不要ログの増加によるログ解析の手間の増加や、解析ログのログ総量の圧迫、ログ書込み先のBUD(Boot-up and Utility Device)への書込み量の増加が生じる。
【0018】
1つの側面では、本発明は、性能低下状態となっている記憶装置を検出できるようにすることを目的とする。
【課題を解決するための手段】
【0019】
このため、このストレージ制御装置は、複数の記憶装置を制御するストレージ制御装置であって、前記複数の記憶装置に対して行なわれたデータアクセスに関する情報を採取する情報採取部と、前記情報採取部によって採取された前記情報を、データアクセスに関するデータ量に基づいて複数のデータ範囲に区画するデータ区分け部と、前記複数の記憶装置のうち第1の記憶装置に対して行なわれた第1のデータアクセス要求に対する応答実績時間と、前記第1の記憶装置に対して前記第1のデータアクセス要求より前に行なわれた、複数のデータアクセス要求に対する複数の応答実績時間に基づいて前記第1のデータアクセス要求に対応するデータ範囲で算出された応答時間平均値および応答時間標準偏差とに基づき、前記第1のデータアクセス要求に対する応答実績時間が、前記応答時間平均値と前記応答時間標準偏差とを用いて算出した算出値よりも大きい場合に、前記第1の記憶装置の性能低下のおそれがあると判断し、前記性能低下のおそれがあると判断した場合に、前記第1のデータアクセス要求に対する応答実績時間、前記第1の記憶装置と同一のRAID(Redundant Arrays of Inexpensive Disks)を構成する他の記憶装置における、前記第1のデータアクセス要求に対応するデータ範囲で算出された、応答時間平均値および応答時間標準偏差に基づき、前記第1の記憶装置の性能低下を判断する判断部とを備える。
【発明の効果】
【0020】
一実施形態によれば、性能低下状態となっている記憶装置を検出できる。
【図面の簡単な説明】
【0021】
図1】実施形態の一例としてのストレージ制御装置を含むストレージ装置のハードウェア構成を例示するブロック図である。
図2】実施形態の一例としてのストレージ制御装置の機能構成を示す図である。
図3】実施形態の一例としてのストレージ制御装置のデータ区分け部によるI/O情報の区分け方法を例示する図である。
図4】実施形態の一例としてのストレージ制御装置において生成されるヒストグラムを例示する図である。
図5】実施形態の一例としてのストレージ制御装置におけるレスポンス時間平均値情報を説明するための図である。
図6】実施形態の一例としてのストレージ制御装置における平均時間算出部によるレスポンス時間の平均値の算出タイミングを説明するための図である。
図7】実施形態の一例としてのストレージ制御装置におけるレスポンス時間平均値情報を例示する図である。
図8】実施形態の一例としてのストレージ制御装置におけるレスポンス時間標準偏差情報を例示する図である。
図9】実施形態の一例としてのストレージ制御装置における標準偏差算出部によるレスポンス時間の標準偏差の算出タイミングを説明するための図である。
図10】(A),(B)は、それぞれ実施形態の一例としてのストレージ制御装置におけるレスポンス時間標準偏差情報を例示する図である。
図11】実施形態の一例としてのストレージ制御装置における平均時間算出部によるレスポンス時間の平均値の算出方法を説明するフローチャートである。
図12】実施形態の一例としてのストレージ制御装置における標準偏差算出部によるレスポンス時間の標準偏差の算出方法を説明するフローチャートである。
図13】実施形態の一例としてのストレージ制御装置におけるディスクの切り離し処理を説明するフローチャートである。
【発明を実施するための形態】
【0022】
以下、図面を参照して本ストレージ制御装置,ストレージ制御プログラムおよびストレージ制御方法にかかる実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形(実施形態および各変形例を組み合わせる等)して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【0023】
(A)構成
まず、図1を参照しながら、本実施形態のストレージ制御装置100を含むストレージ装置(ストレージシステム,情報処理装置)1のハードウェア構成について説明する。なお、図1は本実施形態のストレージ制御装置100を含むストレージ装置1のハードウェア構成の一例を示すブロック図である。
【0024】
本ストレージ装置1は、ドライブエンクロージャ(Drive Enclosure:DE)30に格
納された記憶装置31を仮想化して、仮想ストレージ環境を形成する。そして、ストレージ装置1は、仮想ボリュームを、上位装置であるホスト装置(サーバ)2に提供する。
【0025】
本ストレージ装置1は、1以上(図1に示す例では1つ)のホスト装置2に対して通信可能に接続されている。ホスト装置2とストレージ装置1とは、後述するCA(Communication Adapter)101,102により接続されている。
【0026】
ホスト装置2は、例えば、サーバ機能を備えた情報処理装置であり、本ストレージ装置1との間において、NAS(Network Attached Storage)やSAN(Storage Area Network)のコマンドを送受信する。ホスト装置2は、例えば、ストレージ装置1に対してNASにおけるリード/ライト等のストレージアクセスコマンドを送信することにより、ストレージ装置1が提供するボリュームにデータの書込みまたは読出しを行なう。
【0027】
そして、本ストレージ装置1は、ホスト装置2からボリュームに対して行なわれる入出力要求(例えば、書込み要求や読出し要求)に応じて、このボリュームに対応する記憶装置31に対して、データの読出し(リード)や書込み(ライト)等の処理を行なう。なお、以下では、ホスト装置2からの入出力要求のことをI/O要求という場合がある。
【0028】
また、ストレージ装置1には、管理端末3が通信可能に接続されている。管理端末3は、キーボードやマウス等の入力装置や、表示装置を備える情報処理装置であって、システム管理者等のユーザが各種情報の入力操作を行なう。例えば、ユーザは、管理端末3を介して、各種設定等にかかる情報を入力する。入力された情報は、ホスト装置2やストレージ装置1に送信される。
【0029】
本ストレージ装置1は、図1に示すように、複数(本実施形態では2つ)のCM(Controller Module)100a,100bおよび1つ以上(図1に示す例では1つ)のDE30を備える。
【0030】
DE30は、1以上(図1に示す例では4つ)の記憶装置(物理ディスク)31を搭載可能であり、これらの記憶装置31の記憶領域(実ボリューム,実ストレージ)を、本ストレージ装置1に対して提供する。
【0031】
例えば、DE30は、複数段のスロット(図示省略)を備え、これらのスロットに、記憶装置31を装着することにより、実ボリューム容量を随時変更することができる。また、複数の記憶装置31を用いてRAID(Redundant Arrays of Inexpensive Disks)が構成される。なお、RAIDの構成および管理は既知の手法で実現されるので、その説明は省略する。
【0032】
記憶装置31は、後述するメモリ106と比較すると容量の大きい、HDD,SSD等の記憶装置(ストレージ)であって、種々のデータを格納するものである。なお、以下では、記憶装置のことをドライブもしくはディスクという場合がある。
【0033】
各DE30は、CM100aのデバイスアダプタ(Device Adapter:DA)103,103とCM100bのDA103,103とそれぞれ接続されている。そして、各DE30には、CM100a,100bのいずれからもアクセスして、データの書込みや読出しを行なうことができる。すなわち、DE30の各記憶装置31に対して、CM100a,100bのそれぞれを接続することにより、記憶装置31へのアクセス経路が冗長化されている。
【0034】
コントローラエンクロージャ(Controller Enclosure:CE)40は、1以上(図1に示す例では2つ)のCM100a,100bを備える。
【0035】
CM100a,100bは、ストレージ装置1内の動作を制御する制御装置(コントローラ,ストレージ制御装置)であり、ホスト装置2から送信されるI/O要求に従って、DE30の記憶装置31へのデータアクセス制御等、各種制御を行なう。又、CM100a,100bは互いに同様の構成を有している。以下、CMを示す符号としては、複数のCMのうち1つを特定する場合には符号100a,100bを用い、任意のCMを指すときには符号100を用いる。また、CM100aをCM#0と、CM100bをCM#1と、それぞれ表す場合がある。
【0036】
CM100a,100bは二重化されており、通常は、CM100a(CM#0)がプライマリとして各種制御を行なう。しかし、プライマリCM100aの故障時には、セカンダリのCM100b(CM#1)がプライマリとしてCM100aの動作を引き継ぐ。
【0037】
CM100a,100bは、CA101,102を介してそれぞれホスト装置2に接続される。そして、CM100a,100bは、ホスト装置2から送信されるリード/ライト等のI/O要求を受信し、DA103等を介して記憶装置31の制御を行なう。また、CM100a,100bは、PCIe(Peripheral Component Interconnect Express)等のインタフェースを介して相互に通信可能に接続される。
【0038】
CM100は、図1に示すように、CA101,102と複数(図1に示す例では2つ)のDA103,103とを備えるとともに、CPU105,メモリ106,フラッシュメモリ107およびIOC(Input Output Controller)108を備える。CA101,102,DA103,CPU105,メモリ106,フラッシュメモリ107,IOC108は、例えばPCIeインタフェース104を介して相互に通信可能に接続される。
【0039】
また、CM100のCPU105には、チップセット109を介して監視制御用のFPGA(Flexible Programmable Gate Array)110が接続されている。
【0040】
CA101,102は、ホスト装置2や管理端末3等から送信されたデータを受信したり、CM100から出力するデータをホスト装置2や管理端末3等に送信したりするアダプタである。すなわち、CA101,102は、ホスト装置2等の外部装置との間でのデータの入出力を制御する。
【0041】
CA101は、NASを介してホスト装置2や管理端末3と通信可能に接続するネットワークアダプタであり、例えば、LAN(Local Area Network)インタフェース等である。各CM100は、CA101により図示しない通信回線を介してホスト装置2等とNASにより接続され、I/O要求の受信やデータの送受信等を行なう。図1に示す例においては、CM100a,100bのそれぞれに2つのCA101,101が備えられている。
【0042】
CA102は、SANを介してホスト装置2と通信可能に接続するネットワークアダプタであり、例えば、iSCSI(Internet Small Computer System Interface)インタフェースやFC(Fibre Channel)インタフェースである。各CM100は、CA102により図示しない通信回線を介してホスト装置2等とSANにより接続され、I/O要求の受信やデータの送受信等を行なう。図1に示す例においては、CM100a,100bのそれぞれに1つのCA102が備えられている。
【0043】
DA103は、DE30や記憶装置31等と通信可能に接続するためのインタフェースである。DA103は、DE30の記憶装置31が接続され、各CM100は、ホスト装置2から受信したI/O要求に基づき、記憶装置31に対するアクセス制御を行なう。
【0044】
各CM100は、DA103を介して、記憶装置31に対するデータの書込みや読出しを行なう。また、図1に示す例においては、CM100a,100bのそれぞれに2つのDA103,103が備えられている。そして、CM100a,100bのそれぞれにおいて、各DA103にDE30が接続されている。
【0045】
これにより、DE30の記憶装置31には、CM100a,100bのいずれからもデータの書込みや読出しを行なうことができる。
【0046】
フラッシュメモリ107は、CPU105が実行するプログラムや種々のデータ等を格納する記憶装置である。
【0047】
メモリ106は、種々のデータやプログラムを一時的に格納する記憶装置であり、制御プログラム160を格納するほか、キャッシュ領域161やログ情報記憶領域162を有する(図2参照)。制御プログラム160は、例えば、本実施形態のストレージ制御機能(故障予兆検出機能)を実現すべくCPU105が実行するプログラムであり、メモリ106あるいはフラッシュメモリ107に保存される。キャッシュ領域161は、ホスト装置2から受信したデータや、ホスト装置2に対して送信するデータを一時的に格納する。ログ情報記憶領域162は、CM100を含むストレージ装置1で発生する各種ログ情報を一時的に記憶保存する。なお、メモリ106は、前述した記憶装置(ドライブ)31と比較するとアクセス速度は高速であるが容量の小さい、RAM(Random Access Memory)等である。
【0048】
IOC108は、各CM100内におけるデータ転送を制御する制御装置であり、例えば、メモリ106に格納されたデータをCPU105を介することなく転送させるDMA(Direct Memory Access)転送を実現する。
【0049】
CPU105は、種々の制御や演算を行なう処理装置(第1処理部)であり、例えばマルチコアプロセッサ(マルチコアCPU)である。CPU105は、メモリ106,フラッシュメモリ107等に格納されたOS(Operating System)やプログラムを実行することにより、種々の機能を実現する。特に、本実施形態において、CPU105は、制御プログラム160を実行することで、記憶装置31のスローダウンを検出する、故障予兆検出機能を果たす。
【0050】
すなわち、CPU105は、制御プログラム160を実行することで、故障予兆であるスローダウン(性能低下)状態となった記憶装置(ディスク;被疑ディスク)31を検出する機能を実現する。
【0051】
冗長化された二つのCM100aとCM100bとの間には、二つの通信パス131,132が設けられている。
【0052】
第1通信パス131は、CM100aのCPU105とCM100bのCPU105との間を接続するCPU間通信パスである。第2通信パス132は、CM100aのFPGA110とCM100bのFPGA110との間を接続するFPGA間通信パスである。
【0053】
チップセット109は、CPU105とFPGA110との間のデータの受渡しを管理する。FPGA110は、ストレージ装置1の監視制御を行なう処理装置である。
【0054】
ついで、図2を参照しながら、本実施形態のストレージ制御装置(CM)100の機能構成について説明する。
【0055】
なお、制御プログラム160は、コンピュータ読取可能な記録媒体であって非一時的な記録媒体に記録された形態で提供される。当該記録媒体としては、磁気ディスク,光ディスク,光磁気ディスクなどが挙げられる。また、光ディスクとしては、CD(Compact Disk),DVD(Digital Versatile Disk),ブルーレイディスクなどが挙げられる。CDは、CD−ROM(Read Only Memory),CD−R(Recordable)/RW(ReWritable)などを含む。DVDは、DVD−RAM,DVD−ROM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD(High Definition) DVDなどを含む。
【0056】
このとき、CPU105は、上述のごとき記録媒体から制御プログラム160を読み取って内部記憶装置(例えばメモリ106やフラッシュメモリ107)または外付けの記憶装置に格納して用いてもよい。また、CPU105は、制御プログラム160を、ネットワーク(図示略)を介して受信し内部記憶装置または外付けの記憶装置に格納して用いてもよい。
【0057】
図2に示すように、CPU105は、情報採取部151,データ区分け部157,平均時間算出部152,標準偏差算出部153,判断部154,退避処理部155,警告処理部156,ディスクアクセス制御部158およびボリューム管理部159としての機能を実現する。
【0058】
ボリューム管理部159は、ホスト装置2等の上位装置に対して記憶領域として提示するボリュームの管理を行なう。
【0059】
ボリューム管理部159は、1つ以上の記憶装置31に含まれる複数の記憶領域を組み合わせて仮想的なボリューム(仮想ボリューム,論理ボリューム)を構成する。例えば、ボリューム管理部159は、仮想ボリュームにおける格納領域のアドレス(論理アドレス)と、記憶装置31の記憶領域のアドレス(物理アドレス)とを対応づけたアドレス変換情報を用いて、ボリュームの管理を行なう。なお、ボリューム管理部159としての機能は既知であり、その詳細な説明は省略する。
【0060】
ディスクアクセス制御部158は、ホスト装置2からボリュームに対して行なわれるI/O要求(例えば、書込み要求や読出し要求)に応じて、このボリュームに対応する記憶装置31の記憶領域に、データの読出し(リード)や書込み(ライト)等のディスクアクセス処理を行なう。ディスクアクセス制御部158は、ボリューム管理部159が管理するアドレス変換情報を参照することで、I/O要求の対象のボリュームに対応する記憶装置31の記憶領域を把握し、この記憶領域に対してディスクアクセスコマンドを発行する。なお、このディスクアクセス制御部158としての機能は既知であり、その詳細な説明は省略する。
【0061】
情報採取部151は、ディスクアクセス制御部158によってディスク31に対して行なわれたディスクアクセスに関する情報(性能情報,I/O情報)を採取する。具体的には、情報採取部151は、I/O要求に基づくディスクアクセスに関して、コマンド種類,データ量およびレスポンス時間を採取する。
【0062】
コマンド種類は、データアクセスコマンドの種類を示し、例えば、リード(リードコマンド)とライト(ライトアクセス)とのいずれであるかを表す。
【0063】
データ量は、ディスクアクセスコマンドにかかるデータサイズであり、リードされるデータのデータサイズもしくはライトされるデータのデータサイズである。
【0064】
レスポンス時間は、ディスクアクセス制御部158が記憶装置31に対してディスクアクセス要求を発行してから、当該アクセス要求に対する応答を記憶装置31から受信するまでにかかった時間である。
【0065】
情報採取部151は、例えば、レスポンス時間を所定時間単位(例えば、1秒)で集計し、その集計結果を、例えば、メモリ106のログ情報記憶領域162に所定時間(例えば、15分間)保持する。
【0066】
情報採取部151は、各ディスク31のそれぞれについて、I/O毎にレスポンス時間(ディスクレスポンス時間)を採取する。ディスクレスポンス時間は、ディスク31に対してI/O要求に基づくディスクアクセス要求を発行してから、このディスクアクセス要求に対する応答を受信するまでにかかる時間である。情報採取部151は、タイマ監視を行なうことでディスクレスポンス時間を採取する。なお、ディスクアクセス要求には、リード要求とライト要求とが含まれる。
【0067】
例えば、情報採取部151は、ディスク31がDE30等に新規に搭載された際に、この新規に搭載されたディスク31について、当該ディスク31へのディスクアクセスコマンドの初回発行から所定時間(例えば15分間)、上述したI/O情報を採取する。
【0068】
情報採取部151は、リードおよびライトのそれぞれのディスクアクセスコマンドについて、I/O情報の蓄積を行なう。
【0069】
データ区分け部157は、情報採取部151によって採取されたI/O情報を、コマンド種類およびデータ量に応じて、複数のデータ範囲(区画)に区分けする。
【0070】
図3は実施形態の一例としてのストレージ制御装置100のデータ区分け部157によるI/O情報の区分け方法を例示する図である。
【0071】
この図3に示す例においては、データ区分け部157は、I/O情報を、リードコマンドとライトコマンドとに分別した上で、それぞれ、ディスクアクセス要求のデータ量を (i)1Mbyte以上,(ii)65Kbyte〜1Mbyteおよび、(iii)65Kbyte未満、の3種類のデータ範囲に区分けすることで、6つのデータ範囲(区画)に区分(分類)している。
【0072】
データ区分け部157は、情報採取部151によって採取されたI/O情報について、コマンド種類(リード/ライト)で区分けを行なう第1の区分けと、データ量に応じて区分けを行なう第2の区分けとを行なう。
【0073】
後述する平均時間算出部152および標準偏差算出部153は、データ区分け部157によって区分けされた個々の区画毎に、I/O情報であるレスポンス時間について、平均値や標準偏差の算出を行なう(図5図8等参照)。
【0074】
第1の区分けにおいては、データ区分け部157は、ディスクアクセス要求のコマンド種類を確認することで、リードコマンドであるか、ライトコマンドであるかの区分け(分別)を行なう。
【0075】
第2の区分けにおいては、データ区分け部157は、ディスクアクセス要求のデータ量に応じてI/O情報を区分けする。
【0076】
データ区分け部157は、情報採取部151が採取したI/O情報に基づき、データサイズ毎のリードコマンド数を表す度数分布(ヒストグラム)と、データサイズ毎のライトコマンド数を表すヒストグラムとをそれぞれ作成する。
【0077】
データ区分け部157は、これらの作成したヒストグラムにおいて、それぞれ、データ個数について2つ以上のピーク値を抽出し、抽出したこれらの複数のピーク値に対応する各階級値(ピーク階級値)について、隣り合うピーク階級値の中間点を区分け値(区分け位置)として決定する。
【0078】
データ区分け部157は、リードコマンドとライトコマンドとのそれぞれに対して、ヒストグラムにおける区分け値を決定する。
【0079】
図4は実施形態の一例としてのストレージ制御装置100において生成されるヒストグラムを例示する図である。この図4においては、新規に搭載されたディスク31における、ディスクコマンドの初回発行時から15分間において検出された複数のリードコマンドについてのヒストグラムを示すものとする。
【0080】
図4に例示するヒストグラムは、横軸のデータ量を以下に示す手法で決定する階級幅単位で区画し、各階級幅毎に集計したデータの個数を縦軸に表している。
【0081】
データ区分け部157は、以下の式(1),(2)に従って、度数分布の項目数および階級幅を決定する。
【0082】
【数1】

なお、データ量MAX値は、採取されたディスクアクセスコマンドのデータ量のうち最大値であり、データ量MIN値は、採取されたディスクアクセスコマンドのデータ量のうち最小値である。また、度数分布の階級幅には、上記式(2)の計算結果をKByte単位で四捨五入した値を用いる。
【0083】
データ区分け部157は、採取された複数のデータアクセスコマンドのデータ量を度数分布の階級幅に基づいてヒストグラムにまとめ、データ個数についての2つ以上のピーク値を抽出する。
【0084】
データ区分け部157は、ヒストグラムにおいて突出するデータ個数の値をピーク値候補とする。そして、データ区分け部157は、ピーク値候補であって、このピーク値候補を中心として、その前後の所定数(本例では5つ)以上連続する階級値で、データ個数がピーク値候補から順に減少しているものをピーク値として決定する。
【0085】
図4に例示するヒストグラムにおいては、データサイズが10Kbyte,32Kbyte,52Kbyteの各階級値に対応する3つのデータ個数(符号P1,P2,P3参照)がピーク値候補である。
【0086】
これらのピーク値候補のうち、例えば、データサイズが10Kbyteのピーク値候補(符号P1参照)は、それ以前に連続する5つのデータサイズ(8Kbyte,6Kbyte,4Kbyte,2Kbyte,0Kbyte)の各データ個数が、10Kbyteを最大値として、10Kbyteから離れるにつれ順に減少している(符号P4参照)。同様に、このデータサイズが10Kbyteのピーク値候補(符号P1参照)は、後続する5つのデータサイズ(12Kbyte,14Kbyte,16Kbyte,18Kbyte,20Kbyte)の各データ個数が、10Kbyteを最大値として、10Kbyteから離れるにつれ順に減少している(符号P5参照)。従って、このデータサイズが10Kbyteのピーク値候補はピーク値として判断され、データサイズ10Kbyteがピーク階級値として決定される。
【0087】
データサイズが52Kbyteのピーク値候補についても、同様にピーク値と判断され(符号P6,P7参照)、データサイズ52Kbyteがピーク階級値として決定される。
【0088】
一方、データサイズが32Kbyteのピーク値候補(符号P2参照)は、それ以前に連続する5つのデータサイズ(30Kbyte,28Kbyte,26Kbyte,24Kbyte,22Kbyte)の各データ個数は、32Kbyteを最大値として、32Kbyteから離れるにつれ順に減少している(符号P8参照)。しかしながら、32Kbyteから後続する5つのデータサイズ(34Kbyte,36Kbyte,38Kbyte,40Kbyte,42Kbyte)の各データ個数は、32Kbyteを最大値として30Kbyteから離れるにつれ順に減少するものではない(符号P9,P10参照)。従って、このデータサイズが32Kbyteのピーク値候補はピーク値に相当するものではない。
【0089】
従って、図4に例示するヒストグラムにおいては、データ区分け部157は、階級値(ピーク値候補)10Kbyteと階級値(ピーク値候補)52Kbyteとをピーク階級値として認定(抽出)する。
【0090】
そして、データ区分け部157は、隣り合う2つのピーク階級値の中間点を区分け値とする。図4に例示するヒストグラムにおいては、データサイズがピーク階級値10Kbyteとピーク階級値52Kbyteとの中間点に相当する32Kbyteが区分け値として決定される。
【0091】
データ区分け部157は、ライトコマンドのヒストグラムとリードコマンドのヒストグラムのそれぞれについて、区分け値の決定を行なう。
【0092】
平均時間算出部152は、情報採取部151によって採取されたI/O情報(レスポンス時間)に基づき、記憶装置31についてレスポンス時間の平均値を算出する。
【0093】
平均時間算出部152は、情報採取部151によって採取されたI/O情報について、データ区分け部157によって区分けされたデータ範囲毎に、レスポンス時間の平均値を算出し、レスポンス時間平均値情報163を作成する。
【0094】
平均時間算出部152は、例えば、DE30に新規登録された記憶装置31についてレスポンス時間の平均値を算出する。
【0095】
図5は実施形態の一例としてのストレージ制御装置におけるレスポンス時間平均値情報163を説明するための図である。
【0096】
図5に例示するレスポンス時間平均値情報163は、図3に例示するI/O情報の区分けに基づいて区分されている。すなわち、リードコマンドとライトコマンドとのそれぞれについて、データ量に応じて、(i)1Mbyte以上,(ii)65Kbyte〜1Mbyteおよび、(iii)65Kbyte未満、の3つのデータ範囲に区分けすることで、6つのデータ範囲に区分けされている。平均時間算出部152は、これらのデータ範囲毎にレスポンス時間の平均値を算出する。
【0097】
図5に例示するレスポンス時間平均値情報163においては、データ量が1Mbyte以上のライトコマンドのレスポンス時間の平均値を“Awl”と表している。同様に、データ量が65 Kbyte〜1Mbytのライトコマンドのレスポンス時間の平均値を“Awm”と、データ量が65Kbyte未満のライトコマンドのレスポンス時間の平均値を“Aws”と、それぞれ表している。
【0098】
また、データ量が1Mbyte以上のリードコマンドのレスポンス時間の平均値を“Arl”と、データ量が65 Kbyte〜1Mbytのリードコマンドのレスポンス時間の平均値を“Arm”と、データ量が65Kbyte未満のリードコマンドのレスポンス時間の平均値を“Ars”と、それぞれ表している。
【0099】
また、平均時間算出部152は、所定時間が経過する毎に、レスポンス時間の平均値の算出を行ない、レスポンス時間平均値情報163の更新を行なう。
【0100】
図6は実施形態の一例としてのストレージ制御装置における平均時間算出部152によるレスポンス時間の平均値の算出タイミングを説明するための図である。この図6においては、平均時間算出部152が、所定時間として15分間が経過する毎にレスポンス時間の平均値の算出を行なう例を示す。
【0101】
情報採取部151がI/O情報の収集を15分間行なうと、平均時間算出部152は、この15分間に収集したI/O情報を用いてレスポンス時間の平均値を算出する。また、情報採取部151は、次の15分間分のI/O情報の採取を行なう。平均時間算出部152は算出した平均値を用いてレスポンス時間平均値情報163を更新する。平均時間算出部152がレスポンス時間の平均値を定期的に更新することで、過負荷によるレスポンス遅延にも対応することができる。
【0102】
図7は実施形態の一例としてのストレージ制御装置におけるレスポンス時間平均値情報163を例示する図である。
【0103】
この図7に例示するレスポンス時間平均値情報163は、図5に示すレスポンス時間平均値情報163において、Awl,Awm,Awsの例として16ms,11ms,6msがそれぞれ設定されている。また、Arl,Arm,Arsの例として14ms,9ms,5msがそれぞれ設定されている。
【0104】
以下、レスポンス時間平均値情報163に登録されているレスポンス時間の平均値Awl,Awm,Aws,Arl,Arm,Arsのうち任意の平均値を、レスポンス平均値Aという場合がある。
【0105】
標準偏差算出部153は、情報採取部151によって採取されたI/O情報(レスポンス時間)に基づき、記憶装置31についてレスポンス時間の標準偏差を算出する。なお、標準偏差を表す値を標準偏差値といってもよい。
【0106】
標準偏差算出部153は、DE30に新規登録された記憶装置31についてレスポンス時間の標準偏差を算出する。
【0107】
標準偏差算出部153は、情報採取部151によって採取されたI/O情報について、データ区分け部157によって区分けされたデータ範囲毎に、レスポンス時間の標準偏差を算出し、レスポンス時間標準偏差情報164を作成する。標準偏差算出部153は、DE30の記憶装置31毎にレスポンス時間標準偏差情報164を作成する。
【0108】
標準偏差算出部153は、例えば、DE30に記憶装置31が新規登録される度に、記憶装置31についてレスポンス時間の標準偏差を算出する。
【0109】
図8は実施形態の一例としてのストレージ制御装置におけるレスポンス時間標準偏差情報164を例示する図である。
【0110】
図8に例示するレスポンス時間標準偏差情報164は、図3に例示するI/O情報の区分けに基づいて区分されている。すなわち、リードコマンドとライトコマンドとのそれぞれについて、データ量に応じて、(i)1Mbyte以上,(ii)65Kbyte〜1Mbyteおよび、(iii)65Kbyte未満、の3つのデータ範囲に区分けすることで、6つのデータ範囲に区分けされている。標準偏差算出部153は、これらのデータ範囲毎にレスポンス時間の標準偏差を算出する。
【0111】
図8に例示するレスポンス時間標準偏差情報164においては、データ量が1Mbyte以上のライトコマンドのレスポンス時間の標準偏差を“Swl”と表している。同様に、データ量が65Kbyte〜1Mbytのライトコマンドのレスポンス時間の標準偏差を“Swm”と、データ量が65Kbyte未満のライトコマンドのレスポンス時間の標準偏差を“Sws”と、それぞれ表している。
【0112】
また、データ量が1Mbyte以上のリードコマンドのレスポンス時間の標準偏差を“Srl”と、データ量が65Kbyte〜1Mbytのリードコマンドのレスポンス時間の標準偏差を“Srm”と、データ量が65Kbyte未満のリードコマンドのレスポンス時間の標準偏差を“Srs”と、それぞれ表している。
【0113】
また、標準偏差算出部153は、所定期間(例えば1ヶ月)毎に、レスポンス時間の標準偏差の算出を行ない、レスポンス時間標準偏差情報164の更新を行なう。
【0114】
標準偏差算出部153は、平均時間算出部152とは異なり、15分毎の値更新は実施しない。スローダウンにより応答が遅延しているI/Oが標準偏差の計算の対象に含まれることを避けるためである。
【0115】
しかし、標準偏差の値を更新しない場合には、ディスク31の経年劣化による応答遅延を標準偏差の計算に反映させることができず、時間が経つにつれスローダウンを誤検出する確率が高くなると考えられる。
【0116】
このため、本制御装置においては、標準偏差算出部153は、所定期間(例えば1ヶ月)毎に、レスポンス時間の平均値の変化から、ディスク31の劣化傾向を判断し、レスポンス時間標準偏差情報164の値を変更する。
【0117】
図9は実施形態の一例としてのストレージ制御装置における標準偏差算出部153によるレスポンス時間の標準偏差の算出タイミングを説明するための図である。
【0118】
この図9に示すように、標準偏差算出部153は、過去に算出されたレスポンス時間の平均値と、平均時間算出部152によって算出された最新(現行)のレスポンス時間の平均値と、算出した標準偏差とに基づき、以下の条件式(3)が成り立つ場合に、最新の標準偏差の値を用いてレスポンス時間標準偏差情報164を書き換える。

現行の平均値 > 過去の平均値A + 標準偏差S ×3 ・・・(3)

ここで、過去の平均値Aに標準偏差Sの3倍の値を加算するのは、正規分布においては、統計的に、平均値を中心にした標準偏差の3倍の範囲にデータの99.7%が含まれることに基づく。すなわち、上記式(3)が成立する場合には、過去に平均値を算出した時点に比べて、現在のレスポンス時間が大きく変動していることを表すからである。
【0119】
図10(A),(B)は、それぞれ実施形態の一例としてのストレージ制御装置におけるレスポンス時間標準偏差情報164を例示する図であり、(A)と(B)は互いに異なるディスク31についてのレスポンス時間標準偏差情報164を示す。
【0120】
図10(A)に例示するレスポンス時間標準偏差情報164は、図8に示すレスポンス時間標準偏差情報164において、Swl,Swm,Swsの例として1.0,1.54,1.59がそれぞれ設定されている。また、Srl,Srm,Srsの例として1.86,1.42,1.60がそれぞれ設定されている。
【0121】
また、図10(B)に例示するレスポンス時間標準偏差情報164は、図8に示すレスポンス時間標準偏差情報164において、Swl,Swm,Swsの例として1.14,1.64,1.50がそれぞれ設定されている。また、Srl,Srm,Srsの例として1.79,1.70,1.65がそれぞれ設定されている。
【0122】
判断部154は、新規にホスト装置2から発行されたI/O要求に基づいて生じた、ディスク(第1の記憶装置)31へのディスクアクセス(第1のデータアクセス要求)に対するレスポンス時間(応答実績時間)Rに基づき、ディスク31がスローダウンの状態であるか否かを判断する。判断部154は、以下に示す判断1〜3を行なうことで、判定対象のディスク(第1の記憶装置)31がスローダウンの状態であるかを判断する。なお、以下、新規にホスト装置2から発行されたI/O要求に基づいて生じた、ディスク31へのディスクアクセスに対するレスポンス時間Rを単にレスポンス時間Rという場合がある。このレスポンス時間Rは、ディスク31に対するデータアクセスについてのレスポンス状況を示す。
【0123】
[判断1]
判断部154は、レスポンス時間Rを、同一ディスク31についてのレスポンス時間平均値情報163における、ディスクアクセスのデータ量に相当するデータ範囲のレスポンス時間の平均値Aと比較(第1の比較)する。これにより、判断部154は、レスポンスの遅延状況を評価する。
【0124】
例えば、新規I/O要求によるディスクアクセスが1Mbyte以上のデータサイズのリードコマンドである場合には、判断部154は、このリードコマンドに対するレスポンス時間Rを、レスポンス時間平均値情報163におけるレスポンス時間平均値Arl(例えば図7参照)と比較する。
【0125】
この比較の結果、レスポンス時間Rがレスポンス時間平均値A以下(R≦A)の場合には、レスポンスの遅延は発生しておらず、判断部154は、ディスク31はスローダウンではないと判断する。
【0126】
一方、比較の結果、レスポンス時間Rがレスポンス時間平均値Aより大きい(R>A)場合には、レスポンスの遅延が発生しており、ディスク31はスローダウンのおそれがあるとして、判断部154は、以下に示す判断2を行なう。
【0127】
すなわち、判断部154は、ディスク31におけるレスポンス時間Rをレスポンス時間平均値Aと比較(監視)することで、レスポンスの遅延状況を評価する。
【0128】
[判断2]
判断部154は、レスポンス時間Rを、同一ディスク31の「レスポンス時間平均値A+3×標準偏差S」と比較(第2の比較)する。なお、レスポンス時間平均値Aは、同一ディスク31についてのレスポンス時間平均値情報163における、ディスクアクセスのデータ量に相当するデータ範囲のレスポンス時間の平均値Aを示す。
【0129】
すなわち、この平均値Aは、判定対象のディスク(第1の記憶装置)31に対して第1のデータアクセス要求より前に行なわれた、複数のデータアクセス要求に対する複数の応答実績時間に基づいて算出された応答時間平均値に相当する。
【0130】
また、標準偏差Sは、同一ディスク31についてのレスポンス時間標準偏差情報164における、ディスクアクセスのデータ量に相当するデータ範囲のレスポンス時間の標準偏差Sを示す。
【0131】
すなわち、標準偏差Sは、判定対象のディスク(第1の記憶装置)31に対して第1のデータアクセス要求より前に行なわれた、複数のデータアクセス要求に対する複数の応答実績時間に基づいて算出された応答時間標準偏差に相当する。
【0132】
例えば、新規I/O要求によるディスクアクセスが1Mbyte以上のデータサイズのリードコマンドである場合には、判断部154は、レスポンス時間平均値情報163におけるレスポンス時間平均値Arl(例えば図7参照)および、レスポンス時間標準偏差情報164における標準偏差Srl(例えば図10参照)をそれぞれ取得する。
【0133】
そして、判断部154は、レスポンス時間Rを、「レスポンス時間平均値Arl+3×標準偏差Srl」と比較する。以下、同一ディスク31の「レスポンス時間平均値A+3×標準偏差S」の算出値を符号αで示す。判断部154は、レスポンス時間Rを算出値αと比較する。
【0134】
この比較の結果、レスポンス時間Rが算出値α以下(R≦α)の場合には、判断部154は、ディスク31はスローダウンではないと判断する。
【0135】
一方、比較の結果、レスポンス時間Rが算出値αより大きい(R>α)場合には、ディスク31はスローダウンのおそれがあるとして、判断部154は、以下に示す判断3を行なう。
【0136】
すなわち、判断部154は、ディスク31におけるレスポンス時間Rをレスポンス時間平均値Aと比較(監視)することで、レスポンスの遅延状況を評価する。
【0137】
[判断3]
判断部154は、レスポンス時間Rを、同一のRAID(RAIDグループ)を構成する他のディスク(メンバーディスク)31の「レスポンス時間平均値A+3×標準偏差S」と比較(第3の比較)する。なお、レスポンス時間平均値Aは、同一のRAIDを構成する他のディスク31についてのレスポンス時間平均値情報163における、ディスクアクセスのデータ量に相当するデータ範囲のレスポンス時間の平均値Aを示す。また、標準偏差Sは、同一のRAIDを構成する他のディスク31についてのレスポンス時間標準偏差情報164における、ディスクアクセスのデータ量に相当するデータ範囲のレスポンス時間の標準偏差Sを示す。
【0138】
例えば、新規I/O要求によるディスクアクセスが1Mbyte以上のデータサイズのリードコマンドである場合には、判断部154は、同一のRAIDを構成する他のディスク31について、レスポンス時間平均値情報163におけるレスポンス時間平均値Arl(例えば図7参照)および、レスポンス時間標準偏差情報164における標準偏差Srl(例えば図10参照)をそれぞれ取得する。
【0139】
そして、判断部154は、レスポンス時間Rを、同一RAIDの他の各ディスク31についての「レスポンス時間平均値Arl+3×標準偏差Srl」と比較する。以下、同一RAIDの他のディスク31の「レスポンス時間平均値A+3×標準偏差S」の算出値を符号βで示す。判断部154は、レスポンス時間Rを、各ディスク31の算出値βと比較する。
【0140】
この比較の結果、例えば、レスポンス時間Rが全てのディスク31の各算出値β以下(R≦β)の場合には、判断部154は、ディスク31はスローダウンではないと判断する。
【0141】
一方、比較の結果、レスポンス時間Rが、いずれかのディスク31の算出値βより大きい(R>β)場合には、ディスク31はスローダウンであると判断する。以下、スローダウンであると判断されたディスク31をスローダウンディスク31という場合がある。
【0142】
判断部154による判断結果は、退避処理部155および警告処理部156に通知される。
【0143】
退避処理部155は、スローダウンディスク31のデータをホットスペアディスク(図示省略)に退避させる。また、退避処理部155は、スローダウンディスク31のデータをホットスペアディスクに退避させた後に、このスローダウンディスク31の切り離し(縮退)を行なう。
【0144】
退避処理部155は、判断部154がディスク31がスローダウンであると判断した場合に、そのスローダウンディスク31に対応するスローダウンカウンタの値(カウント値)をカウントアップ(インクリメント)する。スローダウンカウンタは、スローダウンの検出回数を計数するものであり、ディスク31毎に備えられる。
【0145】
退避処理部155は、スローダウンカウンタのカウント値が所定の閾値(切り離し閾値)を超えた場合に、このスローダウンディスク31のデータをホットスペアディスク(図示省略)に退避させ、その後、このスローダウンディスク31を切り離す。スローダウンディスク31の切り離しは、SMART(Self-Monitoring, Analysis and Reporting Technology)機能を用いて行なう。
【0146】
また、スローダウンカウンタのカウント値が切り離し閾値を超えず、且つ、ワーニング閾値を超えた場合には、退避処理部155は、警告処理部156に警告を出力させる。なお、ワーニング閾値は、切り離し閾値よりも小さい値である。警告処理部156は、後述の如く、システム管理者やオペレータに対して警告を出力するものであり、ディスク(スローダウンディスク)31がスローダウン状態であり、切り離しが行なわれるおそれがあることを通知する。また、退避処理部155は、解析ログ中にワーニング閾値を超えた旨を記録する。
【0147】
なお、スローダウンカウンタのカウント値が、切り離し閾値およびワーニング閾値のいずれも超えない場合には、退避処理部155は、ホットスペアディスクへのデータの退避やスローダウンディスク31の切り離しは行なわない。
【0148】
警告処理部156は、オペレータやシステム管理者等に警告を出力する。警告処理部156は、例えば、退避処理部155によりスローダウンカウンタのカウンタ値がワーニング閾値を超えた場合に、ディスク(スローダウンディスク)31がスローダウン状態であり、切り離しが行なわれるおそれがあることを通知する。例えば、警告処理部156は、例えば、管理端末3の図示しないディスプレイに、ディスク(スローダウンディスク)31がスローダウン状態であり、切り離しが行なわれるおそれがある旨のメッセージ等を出力させる。また、警告処理部156は、管理端末3のディスプレイに、ディスク(スローダウンディスク)31にスローダウンが発生し、切り離しが行なわれた旨のメッセージ等を出力させる。また、警告処理部156は、なお、オペレータやシステム管理者等に対する通知方法は既知の種々の手法を用いて行なうことができ、その説明は省略する。
【0149】
(B)動作
上述の如く構成された実施形態の一例としてのストレージ制御装置100において、例えば、ホスト装置2からボリュームに対してライト要求(I/O要求)が発行されると、ディスクアクセス制御部158が、このライト要求に従って対応するディスク31に対するディスクアクセスコマンドを発行する。
【0150】
情報採取部151は、リードおよびライトのそれぞれのディスクアクセスコマンドについて、ディスク31毎にI/O情報の蓄積を行なう。
【0151】
ここで、実施形態の一例としてのストレージ制御装置100における平均時間算出部152によるレスポンス時間の平均値の算出方法を、図11に示すフローチャート(ステップA1,A2)に従って説明する。
【0152】
以下の処理は、例えば、タイマにより所定時間(例えば15分)が経過したことが検出されるタイミングで開始される。
【0153】
ステップA1において、平均時間算出部152は、データ区分け部157によって区分けされたデータ範囲に含まれるレスポンス時間の平均値Aを算出する。
【0154】
その後、ステップA2において、平均時間算出部152は、所定時間(15分)を測定するタイマ104を起動して、処理を終了する。
【0155】
次に、実施形態の一例としてのストレージ制御装置100における標準偏差算出部153によるレスポンス時間の標準偏差の算出方法を、図12に示すフローチャート(ステップB1〜B4)に従って説明する。
【0156】
以下の処理は、例えば、タイマにより所定時間(例えば1か月)が経過したことが検出されるタイミングで開始される。
【0157】
平均時間算出部152がレスポンス時間の平均値を算出すると、ステップB1において、この最新の平均値がレスポンス時間平均値情報163に保存される。
【0158】
ステップB2において、標準偏差算出部153は、過去に算出されたレスポンス時間の平均値と、平均時間算出部152によって算出された最新(現行)のレスポンス時間の平均値と、算出した標準偏差とに基づき、上記の条件式(3)が成立するかを確認する。
【0159】
確認の結果、条件式(3)が成立しない場合には(ステップB2のNOルート参照)、ステップB4に移行する。
【0160】
また、条件式(3)が成立する場合には(ステップB2のYESルート参照)、ステップB3に移行する。ステップB3においては、標準偏差算出部153は、新たに算出した標準偏差を用いて、レスポンス時間標準偏差情報164を更新する。
【0161】
ステップB4において、標準偏差算出部153は、1ヶ月後にレスポンス時間標準偏差情報164の更新処理が開始されるようにタイマを設定し、処理を終了する。
【0162】
次に、実施形態の一例としてのストレージ制御装置100におけるディスクの切り離し処理を、図13に示すフローチャート(ステップC1〜C8)に従って説明する。
【0163】
ステップC1において、判断部154は、判定対象のディスク(第1の記憶装置)31について、レスポンス時間Rが、同一ディスク31についてのレスポンス時間平均値情報163における、ディスクアクセスのデータ量に相当するデータ範囲のレスポンス時間の平均値Aよりも大きいかを確認する。
【0164】
確認の結果、レスポンス時間Rがレスポンス時間平均値A以下である場合には(ステップC1のNOルート参照)、処理を終了する。
【0165】
また、確認の結果、レスポンス時間Rがレスポンス時間平均値Aよりも大きい場合には(ステップC1のYESルート参照)、ステップC2に移行する。
【0166】
ステップC2において、判断部154は、レスポンス時間Rが、同一ディスク31の「レスポンス時間平均値A+3×標準偏差S」よりも大きいかを確認する。
【0167】
確認の結果、レスポンス時間Rが同一ディスク31の「レスポンス時間平均値A+3×標準偏差S」以下である場合に(ステップC2のNOルート参照)、処理を終了する。
【0168】
また、確認の結果、レスポンス時間Rが同一ディスク31の「レスポンス時間平均値A+3×標準偏差S」よりも大きい場合に(ステップC2のYESルート参照)、ステップC3に移行する。
【0169】
ステップC3において、判断部154は、レスポンス時間Rが、同一のRAIDを構成する他のディスク31の「レスポンス時間平均値A+3×標準偏差S」よりも大きいかを確認する。
【0170】
確認の結果、レスポンス時間Rが、同一のRAIDを構成する他のディスク31の「レスポンス時間平均値A+3×標準偏差S」以下の場合には(ステップC3のNOルート参照)、処理を終了する。
【0171】
また、確認の結果、レスポンス時間Rが、同一のRAIDを構成する他のディスク31の「レスポンス時間平均値A+3×標準偏差S」よりも大きい場合には(ステップC3のYESルート参照)、ステップC4に移行する。
【0172】
ステップC4において、退避処理部155は、スローダウンディスク31に対応するスローダウンカウンタの値(カウント値)をカウントアップする。
【0173】
ステップC5において、退避処理部155は、スローダウンカウンタのカウント値が切り離し閾値を超えたかを確認する。カウント値が切り離し閾値を超えた場合には(ステップC5のYESルート参照)、ステップC6に移行する。
【0174】
ステップC6においては、退避処理部155は、スローダウンディスク31のデータをホットスペアディスクに退避させ、その後、このスローダウンディスク31をSMART機能により切り離す。その後、処理を終了する。
【0175】
また、ステップC5における確認の結果、カウント値が切り離し閾値を超えていない場合には(ステップC5のNOルート参照)、ステップC7に移行する。
【0176】
ステップC7においては、退避処理部155は、スローダウンカウンタのカウント値がワーニング閾値を超えたかを確認する。カウント値がワーニング閾値を超えた場合には(ステップC7のYESルート参照)、ステップC8に移行する。
【0177】
ステップC8において、退避処理部155は、警告処理部156に警告を出力させる。その後、処理を終了する。また、ステップC7における確認の結果、カウント値がワーニング閾値を超えていない場合にも(ステップC7のNOルート参照)、処理を終了する。
【0178】
(C)効果
このように、実施形態の一例としてのストレージ制御装置100によれば、判断部154が、ディスク31へのデータアクセス要求に対するレスポンス時間Rを、同一ディスク31についてのレスポンス時間平均値情報163における、ディスクアクセスのデータ量に相当するデータ範囲のレスポンス時間の平均値Aと比較する。
【0179】
比較の結果、レスポンス時間Rがレスポンス時間平均値Aより大きい(R>A)場合には、レスポンスの遅延が発生しており、ディスク31はスローダウンのおそれがあると判断することができる。
【0180】
また、このようにディスク31はスローダウンのおそれがあると判断した場合に、判断部154は、レスポンス時間Rを、同一ディスク31の「レスポンス時間平均値A+3×標準偏差S」(=算出値α)と比較(第2の比較)する。
【0181】
比較の結果、レスポンス時間Rが算出値αより大きい(R>α)場合には、ディスク31はスローダウンのおそれがあると判断することができる。
【0182】
ディスク31がスローダウンのおそれがあると判断した場合に、判断部154は、更に、レスポンス時間Rを、対象ディスク31と同一のRAIDを構成する他のディスク31の「レスポンス時間平均値A+3×標準偏差S」(=算出値β)と比較する。
【0183】
比較の結果、レスポンス時間Rが算出値βより大きい(R>β)場合には、判断部154は、ディスク31がスローダウンの状態であると判断する。
【0184】
同一RAID内の他のディスク31におけるレスポンス時間の平均値Aや標準偏差Sを判定に用いることで、ディスク31の応答遅延の原因が過負荷によるものか、スローダウンによるものかを判別することができる。これにより、スローダウン発生しているディスク31を早期に確実に切り離すことができ、RAIDグループの性能を維持できる。
【0185】
また、データ区分け部157が、I/O情報をコマンド種類に分け、これらのコマンド種類毎にデータ範囲を設ける。これにより、データ量やコマンド種類の違いによるコマンド遅延の誤検出を避けることができる。さらに、短いデータ量のコマンドであっても、確実にスローダウンを検出することができる。
【0186】
標準偏差算出部153が、I/Oの遅延判定の標準偏差を定期的に更新することで、ディスク31の経年劣化による応答遅延を考慮に入れたうえで、スローダウンを検出することが可能となる。
【0187】
情報採取部151が、I/O情報を採取し、ログ情報記憶領域162に記録するので、遅延や一時的なレスポンス遅延の事象がログに残り、遅延問題の解決に役立てることができる。
【0188】
(D)その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【0189】
例えば、図1に例示するストレージ装置1は2つのCM100a,100bを備えているが、これに限定されるものではなく、1つもしくは3つ以上のCM100を備えてもよい。
【0190】
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【0191】
(E)付記
以上の実施形態に関し、さらに以下の付記を開示する。
【0192】
(付記1)
複数の記憶装置を制御するストレージ制御装置であって、
前記複数の記憶装置に対して行なわれたデータアクセスに関する情報を採取する情報採取部と、
前記複数の記憶装置のうち第1の記憶装置に対して行なわれた第1のデータアクセス要求に対する応答実績時間と、前記第1の記憶装置に対して前記第1のデータアクセス要求より前に行なわれた、複数のデータアクセス要求に対する複数の応答実績時間に基づいて算出された応答時間平均値および応答時間標準偏差とに基づき、前記第1の記憶装置の性能低下を判断する判断部と
を備えることを特徴とする、ストレージ制御装置。
【0193】
(付記2)
前記情報採取部によって採取された前記情報を、データアクセスに関するデータ量に基づいて複数のデータ範囲に区画するデータ区分け部を備え、
前記判断部が、前記第1のデータアクセス要求に対する応答実績時間と、前記第1のデータアクセス要求に対応するデータ範囲で算出された前記応答時間平均値および応答時間標準偏差とに基づき、前記第1の記憶装置の性能低下を判断する
ことを特徴とする、付記1記載のストレージ制御装置。
【0194】
(付記3)
前記判断部が、前記第1のデータアクセス要求に対する応答実績時間が、前記応答時間平均値に前記応答時間標準偏差に3を乗算した値を加えた算出値よりも大きい場合に、前記第1の記憶装置に性能低下のおそれがあると判断する
ことを特徴とする、付記2記載のストレージ制御装置。
【0195】
(付記4)
前記判断部が、前記性能低下のおそれがあると判断した場合に、前記第1のデータアクセス要求に対する応答実績時間を、前記第1の記憶装置と同一のRAID(Redundant Arrays of Inexpensive Disks)を構成する他の記憶装置における、前記第1のデータアクセス要求に対応するデータ範囲で算出された、応答時間平均値および応答時間標準偏差に基づき、前記第1の記憶装置の性能低下を判断する
ことを特徴とする、付記3記載のストレージ制御装置。
【0196】
(付記5)
前記判断部が、前記第1のデータアクセス要求に対する応答実績時間が、前記第1の記憶装置と同一のRAIDを構成する他の記憶装置における、前記第1のデータアクセス要求に対応するデータ範囲で算出された、前記応答時間平均値に前記応答時間標準偏差に3を乗算した値を加えた算出値よりも大きい場合に、前記第1の記憶装置に性能低下のおそれがあると判断する
ことを特徴とする、付記4記載のストレージ制御装置。
【0197】
(付記6)
複数の記憶装置を制御するストレージ制御装置の処理装置に、
前記複数の記憶装置に対して行なわれたデータアクセスに関する情報を採取し、
前記複数の記憶装置のうち第1の記憶装置に対して行なわれた第1のデータアクセス要求に対する応答実績時間と、前記第1の記憶装置に対して前記第1のデータアクセス要求より前に行なわれた、複数のデータアクセス要求に対する複数の応答実績時間に基づいて算出された応答時間平均値および応答時間標準偏差とに基づき、前記第1の記憶装置の性能低下を判断する
処理を実行させる、ストレージ制御プログラム。
【0198】
(付記7)
採取された前記情報を、データアクセスに関するデータ量に基づいて複数のデータ範囲に区画し、
前記第1のデータアクセス要求に対する応答実績時間と、前記第1のデータアクセス要求に対応するデータ範囲で算出された前記応答時間平均値および応答時間標準偏差とに基づき、前記第1の記憶装置の性能低下を判断する
処理を、前記処理装置に実行させる、付記6記載のストレージ制御プログラム。
【0199】
(付記8)
前記第1のデータアクセス要求に対する応答実績時間が、前記応答時間平均値に前記応答時間標準偏差に3を乗算した値を加えた算出値よりも大きい場合に、前記第1の記憶装置に性能低下のおそれがあると判断する
処理を前記処理装置に実行させる、付記7記載のストレージ制御プログラム。
【0200】
(付記9)
前記性能低下のおそれがあると判断した場合に、前記第1のデータアクセス要求に対する応答実績時間を、前記第1の記憶装置と同一のRAID(Redundant Arrays of Inexpensive Disks)を構成する他の記憶装置における、前記第1のデータアクセス要求に対応するデータ範囲で算出された、応答時間平均値および応答時間標準偏差に基づき、前記第1の記憶装置の性能低下を判断する
処理を前記処理装置に実行させる、付記8記載のストレージ制御プログラム。
【0201】
(付記10)
前記第1のデータアクセス要求に対する応答実績時間が、前記第1の記憶装置と同一のRAIDを構成する他の記憶装置における、前記第1のデータアクセス要求に対応するデータ範囲で算出された、前記応答時間平均値に前記応答時間標準偏差に3を乗算した値を加えた算出値よりも大きい場合に、前記第1の記憶装置に性能低下のおそれがあると判断する
処理を前記処理装置に実行させる、付記9記載のストレージ制御プログラム。
【0202】
(付記11)
複数の記憶装置を制御するストレージ制御装置において、
前記複数の記憶装置に対して行なわれたデータアクセスに関する情報を採取する処理と、
前記複数の記憶装置のうち第1の記憶装置に対して行なわれた第1のデータアクセス要求に対する応答実績時間と、前記第1の記憶装置に対して前記第1のデータアクセス要求より前に行なわれた、複数のデータアクセス要求に対する複数の応答実績時間に基づいて算出された応答時間平均値および応答時間標準偏差とに基づき、前記第1の記憶装置の性能低下を判断する処理と
を備える、ストレージ制御方法。
【0203】
(付記12)
採取された前記情報を、データアクセスに関するデータ量に基づいて複数のデータ範囲に区画する処理と、
前記第1のデータアクセス要求に対する応答実績時間と、前記第1のデータアクセス要求に対応するデータ範囲で算出された前記応答時間平均値および応答時間標準偏差とに基づき、前記第1の記憶装置の性能低下を判断する処理と
を備える、付記11記載のストレージ制御方法。
【0204】
(付記13)
前記第1のデータアクセス要求に対する応答実績時間が、前記応答時間平均値に前記応答時間標準偏差に3を乗算した値を加えた算出値よりも大きい場合に、前記第1の記憶装置に性能低下のおそれがあると判断する処理
を備える、付記12記載のストレージ制御方法。
【0205】
(付記14)
前記性能低下のおそれがあると判断した場合に、前記第1のデータアクセス要求に対する応答実績時間を、前記第1の記憶装置と同一のRAIDを構成する他の記憶装置における、前記第1のデータアクセス要求に対応するデータ範囲で算出された、応答時間平均値および応答時間標準偏差に基づき、前記第1の記憶装置の性能低下を判断する処理
を備える、付記13記載のストレージ制御方法。
【0206】
(付記15)
前記第1のデータアクセス要求に対する応答実績時間が、前記第1の記憶装置と同一のRAIDを構成する他の記憶装置における、前記第1のデータアクセス要求に対応するデータ範囲で算出された、前記応答時間平均値に前記応答時間標準偏差に3を乗算した値を加えた算出値よりも大きい場合に、前記第1の記憶装置に性能低下のおそれがあると判断する処理
を備える、付記14記載のストレージ制御方法。
【符号の説明】
【0207】
1 ストレージ装置(ストレージシステム;情報処理装置)
2 ホスト装置(サーバ)
3 管理端末
100,100a,100b CM(ストレージ制御装置)
101,102 CA
103 DA
104 PCIeインタフェース
105 CPU(第1処理部,コンピュータ)
106 メモリ(メインメモリ,第1メモリ領域)
107 フラッシュメモリ
108 IOC
109 チップセット
110 FPGA
131 第1通信パス
132 第2通信パス
151 情報採取部
152 平均時間算出部
153 標準偏差算出部
154 判断部
155 退避処理部
156 警告処理部
157 データ区分け部
158 ディスクアクセス制御部
159 ボリューム管理部
160 制御プログラム
161 キャッシュ領域
162 ログ情報記憶領域
163 レスポンス時間平均値情報
164 レスポンス時間標準偏差情報
30 DE(ドライブエンクロージャ)
31 記憶装置(ドライブ)
40 CE(コントローラエンクロージャ)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13