(57)【要約】  ストレージコントローラが、ＲＧ（ＲＡＩＤグループ）の稼働時間であるＲＧ稼働時間を測定する。ストレージコントローラが、ＲＧのＰＤＥＶ（物記憶デバイス）種別に対応した補正係数と、ＲＧに対するＩ／Ｏコマンドの多重度であるＲＧバックエンド多重度とに基づき、ＲＧ稼働率の算出に使用されるＲＧ稼働時間を補正する。
2018061068.tif 000002
【特許請求の範囲】
【請求項１】
複数の物理記憶デバイス（ＰＤＥＶ）で構成されたＲＡＩＤグループ（ＲＧ）と、
Ｉ／Ｏ要求を受信し、そのＩ／Ｏ要求に従うＩ／Ｏ先に対応したＰＤＥＶにＩ／Ｏコマンドを送信するストレージコントローラと
を有し、
前記ストレージコントローラが、
前記ＲＧを構成する前記複数のＰＤＥＶの各々について、Ｉ／ＯコマンドがそのＰＤＥＶに発行されてからそのＩ／Ｏコマンドに対する応答をそのＰＤＥＶから受信するまでの時間である稼働時間を測定することで、前記ＲＧの稼働時間であるＲＧ稼働時間を測定し、
前記ＲＧのＰＤＥＶ種別に対応した補正係数と前記ＲＧに対するＩ／Ｏコマンドの多重度であるＲＧバックエンド多重度とに従う補正値に基づき、表示対象のＲＧ稼働率の算出に使用される前記ＲＧ稼働時間を補正する、
ストレージシステム。
【請求項２】
前記ＰＤＥＶ種別が、複数のＩ／Ｏコマンドを多重で処理可能なＰＤＥＶである多重処理ＰＤＥＶの場合、前記ＲＧ稼働時間が補正され、
前記ＰＤＥＶ種別が、Ｉ／Ｏコマンドを一コマンドずつ処理するＰＤＥＶである逐次処理ＰＤＥＶの場合、前記ＲＧ稼働時間が補正されない、
請求項１記載のストレージシステム。
【請求項３】
前記逐次処理ＰＤＥＶに対応した補正係数は０である、
請求項２記載のストレージシステム。
【請求項４】
前記ＲＧ稼働時間に基づきＲＧ稼働率を算出する方法は、前記逐次処理ＰＤＥＶについての算出方法であり、
前記多重処理ＰＤＥＶについては、前記ＲＧ稼働時間を補正した後に前記算出方法と同様の算出方法を用いてＲＧ稼働率が算出される、
請求項２記載のストレージシステム。
【請求項５】
前記補正係数は、前記ＲＧのＰＤＥＶ種別に加えて、前記ＲＧのＲＡＩＤレベル及びＲＡＩＤ構成に従うＲＡＩＤ種別に対応している、
請求項１記載のストレージシステム。
【請求項６】
前記ＲＧ稼働時間は、前記ＲＧに対するＩ／Ｏパターン毎に測定され、
ランダムＩ／Ｏに対応したＲＧ稼働時間は、補正され、
シーケンシャルＩ／Ｏに対応したＲＧ稼働時間は、補正されない、
請求項１記載のストレージシステム。
【請求項７】
前記補正係数は、前記ストレージコントローラのフロントエンド側の負荷の実測値と前記ストレージコントローラのバックエンド側の負荷の実測値との関係を基に算出された値である、
請求項１記載のストレージシステム。
【請求項８】
前記フロントエンド側の負荷の実測値は、Ｉ／Ｏ要求を受信した頻度に従う値であり、
前記バックエンド側の負荷の実測値は、Ｉ／Ｏコマンドの多重度である、
請求項６記載のストレージシステム。
【請求項９】
前記ストレージコントローラは、前記補正値が１を超えている場合、前記補正値を１とする、
請求項１記載のストレージシステム。
【請求項１０】
ＲＡＩＤグループ（ＲＧ）を構成する複数の物理記憶デバイス（ＰＤＥＶ）の各々について、Ｉ／ＯコマンドがそのＰＤＥＶに発行されてからそのＩ／Ｏコマンドに対する応答をそのＰＤＥＶから受信するまでの時間である稼働時間を測定することで、前記ＲＧの稼働時間であるＲＧ稼働時間を測定し、
前記ＲＧのＰＤＥＶ種別に対応した補正係数と、前記ＲＧに対するＩ／Ｏコマンドの多重度であるＲＧバックエンド多重度とに基づき、表示対象のＲＧ稼働率の算出に使用される前記ＲＧ稼働時間を補正する、
ストレージ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、ストレージシステムの管理に関する。
【背景技術】
【０００２】
ストレージシステムのシステム負荷を越えるホストＩ／Ｏ（Input/Output）要求に対しては、ホストＩ／Ｏ要求を処理せず、ホストにエラー応答をするストレージシステムが知られている（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第4318914号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ストレージシステムは、一般に、ＲＡＩＤグループ（以下、ＲＧ）と、ＲＡＩＤグループに対するＩ／Ｏを制御するストレージコントローラとを有する。「ＲＡＩＤ」は、Redundant Array of Independent (or Inexpensive) Disksの略である。ＲＧは、複数のＰＤＥＶ（典型的には同種のＰＤＥＶ）、又は、複数のＰＤＥＶに基づく複数の記憶領域で構成され、そのＲＡＩＤグループに関連付けられたＲＡＩＤレベルに従いデータを記憶する。「ＰＤＥＶ」は、物理的な記憶デバイスを意味し、典型的には、不揮発性の記憶デバイス（例えば補助記憶デバイス）でよい。【０００５】
システム負荷（ストレージシステムの負荷）の一例として、ＲＧ稼働率がある。ＲＧ稼働率は、ＲＧの稼働状況（ＲＧを構成するＰＤＥＶの稼働状況）に基づき算出される。ＲＧ稼働率は、管理者にとって、ＲＧの増設又は減設、或いは、Ｉ／Ｏ負荷分散（例えば、ホストに提供される論理ボリュームの基になるＲＧを変更すること）のような作業の内容又はタイミングを決定する材料となる。ＲＧ稼働率として適切な値が提供されるためには、ＲＧを構成するＰＤＥＶの稼働状況を正確に特定できることが望ましい。【０００６】
ＰＤＥＶから、そのＰＤＥＶの稼働状況を表す情報を取得することで、そのＰＤＥＶの実際の稼働状況が分かることが期待される。しかし、ＰＤＥＶ稼働状況を表す情報を送信する機能を有していないＰＤＥＶからは、そのような情報を取得することはできない。
【課題を解決するための手段】
【０００７】
ストレージコントローラが、ＲＧの稼働時間であるＲＧ稼働時間を測定する。ストレージコントローラが、ＲＧのＰＤＥＶ種別に対応した補正係数と、ＲＧに対するＩ／Ｏコマンドの多重度であるＲＧバックエンド多重度とに基づき、ＲＧ稼働率の算出に使用されるＲＧ稼働時間を補正する。
【発明の効果】
【０００８】
ＰＤＥＶ稼働状況を表す情報をＰＤＥＶから取得すること無しに負荷の値として適切な値を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態の概要を示す模式図である。
【図２】ＰＤＥＶ稼働率の算出の一例を示す模式図である。
【図３】逐次処理ＰＤＥＶ及び多重処理ＰＤＥＶの各々についてＩ／Ｏコマンドの多重度と稼働時間との関係の一例を示す模式図である。
【図４】補正係数の算出方法を示す模式図である。
【図５】ストレージシステムの構成を示すブロック図である。
【図６】ＬＭ（ローカルメモリ）の構成を示すブロック図である。
【図７】コアメモリ情報のブロック図である。
【図８】ＳＭ（共有メモリ）に格納される情報を示すブロック図である。
【図９】ＰＤＥＶテーブルの構成図である。
【図１０】ＲＧテーブルの構成図である。
【図１１】補正係数テーブルの構成図である。
【図１２】補正フラグテーブルの構成図である。
【図１３】ストレージシステムにおいて行われる処理の模式図である。
【図１４】バックエンド処理の流れを示すフローチャートである。
【図１５】積算更新処理の流れを示すフローチャートである。
【図１６】集約処理の流れを示すフローチャートである。
【図１７】稼働時間決定処理の流れを示すフローチャートの一部である。
【図１８】稼働時間決定処理の流れを示すフローチャートの残りである。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、一実施形態を説明する。
【００１１】
以下の説明では、「インターフェース部」は、１以上のインターフェースである。１以上のインターフェースは、１以上の同種のインターフェースデバイス（例えば１以上のＮＩＣ（Network Interface Card））であってもよいし２以上の異種のインターフェースデバイス（例えばＮＩＣとＨＢＡ（Host Bus Adapter））であってもよい。また、以下の説明では、インターフェースデバイスを「Ｉ／Ｆ」と略記することがある。
【００１２】
また、以下の説明では、「メモリ部」は、１以上のメモリである。少なくとも１つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。
【００１３】
また、以下の説明では、「プロセッサ部」は、１以上のプロセッサである。少なくとも１つのプロセッサは、典型的には、ＣＰＵ（Central Processing Unit）である。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。いずれのプロセッサも、シングルコアでもマルチコアでもよい。
【００１４】
また、以下の説明では、「ＶＯＬ」は、論理ボリュームの略であり、論理的な記憶デバイスでよい。ＶＯＬは、１以上のＰＤＥＶ（典型的にはＲＧ）に基づく実体的なＶＯＬであってもよいし、１以上のＰＤＥＶに基づかない仮想的なＶＯＬであってもよい。
【００１５】
また、以下の説明では、「ｘｘｘテーブル」といった表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「ｘｘｘテーブル」を「ｘｘｘ情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、１つのテーブルは、２以上のテーブルに分割されてもよいし、２以上のテーブルの全部又は一部が１つのテーブルであってもよい。
【００１６】
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号（又は参照符号における共通部分）を使用し、同種の要素を区別して説明する場合は、要素のＩＤ（又は要素の参照符号）を使用することがある。例えば、コアを区別しないで説明する場合には、「コア５４」と言い、コアを区別して説明する場合には、「代表コア５４Ｒ」、「通常コア５４Ｎ」と言う。
【００１７】
また、以下の説明では、「ストレージシステム」は、１以上の物理的なストレージ装置であってもよいし、少なくとも１つの仮想的なストレージ装置（例えばＳＤＳ（Software Defined Storage））を含んでもよい。
【００１８】
また、以下の説明では、「ホスト計算機」は、ホストシステムの一例である。ホストシステムは、１以上の物理的なホスト計算機であってもよいし、少なくとも１つの仮想的なホスト計算機（例えばＶＭ（Virtual Machine））であってもよい。
【００１９】
また、以下の説明では、「管理計算機」は、管理システムの一例である。「管理システム」は、一以上の計算機で構成されてよい。具体的には、例えば、管理計算機が表示デバイスを有していて管理計算機が自分の表示デバイスに情報を表示する場合、管理計算機が管理システムでよい。また、例えば、管理計算機（例えばサーバ）が表示用情報を遠隔の表示用計算機（例えばクライアント）に送信し表示用計算機がその情報を表示する場合（管理計算機が表示用計算機に情報を表示する場合）、管理計算機と表示用計算機とのうちの少なくとも管理計算機を含んだシステムが管理システムでよい。
【００２０】
図１は、実施形態の概要を示す模式図である。
【００２１】
ストレージコントローラ３８は、ＭＰＰＫ（ＭＰ（Microprocessor）パッケージ）４４と、ＢＥ−Ｉ／Ｆ（バックエンドＩ／Ｆ）５２とを有する。ＢＥ−Ｉ／Ｆ５２に、ＰＤＥＶ４０が接続されている。ＭＰＰＫ４４は、ＰＤＥＶ負荷を表す情報をＰＤＥＶ４０から取得すること無しに、ＲＧ負荷を算出する。正確には、ＭＰＰＫ４４が、ＲＧ負荷を予測する。
【００２２】
具体的には、本実施形態では、ＲＧ負荷として、ＲＧ稼働率が採用される。ＭＰＰＫ４４は、ＲＧ内のＰＤＥＶの稼働時間と、サンプリング時間長とを基に、ＲＧ稼働率を算出する。その際、ＭＰＰＫ４４は、稼働時間を補正し、補正後稼働時間を基に、ＲＧ稼働率を算出する。稼働時間は、補正係数とバックエンド多重度を基に補正される。「稼働時間」は、ＰＤＥＶ稼働状況の一例であり、ＭＰＰＫ４４がＰＤＥＶ４０に対するＩ／Ｏコマンドを発行（例えば登録）してからそのＩ／Ｏコマンドに対する応答をＭＰＰＫ４４が受信するまでの時間長である。「サンプリング時間」は、基準となる時間長である。
【００２３】
図２に示すように、ＰＤＥＶ４０として、一般的に、ＨＤＤ（Hard Disk Drive）を採用することができる。ＨＤＤは、磁気ヘッドの移動や磁気ディスクの回転等の機械系動作を含むため、Ｉ／Ｏコマンドは一コマンドずつ処理される。このように、Ｉ／Ｏコマンドを一コマンドずつ処理するＰＤＥＶである逐次処理ＰＤＥＶについては、ＭＰＰＫ４４は、サンプリング時間に対する稼働時間の割合を、ＲＧ稼働率として算出できる。また、ＭＰＰＫ４４が、図３に示すように、逐次処理ＰＤＥＶの一例であるＨＤＤに対して複数のＩ／Ｏコマンドを発行した場合も、サンプリング時間に対する稼働時間の割合を、ＲＧ稼働率として算出できる。複数のＩ／Ｏコマンドが一コマンドずつ処理されるためである。
【００２４】
しかし、ＰＤＥＶとしては、複数のＩ／Ｏコマンドを多重で処理可能なＰＤＥＶである多重処理ＰＤＥＶもある。多重処理ＰＤＥＶの一例として、半導体メモリを記憶媒体として有するＰＤＥＶ、例えば、ＳＳＤ（Solid State Drive）がある。多重処理ＰＤＥＶの一例であるＳＳＤについて、Ｉ／Ｏコマンドが１つしか積まれていない場合と、複数のＩ／Ｏコマンドが積まれている場合とでは、多重処理ＰＤＥＶ内での実際の稼働状況は異なるにも関わらず、ＭＰＰＫ４４から見える稼働時間としては、実際の稼働状況の違いほどの違いが見られない。このため、逐次処理ＲＧ（逐次処理ＰＤＥＶで構成されたＲＧ）の稼働率を算出する方法をそのまま多重処理ＲＧ（多重処理ＰＤＥＶで構成されたＲＧ）に適用したのでは、適切なＲＧ稼働率を算出することができない。つまり、ＲＧの稼働状況を正しく予測することができない。
【００２５】
そこで、本実施形態では、多重処理ＲＧの稼働率の算出には、上述したように、バックエンド多重度が考慮される。これにより、多重処理ＲＧについて、適切な稼働率を算出することが期待される。
【００２６】
また、本実施形態では、多重処理ＰＤＥＶについては、稼働時間が、バックエンド多重度を基に補正される。これにより、サンプリング時間に対する稼働時間の割合をＲＧ稼働率として算出する方法、すなわち、逐次処理ＲＧについては適切な稼働率を算出できる方法を維持しつつ、多重処理ＲＧについても適切な稼働率を算出することが期待される。
【００２７】
稼働時間は、上述したように、補正係数とバックエンド多重度を基に補正される。図１に示すように、補正係数が同じ値であれば、バックエンド多重度が小さい程、補正後稼働時間は小さい。具体的には、例えば、補正後稼働時間は、稼働時間と補正係数とバックエンド多重度との積である。
【００２８】
補正係数は、図４に示すように、ストレージコントローラ３８のフロントエンド側の負荷の実測値とストレージコントローラ３８のバックエンド側の負荷の実測値との関係を基に算出された値である。具体的には、例えば、フロントエンド側の負荷がＸ軸とされ、バックエンド側の負荷がＹ軸とされ、近似式として得られた一次式における傾きＡを基に、補正係数が決定されている（例えば補正係数は傾きＡの逆数）。「フロントエンド側の負荷」の一例が、ＩＯＰＳ（I/O Per Second）比率である。「ＩＯＰＳ比率」は、ホスト計算機からの変動するアクセスパターンにおける１秒あたりに処理可能な最大Ｉ／Ｏコマンド数と実際に１秒あたりに処理したＩ／Ｏコマンド数の比率である（最大値：１００％）。「バックエンド側の負荷」の一例が、バックエンド多重度である。「バックエンド多重度」は、ＭＰＰＫ４４からＰＤＥＶ４０に対して発行されたＩ／Ｏコマンドの多重度、言い換えれば、多重発行された際のＩ／Ｏコマンドの数である。なお、近似式は、例えば図４に示すように、バックエンド多重度が急激に増えるＩＯＰＳ比率範囲は無視して決定される。また、補正係数は、例えば図４に示すように、ＲＡＩＤ種別（ＲＡＩＤレベルとＲＡＩＤ構成との組）とＰＤＥＶ種別との一方又は双方に応じて用意される。本実施形態では、補正係数は、ＲＡＩＤ種別とＰＤＥＶ種別との組毎に用意される。ＲＡＩＤ種別とＰＤＥＶ種別との組毎に、予め、ＩＯＰＳ比率とバックエンド多重度との関係が測定され、その実測値を基に、予め、補正係数が用意されていてよい。本実施形態では、補正係数は、予め用意された静的な値である。
【００２９】
以下、本実施形態を詳細に説明する。
【００３０】
図５は、ストレージシステムの構成を示すブロック図である。
【００３１】
ストレージシステム４２に、ホスト計算機３０及び管理計算機３４が、ネットワーク３６（１以上の通信ネットワーク）を介して接続されている。ネットワーク３６は、例えば、FC SAN（Fibre Channel Storage Area Network）、IP SAN（Internet Protocol Storage Area Network）、LAN（Local Area Network）、及びWAN（Wide Area Network）のうちの１以上のネットワークでよい。
【００３２】
ホスト計算機３０は、例えば、ＣＰＵ（Central Processing Unit）、メモリ、入出力インタフェース等の情報処理資源を備えたコンピュータ装置であり、例えば、パーソナルコンピュータ、ワークステーション、メインフレーム等として構成される。ホスト計算機３０は、ストレージシステム４２から提供されるＶＯＬ６８を指定したＩ／Ｏ要求（例えば、ライト要求又はリード要求）をストレージシステム４２に発行することで、ＶＯＬ６８にアクセスすることができる。
【００３３】
管理計算機３４は、ＭＰＰＫ４４によって算出されたＲＧ稼働率を表す情報をＭＰＰＫ４４から受信しＲＧ稼働率を表示する。ＲＧ稼働率は、管理計算機３４に代えて又は加えてホスト計算機３０に表示されてもよい。
【００３４】
ストレージシステム４２は、記憶部６４と、記憶部６４に接続されたストレージコントローラ３８とを有する。
【００３５】
記憶部６４は、複数（又は１）のＰＤＥＶ４０である。複数のＰＤＥＶ４０に基づき複数（又は１）のＲＧ４１が構成される。ＲＧ４１に基づきＶＯＬ６８が作成され、ホスト計算機３０に提供される。
【００３６】
ストレージコントローラ３８は、ホスト計算機３０からＩ／Ｏ要求を受信し、そのＩ／Ｏ要求で指定されているＶＯＬ６８の基になっているＲＧ４１のうち、そのＩ／Ｏ要求に従うＩ／Ｏ先に対応したＰＤＥＶ４０に、Ｉ／Ｏコマンドを送信する。ストレージコントローラ３８は、ＦＥ−Ｉ／Ｆ（フロントエンドＩ／Ｆ）４６と、ＢＥ−Ｉ／Ｆ５２と、ＭＰＰＫ４４と、メモリ４８と、それらに接続されたスイッチ５０とを有する。ＦＥ−Ｉ／Ｆ４６及びＢＥ−Ｉ／Ｆ５２が、インターフェース部の一例である。
【００３７】
ＦＥ−Ｉ／Ｆは、ネットワークを介してホスト計算機３０及び管理計算機３４に接続されるとともに、スイッチを介して、ＭＰＰＫ４４、メモリ４８及びＢＥ−Ｉ／Ｆ５２に接続される。
【００３８】
ＭＰＰＫ４４は、ＬＭ（ローカルメモリ）５８とＭＰ５６とを有する。本実施形態では、１つのＭＰＰＫ４４において、ＬＭ５８もＭＰ５６も１つであるが、ＬＭ５８及びＭＰ５６の各々は複数あってもよい。ＭＰ５６は、複数のコア５４を有する。複数のコア５４のうちの１つが、代表コア５４Ｒであり、残りが、通常コア５４Ｎである。本実施形態では、２つのＭＰＰＫ４４があるが、ＭＰＰＫ４４の数は、２より少なくても多くてもよい。ＭＰ５６は、４つのコア５４を有し、１つのコア５４が代表コア５４Ｒであり、３つのコア５４が通常コア５４Ｎである。１以上のＭＰＰＫ４４における１以上のＭＰ５６がプロセッサ部の一例である。
【００３９】
スイッチ５０は、ＭＰＰＫ４４、ＦＥ−Ｉ／Ｆ４６、ＢＥ−Ｉ／Ｆ５２及びメモリ４８といった要素間を接続する。
【００４０】
ＢＥ−Ｉ／Ｆ５２は、記憶部６４に対するデータのＩ／Ｏを制御する。
【００４１】
メモリ４８は、記憶部６４に入出力されるデータが一時的に格納されるＣＭ（キャッシュメモリ）６１と、ＭＰＰＫ４４間で共有される情報が格納されるＳＭ（共有メモリ）６２とを含む。メモリ４８が、メモリ部の一例である。メモリ部に、ＬＭ５８が含まれていてもよい。
【００４２】
図６は、ＬＭ５８の構成を示すブロック図である。
【００４３】
ＬＭ５８には、そのＬＭ５８を含んだＭＰＰＫ４４におけるコア５４毎に、メモリ領域８２がある。本実施形態では、１つの代表コアメモリ領域８２Ｒと、３つの通常コアメモリ領域８２Ｎがある。
【００４４】
代表コアメモリ領域８２Ｒは、代表コア５４Ｒのコアメモリ情報８４Ｒを格納し、作業メモリ８６を含む。通常コアメモリ領域８２Ｎは、そのメモリ領域８２Ｎに対応した通常コア５４Ｎのコアメモリ情報８４Ｎを格納する。
【００４５】
図７は、コアメモリ情報８４のブロック図である。以下、１つのコア５４に対応したコアメモリ情報８４を例に取る。図７の説明において、そのコアを、「対象コア」と呼ぶ。また、図７及びそれより後の図面において、“Ｄｘ”（ｘは０以上の整数）は、ＰＤＥＶ４０の識別情報であり、“Ｒｙ”（ｙは０以上の整数）は、ＲＧ４１の識別情報である。また、“ＲＲ”は、ランダムリードを意味し、“ＲＷ”は、ランダムライトを意味し、“ＳＲ”は、シーケンシャルリードを意味し、“ＳＷ”は、シーケンシャルライトを意味する。ここで言う「ランダム」及び「シーケンシャル」は、ストレージコントローラ３８（ＭＰＰＫ４４）からＲＧ４１に対するＩ／Ｏパターンである。
【００４６】
コアメモリ情報８４は、多重度情報９０と、積算値情報９２と、更新回数情報９４と、稼働時間情報９６とを含む。
【００４７】
多重度情報９０は、ＰＤＥＶ４０毎に、対象コアについてのバックエンド多重度（対象コアからＢＥ−Ｉ／Ｆ５２へのＩ／Ｏコマンドの多重度）９１を含む。バックエンド多重度９１は、或る時点での値である。
【００４８】
積算値情報９２は、ＰＤＥＶ４０毎に、或る周期におけるバックエンド多重度の積算値９３を含む。
【００４９】
更新回数情報９４は、ＰＤＥＶ４０毎に、積算値情報９２に積算値９３を格納した回数である更新回数（積算値を更新した回数）９５を含む。
【００５０】
稼働時間情報９６は、ＲＧ４１毎に、稼働時間９８を含む。各ＲＧ４１について、稼働時間９８は、Ｉ／Ｏパターン毎に用意される。Ｉ／Ｏパターンは、上述したように、ランダムリード、ランダムライト、シーケンシャルリード及びシーケンシャルライトの４種類がある。
【００５１】
図８は、ＳＭ６２に格納される情報を示すブロック図である。
【００５２】
ＳＭ６２は、積算値情報１２０と、更新回数情報１２２と、前回積算値情報１２４と、前回更新回数情報１２６と、稼働時間情報１３２と、ＰＤＥＶテーブル１２８と、ＲＧテーブル１３０と、補正係数テーブル１３４と、補正フラグテーブル１３６とを格納する。
【００５３】
積算値情報１２０は、ＲＧ４１毎に、或る周期におけるバックエンド多重度の集約積算値１２１を含む。ＲＧ４１について、「集約積算値」とは、そのＲＧ４１を構成する複数のＰＤＥＶ４０にそれぞれ対応した複数の合計積算値の合計である。ＰＤＥＶ４０について、「合計積算値」とは、そのＰＤＥＶ４０に対応した複数の積算値（複数のコア５４にそれぞれ対応した複数の積算値）の合計である。つまり、積算値情報１２０は、複数のコアメモリ領域８２内の積算値情報９２の集約結果である。
【００５４】
更新回数情報１２２は、ＲＧ４１毎に、積算値情報１２０に積算値を格納した回数である更新回数（積算値を更新した回数）１２３を含む。
【００５５】
前回積算値情報１２４は、ＲＧ４１毎に、前回積算値（前回（例えば直前回）の集約積算値）１２５を含む。前回更新回数情報１２６は、ＲＧ４１毎に、前回更新回数（前回（例えば直前回）の更新回数）１２７を含む。
【００５６】
ＰＤＥＶテーブル１２８は、ＰＤＥＶ４０に関する情報を保持するテーブルである。ＲＧテーブル１３０は、ＲＧ４１に関する情報を保持するテーブルである。補正係数テーブル１３４は、補正係数に関する情報を保持するテーブルである。補正フラグテーブル１３６は、後述の補正フラグを保持するテーブルである。
【００５７】
図９は、ＰＤＥＶテーブル１２８の構成図である。
【００５８】
ＰＤＥＶテーブル１２８は、ＰＤＥＶ４０毎にエントリを有する。各エントリは、ＰＤＥＶ４０番号と実装フラグといった情報を有する。
【００５９】
ＰＤＥＶ番号２００は、ＰＤＥＶ４０の識別番号である。実装フラグ２０２は、ＰＤＥＶ４０が実装されているか否かを表すフラグである。“ＯＦＦ”が未実装を意味し、“ＯＮ”が実装を意味する。
【００６０】
エントリ数は、ストレージシステム４２に物理的に実装可能なＰＤＥＶ４０の数と同じである。実装フラグ２０２としての値は、ストレージシステム起動時やストレージ構成変更時にＭＰＰＫ４４によって特定されるＰＤＥＶ実装状況に基づきＭＰＰＫ４４により更新される。
【００６１】
図１０は、ＲＧテーブル１３０の構成図である。
【００６２】
ＲＧテーブル１３０は、ＲＧ４１毎にエントリを有する。各エントリは、ＲＧ番号２１０、ＲＡＩＤレベル２１２、ＲＡＩＤ構成２１４、ＰＤＥＶ種別２１６及びＰＤＥＶ番号２１８といった情報を有する。
【００６３】
ＲＧ番号２１０は、ＲＧ４１の識別番号である。ＲＡＩＤレベル２１２は、ＲＧ４１のＲＡＩＤレベルを表す。ＲＡＩＤ構成２１４は、ＲＧ４１のＲＡＩＤ構成を表す。ＰＤＥＶ種別２１６は、ＲＧ４１を構成するＰＤＥＶ４０の種別を表す。ＰＤＥＶ番号２１８は、ＲＧ４１を構成するＰＤＥＶ４０の識別番号を表す。
【００６４】
図１１は、補正係数テーブル１３４の構成図である。
【００６５】
補正係数テーブル１３４は、ＰＤＥＶ種別とＲＡＩＤ種別との組毎に、補正係数を保持する。ＲＡＩＤ種別は、ＲＡＩＤレベル及びＲＡＩＤ構成で定義される。
【００６６】
図１２は、補正フラグテーブル１３６の構成図である。
【００６７】
補正フラグテーブル１３６は、ＰＤＥＶ種別とＩ／Ｏパターンとの組毎に補正フラグを有する。補正フラグは、稼働時間を補正するか否かを表す。“ＯＦＦ”は、稼働時間を補正しないことを意味し、“ＯＮ”は、稼働時間を補正することを意味する。
【００６８】
図１２によれば、ＰＤＥＶ４０が、逐次処理ＰＤＥＶの一例であるＨＤＤの場合、稼働時間の補正は不要とされている。ＨＤＤでは、Ｉ／Ｏコマンドが一コマンドずつ処理されるため、Ｉ／Ｏコマンドの多重度の違いが、ＭＰＰＫ４４において測定される稼働時間に表れるためである。このため、ＨＤＤの稼働率の算出についての計算量は削減される。
【００６９】
また、図１２によれば、Ｉ／Ｏパターンが、シーケンシャルライト及びシーケンシャルリードのいずれの場合にも、稼働時間の補正は不要とされている。なぜなら、シーケンシャルライト及びシーケンシャルリードのいずれについても、バックエンド多重度の多寡に関わらず、逐次処理ＰＤＥＶと多重処理ＰＤＥＶ間で稼働状況の違いが表れづらいからである。
【００７０】
以下、本実施形態で行われる処理を説明する。
【００７１】
図１３は、ストレージシステム４２において行われる処理の模式図である。
【００７２】
各コア５４が、バックエンド処理を実行する。また、各コア５４が、積算更新処理を実行する。
【００７３】
代表コア５４Ｒのみが、集約処理、及び、稼働時間決定処理を実行する。
【００７４】
図１４は、バックエンド処理の流れを示すフローチャートである。図１４の説明では、１つのコアを例に取る。そのコアを、図１４の説明において、「対象コア」と呼ぶ。
【００７５】
対象コア５４は、ＢＥ−Ｉ／Ｆ５２に対してＩ／Ｏコマンドを発行する際（Ｓ２０：ＹＥＳ）、そのＩ／Ｏコマンドの発行先ＰＤＥＶ４０に対応するバックエンド多重度９１をインクリメントする（Ｓ２１）。例えば、図３に示したように４多重でＩ／Ｏコマンドが送信された場合、発行先ＰＤＥＶ４０に対応するバックエンド多重度９１は、Ｓ２１では４インクリメントされる。次に、対象コア５４は、稼働時間の測定を開始する（Ｓ２２）。
【００７６】
また、対象コア５４は、ＢＥ−Ｉ／Ｆ５２経由でＩ／Ｏコマンドに対する応答を受信した際（Ｓ３０：ＹＥＳ）、そのＩ／Ｏコマンドの発行先ＰＤＥＶ４０に対応するバックエンド多重度９１をデクリメントする（Ｓ３１）。例えば、図３に示したように４多重のＩ／Ｏコマンドにそれぞれ対応した４つの応答が受信された場合、発行先ＰＤＥＶ４０に対応するバックエンド多重度９１は、Ｓ３１では４デクリメントされる。次に、対象コア５４は、稼働時間の測定を終了する（Ｓ３２）。対象コア５４は、発行先ＰＤＥＶ４０を含んだＲＧ４１をＲＧテーブル１３０から特定し、特定したＲＧ４１と受信した応答に関わるＩ／Ｏパターンとに対応した稼働時間９８に、Ｓ３２の終了時点で得られた稼働時間を加算する（Ｓ３３）。
【００７７】
図１５は、積算更新処理の流れを示すフローチャートである。図１５の説明では、１つのコアを例に取る。そのコアを、図１５の説明において、「対象コア」と呼ぶ。
【００７８】
対象コア５４は、ＬＭ５８へ情報を反映する時間（周期）であれば（Ｓ４０：ＹＥＳ）、ＰＤＥＶテーブル１２８を参照して、ＰＤＥＶ４０毎に実装か未実装かを特定する（Ｓ４１）。
【００７９】
対象コア５４は、Ｓ４２以降が未実施のＰＤＥＶ４０のうちの１つのＰＤＥＶ４０について、そのＰＤＥＶ４０が実装されているか否かを判断する（Ｓ４２）。Ｓ４２の判断結果が真の場合（Ｓ４２：ＹＥＳ）、対象コア５４は、そのＰＤＥＶ４０に対応したバックエンド多重度９１を、そのＰＤＥＶ４０に対応した積算値９３に加算する（Ｓ４３）。また、対象コア５４は、そのＰＤＥＶ４０に対応した更新回数９５をインクリメントする（Ｓ４４）。Ｓ４４の後、又は、Ｓ４２の判断結果が偽の場合（Ｓ４２：ＮＯ）、対象コア５４は、全てのＰＤＥＶ４０についてＳ４２以降が実施済みか否かを判断する（Ｓ４５）。Ｓ４５の判断結果が偽の場合、Ｓ４２以降が未実施のＰＤＥＶ４０のうちの１つのＰＤＥＶ４０について、Ｓ４２が実施される。
【００８０】
図１６は、集約処理の流れを示すフローチャートである。図１６の説明では、１つの代表コア５４Ｒを例に取る。その代表コア５４Ｒを、図１６の説明において、「対象代表コア」と呼ぶ。
【００８１】
対象代表コア５４Ｒは、ＳＭ６２へ情報を反映する時間（周期）であれば（Ｓ５０：ＹＥＳ）、ＲＧテーブル１３０から１つのＲＧの情報を取得する（Ｓ５１）。
【００８２】
Ｓ５１で取得した情報に対応したＲＧについて、対象代表コア５４Ｒは、次の処理を行う。以下、図１６の説明において、そのＲＧを「対象ＲＧ」と呼ぶ。
【００８３】
対象代表コア５４Ｒは、対象ＲＧ４１内の１つのＰＤＥＶ４０に対応した積算値９３及び更新回数９５を、ＬＭ５８における各コアメモリ領域８２から取得し、取得した積算値９３及び更新回数９５を作業メモリ８６に格納する（Ｓ５２）。次に、対象代表コア５４Ｒは、そのＰＤＥＶ４０に対応した積算値９３及び更新回数９５（各コアメモリ領域８２内の値）を“０”にする（Ｓ５３）。次に、対象代表コア５４Ｒは、Ｓ５２で格納された積算値９３及び更新回数９５を、作業メモリ８６における累積積算値及び累積更新回数（対象ＲＧについて累積された積算値及び更新回数）にそれぞれ加算する（Ｓ５４）。
【００８４】
対象代表コア５４Ｒは、対象ＲＧ４１内のＳ５２以降が未実施のＰＤＥＶ４０があれば（Ｓ５５：ＮＯ）、そのＰＤＥＶ４０についてＳ５２以降を実施する。対象代表コア５４Ｒは、対象ＲＧ４１内の全てのＰＤＥＶ４０についてＳ５２以降を実施した場合（Ｓ５５：ＹＥＳ）、対象ＲＧ４１についてＳ５６及びＳ５７を実施する。すなわち、対象代表コア５４Ｒは、作業メモリ内の累積積算値をＰＤＥＶ数（対象ＲＧ４１を構成するＰＤＥＶ４０の数）で割った値（商）を、対象ＲＧ４１に対応した積算値１２１に加算する（Ｓ５６）。また、対象代表コア５４Ｒは、作業メモリ内の累積更新回数をＰＤＥＶ数（対象ＲＧ４１を構成するＰＤＥＶ４０の数）で割った値（商）を、対象ＲＧ４１に対応した更新回数１２３に加算する（Ｓ５７）。
【００８５】
対象代表コア５４Ｒは、Ｓ５１が行われていないＲＧ４１があれば（Ｓ５８：ＮＯ）、そのＲＧ４１についてＳ５１を実施する。
【００８６】
図１７及び図１８は、稼働時間決定処理の流れを示すフローチャートである。図１７及び図１８の説明では、１つの代表コア５４Ｒを例に取る。その代表コア５４Ｒを、図１７及び図１８の説明において、「対象代表コア」と呼ぶ。
【００８７】
対象代表コア５４Ｒは、ＳＭ６２へ情報を反映する時間（周期）であれば（Ｓ６０：ＹＥＳ）、ＲＧテーブル１３０から１つのＲＧの情報を取得する（Ｓ６１）。
【００８８】
Ｓ６１で取得した情報に対応したＲＧ４１について、対象代表コア５４Ｒは、次の処理を行う。以下、図１７及び図１８の説明において、そのＲＧ４１を「対象ＲＧ」と呼ぶ。
【００８９】
対象代表コア５４Ｒは、対象ＲＧ４１に対応した前回積算値１２５及び前回更新回数１２７を前回積算値情報１２４及び前回更新回数情報１２２から取得する（Ｓ６２）。次に、対象代表コア５４Ｒは、対象ＲＧ４１に対応した積算値１２１及び更新回数１２３を積算値情報１２０及び更新回数情報１２２から取得する（Ｓ６３）。
【００９０】
次に、対象代表コア５４Ｒは、積算値差分（（Ｓ６３で取得した積算値１２１）−（Ｓ６２で取得した前回積算値１２５））を更新回数差分（（Ｓ６３で取得した更新回数１２３）−（Ｓ６２で取得した前回更新回数１２７））で除算することにより、或る周期における平均バックエンド多重度を算出する（Ｓ６４）。平均バックエンド多重度は、ＲＧバックエンド多重度の一例である。ＲＧバックエンド多重度は、平均バックエンド多重度に代えて、ＲＧを構成する複数のＰＤＥＶにそれぞれ対応した複数のバックエンド多重度のうちの最大値又は最小値でもよい。
【００９１】
次に、対象代表コア５４Ｒは、Ｓ６３で取得した積算値１２１及び更新回数１２３を、前回積算値１２５及び前回更新回数１２７として前回積算値情報１２４及び前回更新回数情報１２２に格納する（Ｓ６５）。
【００９２】
次に、対象代表コア５４Ｒは、対象ＲＧ４１のＲＡＩＤ種別及びＰＤＥＶ種別に対応した補正係数を、補正係数テーブル１３４から取得する（Ｓ６６）。
【００９３】
次に、対象代表コア５４Ｒは、Ｓ６６で取得した補正係数とＳ６４で算出された平均バックエンド多重度との積である補正値が１以上か否かを判断する（Ｓ６７）。
【００９４】
Ｓ６７の判断結果が真の場合（Ｓ６７：ＹＥＳ）、対象代表コア５４Ｒは、補正値＝１とする（Ｓ６８）。稼働時間がより長い時間に補正されないようにするためである。
【００９５】
Ｓ６７の判断結果が偽の場合（Ｓ６７：ＹＥＳ）、すなわち、補正値が１未満の場合、対象代表コア５４Ｒは、複数のＩ／ＯパターンのうちＳ６９以降が未処理の１つのＩ／Ｏパターンについて、Ｓ６９以降を実施する。以下、そのＩ／Ｏパターンを、「対象Ｉ／Ｏパターン」と呼ぶ。
【００９６】
対象代表コア５４Ｒは、補正フラグテーブル１３６を参照し、対象ＲＧ４１のＰＤＥＶ種別と対象Ｉ／Ｏパターンとに対応した補正フラグが“ＯＮ”か否かを判断する（Ｓ６９）。
【００９７】
Ｓ６９の判断結果が真の場合（Ｓ６９：ＹＥＳ）、対象代表コア５４Ｒは、対象ＲＧ４１についての補正値が０か否かを判断する（Ｓ７０）。例えば、逐次処理ＰＤＥＶの一例であるＨＤＤについては、稼働時間の補正が不要のため、補正係数が０とされていてよく、故に、補正値は０でよい。
【００９８】
Ｓ７０の判断結果が偽の場合（Ｓ７０：ＮＯ）、つまり、補正値が０より大きい場合、対象代表コア５４Ｒは、対象ＲＧ４１及び対象Ｉ／Ｏパターンに対応する稼働時間１３１を稼働時間情報１３２から特定し、特定した稼働時間１３１と補正値との積を補正後稼働時間として算出する（Ｓ７１）。次に、対象代表コア５４Ｒは、Ｓ７１で取得された稼働時間１３１（稼働時間情報１３２内の値）を“０”にする（Ｓ７２）。対象代表コア５４Ｒは、補正後稼働時間を、対象ＲＧ４１及び対象Ｉ／Ｏパターンに対応する稼働時間１３１として、Ｓ７２での更新後の値（“０”）に上書きする（Ｓ７３）。
【００９９】
対象代表コア５４Ｒは、Ｓ６９以降が未処理のＩ／Ｏパターンがあれば（Ｓ７４：ＮＯ）、そのＩ／ＯパターンについてＳ６９以降を実施する。
【０１００】
また、対象代表コア５４Ｒは、Ｓ６２以降が未処理のＲＧがあれば（Ｓ７５：ＮＯ）、そのＲＧについてＳ６２以降を実施する。
【０１０１】
以上、一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【０１０２】
例えば、ＲＧテーブル１３０に、ＲＧ毎に、ＲＧ稼働率（＝｛（稼働時間又は補正後稼働時間）／サンプリング時間）｝ｘ１００（％））が登録されてよい。ＲＧ稼働率は、ＭＰＰＫ４４（例えば代表コア５４Ｒ）によって算出され登録されてもよい。なお、補正後稼働時間は、上述したように、稼働時間と補正値との積である。
【０１０３】
また、例えば、ＰＤＥＶ種別とＲＡＩＤ種別との組毎の補正係数は、動的に更新されてもよい。具体的には、例えば、ストレージシステム４２の稼働中において、ＭＰＰＫ４４は、定期的に、ＰＤＥＶ種別とＲＡＩＤ種別との組毎に、バックエンド多重度とＩＯＰＳ比率とを登録し、且つ、それらを基に補正係数を算出し、算出された補正係数を補正係数テーブル１３４に登録してよい。
【０１０４】
また、例えば、稼働時間の補正と、ＰＤＥＶ稼働率の算出との一方又は双方が、ストレージコントローラ３８に代えて、ホスト計算機３０及び管理計算機３４のいずれかによって行われてもよい。
【０１０５】
また、例えば、表示対象のＲＧ稼働率は、Ｉ／Ｏパターン毎のＲＧ稼働率であってもよいし、複数のＩ／Ｏパターンにそれぞれ対応した複数のＲＧ稼働率の平均値（又は最小値或いは最大値）であってもよい。
【０１０６】
また、例えば、Ｉ／Ｏパターンは、シーケンシャルＩ／ＯとランダムＩ／Ｏの２種類であってもよい。
【０１０７】
また、例えば、ＲＧを構成する複数のＰＤＥＶの稼働時間又は補正後稼働時間を基にＲＧ稼働率が算出されることに代えて、ＰＤＥＶの稼働時間又は補正後稼働時間を基にそのＰＤＥＶの稼働率が算出されてもよい。ＲＧを構成する複数のＰＤＥＶの稼働率を基にそのＲＧの稼働率が算出されてもよい。ＲＧ稼働率に代えて又は加えて、ＰＤＥＶ稼働率が表示されてもよい。
【０１０８】
また、例えば、本発明は、ＲＧ稼働率以外にも、ＰＤＥＶ稼働時間（ＰＤＥＶ稼働状況の一例）を基に算出される他種のシステム負荷の算出にも適用できる。
【符号の説明】
【０１０９】
４２…ストレージシステム
【図１】
2018061068.tif 000003
【図２】
2018061068.tif 000004
【図３】
2018061068.tif 000005
【図４】
2018061068.tif 000006
【図５】
2018061068.tif 000007
【図６】
2018061068.tif 000008
【図７】
2018061068.tif 000009
【図８】
2018061068.tif 000010
【図９】
2018061068.tif 000011
【図１０】
2018061068.tif 000012
【図１１】
2018061068.tif 000013
【図１２】
2018061068.tif 000014
【図１３】
2018061068.tif 000015
【図１４】
2018061068.tif 000016
【図１５】
2018061068.tif 000017
【図１６】
2018061068.tif 000018
【図１７】
2018061068.tif 000019
【図１８】
2018061068.tif 000020
【国際調査報告】
2018061068.tif 000021
2018061068.tif 000022
2018061068.tif 000023