(57)【要約】【課題】アレイを構成するディスク装置の利用効率を高める。【解決手段】モジュール１２５ａは、アレイ毎に、そのアレイの代表ＨＤＤの記憶領域に含まれる複数のエクステントにそれぞれ属するエクステントチャンクについて、未完了のアクセス要求を実行中Ｉ／Ｏとしてサンプリングすることで、同時にＩ／Ｏ存在率（第１の存在率）、ＨＤＤＩ／Ｏ存在率（第２の存在率）、及びエクステントチャンクＩ／Ｏ存在率（第３の存在率）を算出する。エンジン１２５ｃは、第１の存在率が下げられるべきエクステントチャンクが属する第１のエクステントと、第２の存在率が相対的に低いアレイの代表ＨＤＤに含まれる、第３の存在率が最も低いエクステントチャンクが属する第２のエクステントとを選択する。モジュール１２５ｂは、第１及び第２のエクステントの間でデータを再配置するエクステントマイグレーションを実行する。【選択図】      図９
2008046763.tif 000002
【特許請求の範囲】
【請求項１】
１台以上のディスク装置の記憶領域が連続した１つの領域として定義される複数のアレイを含み、前記アレイの全領域を複数のエクステントに分割し、１つ以上のエクステントを組み合わせることによってホスト装置から認識される論理ボリュームを構成する少なくとも１台のディスクアレイ装置を有するディスクアレイサブシステムにおいて、
前記少なくとも１台のディスクアレイ装置は、
前記アレイ毎に、そのアレイを構成するディスク装置のうちの予め定められた代表ディスク装置の記憶領域に含まれる前記複数のエクステントにそれぞれ属するエクステントチャンクについて、あるサンプリング周期で未完了のアクセス要求を実行中Ｉ／Ｏとしてサンプリングすることにより、当該エクステントチャンクを含む複数のエクステントチャンクに同時に実行中Ｉ／Ｏが存在する度合いを表す第１の存在率、前記代表ディスク装置に実行中Ｉ／Ｏが存在する度合いを表す第２の存在率、及び当該エクステントチャンクに実行中Ｉ／Ｏが存在する度合いを表す第３の存在率を算出する算出手段と、
前記第１乃至第３の存在率に基づき、前記第１の存在率が下げられるべきエクステントチャンクが属するエクステントを第１のエクステントとして選択すると共に、当該第１のエクステントを含むアレイの代表ディスク装置とは別の、当該第１のエクステントを含むアレイの代表ディスク装置に対して、前記第２の存在率が相対的に低いアレイの代表ディスク装置に含まれるエクステントチャンクの中から、前記第３の存在率が最も低いエクステントチャンクが属するエクステントを第２のエクステントとして選択する選択手段と、
前記第１及び第２のエクステントの間でデータを再配置するアレイ間エクステントマイグレーションを実行するエクステントマイグレーション実行手段と
を具備することを特徴とするディスクアレイサブシステム。
【請求項２】
前記選択手段は、
前記複数のアレイのうちデータ再配置の候補として予め定められたアレイグループに属するアレイの各々を構成するエクステントの中で、前記第１の存在率が最も高いエクステントチャンクが属するエクステントを前記第１のエクステントとして選択し、
前記アレイグループに属するアレイの各々の代表ディスク装置のうちの、前記第２の存在率が最も低い代表ディスク装置に含まれるエクステントチャンクの中から、前記第３の存在率が最も低いエクステントチャンクを選択して、当該選択されたエクステントチャンクが属するエクステントを前記第２のエクステントとして選択する
ことを特徴とする請求項１記載のディスクアレイサブシステム。
【請求項３】
前記選択手段は、前記エクステントマイグレーション実行手段によって最後に前記エクステントマイグレーションが実行されてからの経過時間が一定時間以上となり、前記アレイグループに属するアレイの代表ディスク装置の前記第２の存在率の最大値と最小値の差分が一定値以上となり、前記アレイグループに属するアレイの代表ディスク装置の前記第２の存在率の最小値が一定値以下となり、且つ前記アレイグループに属するアレイの代表ディスク装置に含まれるエクステントチャンクの前記第１の存在率の最大値が一定値以上となった場合に、次のエクステントマイグレーションの対象となる前記第１及び第２のエクステントを選択することを特徴とする請求項２記載のディスクアレイサブシステム。
【請求項４】
前記選択手段は、Ｎを２以上の整数であるとすると、前記複数のアレイのうちの任意のアレイを対象に、当該任意のアレイの代表ディスク装置に含まれるエクステントチャンクの中から、前記第３の存在率が高いＮ個のエクステントチャンクを選択して、当該選択されたＮ個のエクステントチャンクが属するＮ個のエクステントまたは当該Ｎ個のエクステントのうちのＮ−１個のエクステントを１つずつ第３のエクステントとして選択すると共に、前記Ｎ個またはＮ−１個の第３のエクステントとの間のアレイ内エクステントマイグレーションの対象となる前記任意のアレイ内のＮ個またはＮ−１個のエクステントであって、前記アレイ内エクステントマイグレーションの対象となる前記Ｎ個のエクステント相互の前記アレイ内の位置、または前記Ｎ個のエクステントのうちの前記Ｎ−１個の第３のエクステントを除く１つ及び前記アレイ内エクステントマイグレーションの対象となる前記Ｎ−１個のエクステント相互の前記アレイ内の位置が、前記第３の存在率が高い前記Ｎ個のエクステントチャンクが属する前記Ｎ個のエクステント相互の前記アレイ内の位置よりも近くなるＮ個またはＮ−１個のエクステントを１つずつ第４のエクステントとして選択し、
前記エクステントマイグレーション実行手段は、前記第３及び第４のエクステントの対が選択される都度、選択された第３及び第４のエクステントの間でデータを再配置するアレイ内エクステントマイグレーションを実行する
ことを特徴とする請求項１記載のディスクアレイサブシステム。
【請求項５】
前記選択手段は、前記複数のアレイのうちの任意のアレイを構成するエクステントを、前記第３の存在率が最も高いエクステントチャンクが属するエクステントから前記第３の存在率の降順に１つずつ第３のエクステントとして選択すると共に、当該選択された第３のエクステントとの間のアレイ内エクステントマイグレーションの対象となるエクステントを前記任意のアレイを構成するディスク装置の外周から内周方向に１つずつ第４のエクステントとして選択することによって、前記アレイ内エクステントマイグレーションの対象となる第３及び第４のエクステントの対を逐次選択し、
前記エクステントマイグレーション実行手段は、前記第３及び第４のエクステントの対が選択される都度、前記選択された第３及び第４のエクステントの間でデータを再配置するアレイ内エクステントマイグレーションを実行する
ことを特徴とする請求項１記載のディスクアレイサブシステム。
【請求項６】
前記選択手段は、前記エクステントマイグレーション実行手段によって最後に前記アレイ内エクステントマイグレーションが実行されてからの経過時間が一定時間以上となり、且つ前記アレイ内エクステントマイグレーションの候補となる１対のエクステントに含まれる１対のエクステントチャンクであって、当該１対のエクステントが属するアレイの代表ディスク装置に含まれる１対のエクステントチャンクの前記第３の存在率の差分が一定値以上となった場合に、前記１対のエクステントを次のアレイ内エクステントマイグレーションの対象となる前記第３及び第４のエクステントの対として選択することを特徴とする請求項４または５に記載のディスクアレイサブシステム。
【請求項７】
前記エクステントマイグレーション実行手段は、前記アレイ間のエクステントマイグレーションを実行し、しかる後に当該アレイ間のエクステントマイグレーションの対象となったアレイの各々を対象に、前記アレイ内のエクステントマイグレーションを実行することを特徴とする請求項４または５に記載のディスクアレイサブシステム。
【請求項８】
前記少なくとも１台のディスクアレイ装置はネットワークにより接続された複数のディスクアレイ装置であり、
前記複数のディスクアレイ装置の前記エクステントマイグレーション実行手段は、当該ディスクアレイ装置内で前記アレイ間のエクステントマイグレーションを実行した後、前記複数のディスクアレイ装置の間で前記アレイ間のエクステントマイグレーションを実行し、しかる後に当該アレイ間のエクステントマイグレーションの対象となったアレイの各々を対象に、前記アレイ内のエクステントマイグレーションを実行することを特徴とする請求項４または５に記載のディスクアレイサブシステム。
【請求項９】
１台以上のディスク装置の記憶領域が連続した１つの領域として定義されるアレイを含み、前記アレイの全領域を複数のエクステントに分割し、１つ以上のエクステントを組み合わせることによってホスト装置から認識される論理ボリュームを構成する少なくとも１台のディスクアレイ装置を有するディスクアレイサブシステムにおいて、
前記少なくとも１つの前記ディスクアレイ装置は、
前記アレイを構成するディスク装置のうちの予め定められた代表ディスク装置の記憶領域に含まれる前記複数のエクステントにそれぞれ属するエクステントチャンクについて、あるサンプリング周期で未完了のアクセス要求を実行中Ｉ／Ｏとしてサンプリングすることにより、当該エクステントチャンクに実行中Ｉ／Ｏが存在する度合いを表すエクステントチャンクＩ／Ｏ存在率を算出する算出手段と、
Ｎを２以上の整数であるとすると、前記複数のアレイのうちの任意のアレイを対象に、当該任意のアレイの代表ディスク装置に含まれるエクステントチャンクの中から、前記第３の存在率が高いＮ個のエクステントチャンクを選択して、当該選択されたＮ個のエクステントチャンクが属するＮ個のエクステントまたは当該Ｎ個のエクステントのうちのＮ−１個のエクステントを１つずつ第３のエクステントとして選択すると共に、前記Ｎ個またはＮ−１個の第３のエクステントとの間のアレイ内エクステントマイグレーションの対象となる前記任意のアレイ内のＮ個またはＮ−１個のエクステントであって、前記アレイ内エクステントマイグレーションの対象となる前記Ｎ個のエクステント相互の前記アレイ内の位置、または前記Ｎ個のエクステントのうちの前記Ｎ−１個の第３のエクステントを除く１つ及び前記アレイ内エクステントマイグレーションの対象となる前記Ｎ−１個のエクステント相互の前記アレイ内の位置が、前記第３の存在率が高い前記Ｎ個のエクステントチャンクが属する前記Ｎ個のエクステント相互の前記アレイ内の位置よりも近くなるＮ個またはＮ−１個のエクステントを１つずつ第４のエクステントとして選択する選択手段と、
前記第３及び第４のエクステントの対が選択される都度、選択された第３及び第４のエクステントの間でデータを再配置するアレイ内エクステントマイグレーションを実行するエクステントマイグレーション実行手段と
を具備することを特徴とするディスクアレイサブシステム。
【請求項１０】
１台以上のディスク装置の記憶領域が連続した１つの領域として定義される複数のアレイを含み、前記アレイの全領域を複数のエクステントに分割し、１つ以上のエクステントを組み合わせることによってホスト装置から認識される論理ボリュームを構成するディスクアレイ装置に含まれるコントローラによって実行されるプログラムであって、
前記コントローラに、
前記アレイ毎に、そのアレイを構成するディスク装置のうちの予め定められた代表ディスク装置の記憶領域に含まれる前記複数のエクステントにそれぞれ属するエクステントチャンクについて、あるサンプリング周期で未完了のアクセス要求を実行中Ｉ／Ｏとしてサンプリングすることにより、当該エクステントチャンクを含む複数のエクステントチャンクに同時に実行中Ｉ／Ｏが存在する度合いを表す第１の存在率、前記代表ディスク装置に実行中Ｉ／Ｏが存在する度合いを表す第２の存在率、及び当該エクステントチャンクに実行中Ｉ／Ｏが存在する度合いを表す第３の存在率を算出するステップと、
前記第１乃至第３の存在率に基づき、前記第１の存在率が下げられるべきエクステントチャンクが属するエクステントを第１のエクステントとして選択すると共に、当該第１のエクステントを含むアレイの代表ディスク装置とは別の、当該第１のエクステントを含むアレイの代表ディスク装置に対して、前記第２の存在率が相対的に低いアレイの代表ディスク装置に含まれるエクステントチャンクの中から、前記第３の存在率が最も低いエクステントチャンクが属するエクステントを第２のエクステントとして選択するステップと、
前記第１及び前記第２のエクステントの間でデータを再配置するアレイ間エクステントマイグレーションを実行するステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト装置から認識される論理ボリュームを構成する少なくとも１台のディスクアレイ装置を有するディスクアレイサブシステムに係り、特に、エクステント単位で自律的にデータの再配置を行うのに好適な仮想化機能を備えるディスクアレイサブシステム及びプログラムに関する。
【背景技術】
【０００２】
ディスクアレイサブシステムはストレージシステムの代表として知られている。ディスクアレイサブシステムは、少なくとも１つのアレイ（ディスクアレイ）を有している。アレイは、１台以上のディスク装置、例えば１台以上のハードディスクドライブ（ＨＤＤ）から構成される。このアレイを利用して、ホスト装置から認識される仮想的な記憶領域、つまり論理ボリュームが定義される。ホスト装置からのディスクアレイサブシステムに対するアクセスは、この論理ボリュームに対して行われる。
【０００３】
ここで、複数のアレイを有するディスクアレイサブシステムを想定する。このようなディスクアレイサブシステムでは、例えば、あるアレイにアクセスが集中し、他のアレイにアクセスが殆ど発生していない事態が生じることがある。
【０００４】
ところが従来のディスクアレイサブシステムでは、論理ボリュームと、その論理ボリュームを構成するアレイ（を含むディスクアレイ装置）との対応関係は固定的である。このため、アレイ毎にアクセス頻度に偏りが生じても、アレイ毎のアクセス頻度を均一化することができない。このような状況では、ディスクアレイサブシステム内のＨＤＤを有効利用することは困難である。
【０００５】
特に、近年のディスクアレイサブシステムの規模の増大と、ＨＤＤ単体の記憶容量の増加により、上記のようなアクセスの偏りの発生頻度は高まり、今後、その傾向は更に顕著になっていくと考えられる。
【０００６】
このような背景の下、例えば特許文献１には、物理ボリュームのアクセス頻度に応じて論理ボリュームを再構成する技術（第１の先行技術）が記載されている。また、特許文献２には、論理ディスク（論理ボリューム）を構成する物理ディスクのＩ／Ｏ競合頻度を検出し、論理ディスクの中でアクセス頻度が高い物理ディスクを他の論理ディスクへ再配置する技術（第２の先行技術）が記載されている。
【特許文献１】特開２００４−２７２３２４号公報
【特許文献２】特許第３４２７７６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述した第１及び第２の先行技術によれば、アクセス頻度（Ｉ／Ｏ競合頻度）に応じて物理ボリューム（物理ディスク）が再配置される。つまり、論理ボリュームと、その論理ボリュームを構成するアレイとの対応関係がアクセス頻度に応じて動的に管理される。
【０００８】
また近年は、ディスクアレイサブシステム内のアレイの全領域（物理記憶リソース）をある一定サイズの領域（エクステント）に区切り、それら１つ以上の組み合わせと論理ボリュームとの対応関係を動的に管理する技術（いわゆるディスクアレイサブシステムの仮想化技術）の必要性が高まり、実用化されてきている。この仮想化技術においては、エクステント間のデータコピーを行うことによって、データを保持したまま、データの物理的存在位置を変更することが可能となる。
【０００９】
そこで、上記第１または第２の先行技術を上述の仮想化技術に適用することが考えられる。例えば、エクステントに対応する単体ＨＤＤの領域（以下、エクステントチャンクと称する）を単位にアクセス頻度を検出し、各エクステントチャンクをアクセス頻度に応じてアレイをまたがって（または同一アレイ内で）再配置することが考えられる。
【００１０】
しかし、各エクステントチャンクをアクセス頻度に応じて再配置する手法は、ＨＤＤを有効利用するには、以下に述べる理由により必ずしも十分でない。  
まず、ＨＤＤでは、同時に複数のアクセス要求（Ｉ／Ｏ要求）を処理できない。またＨＤＤでは、複数の要求が異なるエクステントチャンクに対するものであっても、当該異なるエクステントチャンクに同時にアクセスすることはできない。このようなＨＤＤの特性から、ＨＤＤでは、複数のエクステントチャンクに対して未完了のアクセス要求（Ｉ／Ｏ要求）が同時に存在する状態が発生する。このような状態は、ＨＤＤ全体のアクセス頻度あるいはエクステントチャンクのアクセス頻度が低くても発生する。つまり、ＨＤＤの特性を考慮すると、アクセス頻度よりも、複数のエクステントチャンクに対する未完了のＩ／Ｏ要求が同時に存在する割合（以下、同時Ｉ／Ｏ存在率と称する）が重要である。
【００１１】
今、特定のエクステントチャンクのみにアクセスが集中しているために、ＨＤＤ全体のアクセス頻度が高いＨＤＤを想定する。このようなＨＤＤは、同時Ｉ／Ｏ存在率が低く、アイドル状態となっている度合いが高い。このため、ＨＤＤ内のアクセスが集中しているエクステントチャンクを再配置しても、当該ＨＤＤ全体の利用効率を向上することは期待できない。
【００１２】
次に、ＨＤＤ全体のアクセス頻度が高くても、同時に複数のエクステントチャンクに対するＩ／Ｏ要求が発生する頻度が低く、したがって複数のエクステントチャンクに対する未完了のＩ／Ｏ要求が同時に存在する割合（同時Ｉ／Ｏ存在率）が低いＨＤＤを想定する。つまりＨＤＤへのアクセスが時間的に分散している場合を想定する。このようなＨＤＤでは、当該ＨＤＤ内のアクセス頻度が高いエクステントチャンクを再配置しても、当該ＨＤＤ全体の利用効率を向上することは期待できない。
【００１３】
本発明は上記事情を考慮してなされたものでその目的は、同時に複数のエクステントチャンクに対するＩ／Ｏ要求が発生する頻度に基づいてアレイ間でデータ再配置を行うことにより、アレイを構成するディスク装置の利用効率を高めることができるディスクアレイサブシステム及びプログラムを提供することにある。
【課題を解決するための手段】
【００１４】
本発明の１つの態様によれば、１台以上のディスク装置の記憶領域が連続した１つの領域として定義される複数のアレイを含み、前記アレイの全領域を複数のエクステントに分割し、１つ以上のエクステントを組み合わせることによってホスト装置から認識される論理ボリュームを構成する少なくとも１台のディスクアレイ装置を有するディスクアレイサブシステムが提供される。前記少なくとも１台のディスクアレイ装置は、前記アレイ毎に、そのアレイを構成するディスク装置のうちの予め定められた代表ディスク装置の記憶領域に含まれる前記複数のエクステントにそれぞれ属するエクステントチャンクについて、あるサンプリング周期で未完了のアクセス要求を実行中Ｉ／Ｏとしてサンプリングすることにより、当該エクステントチャンクを含む複数のエクステントチャンクに同時に実行中Ｉ／Ｏが存在する度合いを表す第１の存在率、前記代表ディスク装置に実行中Ｉ／Ｏが存在する度合いを表す第２の存在率、及び当該エクステントチャンクに実行中Ｉ／Ｏが存在する度合いを表す第３の存在率を算出する算出手段と、前記第１乃至第３の存在率に基づき、前記第１の存在率が下げられるべきエクステントチャンクが属するエクステントを第１のエクステントとして選択すると共に、当該第１のエクステントを含むアレイの代表ディスク装置とは別の、当該第１のエクステントを含むアレイの代表ディスク装置に対して、前記第２の存在率が相対的に低いアレイの代表ディスク装置に含まれるエクステントチャンクの中から、前記第３の存在率が最も低いエクステントチャンクが属するエクステントを第２のエクステントとして選択する選択手段と、前記第１及び第２のエクステントの間でデータを再配置するアレイ間エクステントマイグレーションを実行するエクステントマイグレーション実行手段とを具備する。
【００１５】
ここで、前記算出手段が、前記第１の存在率を表す指標となる情報を取得するために、各アレイの代表ディスク装置のエクステントチャンク毎にカウンタ（第１のカウンタ）を設け、ある周期（例えば、一定時間周期、ランダム時間周期、或いは一定時間周期及びランダム周期の組み合わせで決まる周期）でエクステントチャンク毎に実行中Ｉ／Ｏ数をサンプリングして実行中Ｉ／Ｏ数をカウントし、実行中Ｉ／Ｏが複数のエクステントチャンクに同時に存在する場合、実行中Ｉ／Ｏが存在するエクステントチャンクに対応するカウンタを１インクリメントすると良い。この場合、前記算出手段は、エクステントチャンク毎のカウンタのカウンタ値をサンプル数で除した値を、当該エクステントチャンクを含む複数のエクステントチャンクに同時に実行中Ｉ／Ｏが存在する度合い、即ち第１の存在率として取得すれば良い。
【００１６】
また、前記算出手段が、前記第２の存在率を表す指標となる情報を取得するために、各アレイの代表ディスク装置毎にカウンタ（第２のカウンタ）を設け、前記ある周期で代表ディスク装置毎に実行中Ｉ／Ｏ数をサンプリングし、実行中Ｉ／Ｏが存在した代表ディスク装置に対応するカウンタを１インクリメントすると良い。この場合、前記算出手段は、代表ディスク装置毎のカウンタのカウント値をサンプル数で除した値を、代表ディスク装置に実行中Ｉ／Ｏが存在する度合い、即ち第２の存在率として取得すれば良い。
【００１７】
また、前記算出手段が、前記第３の存在率を表す指標となる情報を取得するために、各アレイの代表ディスク装置のエクステントチャンク毎にカウンタ（第３のカウンタ）を設け、前記ある周期でエクステントチャンク毎に実行中Ｉ／Ｏ数をサンプリングし、実行中Ｉ／Ｏが存在したエクステントチャンクに対応するカウンタを１インクリメントすると良い。この場合、前記算出手段は、エクステントチャンク毎のカウンタのカウント値をサンプル数で除した値を、エクステントチャンクに実行中Ｉ／Ｏが存在する度合い、即ち第３の存在率として取得すれば良い。
【００１８】
ここで、前記選択手段が、前記複数のアレイのうちデータ再配置の候補として予め定められたアレイグループに属するアレイの各々を構成するエクステントの中で、前記第１の存在率が最も高いエクステントチャンクが属するエクステントを前記第１のエクステントとして選択し、前記アレイグループに属するアレイの各々の代表ディスク装置のうちの、前記第２の存在率が最も低い代表ディスク装置に含まれるエクステントチャンクの中から、前記第３の存在率が最も低いエクステントチャンクを選択して、当該選択されたエクステントチャンクが属するエクステントを前記第２のエクステントとして選択すると良い。
【００１９】
また、前記選択手段が、前記エクステントマイグレーションの対象となる前記第１及び第２のエクステントを選択する条件として、つまり前記エクステントマイグレーション実行手段により次のエクステントマイグレーションが実行される条件として、次の４つの条件が全て成立とした場合とすると良い。この４つの条件とは、
１）前記エクステントマイグレーション実行手段によって最後に前記エクステントマイグレーションが実行されてからの経過時間が一定時間以上
２）前記アレイグループに属するアレイの代表ディスク装置の前記第２の存在率の最大値と最小値の差分が一定値以上
３）前記アレイグループに属するアレイの代表ディスク装置の前記第２の存在率の最小値が一定値以下
４）前記アレイグループに属するアレイの代表ディスク装置に含まれるエクステントチャンクの前記第１の存在率の最大値が一定値以上
である。
【００２０】
ここで、前記条件中の一定時間として、つまりエクステントマイグレーションの実行周期として、アレイグループに属するアレイの代表ディスク装置の前記第２の存在率の最大値と最小値の差分の関数を用い、差分が大きい場合にはエクステントマイグレーションの実行周期を短くすると良い。
【００２１】
また、前記選択手段が、Ｎを２以上の整数であるとすると、前記複数のアレイのうちの任意のアレイを対象に、当該任意のアレイの代表ディスク装置に含まれるエクステントチャンクの中から、前記第３の存在率が高いＮ個のエクステントチャンクを選択して、当該選択されたＮ個のエクステントチャンクが属するＮ個のエクステントまたは当該Ｎ個のエクステントのうちのＮ−１個のエクステントを１つずつ第３のエクステントとして選択すると共に、前記Ｎ個またはＮ−１個の第３のエクステントとの間のアレイ内エクステントマイグレーションの対象となる前記任意のアレイ内のＮ個またはＮ−１個のエクステントであって、前記アレイ内エクステントマイグレーションの対象となる前記Ｎ個のエクステント相互の前記アレイ内の位置、または前記Ｎ個のエクステントのうちの前記Ｎ−１個の第３のエクステントを除く１つ及び前記アレイ内エクステントマイグレーションの対象となる前記Ｎ−１個のエクステント相互の前記アレイ内の位置が、前記第３の存在率が高い前記Ｎ個のエクステントチャンクが属する前記Ｎ個のエクステント相互の前記アレイ内の位置よりも近くなるＮ個またはＮ−１個のエクステントを１つずつ第４のエクステントとして選択し、前記エクステントマイグレーション実行手段が、前記第３及び第４のエクステントの対が選択される都度、選択された第３及び第４のエクステントの間でデータを再配置するアレイ内エクステントマイグレーションを実行するようにしても良い。
【００２２】
また、前述のアレイ内エクステントマイグレーションとは別のアレイ内エクステントマイグレーションの実現のために、前記選択手段が、前記複数のアレイのうちの任意のアレイを構成するエクステントを、前記第３の存在率が最も高いエクステントチャンクが属するエクステントから前記第３の存在率の降順に１つずつ第３のエクステントとして選択すると共に、当該選択された第３のエクステントとの間のアレイ内エクステントマイグレーションの対象となるエクステントを前記任意のアレイを構成するディスク装置の外周から内周方向に１つずつ第４のエクステントとして選択することによって、前記アレイ内エクステントマイグレーションの対象となる第３及び第４のエクステントの対を逐次選択し、前記第３及び第４のエクステントの対が選択される都度、前記エクステントマイグレーション実行手段が、前記選択された第３及び第４のエクステントの間でデータを再配置するアレイ内エクステントマイグレーションを実行する構成としても良い。
【００２３】
ここで、第３の存在率が同一の複数のエクステントチャンクが存在する場合には、当該複数のエクステントチャンクのうち、代表ディスク装置の外周から遠いエクステントチャンクが属するエクステントほど先に第３のエクステントとして選択されるようにすると良い。
【００２４】
上述のようにディスクアレイ装置が、アレイ間エクステントマイグレーションの機能に加えてアレイ内エクステントマイグレーションの機能を有していても良い。ここで、ディスクアレイ装置が、アレイ内エクステントマイグレーションの機能のみを有していても良い。
【００２５】
また、前記選択手段が、前記アレイ内エクステントマイグレーションの対象となる第３及び第４のエクステントの対を選択する条件として、つまり前記エクステントマイグレーション実行手段により次のアレイ内エクステントマイグレーションが実行される条件として、次の２つの条件が全て成立とした場合とすると良い。この２つの条件とは、
１）前記エクステントマイグレーション実行手段によって最後に前記アレイ内エクステントマイグレーションが実行されてからの経過時間が一定時間以上
２）前記アレイ内エクステントマイグレーションの候補となる１対のエクステントに含まれる１対のエクステントチャンクであって、当該１対のエクステントが属するアレイの代表ディスク装置に含まれる１対のエクステントチャンクの第３の存在率の差分が一定値以上
である。
【００２６】
ここで、前記アレイ内エクステントマイグレーションが実行される前記条件中の一定時間として、つまりアレイ内エクステントマイグレーションの実行周期として、アレイ内エクステントマイグレーションの候補となる１対のエクステントに対応する、代表ディスク装置に含まれる１対のエクステントチャンクの前記第３の存在率の差分の関数を用い、差分が大きい場合にはアレイ内エクステントマイグレーションの実行周期を短くすると良い。
【００２７】
また、アレイ間エクステントマイグレーション及びアレイ内エクステントマイグレーションの両機能を有するディスクアレイ装置では、前記エクステントマイグレーション実行手段が、前記アレイ間のエクステントマイグレーションを実行し、しかる後に当該アレイ間のエクステントマイグレーションの対象となったアレイの各々を対象に、前記アレイ内のエクステントマイグレーションを実行すると良い。
【００２８】
更に、ネットワークにより接続された複数のディスクアレイ装置を有するディスクアレイサブシステムでは、当該複数のディスクアレイ装置の前記エクステントマイグレーション実行手段が、当該ディスク装置内で前記アレイ間のエクステントマイグレーションを実行した後、前記複数のディスクアレイ装置の間で前記アレイ間のエクステントマイグレーションを実行し、しかる後に当該アレイ間のエクステントマイグレーションの対象となったアレイの各々を対象に、前記アレイ内のエクステントマイグレーションを実行すると良い。
【発明の効果】
【００２９】
本発明によれば、ディスク装置内の複数のエクステントチャンクに対するＩ／Ｏ要求が同時に発生する度合い（第１の存在率）に基づいてアレイ間でデータ再配置を行うことにより、当該ディスク装置内で複数のエクステントチャンクに対するＩ／Ｏ要求が同時に発生する度合いを下げて、当該ディスク装置内での同時Ｉ／Ｏ要求数を減らすことが可能となり、これによりディスクアレイサブシステムの性能向上を実現できる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明の実施の形態につき図面を参照して説明する。  
図１は本発明の一実施形態に係るディスクアレイサブシステム１の構成を示すブロック図である。このディスクアレイサブシステム１は、少なくとも１台のディスクアレイ装置、例えば２台のディスクアレイ装置１０-1及び１０-2を有するストレージシステム（自律データ再配置ストレージシステム）として実現されている。
【００３１】
ディスクアレイ装置１０-1及び１０-2は、当該ディスクアレイ装置１０-1及び１０-2を利用する少なくとも１台のホスト装置、例えばホスト装置２０とネットワーク３１を介して接続されている。ディスクアレイ装置１０-1及び１０-2はまた、ネットワーク３２によって相互接続されている。ネットワーク３１及び３２は、例えばファイバチャネル（Fibre Channel: FC）、或いはインターネットＳＣＳＩ（Internet SCSI: iSCSI）を用いて構成される。
【００３２】
ディスクアレイ装置１０-1は少なくとも１つのディスクアレイ（アレイ）、例えば３つのアレイ１１-1（＃１），１１-2（＃２）及び１１-3（＃３）を有しているものとする。一方、ディスクアレイ装置１０-2は、少なくとも１つのディスクアレイ（アレイ）、例えば３つのアレイ１１-A（＃Ａ），１１-B（＃Ｂ）及び１１-C（＃Ｃ）を有しているものとする。
【００３３】
アレイ１１-1〜１１-3及び１１-A〜１１-Cは、それぞれ少なくとも１台のＨＤＤ（ディスク装置）、例えば６台のＨＤＤ１１０から構成されるものとする。但し、図１では、アレイ１１-1〜１１-3及び１１-A〜１１-Cは、作図の都合で、それぞれ３台のＨＤＤ１１０から構成されているように示されている。本実施形態におけるアレイ１１-i（ｉ＝１，２，３，Ａ，Ｂ，Ｃ）は、例えばＲＡＩＤ５（ＲＡＩＤ５レベル）を適用するＲＡＩＤ（Redundant Array of Independent DisksまたはRedundant Array of Inexpensive Disks）である。アレイ１１-iの領域は、当該アレイ１１-iを構成するＨＤＤ１１０を組み合わせて、これらのＨＤＤ１１０の記憶領域を連続した１つの領域として定義される。ディスクアレイ装置１０-1及び１０-2内の各ＨＤＤ１１０には、当該ディスクアレイ装置１０-1及び１０-2内で固有の識別番号（ＨＤＤ番号）が割り当てられる。
【００３４】
ディスクアレイ装置１０-1は、ホスト装置２０からの要求に応じてアレイ１１-1〜１１-3へのアクセスを制御するアレイコントローラ１２-1を有する。ディスクアレイ装置１０-2は、ホスト装置２０からの要求に応じてアレイ１１-A〜１１-Cへのアクセスを制御するアレイコントローラ１２-2を有する。アレイコントローラ１２-1及び１２-2は、ネットワーク３１を介してホスト装置２０と接続されている。
【００３５】
アレイコントローラ１２-1及び１２-2は、それぞれ、アレイ１１-1〜１１-3及び１１-A〜１１-Cの全領域を、ある一定サイズの物理エクステントに区切って（分割して）管理する。アレイコントローラ１２-1及び１２-2は、１つ以上の物理エクステント（例えば複数の物理エクステント）を用いることによってホスト装置２０から認識（アクセス）される論理ボリューム（論理ディスク）を構成する。即ちアレイコントローラ１２-1及び１２-2は、論理ボリュームを構成する論理エクステントを、その論理エクステントと同数の物理エクステントに割り付ける。
【００３６】
論理エクステントと物理エクステントとの対応付けはマッピングテーブルによって管理される。例えば、論理エクステントＬＥ１に対応付けられる物理エクステントを物理エクステントＰＥ１から物理エクステントＰＥ２に変更する場合、マッピングテーブルにおけるＬＥ１とＰＥ１との対応を表すマッピング情報が、ＬＥ１とＰＥ２との対応を表すマッピング情報に更新される。このような論理エクステントと物理エクステントとの対応付けを管理する手法は従来から良く知られている。このため以下では、論理エクステントに対応付けられる物理エクステントの変更についての説明は省略する。また、以下では物理エクステントについて述べ、物理エクステントと論理エクステントとを区別する必要がある場合を除き、物理エクステントを単にエクステントと表現する。
【００３７】
エクステントのうち、各ＨＤＤ１１０に対応する（属する）領域をエクステントチャンクと呼ぶ。図２は、エクステントとエクステントチャンクとの関係をアレイ１１-i（ｉ＝１，２，３，Ａ，Ｂ，Ｃ）で代表させて示す。
【００３８】
本実施形態において、ディスクアレイ装置１０-1及び１０-2の各々のＨＤＤ１１０の総数は１８、各ＨＤＤ１１０の容量は３００ＧＢである。各アレイ１１-iのエクステントのサイズは１ＧＢに固定されている。また、各アレイ１１-iは前記したように６台のＨＤＤ１１０から構成され（図では便宜的に３台のＨＤＤ１１０のみが示されている）、ＲＡＩＤ５を適用するＲＡＩＤである。
【００３９】
各アレイ１１-iの実質的なデータ容量は、当該アレイ１１-iがＲＡＩＤ５を適用することから、ＨＤＤ５台分の容量となる。この場合、エクステントチャンクサイズは１ＧＢ／５＝０．２ＧＢとなる。したがって、ＨＤＤ１台当たりのエクステントチャンク総数（アレイ当たりのエクステント総数）は、３００ＧＢ／０．２ＧＢ＝１５００となる。
【００４０】
アレイコントローラ１２-1及び１２-2は、前記したように、ホスト装置２０からアクセスされる論理ボリュームと当該論理ボリュームを構成する論理エクステントとの対応関係、及び当該論理エクステントと当該論理エクステントがマッピングされる物理エクステントとの対応関係を管理する。アレイコントローラ１２-1及び１２-2は、データの物理的な配置を、当該アレイコントローラ１２-1及び１２-2にそれぞれ対応するディスクアレイ装置１０-1及び１０-2内で、またはディスクアレイ装置１０-1及び１０-2をまたがって自律的に再配置する。更に具体的に述べるならば、アレイコントローラ１２-1及び１２-2は、エクステント間のデータコピーを行うことによって、データを保持したまま、データの物理エクステントを、ディスクアレイ装置１０-1及び１０-2内で、またはディスクアレイ装置１０-1及び１０-2をまたがって再配置する。このようなエクステントの入れ替えによるデータの再配置をエクステントマイグレーションと呼ぶ。
【００４１】
ここで、本実施形態で適用される特別の用語について説明する。本実施形態では、代表ＨＤＤ、実行中Ｉ／Ｏ、同時Ｉ／Ｏ存在率、ＨＤＤＩ／Ｏ存在率及びエクステントチャンクＩ／Ｏ存在率が定義されている。
【００４２】
＜代表ＨＤＤ＞
代表ＨＤＤは、アレイ１１-i（ｉ＝１，２，３，Ａ，Ｂ，Ｃ）を構成する６台のＨＤＤ１１０のうちの特定の１つを指す。ここでは、アレイ１１-iを構成するＨＤＤ１１０のうちＨＤＤ番号が最も小さいＨＤＤが代表ＨＤＤとして用いられる。
【００４３】
＜実行中Ｉ／Ｏ＞
実行中Ｉ／Ｏは、アレイコントローラ１２-j（ｊ＝１，２）からＨＤＤ１１０に発行されて未完了のアクセス要求（リード／ライトのためのディスクＩ／Ｏ要求）を指す。つまり、実行中Ｉ／Ｏは、ＨＤＤ１１０内のエクステントチャンクへのアクセスが現在実行されているアクセス要求だけでなく、エクステントチャンクへのアクセスの実行待ち状態にあるアクセス要求をも指す。エクステントチャンクへのアクセスが実行されている、或いはエクステントチャンクへのアクセスの実行待ち状態にあるＩ／Ｏ要求（実行中Ｉ／Ｏ、未完了Ｉ／Ｏ）が存在することを、「実行中Ｉ／Ｏがエクステントチャンクに存在する」、または「エクステントチャンクに対する実行中Ｉ／Ｏが存在する」と表現する。アクセス要求（Ｉ／Ｏ要求）は、ＨＤＤ１１０のＩ／Ｏキュー（Ｉ／Ｏキューバッファ）にキューリストとして保持され、当該要求の指定するアクセスが完了すると当該キューから削除される。
【００４４】
＜同時Ｉ／Ｏ存在率＞
同時Ｉ／Ｏ存在率（第１の存在率）は、ＨＤＤ１１０（代表ＨＤＤ１１０）内の複数のエクステントチャンクに同時に実行中Ｉ／Ｏが存在する度合いを指す。この同時Ｉ／Ｏ存在率は、エクステントチャンク毎に算出される。つまり同時Ｉ／Ｏ存在率は、着目するエクステントチャンクとＨＤＤ１１０（代表ＨＤＤ１１０）内の他のエクステントチャンクに同時に実行中Ｉ／Ｏが存在する度合いを指す。アレイ１１-1〜１１-3及び１１-A〜１１-Cは一般にＲＡＩＤストライプ単位、即ちエクステントを構成する各エクステントチャンクに対して均等にアクセスされることが多い。したがって、代表ＨＤＤ１１０内のエクステントチャンクの同時Ｉ／Ｏ存在率は、そのエクステントチャンクが属するエクステントの同時Ｉ／Ｏ存在率を表すと見なすことができる。また、例えばＲＡＩＤ１の場合で、リードデータがペアＨＤＤの一方から読み出されるような場合は、リードデータを読み出すＨＤＤを代表ＨＤＤとするといった、アレイのＩ／Ｏ状態を反映したＨＤＤを代表ＨＤＤに選ぶと良い。
【００４５】
＜エクステントチャンクＩ／Ｏ存在率＞
エクステントチャンクＩ／Ｏ存在率（第３の存在率）は、代表ＨＤＤ１１０内のエクステントチャンク毎に算出される、当該エクステントチャンクに実行中Ｉ／Ｏ（少なくとも１つの実行中Ｉ／Ｏ）が存在する度合いを指す。
【００４６】
＜ＨＤＤＩ／Ｏ存在率＞
ＨＤＤＩ／Ｏ存在率（第２の存在率）は、代表ＨＤＤ１１０毎に算出される、当該代表ＨＤＤ１１０に実行中Ｉ／Ｏ（少なくとも１つの実行中Ｉ／Ｏ）が存在する度合いを指す。
【００４７】
アレイコントローラ１２-1及び１２-2は、上述のエクステントマイグレーションを、次に述べる第１のアレイの第１のエクステント及び第２のアレイの第２のエクステントの間で行う。
【００４８】
第１のエクステントは、あるアレイ（第１のアレイ）を構成する代表ＨＤＤ１１０（第１の代表ＨＤＤ１１０）内の同時Ｉ／Ｏ存在率が一定レベルよりも高いエクステントチャンクが属する、当該第１のアレイ内のエクステントを指す。第２のアレイは、第１のアレイとは別のアレイであって、当該第２のアレイの代表ＨＤＤ（第２の代表ＨＤＤ１１０）に実行中Ｉ／Ｏが存在する度合い（つまりＨＤＤＩ／Ｏ存在率）が一定レベルよりも低いアレイを指す。第２のエクステントは、第２のアレイ内のエクステントのうち、当該第２のアレイ内の第２の代表ＨＤＤ１１０において実行中Ｉ／Ｏが存在する度合い率が最も低いエクステントチャンク（つまりエクステントチャンクＩ／Ｏ存在率が最も低いエクステントチャンク）が属するエクステントを指す。
【００４９】
本実施形態において、アレイコントローラ１２-1及び１２-2は同一の構成を有している。そこで、アレイコントローラ１２-1及び１２-2の構成について、アレイコントローラ１２-j（ｊ＝１，２）で代表させて説明する。
【００５０】
図３は、アレイコントローラ１２-jの構成を示すブロック図である。必要ならば、以下の説明においてアレイコントローラ１２-jをアレイコントローラ１２-1または１２-2に適宜読み替えられたい。
【００５１】
アレイコントローラ１２-jは、ホストドライバ１２１と、ホストマネージャ１２２と、キャッシュ１２３と、キャッシュコントローラ１２４と、ＲＡＩＤマネージャ１２５と、ＨＤＤドライバ１２６と、メモリ１２７とから構成される。
【００５２】
ホストドライバ１２１は、ホスト装置２０との間でデータ・コマンドを入出力する。ホストマネージャ１２２は、ホスト装置２０によって認識される論理ボリュームを提供するアレイ（図１ではアレイ１１-1〜１１-3またはアレイ１１-A〜１１-C）を管理する。キャッシュ１２３は、ホスト装置２０とアレイとの間で入出力されるデータを一時格納する。キャッシュコントローラ１２４は、キャッシュ１２３に対するアクセスを制御する。
【００５３】
ＲＡＩＤマネージャ１２５は、ホスト装置２０によって認識される論理ボリュームを提供するアレイとエクステントとの対応関係、及びエクステントとＨＤＤ１１０内のエクステントチャンクとの対応関係を管理する。ＲＡＩＤマネージャ１２５は、同時Ｉ／Ｏ存在率、ＨＤＤＩ／Ｏ存在率及びエクステントチャンクＩ／Ｏ存在率を算出する機能と、これらの存在率に基づいて上述のエクステントマイグレーションを実行する機能とを有する。
【００５４】
ＨＤＤドライバ１２６は、アレイを構成する各ＨＤＤ１１０へのアクセス（ディスクＩ／Ｏ）を実行する。ＨＤＤドライバ１２５は、代表ＨＤＤ１１０毎のＨＤＤＩ／Ｏ数Ｎ１及び当該代表ＨＤＤ１１０内のエクステントチャンク毎のエクステントチャンクＩ／Ｏ数Ｎ２を計測する。ＨＤＤＩ／Ｏ数Ｎ１は、代表ＨＤＤ１１０内での実行中Ｉ／Ｏの数、つまり代表ＨＤＤ１１０に存在する未完了のＩ／Ｏの数を表す。エクステントチャンクＩ／Ｏ数Ｎ２は、エクステントチャンクでの実行中Ｉ／Ｏの数、つまりエクステントチャンクに存在する未完了のＩ／Ｏの数を表す。
【００５５】
メモリ１２７は、上述のＮ１及びＮ２を計測するためのカウンタ（Ｎ１カウンタ及びＮ２カウンタ）を含む種々のカウンタ（のカウント値）を保持する。これらのカウンタはソフトウェアカウンタである。
【００５６】
本実施形態において、ホストドライバ１２１、ホストマネージャ１２２、キャッシュコントローラ１２４、ＲＡＩＤマネージャ１２５及びＨＤＤドライバ１２６は、アレイコントローラ１２-jが、所定のプログラムを記憶媒体から読み込んで実行することにより実現される。この記憶媒体は、例えば、ＨＤＤに搭載されている磁気ディスク媒体、光ディスクドライブに装着して用いられる光ディスク媒体、或いはＲＯＭである。また、上記プログラムが例えばネットワーク３１を介してアレイコントローラ１２-jにダウンロードされても構わない。
【００５７】
次に、例えばアレイコントローラ１２-1（内のＲＡＩＤマネージャ１２５）によるエクステントマイグレーションについて、図４を参照して説明する。  
図４において、代表ＨＤＤ１１０（＃１）は第１のアレイ１１-1（＃１）の代表ＨＤＤ１１０を表す。この代表ＨＤＤ１１０（＃１）内のエクステントチャンク４１〜４３の各々は、当該エクステントチャンクを含む複数のエクステントチャンクに同時に実行中Ｉ／Ｏが存在する度合い（同時Ｉ／Ｏ存在率）が一定レベルよりも高いエクステントチャンクであるものとする。つまり、エクステントチャンク４１〜４３は同時Ｉ／Ｏ存在率が高いエクステントチャンクの組であるものとする。ここでは、実行中Ｉ／Ｏ数が２以上となる度合いが高いエクステントチャンクが、同時Ｉ／Ｏ存在率が高いエクステントチャンクとして扱われる。このようなエクステントチャンクはレスポンスが良くない。
【００５８】
一方、代表ＨＤＤ１１０（＃２）はアレイ１１-1（＃１）とは別の第２のアレイ、例えばアレイ１１-2（＃２）の代表ＨＤＤ１１０を表す。この代表ＨＤＤ１１０（＃２）は、代表ＨＤＤ１１０（＃１）に比べて実行中Ｉ／Ｏが存在する度合い（ＨＤＤＩ／Ｏ存在率）が低く、したがってＨＤＤ利用率（活用率）が低いものとする。代表ＨＤＤ１１０（＃２）内のエクステントチャンク４４は、実行中Ｉ／Ｏが存在する度合い（エクステントチャンクＩ／Ｏ存在率）が当該代表ＨＤＤ１１０（＃２）内のエクステントチャンクの中で最も低いものとする。
【００５９】
アレイコントローラ１２-1（内のＲＡＩＤマネージャ１２５）は、エクステントチャンク４１〜４３のうちのいずれか、例えばエクステントチャンク４１が属するアレイ１１-1（＃１）内のエクステント（第１のエクステント）と、エクステントチャンク４４が属するアレイ１１-2（＃２）内のエクステント（第２のエクステント）との間でエクステントマイグレーション（アレイ間エクステントマイグレーション）４５を行う。
【００６０】
このエクステントマイグレーション４５により、代表ＨＤＤ１１０（＃１）内の（同時Ｉ／Ｏ存在率が高い）エクステントチャンク４１のデータＤ１は、（ＨＤＤＩ／Ｏ存在率が低い）代表ＨＤＤ１１０（＃２）内の（エクステントチャンクＩ／Ｏ存在率が最も低い）エクステントチャンク４４に、エクステントチャンク４４のデータＤ２はエクステントチャンク４１に、それぞれ再配置される。このエクステントマイグレーション４５では、エクステントチャンク４１が属するエクステント（第１のエクステント）に含まれている他のエクステントチャンクのデータが、エクステントチャンク４４が属するエクステント（第２のエクステント）に含まれている他のエクステントチャンクに、第２のエクステントに含まれている他のエクステントチャンクのデータが第１のエクステントに含まれている他のエクステントチャンクに、それぞれ再配置される。
【００６１】
つまり、エクステントマイグレーション４５では、上述の第１のエクステントのデータが第２のエクステントに、第２のエクステントのデータが第１のエクステントに再配置される。ここで、第１及び第２のエクステント（物理エクステント）が、エクステントマイグレーション４５の実行前に、それぞれ第１及び第２の論理エクステントと対応付けられているものとする。この場合、エクステントマイグレーション４５の実行に伴い、前述のマッピングテーブルが更新されて、第１及び第２のエクステント（物理エクステント）が、それぞれ第２及び第１の論理エクステントと対応付けられる。このエクステントマイグレーションの実行に伴うマッピングテーブルの更新（マッピングの変更）自体は従来から良く知られているため、以下の新たなエクステントマイグレーションに関する説明では省略する。
【００６２】
エクステントマイグレーション４５によるデータ再配置４６の結果、アレイ１１-1（＃１）を構成するＨＤＤ１１０内の複数のエクステントチャンクに同時にアクセス要求（Ｉ／Ｏ要求）が発生する度合いが下げられる。つまり、アレイ１１-1（＃１）を構成するＨＤＤ１１０において同時に存在する実行中Ｉ／Ｏの数、つまりＨＤＤ  Ｉ／Ｏキューにつながれている実行中Ｉ／Ｏ（未完了のＩ／Ｏ要求の数）が低減される。これにより、アレイ１１-1（＃１）を構成するＨＤＤ１１０の利用効率（稼働率）を上げて、当該ＨＤＤ１１０の性能を可能な限り活用することができる。
【００６３】
以下、上述のエクステントマイグレーションを更に具体的に説明する。  
図４の例では、アレイ１１-1（＃１）を構成するＨＤＤ１１０（代表ＨＤＤ１１０（＃１））に、同時Ｉ／Ｏ存在率が高いエクステントチャンク４１〜４３の組が存在する。このようなＨＤＤ１１０では、同時Ｉ／Ｏ数（ＨＤＤ  Ｉ／Ｏキューつながれている実行中Ｉ／Ｏ数）が２以上となる度合いが高い。ＨＤＤ１１０では、同時に複数のＩ／Ｏ要求を処理できないことから、同時Ｉ／Ｏ数が２以上となる場合、レスポンスは低下する傾向にある。
【００６４】
一方、アレイ１１-2（＃２）を構成するＨＤＤ１１０（代表ＨＤＤ１１０（＃２））のＨＤＤＩ／Ｏ存在率は低い。このようなアレイ１１-2（＃２）が存在する場合、そのアレイ１１-2（＃２）を構成するＨＤＤ１１０はアイドル状態となっている割合が高い。つまり、アレイ１１-2（＃２）を構成するＨＤＤ１１０の性能を十分に活用できていない。
【００６５】
本実施形態では、上述した２つのアレイ１１-1（＃１）及び１１-2（＃２）の間でのエクステントマイグレーション４５により、アレイ１１-1（＃１）内の同時Ｉ／Ｏ存在率が高いエクステント組に含まれている１つのエクステントと、他のアレイ１１-2（＃２）（つまりＨＤＤＩ／Ｏ存在率が低いＨＤＤ１１０によって構成されるアレイ１１-2（＃２））内のエクステントチャンクＩ／Ｏ存在率が最も低いエクステントチャンクが属するエクステントとの間で、データが入れ替えられる（再配置される）。これにより、ディスクアレイ装置１０-1内の各ＨＤＤ１１０における同時Ｉ／Ｏ存在率を均等化して、当該ＨＤＤ１１０の性能を可能な限り活用することができる。
【００６６】
次に、エクステントマイグレーションの対象となるエクステントを決定するのに、エクステントチャンクのアクセス頻度ではなくて同時Ｉ／Ｏ存在率を用いる理由について図５を参照して説明する。図５は、エクステントマイグレーションで性能向上が期待できないＨＤＤ１１０のアクセスパターン例を、アレイ１１-iの代表ＨＤＤ１１０について示す。
【００６７】
図５（ａ）の例は、代表ＨＤＤ１１０内のある１つのエクステントチャンク５１のみにアクセス（アクセス要求）が集中している場合を想定している。つまり、アレイ１１-iにおいて、ある１つのエクステントのみにアクセスが集中しているものとする。
【００６８】
図５（ａ）の代表ＨＤＤ１１０では、エクステントチャンク５１以外のエクステントチャンクへのアクセスは殆ど発生しない。つまり図５（ａ）の代表ＨＤＤ１１０は、エクステントチャンク５１のみに対するアクセスの集中によってアクセス頻度が高くても、アイドル状態となっている度合いが高い。このため、エクステントチャンク５１が属するエクステント（のデータ）を再配置しても、アレイ１１-iを構成するＨＤＤ１１０のアクセス頻度は下げられるものの、利用効率を向上することは期待できない。
【００６９】
図５（ｂ）の例は、代表ＨＤＤ１１０において、アクセス頻度は高いものの、同時に複数のエクステントチャンク（ここではエクステントチャンク５２及び５３）にアクセスが発生することが少ない場合を想定している。つまり、アレイ１１-iはアクセス頻度が高く高負荷であっても、同時に複数のエクステントに対してアクセスが発生することが少ないものとする。このような例として、エクステントチャンク５２が属するエクステントとエクステントチャンク５３が属するエクステントとが交互にアクセスされる場合が挙げられる。
【００７０】
図５（ｂ）の代表ＨＤＤ１１０では、エクステントチャンク５２及び５３へのアクセスは時間的に分散している。したがって、エクステントチャンク５２または５３が属するエクステントを再配置（分散）しても、アレイ１１-iを構成するＨＤＤ１１０のアクセス頻度は下げられるものの、利用効率を向上することは期待できない。
【００７１】
以上の点を考慮して、本実施形態では、エクステントマイグレーションの対象となる高負荷アレイと当該アレイ内のエクステント（第１のエクステント）の判定に、代表ＨＤＤのエクステントチャンクに関する同時Ｉ／Ｏ存在率が用いられる。
【００７２】
また本実施形態では、エクステントマイグレーションの相手となるアレイ内のエクステント（第２のエクステント）として、ＨＤＤＩ／Ｏ存在率が低い別のアレイ（第２のアレイ）の、代表ＨＤＤ内でエクステントチャンクＩ／Ｏ存在度合いが最も低いエクステントチャンクが属するエクステントが用いられる。このようなエクステントがエクステントマイグレーションの相手となるアレイの低負荷エクステントとして用いられる２つの理由について説明する。
【００７３】
まず第１の理由について説明する。、ＨＤＤＩ／Ｏ存在率が低いＨＤＤ１１０（代表ＨＤＤ１１０）はアイドル率が高い。このため、このようなＨＤＤ１１０によって構成されるアレイを、同時Ｉ／Ｏ存在率の高いエクステントとの間のエクステントマイグレーションの相手（引受先）となる第２のアレイとして選択的に利用することによって、当該ＨＤＤ１１０の稼働率を上げ、当該ＨＤＤ１１０の性能を活用できる。
【００７４】
次に第２の理由について説明する。まず、第１の理由に基づいて選択された第２のアレイ内のエクステントのうち、代表ＨＤＤ内でエクステントチャンクＩ／Ｏ存在率が最も低いエクステントチャンクが属するエクステントが、第１のアレイ内の第１のエクステントとの間のエクステントマイグレーションの相手となる第２のエクステント（低負荷エクステント）として用いられるものとする。この場合、エクステントマイグレーション実行後の、第１のアレイ（負荷を減らしたいアレイ）に実行中Ｉ／Ｏが存在する度合いをできるだけ増加させないようにできる。
【００７５】
次に本実施形態において、代表ＨＤＤ１１０内の複数のエクステントチャンクに実行中Ｉ／Ｏが同時に存在する度合い（同時Ｉ／Ｏ存在率）を表す指標となる情報を取得する手法について、図６を参照して説明する。  
図６（ａ）は、アレイ１１-iの代表ＨＤＤ１１０の記憶領域が複数のエクステントチャンク０（EC-0），１（EC-1），２（EC-2），…に分割して管理されることを示す。
【００７６】
図６（ｂ）は、あるサンプル周期（サンプリング周期）毎にサンプリングされる代表ＨＤＤ１１０の各エクステントチャンクに存在する実行中Ｉ／Ｏ数（つまり未完了の実行中Ｉ／Ｏ数）の一例を示す。図６（ｂ）はまた、代表ＨＤＤ１１０のエクステントチャンク毎の同時Ｉ／Ｏ存在率を算出するのに用いられるカウンタ（同時Ｉ／Ｏ存在率算出用カウンタ、第１のカウンタ）６１-0，６１-1，６１-2，…のカウント値の変化例を、同時Ｉ／Ｏ存在率（Ｘ）と対応付けて示す。サンプル周期には、一定時間周期、ランダム時間周期、或いは一定時間周期及びランダム周期の組み合わせで決まる周期を用いることができる。
【００７７】
カウンタ６１-0，６１-1，６１-2，…は、アレイコントローラ１２-j（ｊ＝１，２）のメモリ１２７内に、各アレイ１１-iの代表ＨＤＤ１１０のエクステントチャンク毎に、つまりエクステントチャンク０（EC-0），１（EC-1），２（EC-2），…に対応付けて設けられる。
【００７８】
アレイコントローラ１２-j（内のＨＤＤドライバ１２６）は、代表ＨＤＤ１１０内のエクステントチャンク毎に当該エクステントチャンクに存在する実行中Ｉ／Ｏ数Ｎ２をＮ２カウンタにより計測する。ここでは、エクステントチャンク毎の実行中Ｉ／Ｏ数Ｎ２（Ｎ２カウンタのカウント値）は、当該エクステントチャンクに対するＩ／Ｏ要求が代表ＨＤＤ１１０に発行される都度１インクリメント（＋１）され、当該Ｉ／Ｏ要求の実行が完了される都度１デクリメント（−１）される。
【００７９】
アレイコントローラ１２-j（内のＲＡＩＤマネージャ１２５）は、あるサンプル周期で、代表ＨＤＤ１１０内のエクステントチャンク毎に当該エクステントチャンクに存在する実行中Ｉ／Ｏ数（メモリ１２７に保持されているＮ２カウンタのカウント値）をサンプリングする。アレイコントローラ１２-j（内のＲＡＩＤマネージャ１２５）は、このサンプリングの結果、エクステントチャンク０（EC-0），１（EC-1），２（EC-2），…を含む複数のエクステントチャンクに実行中Ｉ／Ｏが同時に存在することが検出された場合、カウンタ６１-0，６１-1，６１-2，…を１インクリメント（＋１）する。
【００８０】
図６の例では、第１サンプル周期（第１サンプル）で、エクステントチャンク１（EC-1），２（EC-2），３（EC-3）及び４（EC-4）に実行中Ｉ／Ｏが存在した結果、矢印６２で示されるように、カウンタ６１-1，６１-2，６１-3及び６１-4が＋１されて、いずれもカウント値が１となった様子が示されている。
【００８１】
同様に図６の例では、第３サンプル周期で、エクステントチャンク２（EC-2）及び３（EC-3）に実行中Ｉ／Ｏが存在した結果、矢印６３で示されるように、カウンタ６１-2及び６１-3が＋１されて、いずれもカウント値が２となった様子が示されている。同様に図６の例では、第４サンプル周期で、エクステントチャンク１（EC-1）及び２（EC-2）に実行中Ｉ／Ｏが存在した結果、矢印６４で示されるように、カウンタ６１-1及び６１-2が＋１されて、それぞれカウント値が２及び３となった様子が示されている。
【００８２】
アレイコントローラ１２-j（内のＲＡＩＤマネージャ１２５）は、代表ＨＤＤ１１０のエクステントチャンク１（EC-1），２（EC-2），３（EC-3），…に対応するカウンタ６１-0，６１-1，６１-2，…のカウント値をサンプル数（サンプリング回数）で除した値を、当該エクステントチャンク１（EC-1），２（EC-2），３（EC-3），…の同時Ｉ／Ｏ存在率として取得する。図６の例（５回のサンプリングの例）では、同時Ｉ／Ｏ存在率が最も高いエクステントチャンクは、エクステントチャンク２（EC-2）、つまりエクステント２のエクステントチャンクである。
【００８３】
次に本実施形態において、アレイ１１-iの代表ＨＤＤ１１０に実行中Ｉ／Ｏが存在する度合い（ＨＤＤＩ／Ｏ存在率）を表す指標となる情報を取得する手法について、図７を参照して説明する。ここでは、図６（ａ）に示されているように、アレイ１１-iの代表ＨＤＤ１１０の記憶領域がエクステントチャンク０（EC-0），１（EC-1），２（EC-2），…に分割して管理されるものとする。
【００８４】
図７は、あるサンプル周期毎にサンプリングされる代表ＨＤＤ１１０の各エクステントチャンクに存在する実行中Ｉ／Ｏ数の一例を、Ｉ／Ｏ存在カウンタ（第２のカウンタ）７０のカウント値の変化例と対応付けて示す。Ｉ／Ｏ存在カウンタ７０は、アレイコントローラ１２-j（ｊ＝１，２）のメモリ１２７内に、各アレイ１１-iの代表ＨＤＤ１１０毎に設けられる。
【００８５】
アレイコントローラ１２-j（内のＲＡＩＤマネージャ１２５）は、あるサンプル周期で、代表ＨＤＤ１１０内のエクステントチャンク毎に当該エクステントチャンクに存在する実行中Ｉ／Ｏ数をサンプリングする。アレイコントローラ１２-j（内のＲＡＩＤマネージャ１２５）は、このサンプリングの結果、エクステントチャンク０（EC-0），１（EC-1），２（EC-2），…のいずれかに実行中Ｉ／Ｏが存在することが検出された場合、つまり代表ＨＤＤ１１０に少なくとも１つの実行中Ｉ／Ｏが存在することが検出された場合、当該代表ＨＤＤ１１０に対応するＩ／Ｏ存在カウンタ７０を１インクリメント（＋１）する。図７の例では、第０サンプル周期、第１サンプル周期及び第３サンプル周期の３つの周期で、代表ＨＤＤ１１０に少なくとも１つの実行中Ｉ／Ｏが存在することが検出されて、その都度Ｉ／Ｏ存在カウンタ７０が＋１される。
【００８６】
アレイコントローラ１２-j（内のＲＡＩＤマネージャ１２５）は、Ｉ／Ｏ存在カウンタ７０のカウント値をサンプル数（サンプリング回数）で除した値を、代表ＨＤＤ１１０に実行中Ｉ／Ｏが存在する度合い（ＨＤＤＩ／Ｏ存在率）として算出する。図７の例（５回のサンプリングの例）では、代表ＨＤＤ１１０のＨＤＤＩ／Ｏ存在率として、３／５が算出される。
【００８７】
次に本実施形態において、アレイ１１-iの代表ＨＤＤ１１０に含まれている各エクステントチャンクに実行中Ｉ／Ｏが存在する度合い（エクステントチャンクＩ／Ｏ存在率）を表す指標となる情報を取得する手法について、図８を参照して説明する。ここでは、図６（ａ）に示されているように、アレイ１１-iの代表ＨＤＤ１１０の記憶領域がエクステントチャンク０（EC-0），１（EC-1），２（EC-2），…に分割して管理されるものとする。
【００８８】
図８は、あるサンプル周期毎にサンプリングされる代表ＨＤＤ１１０の各エクステントチャンクに存在する実行中Ｉ／Ｏ数の一例を示す。図８はまた、代表ＨＤＤ１１０のエクステントチャンク毎のエクステントチャンクＩ／Ｏ存在率を算出するのに用いられるカウンタ（エクステントチャンクＩ／Ｏ存在率算出用カウンタ、第３のカウンタ）８１-0，８１-1，８１-2，…のカウント値の変化例を、エクステントチャンクＩ／Ｏ存在率（Ｙ）と対応付けて示す。
【００８９】
カウンタ８１-0，８１-1，８１-2，…は、アレイコントローラ１２-j（ｊ＝１，２）のメモリ１２７内に、各アレイ１１-iの代表ＨＤＤ１１０のエクステントチャンク毎に、つまりエクステントチャンク０（EC-0），１（EC-1），２（EC-2），…に対応付けて設けられる。
【００９０】
アレイコントローラ１２-j（内のＲＡＩＤマネージャ１２５）は、あるサンプル周期で、代表ＨＤＤ１１０内のエクステントチャンク毎に当該エクステントチャンクに存在する実行中Ｉ／Ｏ数（メモリ１２７に保持されているＮ２カウンタのカウント値）をサンプリングする。アレイコントローラ１２-j（内のＲＡＩＤマネージャ１２５）は、このサンプリングの結果、エクステントチャンク０（EC-0），１（EC-1），２（EC-2），…にそれぞれ実行中Ｉ／Ｏ（少なくとも１つの実行中Ｉ／Ｏが）が存在することが検出された場合、カウンタ８１-0，８１-1，８１-2，…を１インクリメント（＋１）する。
【００９１】
図８の例では、第０サンプル周期で、エクステントチャンク０（EC-0）に実行中Ｉ／Ｏが存在した結果、矢印８２で示されるように、カウンタ８１-0が＋１されて、カウント値が１となった様子が示されている。
【００９２】
同様に、図８の例では、第１サンプル周期で、エクステントチャンク１（EC-1），２（EC-2），３（EC-3）及び４（EC-4）に実行中Ｉ／Ｏが存在した結果、矢印８３で示されるように、カウンタ８１-1，８１-2，８１-3及び８１-4が＋１されて、いずれもカウント値が１となった様子が示されている。また図８の例では、第２サンプル周期で、エクステントチャンク１（EC-1）に実行中Ｉ／Ｏが存在した結果、矢印８４で示されるように、カウンタ８１-1が＋１されて、カウント値が２となった様子が示されている。
【００９３】
同様に、図８の例では、第４サンプル周期で、エクステントチャンク２（EC-2）及び３（EC-3）に実行中Ｉ／Ｏが存在した結果、矢印８５で示されるように、カウンタ８１-2及び８１-3が＋１されて、いずれもカウント値が２となった様子が示されている。また図８の例では、第５サンプル周期で、エクステントチャンク１（EC-1）及び２（EC-2）に実行中Ｉ／Ｏが存在した結果、矢印８６で示されるように、カウンタ８１-1及び８１-2が＋１されて、いずれもカウント値が３となった様子が示されている。
【００９４】
アレイコントローラ１２-j（内のＲＡＩＤマネージャ１２５）は、代表ＨＤＤ１１０のエクステントチャンク１（EC-1），２（EC-2），３（EC-3），…に対応するカウンタ８１-0，８１-1，８１-2，…のカウント値をサンプル数（サンプリング回数）で除した値を、当該エクステントチャンク１（EC-1），２（EC-2），３（EC-3），…に実行中Ｉ／Ｏが存在する度合い（つまりエクステントチャンクＩ／Ｏ存在率）（Ｙ）として取得する。
【００９５】
次に本実施形態で適用される、アレイ間のエクステントマイグレーション（によるエクステント再配置）を実行する条件について説明する。  
本実施形態において、アレイコントローラ１２-j（内のＲＡＩＤマネージャ１２５）は、次の４つの条件
１）最後にエクステント再配置をしてからの経過時間が一定時間以上
２）ディスクアレイ装置１０-j内のエクステント再配置の候補（最適化の候補）として予め定められたアレイグループ（ＲＡＩＤグループ）に属する全てのアレイの代表ＨＤＤ１１０のＨＤＤＩ／Ｏ存在率のうち最大値と最小値の差分が一定値以上
３）上記ＲＡＩＤグループに属する全てのアレイの代表ＨＤＤ１１０のＨＤＤＩ／Ｏ存在率の最小値が一定値以下
４）上記ＲＡＩＤグループに属する全てのアレイの代表ＨＤＤ１１０の複数のエクステントチャンクに同時に実行中Ｉ／Ｏが存在する度合い（同時Ｉ／Ｏ存在率）の最大値が一定値以上
の全てが成立した場合にエクステント再配置を実行する。
【００９６】
以上の条件を設定した理由は次の通りである。まず、エクステントマイグレーションは、ディスクアレイサブシステム（ストレージシステム）内部のＨＤＤ  Ｉ／Ｏを伴う。このため、エクステントマイグレーションを実行している間、ディスクアレイサブシステムとしての性能が低下する可能性がある。このディスクアレイサブシステムとしての性能低下を極力防止するには、不必要なエクステントマイグレーションを避ければ良い。そこで本実施形態では、上記１）〜４）の条件によって、あまり効果が期待できない不必要なエクステントマイグレーションを避けるようにしている。これにより、安定した自律データ再配置が可能となる。
【００９７】
ここで、条件１）における「一定時間」、即ちエクステント再配置の実行周期として、ＲＡＩＤグループに属するアレイの代表ＨＤＤ１１０のＨＤＤＩ／Ｏ存在率の最大値と最小値の差分Δに応じて実行周期Ｔを一意に決定する関数ｆ（Δ）を用い、差分が一定レベル以上大きい場合にはエクステント再配置の周期を短くすると良い。このようにすると、効率良く性能向上を図ることができる。関数ｆ（Δ）としては、例えばΔが一定レベル未満ではｆ（Δ）が第１の実行周期Ｔ１を示し、Δが一定レベル以上ではｆ（Δ）が第１の実行周期Ｔ１より短い第２の実行周期Ｔ２を示すものを用いれば良い。また、Δが一定レベル以上では、当該Δが大きくなるほど短くなるように決定される関数ｆ（Δ）を用いることも可能である。
【００９８】
次に、上述の３種のＩ／Ｏ存在率、即ちＨＤＤＩ／Ｏ存在率、エクステントチャンクＩ／Ｏ存在率及び同時Ｉ／Ｏ存在率の算出の詳細について説明する。ＨＤＤＩ／Ｏ存在率、エクステントチャンクＩ／Ｏ存在率及び同時Ｉ／Ｏ存在率は、上述したように、それぞれＩ／Ｏ存在カウンタ７０、エクステントチャンクＩ／Ｏ存在率算出用カウンタ８１-0，８１-1，８１-2，…及び同時Ｉ／Ｏ存在率算出用カウンタ６１-0，６１-1，６１-2，…のカウント値に基づいて算出される。
【００９９】
カウンタ７０のカウント値、即ち各アレイ１１-iの代表ＨＤＤ１１０毎に設けられるカウンタ７０のカウント値を、Ｐ［ＡＩＤ］で表す。ＡＩＤは、アレイ１１-i（ディスクアレイ装置１０-1ではｉ＝１，２，３、ディスクアレイ装置１０-2ではｉ＝Ａ，Ｂ，Ｃ）を管理するための識別番号（以下、アレイ管理番号と称する）である。本実施形態において、アレイ管理番号ＡＩＤには、０から始まるシリアル番号が用いられる。カウント値Ｐ［ＡＩＤ］は、アレイ管理番号がＡＩＤのアレイの代表ＨＤＤ１１０に未完了Ｉ／Ｏ（実行中Ｉ／Ｏ）が存在したサンプル（サンプル周期）数（ＨＤＤＩ／Ｏ存在サンプル数）を表す。
【０１００】
カウンタ８１-0，８１-1，８１-2，…のカウント値、即ち各アレイ１１-iの代表ＨＤＤ１１０のエクステントチャンク０（EC-0），１（EC-1），２（EC-2），…に対応付けて設けられるカウンタ８１-0，８１-1，８１-2，…のカウント値を、Ｑ［ＡＩＤ］［ＥＩＤ］で表す。ＥＩＤは、アレイ１１-iを構成するエクステントを管理するための識別番号（以下、アレイ内エクステント管理番号と称する）である。本実施形態において、アレイ内エクステント管理番号ＥＩＤには、０から始まるシリアル番号が用いられる。カウント値Ｑ［ＡＩＤ］［ＥＩＤ］は、アレイ管理番号がＡＩＤのアレイを構成するアレイ内エクステント管理番号がＥＩＤのエクステントに属する、代表ＨＤＤ１１０内のエクステントチャンクにＩ／Ｏが存在したサンプル数（エクステントチャンクＩ／Ｏ存在サンプル数）を表す。
【０１０１】
カウンタ６１-0，６１-1，６１-2，…のカウント値、即ち各アレイ１１-iの代表ＨＤＤ１１０のエクステントチャンク０（EC-0），１（EC-1），２（EC-2），…に対応付けて設けられるカウンタ６１-0，６１-1，６１-2，…のカウント値を、Ｒ［ＡＩＤ］［ＥＩＤ］で表す。カウント値Ｒ［ＡＩＤ］［ＥＩＤ］は、アレイ管理番号がＡＩＤのアレイを構成するアレイ内エクステント管理番号がＥＩＤのエクステントに属する、代表ＨＤＤ１１０内のエクステントチャンクを含む複数のエクステントチャンクに同時にＩ／Ｏが存在したサンプル数（同時Ｉ／Ｏ存在サンプル数）を表す。
【０１０２】
次に、ＨＤＤＩ／Ｏ存在率、エクステントチャンクＩ／Ｏ存在率及び同時Ｉ／Ｏ存在率をそれぞれ算出するのに用いられる、ＨＤＤＩ／Ｏ存在サンプル数Ｐ［ＡＩＤ］、エクステントチャンクＩ／Ｏ存在サンプル数Ｑ［ＡＩＤ］［ＥＩＤ］及び同時Ｉ／Ｏ存在サンプル数Ｒ［ＡＩＤ］［ＥＩＤ］の収集の詳細について説明する。
【０１０３】
図９はアレイコントローラ１２-j（ｊ＝１，２）内のＲＡＩＤマネージャ１２５の主要な構成を当該アレイコントローラ１２-j内の他の要素と関連付けて示すブロック図である。ＲＡＩＤマネージャ１２５は、Ｉ／Ｏ統計情報収集モジュール１２５ａ、エクステントマイグレーション実行モジュール１２５ｂ及び自律最適化制御エンジン１２５ｃを含む。
【０１０４】
Ｉ／Ｏ統計情報収集モジュール１２５ａは、ＨＤＤドライバ１２６によって計測される、代表ＨＤＤ１１０毎のＨＤＤＩ／Ｏ数Ｎ１及び当該代表ＨＤＤ１１０内のエクステントチャンク毎のエクステントチャンクＩ／Ｏ数Ｎ２をサンプル周期でサンプリングする。前記したように、ＨＤＤＩ／Ｏ数Ｎ１は、代表ＨＤＤ１１０に存在する未完了のＩ／Ｏの数を表す。エクステントチャンクＩ／Ｏ数Ｎ２は、代表ＨＤＤ１１０内のエクステントチャンクに存在する未完了のＩ／Ｏの数を表す。Ｉ／Ｏ統計情報収集モジュール１２５ａは、代表ＨＤＤ１１０毎のＨＤＤＩ／Ｏ数Ｎ１のサンプリング結果に基づき、Ｉ／Ｏ存在カウンタ７０を用いて、当該代表ＨＤＤ１１０に未完了Ｉ／Ｏが存在したサンプル（サンプル周期）数（ＨＤＤＩ／Ｏ存在サンプル数）Ｐ［ＡＩＤ］をカウントする。
【０１０５】
Ｉ／Ｏ統計情報収集モジュール１２５ａはまた、エクステントチャンク毎のエクステントチャンクＩ／Ｏ数Ｎ２に基づき、エクステントチャンクＩ／Ｏ存在率算出用カウンタ８１-0，８１-1，８１-2，…を用いて、当該エクステントチャンクに未完了Ｉ／Ｏが存在したサンプル数（エクステントチャンクＩ／Ｏ存在サンプル数）Ｑ［ＡＩＤ］［ＥＩＤ］をカウントする。Ｉ／Ｏ統計情報収集モジュール１２５ａは更に、エクステントチャンク毎のエクステントチャンクＩ／Ｏ存在サンプル数Ｑ［ＡＩＤ］［ＥＩＤ］のカウント結果に基づき、同時Ｉ／Ｏ存在率算出用カウンタ６１-0，６１-1，６１-2，…を用いて、代表ＨＤＤ１１０内のエクステントチャンク毎に、当該エクステントチャンクを含む複数のエクステントチャンクに同時にＩ／Ｏが存在したサンプル数（同時Ｉ／Ｏ存在サンプル数）Ｒ［ＡＩＤ］［ＥＩＤ］をカウントする。
【０１０６】
Ｉ／Ｏ統計情報収集モジュール１２５ａは算出手段として機能して、ＨＤＤＩ／Ｏ存在サンプル数Ｐ［ＡＩＤ］に基づいてＨＤＤＩ／Ｏ存在率Ｐｒ［ＡＩＤ］を算出する。Ｉ／Ｏ統計情報収集モジュール１２５ａはまた算出手段として機能して、エクステントチャンクＩ／Ｏ存在サンプル数Ｑ［ＡＩＤ］［ＥＩＤ］に基づいてエクステントチャンクＩ／Ｏ存在率Ｑｒ［ＡＩＤ］［ＥＩＤ］を算出する。Ｉ／Ｏ統計情報収集モジュール１２５ａは更に算出手段として機能して、同時Ｉ／Ｏ存在サンプル数Ｒ［ＡＩＤ］［ＥＩＤ］に基づいて同時Ｉ／Ｏ存在率Ｒｒ［ＡＩＤ］［ＥＩＤ］を算出する。
【０１０７】
エクステントマイグレーション実行モジュール１２５ｂは、エクステントマイグレーションを実行する。自律最適化制御エンジン１２５ｃは選択手段として機能して、Ｉ／Ｏ統計情報収集モジュール１２５ａによって算出されたＨＤＤＩ／Ｏ存在率Ｐｒ［ＡＩＤ］、エクステントチャンクＩ／Ｏ存在率Ｑｒ［ＡＩＤ］［ＥＩＤ］及び同時Ｉ／Ｏ存在率Ｒｒ［ＡＩＤ］［ＥＩＤ］に基づいて、エクステントマイグレーション（ここではアレイ間のエクステントマイグレーション）の対象となるエクステント（第１及び第２のエクステント）を選択する。自律最適化制御エンジン１２５ｃは、選択され第１及び第２のエクステントの間のエクステントマイグレーション実行モジュール１２５ｂによるマイグレーション（エクステントマイグレーション）の実行を制御することで、ＲＡＩＤグループの最適化（自律最適化）のための制御を行う。
【０１０８】
次に、Ｉ／Ｏ統計情報収集モジュール１２５ａによって実行される、ＨＤＤＩ／Ｏ存在サンプル数Ｐ［ＡＩＤ］、エクステントチャンクＩ／Ｏ存在サンプル数Ｑ［ＡＩＤ］［ＥＩＤ］及び同時Ｉ／Ｏ存在サンプル数Ｒ［ＡＩＤ］［ＥＩＤ］を収集する処理の１サンプル（サンプル周期）における手順について、図１０のフローチャートを参照して説明する。
【０１０９】
まずモジュール１２５ａは、サンプル周期毎の処理に先立ち、初期化処理を行う。この初期化処理では、ＡＩＤの最大値をＭａｘＡＩＤとすると、ＡＩＤ＝０〜ＭａｘＡＩＤの全てのＰ［ＡＩＤ］（カウンタ７０）が初期値０に設定される。また、ＥＩＤの最大値をＭａｘＥＩＤとすると、ＡＩＤ＝０〜ＭａｘＡＩＤ及びＥＩＤ＝０〜ＭａｘＥＩＤの全ての組み合わせのＱ［ＡＩＤ］［ＥＩＤ］（カウンタ８１-0，８１-1，…）と、ＡＩＤ＝０〜ＭａｘＡＩＤ及びＥＩＤ＝０〜ＭａｘＥＩＤの全ての組み合わせのＲ［ＡＩＤ］［ＥＩＤ］（カウンタ６１-0，６１-1，…）とが初期値０に設定される。
【０１１０】
モジュール１２５ａは、サンプル周期毎に、例えば各サンプル周期の終端が到来するタイミングで、アレイ管理番号ＡＩＤを初期値０に設定する（ステップＳ１）。そしてモジュール１２５ａは、ＨＤＤドライバ１２６によって計測されている、アレイ管理番号がＡＩＤのアレイの代表ＨＤＤ１１０における現サンプル周期の未完了Ｉ／Ｏ数（ＨＤＤＩ／Ｏ数）Ｎ１をサンプリングする（ステップＳ２）。
【０１１１】
次にモジュール１２５ａは、サンプリングされたＨＤＤＩ／Ｏ数Ｎ１が０より大きいかを判定する（ステップＳ３）。もし、ＨＤＤＩ／Ｏ数Ｎ１が０より大きいならば、モジュール１２５ａはＰ［ＡＩＤ］を１インクリメントする（ステップＳ４）。そしてモジュール１２５ａは、アレイ内エクステント管理番号ＥＩＤを初期値０に設定すると共に（ステップＳ５）、テンポラリカウンタＣＮＴを初期値０に設定する（ステップＳ６）。テンポラリカウンタＣＮＴは、メモリ１２７に設けられる。
【０１１２】
モジュール１２５ａは、ＨＤＤドライバ１２６によって計測されている、アレイ管理番号がＡＩＤのアレイの代表ＨＤＤ１１０における、アレイ内エクステント管理番号がＥＩＤのエクステントに属するエクステントチャンクに対応する現サンプル周期の未完了Ｉ／Ｏ数（エクステントチャンクＩ／Ｏ数）Ｎ２をサンプリングする（ステップＳ７）。以下の説明では、煩雑な表現を避けるために、ＥＩＤのエクステントチャンクまたはＥＩＤで示されるエクステントチャンクと表現する。
【０１１３】
次にモジュール１２５ａは、サンプリングされたエクステントチャンクＩ／Ｏ数Ｎ２が０より大きいかを判定する（ステップＳ８）。もし、エクステントチャンクＩ／Ｏ数Ｎ２が０より大きいならば、モジュール１２５ａはＱ［ＡＩＤ］［ＥＩＤ］を１インクリメントすると共に（ステップＳ９）、ＣＮＴを１インクリメントする（ステップＳ１０）。
【０１１４】
次にモジュール１２５ａは、インクリメント後のＣＮＴの値が１より大きいかを判定する（ステップＳ１１）。この判定は、ＡＩＤで示される現アレイ内の複数のエクステントチャンクでエクステントチャンクＩ／Ｏ数Ｎ２が０より大きいと判定されたかをチェックすることと等価である。
【０１１５】
ＣＮＴの値が１より大きくない場合（ステップＳ１１）、つまりＣＮＴの値が１の場合、モジュール１２５ａはＡＩＤ及びＥＩＤで示される現アレイのエクステントチャンクが、当該現アレイ内でＮ２＞０であると初めて判定されたエクステントチャンクであることを認識する。この場合、モジュール１２５ａは現ＥＩＤを特別のＥＩＤ（以下、ＥＩＤｘと表現する）としてメモリ１２７に格納する（ステップＳ１２）。そしてモジュール１２５ａは、ＥＩＤを１インクリメントする（ステップＳ１３）。
【０１１６】
これに対し、ＣＮＴの値が１より大きいならば（ステップＳ１１）、モジュール１２５ａはＣＮＴの値が２であるかを判定する（ステップＳ１４）。もし、ＣＮＴの値が２である場合、モジュール１２５ａはＡＩＤ及びＥＩＤで示される現アレイのエクステントチャンクが、当該現アレイ内でＮ２＞０であると２番目に判定されたエクステントチャンクであることを認識する。この場合、モジュール１２５ａは、現ＡＩＤ及び先のステップＳ１２でメモリ１２７に格納されたＥＩＤｘで特定されるＲ［ＡＩＤ］［ＥＩＤｘ］を１インクリメントする（ステップＳ１５）。このときモジュール１２５ａは、ＥＩＤｘをメモリ１２７から削除する。更にモジュール１２５ａは、Ｒ［ＡＩＤ］［ＥＩＤ］を１インクリメントする（ステップＳ１６）。そしてモジュール１２５ａは、ＥＩＤを１インクリメントする（ステップＳ１３）。
【０１１７】
一方、ＣＮＴの値が２でない場合（ステップＳ１４）、つまりＣＮＴの値が２より大きい場合、モジュール１２５ａはＡＩＤ及びＥＩＤで示される現アレイのエクステントチャンクが、当該現アレイ内でＮ２＞０であると３番目以降に判定されたエクステントチャンクであることを認識する。この場合、モジュール１２５ａは、Ｒ［ＡＩＤ］［ＥＩＤ］を１インクリメントする（ステップＳ１６）。そしてモジュール１２５ａは、ＥＩＤを１インクリメントする（ステップＳ１３）。
【０１１８】
モジュール１２５ａはステップＳ１３を実行すると、インクリメント後のＥＩＤがＭａｘＥＩＤ以下であるかを判定する（ステップＳ１７）。もし、ＥＩＤがＭａｘＥＩＤ以下であるならば、モジュール１２５ａは上記ステップＳ７に戻る。これに対し、ＥＩＤがＭａｘＥＩＤ以下でないならば、即ちＥＩＤがＭａｘＥＩＤを超えたならば、モジュール１２５ａはＡＩＤで示されるアレイの全てのエクステントについて処理をし終えたものと判定する。この場合、モジュール１２５ａはＡＩＤを１インクリメントする（ステップＳ１８）。
【０１１９】
またモジュール１２５ａは、サンプリングされたＨＤＤＩ／Ｏ数Ｎ１が０より大きくない場合（ステップＳ３）、つまりＮ１＝０の場合には、当該ステップＳ３からステップＳ１８に進んで、ＡＩＤを１インクリメントする。
【０１２０】
モジュール１２５ａはステップＳ１８を実行すると、インクリメント後のＡＩＤがＭａｘＡＩＤ以下であるかを判定する（ステップＳ１９）。もし、ＡＩＤがＭａｘＡＩＤ以下であるならば、モジュール１２５ａは上記ステップＳ２に戻る。これに対し、ＡＩＤがＭａｘＡＩＤ以下でないならば、即ちＡＩＤがＭａｘＡＩＤを超えたならば、モジュール１２５ａは現サンプル周期での収集処理を終了する。
【０１２１】
モジュール１２５ａは、上述のようにして収集されたＰ［ＡＩＤ］、Ｑ［ＡＩＤ］［ＥＩＤ］及びＲ［ＡＩＤ］［ＥＩＤ］を、これらを収集するのに用いられたサンプル数（サンプル周期数）で除する。これによりモジュール１２５ａは、ＨＤＤＩ／Ｏ存在率Ｐｒ［ＡＩＤ］、エクステントチャンクＩ／Ｏ存在率Ｑｒ［ＡＩＤ］［ＥＩＤ］及び同時Ｉ／Ｏ存在率Ｒｒ［ＡＩＤ］［ＥＩＤ］を取得する。
【０１２２】
［第１の変形例］
次に上記実施形態の第１の変形例について図１１を参照して説明する。この第１の変形例の特徴は、エクステントマイグレーションの対象となる第１のアレイ及び第１のエクステントと、エクステントマイグレーションの相手となる第２のアレイ及び第２のエクステントとを選択する条件が上記実施形態と一部異なる点にある。
【０１２３】
まず、アレイ１１-1（＃１），１１-2（＃２）及び１１-3（＃３）をエクステントマイグレーションによるデータ再配置の候補（最適化候補）であるものとする。これらの最適化候補からなるグループ（前述のＲＡＩＤグループに相当）を、最適化対象グループ（またはデータ再配置対象グループ）と呼ぶ。第１のエクステントには、最適化対象グループに含まれるアレイ１１-1（＃１）〜１１-3（＃３）の代表ＨＤＤ１１０（＃１）〜１１０（＃３）の中で、同時Ｉ／Ｏ存在率が最も高いエクステントチャンクが属するエクステントが用いられる。したがって、第１のアレイには、第１のエクステントが属するアレイが用いられる。
【０１２４】
図１１の例では、アレイ１１-1（＃１）〜１１-3（＃３）の代表ＨＤＤ１１０（＃１）〜１１０（＃３）の中で、同時Ｉ／Ｏ存在率が最も高いエクステントチャンクは代表ＨＤＤ１１０（＃１）内のエクステントチャンク１１１である。つまり、代表ＨＤＤ１１０（＃１）〜１１０（＃３）の中で、同時Ｉ／Ｏ存在率が最も高いエクステントチャンク１１１を含む代表ＨＤＤは、アレイ１１-1（＃１）の代表ＨＤＤ１１０（＃１）である。第１のエクステントはエクステントチャンク１１１が属するアレイ１１-1（＃１）内のエクステント１１４である。
【０１２５】
第２のアレイには、アレイ１１-1（＃１）〜１１-3（＃３）の代表ＨＤＤ１１０（＃１）〜１１０（＃３）の中で、ＨＤＤＩ／Ｏ存在率が最も低い代表ＨＤＤ１１０を含むアレイ（つまりＨＤＤ活用率が最低のアレイ）が用いられる。第２のエクステントには、上述の第２のアレイ内のエクステントのうち、当該第２のアレイの代表ＨＤＤ１１０においてエクステントチャンクＩ／Ｏ存在率が最も低いエクステントチャンクが属するエクステントが用いられる。
【０１２６】
図１１の例では、ＨＤＤＩ／Ｏ存在率が最も低い代表ＨＤＤ１１０は、アレイ１１-2（＃２）の代表ＨＤＤ１１０（＃２）であり、したがって第２のアレイはアレイ１１-2（＃２）である。また、アレイ１１-2（＃２）の代表ＨＤＤ１１０（＃２）においてエクステントチャンクＩ／Ｏ存在率が最も低いエクステントチャンクはエクステントチャンク１１５であり、第２のエクステントは当該エクステントチャンク１１５が属するアレイ１１-1（＃２）内のエクステント１１６である。
【０１２７】
このような条件を満たす、第１のアレイ１１-1（＃１）内の第１のエクステント１１４と第２のアレイ１１-2（＃２）の第２のエクステント１１６との間でエクステントマイグレーション１１７を行うことにより、上記実施形態に比べてより効果的にストレージシステムの最適化を行うことができる。
【０１２８】
［第２の変形例］
次に上記実施形態の第２の変形例について説明する。第２の変形例の特徴は、ＨＤＤ１１０の性能向上のために、上記実施形態と異なって、アレイ内エクステントマイグレーションが行われる点にある。以下、このアレイ内エクステントマイグレーションについて図１２を参照して説明する。  
図１２において、アレイ１１-iの代表ＨＤＤ１１０にエクステントチャンク１３１及び１３２が含まれている。エクステントチャンク１３１及び１３２には、それぞれ、データＤ１及びＤ２が格納されている。ここでは、エクステントチャンク１３１及び１３２は、共に実行中Ｉ／Ｏが存在する度合い（エクステントチャンクＩ／Ｏ存在率）が一定レベルよりも高いものとする。この場合、代表ＨＤＤ１１０において、エクステントチャンク１３１からエクステントチャンク１３２に、またはその逆の方向にヘッドを移動するシーク動作が発生する度合いは高い。
【０１２９】
ところが、エクステントチャンク１３１及び１３２間が代表ＨＤＤ１１０のディスク媒体上で物理的に離れているために、エクステントチャンク１３１及び１３２間のシーク動作でヘッドが移動する距離（シーク距離）が長く、したがってシーク動作に要する時間（シーク時間）も長いものとする。このような状態では、ＨＤＤ１１０の性能は、頻繁に発生するエクステントチャンク１３１及び１３２間のシーク動作により低下する。
【０１３０】
そこでアレイコントローラ１２-j（内のＲＡＩＤマネージャ１２５）は、エクステントチャンクＩ／Ｏ存在率が高いエクステントチャンク１３１及び１３２の一方が属するエクステント、例えばエクステントチャンク１３２が属するエクステントをアレイ内エクステントマイグレーションの対象として選択する。またアレイコントローラ１２-j（内のＲＡＩＤマネージャ１２５）は、エクステントチャンク１３１及び１３２のうちの他方のエクステントチャンク１３１の近傍の、例えばエクステントチャンク１３１に隣接する、当該エクステントチャンク１３２よりもエクステントチャンクＩ／Ｏ存在率が低いエクステントチャンク１３３が属するエクステントを、エクステントチャンク１３２が属するエクステントとの間のアレイ内エクステントマイグレーションの対象として選択する。
【０１３１】
ここで、エクステントチャンク１３１及び１３３（が属するエクステント）相互の代表ＨＤＤ１１０（アレイ１１-i）内の位置は、エクステントチャンク１３１及び１３２（が属するエクステント）相互の代表ＨＤＤ１１０（アレイ１１-i）内の位置よりも近くなっていることに注意されたい。
【０１３２】
アレイコントローラ１２-j（内のＲＡＩＤマネージャ１２５）は、選択された１対のエクステント、即ちエクステントチャンク１３２が属するエクステントと、（エクステントチャンク１３１に隣接する）エクステントチャンク１３３が属するエクステントとの間で、アレイ内エクステントマイグレーション１３４を行う。
【０１３３】
アレイ内エクステントマイグレーション１３４によるデータ再配置１３５の結果、代表ＨＤＤ１１０内のエクステントチャンク１３２のデータＤ２は、当該代表ＨＤＤ１１０内のエクステントチャンク１３３に再配置される。このエクステントマイグレーション１３４では、エクステントチャンク１３２が属するエクステント（第３のエクステント）に含まれている他のエクステントチャンクのデータが、エクステントチャンク１３３が属するエクステント（第４のエクステント）に含まれている他のエクステントチャンクに再配置される。
【０１３４】
第２の変形例においては、アレイ内エクステントマイグレーション１３４によるデータ再配置１３５の結果、つまりデータＤ２がエクステントチャンク１３２からエクステントチャンク１３１に隣接するエクステントチャンク１３３に再配置された結果、データＤ２が格納されているエクステントチャンクの位置は、データ再配置１３５の実行前に比べて、データＤ１が格納されているエクステントチャンク１３１にＨＤＤ１１０上で近接する。これにより、データＤ１が格納されているエクステントチャンクの位置とデータＤ２が格納されているエクステントチャンクの位置との間のシーク距離は短くなる。即ち、上記データＤ１が格納されているエクステントチャンクからデータＤ２が格納されているエクステントチャンクに、またはその逆の方向に、ヘッドを移動するのに要するシーク時間を短縮できる。このことは、データ再配置１３５の実行前に、データＤ１及びＤ２がそれぞれ格納されていたエクステントチャンク１３１及び１３２間のシーク距離が短くなって、エクステントチャンク１３１及び１３２間のヘッド移動に要するシーク時間を短縮することと等価である。このことは、エクステントチャンク１３１及び１３２がそれぞれ属するエクステントに含まれている他のエクステントチャンクについても同様である。この結果、アレイ１１-i内の各ＨＤＤ１１０での性能が向上する。
【０１３５】
次に、第２の変形例で適用される、アレイ内エクステントマイグレーション（によるエクステント再配置）を実行する条件について説明する。  
本変形例において、アレイコントローラ１２-j（内のＲＡＩＤマネージャ１２５）は、次の２つの条件
１）最後にエクステント再配置してからの経過時間が一定時間以上
２）アレイ内エクステントマイグレーションの候補となる１対のエクステントに含まれる１対のエクステントチャンクであって、当該１対のエクステントが属するアレイの代表ＨＤＤに含まれる１対のエクステントチャンクのエクステントチャンクＩ／Ｏ存在率の差分が一定値以上
の全てが成立した場合にエクステント再配置を実行する。
【０１３６】
ここで、条件１）における「一定時間」、即ちエクステント再配置の実行周期として、上述のエクステントチャンクＩ／Ｏ存在率の差分Δに応じて実行周期Ｔを一意に決定する関数ｆ（Δ）を用い、差分が一定レベル以上大きい場合にはエクステント再配置の周期を短くすると良い。このようにすると、効率良く性能向上を図ることができる。関数ｆ（Δ）としては、例えばΔが一定レベル未満ではｆ（Δ）が第１の実行周期Ｔ１を示し、Δが一定レベル以上ではｆ（Δ）が第１の実行周期Ｔ１より短い第２の実行周期Ｔ２を示すものを用いれば良い。また、Δが一定レベル以上では、当該Δが大きくなるほど短くなるように決定される関数ｆ（Δ）を用いることも可能である。
【０１３７】
上述のように、アレイ内エクステントマイグレーションは行われるものの、アレイ間エクステントマイグレーションは行われない第２の変形例では、自律最適化制御に同時Ｉ／Ｏ存在率は不要である。この場合、ＲＡＩＤマネージャ１２５内のＩ／Ｏ統計情報収集モジュール１２５ａは、ＨＤＤＩ／Ｏ存在率Ｐｒ［ＡＩＤ］及びエクステントチャンクＩ／Ｏ存在率Ｑｒ［ＡＩＤ］［ＥＩＤ］を算出するだけで良い。したがってモジュール１２５ａは、ＨＤＤＩ／Ｏ存在サンプル数Ｐ［ＡＩＤ］及びエクステントチャンクＩ／Ｏ存在サンプル数Ｑ［ＡＩＤ］［ＥＩＤ］を収集するだけで良い。
【０１３８】
このＨＤＤＩ／Ｏ存在サンプル数Ｐ［ＡＩＤ］及びエクステントチャンクＩ／Ｏ存在サンプル数Ｑ［ＡＩＤ］［ＥＩＤ］を収集する処理の１サンプル（サンプル周期）における手順を図１３に示す。図１３において、図１０と同様の部分には同一符号を付してある。
【０１３９】
なお、上記第２の変形例では、アレイ１１-iの代表ＨＤＤ１１０内でエクステントチャンクＩ／Ｏ存在率が一定レベルよりも高いエクステントチャンクの個数Ｎが２である場合を前提としている。しかし、Ｎが３以上の場合にも同様に適用できる。即ち、Ｎ個のエクステントチャンクが属するＮ個のエクステントのうちのＮ−１個のエクステントと、残りの１個のエクステントチャンクの近傍のＮ−１個のエクステントチャンクとの間で、それぞれアレイ内エクステントマイグレーションを行えば良い。また、次の第３の変形例のように、エクステントチャンクＩ／Ｏ存在率が高いＮ個のエクステントチャンクが属するＮ個のエクステントの全てをアレイ内エクステントマイグレーションの対象とすることも可能である。
【０１４０】
［第３の変形例］
次に上記実施形態の第３の変形例について図１４を参照して説明する。第３の変形例の第１の特徴は、アレイ１１-iの代表ＨＤＤ１１０においてエクステントチャンクＩ／Ｏ存在率が高い複数のエクステントチャンクがそれぞれ属するエクステントを対象として、当該複数のエクステントチャンク間のシーク距離が等価的により短くなるようにアレイ内エクステントマイグレーションが行われる点にある。第３の変形例の第２の特徴は、アレイ内エクステントマイグレーションの対象となる各エクステント（内の複数のエクステントチャンク）が、当該エクステントに含まれている代表ＨＤＤ１１０内のエクステントチャンクのエクステントチャンクＩ／Ｏ存在率の降順に、アレイ１１-iを構成する各ＨＤＤ１１０（に搭載されているディスク媒体）の外周から順に再配置される点にある。一般にＨＤＤ１１０では、ディスク媒体の外周側ほど、論理ブロックアドレス（Logical Block Address: ＬＢＡ）が小さくなる。
【０１４１】
図１４において、アレイ１１-iの代表ＨＤＤ１１０に含まれているエクステントチャンク１４１及び１４２は、それぞれエクステントチャンクＩ／Ｏ存在率が代表ＨＤＤ１１０内で第１位及び第２位であるものとする。
【０１４２】
アレイコントローラ１２-j（内のＲＡＩＤマネージャ１２５）は、まずアレイ１１-iの代表ＨＤＤ１１０内でエクステントチャンクＩ／Ｏ存在率が第１位のエクステントチャンク１４１が属するエクステントと、代表ＨＤＤ１１０内（に搭載されているディスク媒体）の最外周に位置するエクステントチャンク１４３が属するエクステントとの間で、アレイ内エクステントマイグレーション１４５を行う。
【０１４３】
次にアレイコントローラ１２-j（内のＲＡＩＤマネージャ１２５）は、代表ＨＤＤ１１０内でエクステントチャンクＩ／Ｏ存在率が第２位のエクステントチャンク１４２が属するエクステントと、代表ＨＤＤ１１０内のエクステントチャンク１４３に隣接し、且つ当該エクステントチャンク１４３よりも代表ＨＤＤ１１０の内周側に位置するエクステントチャンク１４４が属するエクステントとの間で、アレイ内エクステントマイグレーション１４６を行う。
【０１４４】
このようなアレイ内エクステントマイグレーション１４５及び１４６により、代表ＨＤＤ１１０内でエクステントチャンクＩ／Ｏ存在率が高いエクステントチャンク１４１及び１４２が属するエクステント（内の複数のエクステントチャンク）は、当該エクステントに含まれている代表ＨＤＤ１１０内のエクステントチャンクのエクステントチャンクＩ／Ｏ存在率の降順に、アレイ１１-iを構成する各ＨＤＤ１１０（に搭載されているディスク媒体）の最外周から順に再配置される。例えば代表ＨＤＤ１１０内では、エクステントチャンクＩ／Ｏ存在率が第１位のエクステントチャンク１４１のデータが当該代表ＨＤＤ１１０の最外周（のエクステントチャンク１４３）に再配置され、エクステントチャンクＩ／Ｏ存在率が第２位のエクステントチャンク１４２のデータが、エクステントチャンク１４１の再配置先に隣接する位置（エクステントチャンク１４４）に再配置される。
【０１４５】
第３の変形例においては、アレイ内エクステントマイグレーション１４５及び１４６により、等価的に、エクステントチャンクＩ／Ｏ存在率が上位のエクステントチャンク１４１及び１４２間のシーク距離が短くなり、エクステントチャンク１４１及び１４２間のシーク時間を短縮することができる。このことは、エクステントチャンク１４１及び１４２がそれぞれ属するエクステントに含まれている他のエクステントチャンクについても同様である。しかも第３の変形例においては、エクステントチャンクＩ／Ｏ存在率がより高いエクステントチャンクほど、ＨＤＤ１１０に搭載されているディスク媒体の外周側に再配置される。一般にＨＤＤ１１０に搭載されているディスク媒体は、外周側ほどトラック当たりのセクタ数が多く、したがって性能が高くなる。このため第３の変形例においては、上述のアレイ内エクステントマイグレーションにより、ＨＤＤ１１０のＩ／Ｏ性能をより一層向上できる。
【０１４６】
次に、アレイ１１-iの代表ＨＤＤ１１０内でエクステントチャンクＩ／Ｏ存在率が上位のエクステントチャンク群の中に、当該Ｉ／Ｏ存在率が等しい複数のエクステントチャンクが存在する場合について、図１５を参照して説明する。
【０１４７】
図１５において、エクステントチャンク１５１及び１５２は、エクステントチャンクＩ／Ｏ存在率が代表ＨＤＤ１１０内で等しく、例えば共に第１位であるものとする。また、エクステントチャンク１５１及び１５２のうち、エクステントチャンク１５１の方が代表ＨＤＤ１１０の外周側に配置されているものとする。更に、アレイ１１-iを構成するエクステント（内のエクステントチャンク）は、エクステント番号が小さいエクステントほど、ＨＤＤ１１０の外周側に物理的に配置されるものとする。
【０１４８】
アレイコントローラ１２-j（内のＲＡＩＤマネージャ１２５）は、エクステントチャンクＩ／Ｏ存在率が等しい複数のエクステントチャンクの各々が属するエクステントがアレイ内エクステントマイグレーションの対象に含まれている場合、これらのエクステントのアレイ内エクステントマイグレーションを次のような順序で実行する。即ちアレイコントローラ１２-j（内のＲＡＩＤマネージャ１２５）は、エクステント番号が大きいエクステント（ＨＤＤ１１０の外周からより離れているエクステント）ほど優先的にアレイ内エクステントマイグレーションを行う。
【０１４９】
図１５の例では、まずアレイコントローラ１２-j（内のＲＡＩＤマネージャ１２５）は、エクステントチャンク１５１及び１５２のうちのエクステントチャンク１５２が属するエクステントと、代表ＨＤＤ１１０内のより外周側（ここでは最外周）に位置するエクステントチャンク１５３が属するエクステントとの間で、アレイ内エクステントマイグレーション１５５を行う。次にアレイコントローラ１２-j（内のＲＡＩＤマネージャ１２５）は、エクステントチャンク１５１が属するエクステントと、代表ＨＤＤ１１０内のエクステントチャンク１５３に隣接するエクステントチャンク１５４が属するエクステントとの間で、アレイ内エクステントマイグレーション１５６を行う。ここで、エクステントチャンク１５２が属するエクステントは、エクステントチャンク１５１が属するエクステントよりもＩ／Ｏ性能が低くなる位置（ＨＤＤ１１０の内周寄りの位置）に配置されている。したがって、エクステントチャンク１５２のアレイ内エクステントマイグレーションを優先させることにより、Ｉ／Ｏ性能の一層の向上が可能となる。
【０１５０】
第３の変形例においても、第２の変形例と同様に、図１３のフローチャートに従って、ＨＤＤＩ／Ｏ存在サンプル数Ｐ［ＡＩＤ］及びエクステントチャンクＩ／Ｏ存在サンプル数Ｑ［ＡＩＤ］［ＥＩＤ］を収集する処理が行われる。
【０１５１】
次に、第３の変形例におけるアレイ内エクステントマイグレーションについて、図１６を参照して更に詳細に説明する。図１６においてアレイ１１-iは複数のＨＤＤ１１０（例えば前記実施形態と同様に６台のＨＤＤ１１０）から構成されている。アレイ１１-iの記憶領域は複数のエクステント（例えば前記実施形態と同様に１５００個のエクステント）に分割して管理される。ここでは、複数のエクステントに対して、ＨＤＤ１１０の外周側からＥＩＤが０，１，…の順に割り当てられている。
【０１５２】
第３の変形例では、ＡＩＤで示されるアレイ内の代表ＨＤＤ１１０におけるエクステントチャンク毎のエクステントチャンクＩ／Ｏ存在率Ｑｒ［ＡＩＤ］［ＥＩＤ］が、その存在率の降順にソートされる。このソートは例えばＲＡＩＤマネージャ１２５内の自律最適化制御エンジン１２５ｃによって行われる。代表ＨＤＤ１１０におけるエクステントチャンクの総数をｎ（つまりＭａｘＥＩＤ＝ｎ−１）、ソート後のＮ番目（Ｎ＝０，１，…，ｎ−１）のＱｒ［ＡＩＤ］［ＥＩＤ］のＥＩＤをＸNで表すと、ｎ個のＱｒ［ＡＩＤ］［ＥＩＤ］、即ちＱｒ［ＡＩＤ］［Ｘ0］，Ｑｒ［ＡＩＤ］［Ｘ1］，…，Ｑｒ［ＡＩＤ］［Ｘn-1］の大小関係は、
Ｑｒ［ＡＩＤ］［Ｘ0］≧Ｑｒ［ＡＩＤ］［Ｘ1］≧…≧Ｑｒ［ＡＩＤ］［Ｘn-1］
となる。
【０１５３】
今、アレイ内エクステントマイグレーションの実行対象となるエクステントの対（エクステントマイグレーション実行ペア）が、図１６に示されるように第３のエクステント１６１及び第４のエクステント１６２であるものとする。第３のエクステント１６１及び第４のエクステント１６２は次のように定義される。
【０１５４】
まず、第４のエクステント１６２は、代表ＨＤＤ１１０（に搭載されているディスク媒体）の外周からｋ番目のエクステントチャンクが属するエクステント（つまりＥＩＤ＝ｋのエクステント）である。第３のエクステント１６１は、代表ＨＤＤ１１０内のｋ番目に大きいエクステントチャンクＩ／Ｏ存在率Ｑｒ［ＡＩＤ］［Ｘk］のエクステントチャンクが属するエクステント（ＥＩＤ＝Ｘｋのエクステント）である。
【０１５５】
第３のエクステント１６１と第４のエクステント１６２との間でアレイ内エクステントマイグレーションが実行される条件（エクステントマイグレーション実行条件）は、前記第２の変形例で挙げた条件から明らかなように、
１）最後にエクステント再配置してからの経過時間が一定時間以上
２）第３及び第４のエクステントが属するアレイの代表ＨＤＤにおけるエクステントチャンクのエクステントチャンクＩ／Ｏ存在率Ｑｒ［ＡＩＤ］［Ｘk］及びＱｒ［ＡＩＤ］［ｋ］の差分（Ｑｒ［ＡＩＤ］［Ｘk］−Ｑｒ［ＡＩＤ］［ｋ］）が一定値以上
である。
【０１５６】
ＲＡＩＤマネージャ１２５内の自律最適化制御エンジン１２５ｃは、上記のエクステントマイグレーション実行条件が成立する１対のエクステント（物理エクステント）１６１及び１６２、即ちＥＩＤ＝Ｘｋの第３のエクステント１６１及びＥＩＤ＝ｋの第４のエクステント１６２について、当該エクステント１６１及び１６２の間のエクステントマイグレーションをエクステントマイグレーション実行モジュール１２５ｂに指示する。この指示を受けて、モジュール１２５ｂは、ＥＩＤ＝Ｘｋの第３のエクステント１６１及びＥＩＤ＝ｋの第４のエクステント１６２の間のアレイ内エクステントマイグレーションを行う。このエクステントマイグレーションは、第３のエクステントがＱｒ［ＡＩＤ］［Ｘk］の降順に選択されることにより逐次行われる。
【０１５７】
［第４の変形例］
次に上記実施形態の第４の変形例について図１７を参照して説明する。第４の変形例の特徴は、上記実施形態または第１の変形例で適用されたアレイ間のエクステントマイグレーションと、上記第２または第３の変形例で適用されたアレイ内のエクステントマイグレーションとを組み合わせた点にある。
【０１５８】
例えばアレイコントローラ１２-1（内のＲＡＩＤマネージャ１２５）は、第１のステップとして、アレイ１１-1（＃１），１１-2（＃２）及び１１-3（＃３）間のエクステントマイグレーション１７１によるエクステント再配置を行う。このエクステント再配置により、アレイコントローラ１２-1（内のＲＡＩＤマネージャ１２５）は、アレイ１１-1（＃１），１１-2（＃２）及び１１-3（＃３）の各々の代表ＨＤＤ１１０のＨＤＤＩ／Ｏ存在率を一定レベルまで均等化する。
【０１５９】
次にアレイコントローラ１２-1（内のＲＡＩＤマネージャ１２５）は、第２のステップとして、アレイ１１-1（＃１），１１-2（＃２）及び１１-3（＃３）に対して、それぞれアレイ内エクステントマイグレーション１７２-1，１７２-2及び１７２-3によるエクステント再配置を行う。このエクステント再配置により、アレイコントローラ１２-1（内のＲＡＩＤマネージャ１２５）は、アレイ１１-1（＃１），１１-2（＃２）及び１１-3（＃３）を構成する各ＨＤＤ１１０のシーク時間短縮を図る。
【０１６０】
［第５の変形例］
次に上記実施形態の第５の変形例について図１８及び図１９を参照して説明する。第５の変形例の特徴は、上記実施形態または第１の変形例で適用されたアレイ間のエクステントマイグレーションを、異なるディスクアレイ装置間に適用した点にある。
【０１６１】
アレイコントローラ１２-1（内のＲＡＩＤマネージャ１２５）は第１のステップとして、図１８（ａ）に示すように、ディスクアレイ装置１０-1内のアレイ１１-1（＃１），１１-2（＃２）及び１１-3（＃３）間のエクステントマイグレーション１８１-1によるエクステント再配置を行う。このエクステント再配置により、アレイコントローラ１２-1（内のＲＡＩＤマネージャ１２５）は、アレイ１１-1（＃１），１１-2（＃２）及び１１-3（＃３）の各々の代表ＨＤＤ１１０のＨＤＤＩ／Ｏ存在率を一定レベルまで均等化する。
【０１６２】
一方、アレイコントローラ１２-2（内のＲＡＩＤマネージャ１２５）も第１のステップとして、図１８（ａ）に示すように、ディスクアレイ装置１０-2内のアレイ１１−A（＃Ａ），１１-B（＃Ｂ）及び１１-C（＃Ｃ）間のエクステントマイグレーション１８１-2によるエクステント再配置を行う。このエクステント再配置により、アレイコントローラ１２-2（内のＲＡＩＤマネージャ１２５）は、アレイ１１−A（＃Ａ），１１-B（＃Ｂ）及び１１-C（＃Ｃ）の各々の代表ＨＤＤ１１０のＨＤＤＩ／Ｏ存在率を一定レベルまで均等化する。
【０１６３】
このように第１のステップでは、ディスクアレイ装置１０-1及び１０-2において、それぞれアレイ間のエクステントマイグレーション１８１-1及び１８１-2が行われ、当該ディスクアレイ装置１０-1及び１０-2内の最適化が行われる。
【０１６４】
次にアレイコントローラ１２-1及び１２-2（内のＲＡＩＤマネージャ１２５）は第２のステップとして、相互に通信を行い、図１８（ｂ）に示すように、ディスクアレイ装置１０-1内のアレイ１１-1（＃１），１１-2（＃２）及び１１-3（＃３）と、ディスクアレイ装置１０-2内のアレイ１１−A（＃Ａ），１１-B（＃Ｂ）及び１１-C（＃Ｃ）との間で、つまりディスクアレイ装置１０-1及び１０-2間で、ネットワーク３２を介してアレイ間のエクステントマイグレーション１８２によるエクステント再配置を行う。このエクステント再配置により、アレイコントローラ１２-1及び１２-2（内のＲＡＩＤマネージャ１２５）は、ディスクアレイ装置１０-1内のアレイ１１-1（＃１），１１-2（＃２）及び１１-3（＃３）と、ディスクアレイ装置１０-2内のアレイ１１−A（＃Ａ），１１-B（＃Ｂ）及び１１-C（＃Ｃ）の各々の代表ＨＤＤ１１０のＨＤＤＩ／Ｏ存在率を一定レベルまで均等化する。
【０１６５】
このように第２のステップでは、ディスクアレイ装置１０-1及び１０-2の間でアレイ間のエクステントマイグレーション１８２が行われ、当該ディスクアレイ装置１０-1及び１０-2の間の最適化が行われる。
【０１６６】
この第２のステップの後に、アレイコントローラ１２-1（内のＲＡＩＤマネージャ１２５）は、第３のステップとして、図１９に示すように、アレイ１１-1（＃１），１１-2（＃２）及び１１-3（＃３）に対して、それぞれアレイ内エクステントマイグレーション１９１-1，１９１-2及び１９１-3によるエクステント再配置を行う。
【０１６７】
一方、アレイコントローラ１２-2（内のＲＡＩＤマネージャ１２５）も第３のステップとして、図１９に示すように、アレイ１１−A（＃Ａ），１１-B（＃Ｂ）及び１１-C（＃Ｃ）に対して、それぞれアレイ内エクステントマイグレーション１９１-A，１９１-B及び１９１-Cによるエクステント再配置を行う。なお、第３のステップが省略されても構わない。
【０１６８】
なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。例えば、ＨＤＤ単位及びエクステントチャンク単位での実行中Ｉ／Ｏ存在率の代わりに、アレイ単位及びエクステント単位の実行中Ｉ／Ｏ存在率を用いても良い。即ち、第１の存在率として、当該アレイ内の複数のエクステントに同時に実行中Ｉ／Ｏが存在する度合いを用い、第２の存在率として、当該アレイに実行中Ｉ／Ｏが存在する度合いを用い、第３の存在率として、当該エクステントに実行中Ｉ／Ｏが存在する度合いを用いることもできる。また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【０１６９】
【図１】本発明の一実施形態に係るディスクアレイサブシステムの構成を示すブロック図。
【図２】アレイにおけるエクステントとエクステントチャンクとの関係を示す図。
【図３】図１に示されるアレイコントローラの構成を示すブロック図。
【図４】同実施形態におけるエクステントマイグレーションを説明するための図。
【図５】エクステントマイグレーションの対象となるエクステントを決定するのに同時Ｉ／Ｏ存在率を用いる理由を説明するための図。
【図６】同実施形態において同時Ｉ／Ｏ存在率を表す指標となる情報を取得する手法を説明するための図。
【図７】同実施形態においてＨＤＤＩ／Ｏ存在率を表す指標となる情報を取得する手法を説明するための図。
【図８】同実施形態においてエクステントチャンクＩ／Ｏ存在率を表す指標となる情報を取得する手法を説明するための図。
【図９】図２に示されるアレイコントローラ内のＲＡＩＤマネージャの主要な構成を当該アレイコントローラ内の他の要素と関連付けて示すブロック図。
【図１０】同実施形態で適用される、ＨＤＤＩ／Ｏ存在サンプル数、エクステントチャンクＩ／Ｏ存在サンプル数及び同時Ｉ／Ｏ存在サンプル数を収集する処理の１サンプルにおける手順を示すフローチャート。
【図１１】上記実施形態の第１の変形例におけるエクステントマイグレーションを説明するための図。
【図１２】上記実施形態の第２の変形例におけるアレイ内エクステントマイグレーションを説明するための図。
【図１３】同第２の変形例で適用される、ＨＤＤＩ／Ｏ存在サンプル数及びエクステントチャンクＩ／Ｏ存在サンプル数を収集する処理の１サンプルにおける手順を示すフローチャート。
【図１４】上記実施形態の第３の変形例におけるアレイ内エクステントマイグレーションを説明するための図。
【図１５】同第３の変形例において、Ｉ／Ｏ存在率が等しい複数のエクステントチャンクが存在する場合のアレイ内エクステントマイグレーションを説明するための図。
【図１６】同第３の変形例におけるアレイ内エクステントマイグレーションの詳細を説明するための図。
【図１７】上記実施形態の第４の変形例で適用される、アレイ間エクステントマイグレーションとアレイ内エクステントマイグレーションの組み合わせを説明するための図。
【図１８】上記実施形態の第５の変形例で適用される、ディスクアレイ装置毎に行われるアレイ間エクステントマイグレーションと、ディスクアレイ装置間で行われるアレイ間エクステントマイグレーションとの組み合わせを説明するための図。
【図１９】同第５の変形例において、図１８に示す組み合わせに加えて適用されるアレイ内エクステントマイグレーションを説明するための図。
【符号の説明】
【０１７０】
１…ディスクアレイサブシステム、１０-1，１０-2…ディスクアレイ装置、１１-1〜１１-3，１１-A〜１１-C…アレイ、１２-1，１２-2，１２-j…アレイコントローラ、２０…ホスト装置、３１，３２…ネットワーク、１１０…ＨＤＤ、１２５…ＲＡＩＤマネージャ、１２５ａ…Ｉ／Ｏ統計情報収集モジュール、１２５ｂ…エクステントマイグレーション実行モジュール、１２５ｃ…自律最適化制御エンジン、１２６…ＨＤＤドライバ、１２７…メモリ。
【図１】
2008046763.tif 000003
【図２】
2008046763.tif 000004
【図３】
2008046763.tif 000005
【図４】
2008046763.tif 000006
【図５】
2008046763.tif 000007
【図６】
2008046763.tif 000008
【図７】
2008046763.tif 000009
【図８】
2008046763.tif 000010
【図９】
2008046763.tif 000011
【図１０】
2008046763.tif 000012
【図１１】
2008046763.tif 000013
【図１２】
2008046763.tif 000014
【図１３】
2008046763.tif 000015
【図１４】
2008046763.tif 000016
【図１５】
2008046763.tif 000017
【図１６】
2008046763.tif 000018
【図１７】
2008046763.tif 000019
【図１８】
2008046763.tif 000020
【図１９】
2008046763.tif 000021