(57)【要約】【課題】  ２以上の記憶領域におけるアクセス性能の差に起因する非効率性を低減する。【解決手段】  ボリューム管理装置は、データを記憶する記憶装置にアクセスするアクセス手段と、前記記憶装置内の記憶領域の一部または全部の区間であってアクセス性能が相異なる複数の前記区間の、それぞれにおいて前記アクセス手段によってアクセスされる領域の容量の比が、前記区間のアクセス性能の比に基づいた値になるよう、アクセス先を決定し、決定された前記アクセス先の情報を前記アクセス手段に提供する、情報提供手段と、を備える。【選択図】      図２０
2017174302.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する記憶装置にアクセスするアクセス手段と、
前記記憶装置内の記憶領域の一部または全部の区間であってアクセス性能が相異なる複数の前記区間の、それぞれにおいて前記アクセス手段によってアクセスされる領域の容量の比が、前記区間のアクセス性能の比に基づいた値になるよう、アクセス先を決定し、決定された前記アクセス先の情報を前記アクセス手段に提供する、情報提供手段と、
を備えるボリューム管理装置。
【請求項２】
前記アクセス手段は、前記複数の前記区間に、前記データを、前記区間のアクセス性能の比に基づいた比に分割して格納する、
請求項１に記載のボリューム管理装置。
【請求項３】
前記情報提供手段は、
前記記憶装置の前記記憶領域を、所定の分割数で、該分割数で分割されることにより生成するどの区間の開始位置から終了位置までのアクセスにかかる時間もほぼ均一になるように、分割することで、前記区間を生成する、分割手段と、
前記区間を、どの組み合わせの前記区間の容量の和もほぼ均一になるように組み合わせ、組み合わせた前記区間にその組み合わせを識別するペア番号を付与する、ペア生成手段と、
前記アクセス手段によるアクセス先が、同一の前記ペア番号が付与された前記区間のそれぞれであるように、前記アクセス手段に前記アクセス先の情報を提供する、アクセス先特定手段と、
を含む、請求項１または２に記載のボリューム管理装置。
【請求項４】
前記分割手段は、前記記憶装置の性能特性を前記記憶領域に含まれるブロックのブロック番号による線形な関数に近似することによって得られる計算式に基づいて、前記区間の境界の位置を算出する、
請求項３に記載のボリューム管理装置。
【請求項５】
前記区間は、ブロック番号が付与された少なくとも１つのブロックからなり、
前記情報提供手段は、論理ブロック番号をそれぞれいずれかの前記区間のいずれかの前記ブロックの前記ブロック番号に対応付け、対応付けた情報を前記アクセス先の情報として前記アクセス手段に提供するアクセス先特定手段を含み、
前記アクセス手段は、前記アクセス先の情報に基づき、一定範囲の連続する論理ブロック番号のそれぞれが対応付けられる、それぞれの前記区間の前記ブロック番号の前記ブロックにアクセスし、
前記区間のそれぞれにおいて、前記アクセス手段によりアクセスされる前記ブロックの数の比は、前記区間のそれぞれのアクセス性能の比に基づいた値である、
請求項３または４に記載のボリューム管理装置。
【請求項６】
前記アクセス先特定手段は、
論理ブロック番号を受け取り、
受け取った論理ブロック番号に、該論理ブロック番号に基づいて、前記ペア番号を対応付け、
受け取った論理ブロック番号に、該論理ブロック番号と、対応付けた前記ペア番号を構成する区間の開始位置の情報とに基づいて、同一の前記ペア番号の前記論理ブロック番号の集合においてそれぞれの前記論理ブロック番号を識別するペア内論理番号を対応付け、
対応付けた前記ペア内論理番号に基づいて、受け取った論理ブロック番号に前記区間の１つを対応付け、
対応付けた前記ペア番号と対応付けた前記ペア内論理番号とに基づいて、受け取った論理ブロック番号に前記ブロック番号を対応付けることで、
受け取った論理ブロック番号をいずれかの前記区間のいずれかの前記ブロックの前記ブロック番号に対応付ける、
請求項５に記載のボリューム管理装置。
【請求項７】
論理ブロック番号を、第１の記憶領域、および、前記第１の記憶領域とアクセス性能が異なる前記第２の記憶領域の、いずれかに割り当て、
一定長の連続する論理ブロック番号の集合のうち、第１の記憶領域に割り当てられる論理ブロック番号の個数と、第２の記憶領域に割り当てられる論理ブロック番号の個数との比は、前記第１の記憶領域の有するブロック数と前記第２の記憶領域の有するブロック数との比に基づいた値である、
論理ブロック番号の割り当て方法。
【請求項８】
データを記憶する記憶装置内の記憶領域の一部または全部の区間であってアクセス性能が相異なる複数の前記区間の、それぞれにおいてアクセスされる領域の容量の比が、前記区間のアクセス性能の比に基づいた値になるよう、前記区間にアクセスする、
ボリューム管理方法。
【請求項９】
コンピュータに、
データを記憶する記憶装置にアクセスするアクセス処理と、
前記アクセス処理が、前記記憶装置内の記憶領域の一部または全部の区間であってアクセス性能が相異なる複数の前記区間の、それぞれにおいてアクセスされる領域の容量の比が、前記区間のアクセス性能の比に基づいた値になるよう、前記アクセス処理にアクセス先の情報を提供する、情報提供処理と、
を実行させるプログラム。
【請求項１０】
データを記憶する記憶装置にアクセスするアクセス手段と、
前記記憶装置内の記憶領域の一部または全部の区間であってアクセス性能が相異なる複数の前記区間の、それぞれにおいて前記アクセス手段によってアクセスされる領域の容量の比が、前記区間の容量の比に基づいた値になるよう、アクセス先を決定し、決定された前記アクセス先の情報を前記アクセス手段に提供する、情報提供手段と、
を備えるボリューム管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データの記録および管理に関する。
【背景技術】
【０００２】
コンピュータの補助記憶装置として用いられるＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）は、円盤状の磁気ディスク（以下、単に「ディスク」と呼ぶ）を回転させ、磁気ヘッドでディスクに記録された情報を読み取り、またはディスクに情報を書き込む装置である。以下の説明では、ディスクにおいて、同心円状に広がる記憶領域を「トラック」と呼び、トラックを分割してできる領域を「ブロック」と呼ぶ。
【０００３】
現在の一般的なＨＤＤは、各ブロックの長さが、トラックによらずほぼ均一になるように作製されている。このようなＨＤＤでは、ディスクの中心から遠いトラックほどブロックの数が多いため、ディスクの外周に近い（円周が長い）トラック（外周側のトラック）が有する記憶領域が有効に使われる。このようなブロックの作製の方法は、「定記録密度方式」と呼ばれる。
【０００４】
定記録密度方式のディスク上でデータを読み書きする場合、回転によってディスク上の点が移動する速さはディスクの外周に近いほど速いため、ディスクの外周側のトラックと内周側のトラックとでは、読み書きの速さ、すなわちアクセス性能が異なる。たとえば、ディスクの外周側のトラックにおけるアクセス性能が内周側のトラックにおけるアクセス性能のおよそ２倍であるＨＤＤが存在する。
【０００５】
システムの設計においては、性能の安定性の観点から、ディスクのアクセス性能を最低レベルで見積もる必要がある。すなわち、システムの性能は、使用する領域のアクセス性能の下限に依拠する。アクセス性能の下限を向上させる方法としては、ディスクの外周側のトラック（外周部）のみを使用する方法が挙げられる。しかし、外周部のみを使用した場合は内周側のトラック（内周部）の容量が無駄になる。したがって、ディスクの外周部と内周部とにおける性能をなるべく均一化し、アクセス性能の最低レベルを向上させる技術が望まれる。
【０００６】
外周部と内周部とにおける性能を均一化する技術として、データをディスク上の複数の領域にランダムに断片的に分散させる技術が存在する（特許文献１）。この技術は、ＨＤＤの外周部と内周部とを偏りなく使用することにより、性能の均一化を図る。
【０００７】
特許文献２には、データ転送レートを平準化する目的で、ＨＤＤを２個１組として、一方のＨＤＤのディスクの外周部（外周領域）と、他方のＨＤＤのディスクの内周部（内周領域）とを組み合わせて使うディスク制御装置が開示されている。具体的には、このディスク制御装置は、データの記録において、データのフレームを等分割し、分割されたフレームの一方を高速領域に、他方を低速領域に記録する。これにより、データ転送レートが、高速領域のデータ転送レートと低速領域のデータ転送レートの平均となる、と、特許文献２には記載されている。
【０００８】
また、関連する技術として、特許文献３には、複数のディスク装置に論理記憶領域を割り当てる制御装置であって、その論理記憶領域の開始位置をそれぞれ異なる物理位置に割り当てる制御装置が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１０−０２７１４５号公報
【特許文献２】特開平１０−１７７７５９号公報
【特許文献３】特開２０１４−０３２５６６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
特許文献１に開示される技術では、常にランダムアクセスを行う必要があることから、ドライブの磁気ヘッドが移動する（シークする）工程が多くなるために、この技術を使わずに連続するブロックにアクセスする場合に比べ、アクセス性能が低下するという問題がある。
【００１１】
特許文献２に開示されるディスク制御装置のデータ転送レートは、高速領域と低速領域の算術平均とはならない。なぜなら、特許文献２に開示されるディスク制御装置は、データのフレームを、高速領域と低速領域とに等しく割り当てるよう構成されているからである（特許文献２の段落［００２８］および図５等参照）。このような構成では、高速領域と低速領域の組み合わせによるデータ転送レートは、高速領域のデータ転送レートと低速領域のデータ転送レートの調和平均となる。調和平均は、算術平均よりも小さいため、特許文献２に開示されるディスク制御装置は、所望のデータ転送レートを実現できていない。
【００１２】
また、特許文献２に開示される技術は、外周部と内周部とにおける性能の差に起因するデータ転送レートの不均衡を、完全には解消していない。すなわち、特許文献２に開示されるアドレッシングによっても、アドレスの違いによるデータ転送レートの差は依然として生じる。たとえば、低速領域における最も内側のトラックと高速領域における最も外側のトラックとの組み合わせによるデータ転送レートと、低速領域における最も外側のトラックと高速領域における最も内側のトラックとの組み合わせによるデータ転送レートとは、等しくない。なぜなら、記憶領域の中央のブロック（特許文献２の説明においては、アドレスａｎ／２）におけるデータ転送レートは、ディスクの最も内側のトラックのデータ転送レートと最も外側のトラックのデータ転送レートの平均とは異なるからである。
【００１３】
特許文献３に開示される技術も、論理記憶領域の違いによるアクセス性能の不均衡の解決には寄与しない。
【００１４】
以上に示したように、ＨＤＤの、アクセス性能の最低レベルを向上させる技術は、まだ十分とはいえない。すなわち、アクセス性能の違いに起因する非効率性を低減する技術は、さらに改善され得る。
【００１５】
また、この課題は、ＨＤＤのみならず、アクセス性能に差がある複数の記憶領域を用いるコンピュータまたはデータ管理システムにおいても、同様に生じうる課題である。たとえば、アクセス性能の低い記憶領域とアクセス性能の高い記憶領域との両方に、ストライピングしたデータを同時に格納する（または読み出す）場合、アクセス性能の低い記憶領域にかかる時間がボトルネックとなる。すなわち、アクセスが完了するまでにかかる時間は、アクセス性能の低い記憶領域のアクセス性能に依存するため、アクセス性能の高い記憶領域の性能が無駄になる。
【００１６】
本発明は、２以上の記憶領域におけるアクセス性能の違いに起因する非効率性を低減することができるボリューム管理装置を提供することを目的の１つとする。
【課題を解決するための手段】
【００１７】
本発明の一態様に係るボリューム管理装置は、データを記憶する記憶装置にアクセスするアクセス手段と、前記記憶装置内の記憶領域の一部または全部の区間であってアクセス性能が相異なる複数の前記区間の、それぞれにおいて前記アクセス手段によってアクセスされる領域の容量の比が、前記区間のアクセス性能の比に基づいた値になるよう、アクセス先を決定し、決定された前記アクセス先の情報を前記アクセス手段に提供する、情報提供手段と、を備えるボリューム管理装置。
【００１８】
本発明の一態様に係るボリューム管理装置は、データを記憶する記憶装置にアクセスするアクセス手段と、前記記憶装置内の記憶領域の一部または全部の区間であってアクセス性能が相異なる複数の前記区間の、それぞれにおいて前記アクセス手段によってアクセスされる領域の容量の比が、前記区間の容量の比に基づいた値になるよう、アクセス先を決定し、決定された前記アクセス先の情報を前記アクセス手段に提供する、情報提供手段と、を備える。
【００１９】
本発明の一態様に係るボリューム管理方法は、データを記憶する記憶装置内の記憶領域の一部または全部の区間であってアクセス性能が相異なる複数の前記区間の、それぞれにおいてアクセスされる領域の容量の比が、前記区間のアクセス性能の比に基づいた値になるよう、前記区間にアクセスする。
【００２０】
本発明の一態様に係る論理ブロック番号の割り当て方法は、論理ブロック番号を、第１の記憶領域、および、前記第１の記憶領域とアクセス性能が異なる前記第２の記憶領域の、いずれかに割り当て、一定長の連続する論理ブロック番号の集合のうち、第１の記憶領域に割り当てられる論理ブロック番号の個数と、第２の記憶領域に割り当てられる論理ブロック番号の個数との比は、前記第１の記憶領域の有するブロック数と前記第２の記憶領域の有するブロック数との比に基づいた値である。
【００２１】
本発明の一態様に係るプログラムは、コンピュータに、データを記憶する記憶装置にアクセスするアクセス処理と、前記アクセス処理が、前記記憶装置内の記憶領域の一部または全部の区間であってアクセス性能が相異なる複数の前記区間の、それぞれにおいてアクセスされる領域の容量の比が、前記区間のアクセス性能の比に基づいた値になるよう、前記アクセス処理にアクセス先の情報を提供する、情報提供処理と、を実行させる。
【発明の効果】
【００２２】
本発明により、２以上の記憶領域におけるアクセス性能の差に起因する非効率性を低減することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の第１の実施形態に係るデータ管理システムの構成を示すブロック図である。
【図２】ＨＤＤの性能特性の例を示すグラフである。
【図３】第１の実施形態に係るボリューム管理装置の構成を示すブロック図である。
【図４】データがＨＤＤに格納される様子を示す概念図である。
【図５】ＨＤＤの性能特性の近似式の例を示すグラフである。
【図６】第１の実施形態の各ＨＤＤの記憶領域を区間に分割することを示す概念図である。
【図７】第１の実施形態の各ＨＤＤにおけるペア番号の位置を示す概念図である。
【図８】第１の実施形態のペア管理テーブルの例を示す表である。
【図９】第１の実施形態の番号対応表の一部の例を示す表である。
【図１０】第１の実施形態の番号対応表の一部の例を示す表である。
【図１１】第１の実施形態に係るボリューム管理装置の、論理ボリュームを生成する動作の流れを示すフローチャートである。
【図１２】第１の実施形態に係るボリューム管理装置の、ＨＤＤへアクセスする動作の流れを示すフローチャートである。
【図１３】本発明の第２の実施形態に係るボリューム管理装置の構成を示すブロック図である。
【図１４】第２の実施形態のアクセス先特定部が用いるアクセス先ＨＤＤを特定する方法を説明する表である。
【図１５】第２の実施形態のアクセス部およびアクセス先特定部の動作の流れを示すシーケンス図である。
【図１６】本発明の第３の実施形態に係るボリューム管理装置の構成を示すブロック図である。
【図１７】第３の実施形態のアクセス先特定部が用いるアクセス先ＨＤＤを特定する方法を説明する表である。
【図１８】本発明の第４の実施形態に係るボリューム管理装置の構成を示すブロック図である。
【図１９】第４の実施形態のアクセス先特定部が用いるアクセス先ＨＤＤを特定する方法を説明する表である。
【図２０】本発明の第５の実施形態に係るボリューム管理装置の構成を示すブロック図である。
【図２１】本発明の各実施形態の各部を構成するハードウェアの例を示すブロック図である。
【発明を実施するための形態】
【００２４】
以下、図面を参照しながら、本発明の実施形態を詳細に説明する。
【００２５】
＜＜第１の実施形態＞＞
まず、本発明の第１の実施形態について説明する。
【００２６】
＜構成＞
図１は、第１の実施形態に係るデータ管理システム１の構成を示すブロック図である。本実施形態のデータ管理システム１において、ボリューム管理装置１１は、ホスト装置２０、および２つのＨＤＤ３０に、通信可能に接続される。
【００２７】
ボリューム管理装置１１およびホスト装置２０は、ＣＰＵやメモリなどのハードウェア資源により構成される。ボリューム管理装置１１は、ソフトウェアまたはファームウェアを実行するコンピュータにより実装されてもよい。あるいは、ボリューム管理装置１１は、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）コントローラなどのハードウェアにより実装されてもよい。
【００２８】
図１に示す例では、ボリューム管理装置１１とホスト装置２０とは、分離された２つの装置として記載されるが、ボリューム管理装置１１とホスト装置２０とは、１つの装置によって実現されていてもよい。たとえば、ボリューム管理装置１１の機能は、ホスト装置２０が実行するソフトウェアによって実現されてもよい。
【００２９】
＝＝＝ホスト装置２０＝＝＝
ホスト装置２０は、ボリューム管理装置１１を介してＨＤＤ３０へのアクセスを行う。たとえば、ホスト装置２０は、ボリューム管理装置１１にアクセスの要求を送信し、ボリューム管理装置１１がその要求に従ってＨＤＤ３０に対して行ったアクセスの結果を、ボリューム管理装置１１から受信する。アクセスとは、データの読み出しまたは書き込みを指す。
【００３０】
＝＝＝ＨＤＤ３０＝＝＝
ＨＤＤ３０は、ハードディスクドライブである。本実施形態では、ＨＤＤ３０は、ＨＤＤ１とＨＤＤ２との２つである。ＨＤＤ１はディスク３１１を内蔵する。ＨＤＤ２はディスク３１２を内蔵する。ＨＤＤ１およびＨＤＤ２は、それぞれ内蔵するディスク（ディスク３１１またはディスク３１２）を駆動することで、データの読み書き機能を提供する。
【００３１】
データは、ディスク３１１およびディスク３１２に、定記録密度方式で記録される。ＨＤＤ３０へのアクセスは、ＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓｉｎｇ）方式で行われる。本実施形態では、各ＨＤＤがアクセスする記憶領域の最小単位が、ブロックである。本実施形態では、ディスク３１１およびディスク３１２の各々に含まれるブロックの数はいずれも１００，０００，０００である。ＨＤＤ３０は、それぞれのブロックを、その位置に基づいて一意に付与されたブロック番号（０〜９９，９９９，９９９）によって識別する。以下、「ブロック番号」とは、ディスクの位置に基づいて一意に付与されたブロック番号を指すものとする。
【００３２】
ディスク３１１、３１２において、ブロック番号が“０”であるブロックは最も外側のトラックに位置し、ブロック番号が大きいブロックほど内周に位置する。ブロック番号が“９９，９９９，９９９”であるブロックは最内周に位置する。
【００３３】
ＨＤＤ１およびＨＤＤ２のアクセス性能は、単位時間あたりに取得できる情報の量である。アクセス性能は、たとえば単位時間あたりにアクセスできるブロックの数として定義される。本実施形態では、ＨＤＤ１およびＨＤＤ２のアクセス性能は同等である。ただし、ＨＤＤ３０は、定記録密度方式で設計されているため、ブロックの位置によってアクセス性能が異なる。ＨＤＤ３０のアクセス性能は、図２で示されるように、ブロック番号“０”のブロックを含む、ディスクの最も外側のトラックにおいて最高であり、ディスクの中心部に近づくにつれ（ブロック番号が大きいほど）減少する。最も外側のトラックにおけるアクセス性能に対する最も内側のトラックにおけるアクセス性能の比をアクセス性能比と称し、その値はα（０＜α＜１）で表される。
【００３４】
＝＝＝ボリューム管理装置１１＝＝＝
ボリューム管理装置１１は、２つのＨＤＤ３０（ＨＤＤ１およびＨＤＤ２）を制御する。ボリューム管理装置１１は、ホスト装置２０によるＨＤＤの記憶領域へのアクセスを中継する。
【００３５】
ボリューム管理装置１１は、ＬＢＡ方式を用いて、ホスト装置２０によるＨＤＤの記憶領域へのアクセスを中継する。すなわち、ボリューム管理装置１１は、２つのＨＤＤ３０の各ブロックに対して一意に論理ブロック番号（０〜１９９，９９９，９９９）を割り当てる。ボリューム管理装置１１は、各ＨＤＤ３０のブロックと、そのブロックに割り当てられた論理ブロックとの関係を特定できる情報を記憶する。論理ブロックを割り当てる方法、および、特定できる情報については、後で詳細に説明する。ボリューム管理装置１１は、ホスト装置２０に対して、この論理ブロック番号によってアクセスできる論理ボリューム（仮想的な記憶領域）を提供する。ホスト装置２０は、ボリューム管理装置１１にアクセスする際、論理ブロック番号によってアクセスの範囲を指定する。ボリューム管理装置１１は、指定された範囲の論理ブロック番号が割り当てられたＨＤＤ３０と、そのブロックのブロック番号とを特定する。ボリューム管理装置１１は、特定したＨＤＤ３０に対して、特定したブロック番号によって表される範囲への、要求されたアクセスを行う。具体的には、ボリューム管理装置１１は、特定したＨＤＤ３０に対し、特定したブロックへのアクセスの要求を行う。ボリューム管理装置１１は、そのアクセスの結果を、ホスト装置２０に渡す。アクセスの結果とは、データの読み出しにおいては読み出したデータ、データの書き込みにおいては書き込みの完了を示す情報、等である。このようにして、ボリューム管理装置１１は、ホスト装置２０によるＨＤＤ３０の記憶領域へのアクセスを中継する。
【００３６】
以下、第１の実施形態に係るボリューム管理装置１１の制御構造を説明する。図３は、第１の実施形態に係るボリューム管理装置１１の制御構造を示すブロック図である。ボリューム管理装置１１は、アクセス部１０１と、情報提供部１１０とを備える。情報提供部１１０は、ボリューム提供部１１１と、分割部１１３と、ペア管理部１１４と、ペア生成部１１５と、表生成部１１６と、表記憶部１１７と、を備える。
【００３７】
まず、ホスト装置２０によるアクセスの要求に応じたアクセスに関わる構成要素である、ボリューム提供部１１１と、表記憶部１１７と、アクセス部１０１との機能を説明する。
【００３８】
＝＝＝ボリューム提供部１１１＝＝＝
ボリューム提供部１１１は、ホスト装置２０に対して、論理ボリュームを提供する。具体的には、ボリューム提供部１１１は、ホスト装置２０から、論理ボリュームに対するアクセスの要求を受信する。アクセスの要求は、たとえば、ある範囲のブロックにデータを書き込む要求である。あるいは、アクセスの要求は、たとえば、ある範囲のブロックからデータを読み出す要求である。アクセスするブロックの範囲は、論理ブロック番号によってホスト装置２０から指定される。ボリューム提供部１１１は、受信したアクセスの要求をアクセス部１０１に送信する。ボリューム提供部１１１は、アクセス部１０１から、アクセスの要求に基づくアクセスの結果を受信する。ボリューム提供部１１１は、論理ボリュームに対するアクセスの結果をホスト装置２０に送信する。
【００３９】
＝＝＝表記憶部１１７＝＝＝
表記憶部１１７は、番号対応表を記憶する。番号対応表は、論理ブロック番号と、ＨＤＤの識別子およびブロック番号の組とを、一意に関連づける情報である。番号対応表は、表生成部１１６によって生成される。表生成部１１６によって番号対応表が生成する過程については、後で詳細に説明する。
【００４０】
＝＝＝アクセス部１０１＝＝＝
アクセス部１０１は、受信したアクセスの要求に従って、ＨＤＤ３０にアクセスする。具体的には、アクセス部１０１は、ボリューム提供部１１１から、アクセスの要求を受信する。アクセスの要求には、アクセスされる論理ブロック番号の範囲の指定が含まれる。アクセス部１０１は、指定された範囲の論理ブロック番号が割り当てられているブロックに対して、要求されたアクセスを行う。この際、アクセス部１０１は、指定された範囲の論理ブロック番号が割り当てられているブロックを特定する。具体的には、アクセス部１０１は、指定された範囲の論理ブロック番号に関連づけられているＨＤＤの識別子と、ブロック番号とを、上述の番号対応表によって特定すればよい。
【００４１】
（書き込み処理）
アクセス部１０１がデータを書き込む要求（書き込み要求）を受けた場合の処理、すなわち書き込み処理を説明する。アクセス部１０１は、ボリューム提供部１１１から、書き込み要求と、データとを受信する。アクセス部１０１は、書き込み要求から、そのデータを書き込むブロックの範囲の指定を抽出する。論理ブロック番号の範囲の指定は、データの先頭の論理ブロック番号（書き込みを開始する論理ブロック番号）の指定でもよい。そして、アクセス部１０１は、ボリューム提供部１１１が受け取ったデータに対し、ブロックのサイズのデータごとに、論理ブロック番号を割り当てる。以下、ブロックのサイズのデータのまとまりをデータブロックと呼ぶこととする。アクセス部１０１は、それぞれのデータブロックについて、該データブロックに割り当てられた論理ブロック番号が割り当てられたブロックを特定する。ＨＤＤおよびブロック番号の特定においては、アクセス部１０１は、番号対応表を用いる。アクセス部１０１は、それぞれのデータブロックを、特定されたＨＤＤの特定されたブロック番号のブロックに格納する。具体的には、アクセス部１０１は、データブロックと、そのデータブロックに基づいて特定されたブロック番号の指定を含む書き込みの要求とを、そのデータブロックに基づいて特定されたＨＤＤ３０に送信する。これにより、データブロックは、データブロックに割り当てられた論理ブロック番号が割り当てられているブロックに格納される。アクセス部１０１は、ボリューム提供部１１１から受け取ったすべてのデータブロックを、上記のように格納する。
【００４２】
図４は、本実施形態のボリューム管理装置により、データが各ＨＤＤ３０に格納される様子を示す概念図である。図４に示されるように、データは、データブロックごとに格納先のＨＤＤが特定され、そのＨＤＤに格納される。なお、データを分割して格納することは、ストライピングと呼ばれる。
【００４３】
書き込みが完了すると、アクセス部１０１は、書き込みが完了したことをボリューム提供部１１１に伝える。以上の動作により、アクセス部１０１によるデータの書き込み処理は完了する。
【００４４】
（読み出し処理）
アクセス部１０１がデータを読み出す要求（読み出し要求）を受けた場合の処理、すなわち読み出し処理を説明する。アクセス部１０１は、ボリューム提供部１１１から、読み出し要求を受信すると、その要求から、データを読み出す対象となるブロックの範囲の指定を抽出する。論理ブロック番号の範囲の指定は、たとえば、読み込みの開始位置と終了位置を示す２つの論理ブロック番号によって表されてもよい。次に、アクセス部１０１は、指定された論理ブロック番号の範囲に相当する、各ＨＤＤ３０上のブロック番号の範囲を特定する。すなわち、アクセス部１０１は、各ＨＤＤ上で読み出す開始位置および終了位置を特定すればよい。そのためには、アクセス部１０１は、指定された範囲の各ＨＤＤに関連づけられる論理ブロック番号で最も小さな論理ブロック番号と、最も大きなブロック番号を特定すればよい。上述の特定においては、アクセス部１０１は、番号対応表を用いる。アクセス部１０１は、特定された範囲のブロック番号のブロックに格納されたデータを読み出す。具体的には、アクセス部１０１は、特定された範囲のブロック番号のデータブロックを読み出す要求を、各ＨＤＤ３０に送信する。その結果、アクセス部１０１は、各ＨＤＤ３０から、特定された範囲のブロック番号のデータブロックを取得する。そして、アクセス部１０１は、取得したデータブロックを、論理ブロック番号の順番にしたがってソートすることで、データを復元する。最後に、アクセス部１０１は、復元されたデータをボリューム提供部１１１に送信する。以上の動作により、アクセス部１０１によるデータの読み出し処理は完了する。
【００４５】
次に、番号対応表の生成に関わる構成要素である、分割部１１３と、ペア管理部１１４と、ペア生成部１１５と、および表生成部１１６との機能について説明する。
【００４６】
なお、番号対応表の生成の概要は以下の通りである。
・分割部１１３は、ＨＤＤ３０の記憶領域を、Ｎ個の区間に分割する。この処理において、分割部１１３は、どの区間においても、その区間の開始位置から終了位置までのアクセスにかかる時間が等しくなるように、記憶領域を分割する。
・ペア生成部１１５は、ＨＤＤ１とＨＤＤ２とから１つずつ区間を組み合わせ、Ｎ個のペアを作る。この処理において、ペア生成部１１５は、どのペアにおいても、ペアとして組み合わされた区間に含まれるブロックの合計が等しくなるように、ペアを生成する。なお、ペア生成部１１５は、生成されたペアを識別する１からＮの番号（以下、ペア番号）を付与する。
・表生成部１１６は、論理ブロック番号が連続する一定長のデータが、ペアとして組み合わされた区間のそれぞれに分割されて格納されるように、論理ボリュームを構成する。この処理において、表生成部１１６は、それぞれの区間に格納されるデータのサイズの比が、その区間のブロックの数の比であるように、論理ボリュームを構成する。
【００４７】
このような構成により、たとえば、論理ボリュームに格納されるデータは、ＨＤＤ１に格納されるデータと、ＨＤＤ２に格納されるデータとに分割される。そして、分割されたデータのサイズの比は、それぞれのデータが格納される区間のアクセス性能の比に準じる。各ペアを構成する区間に含まれるブロックの合計が等しくなるようにペアが作られるため、この構成によれば、論理ブロック番号の違いによるアクセス性能のばらつきは抑えられる。
【００４８】
なお、本願の説明において、「等しくなるように」との文言は、必ずしも数値的に厳密に一致することを条件とする趣旨のものではない。本願が掲げる課題を解決することが可能な範囲であれば、ある程度の数値の不一致は許容される。
【００４９】
各構成要素について詳細に説明する。
【００５０】
＝＝＝分割部１１３＝＝＝
分割部１１３は、ＨＤＤ３０のＣ個のブロックからなる記憶領域を、Ｎ個の領域に区切る。区切るとは、すなわち、領域の境界となるブロック番号を決めることである。区切られた領域は、ブロック番号が連続したブロックの組である。以下、分割部１１３によって区切られた領域のそれぞれを区間と呼ぶ。また、記憶領域を区切ることを、記憶領域を分割する、とも称す。また、区間を構成するブロックのうち最もブロック番号が小さいブロックのブロック番号を、分割位置と呼ぶ。
【００５１】
すなわち、分割部１１３は、Ｃ個のブロックのうち、Ｎ個の分割位置を決定する。本実施形態の説明では、Ｃ＝１００，０００，０００、Ｎ＝１０２４とする。
【００５２】
分割部１１３は、分割位置の決定に際し、各区間のアクセス時間（後述）が均等になるように、分割位置を導出する。アクセス時間とは、ＨＤＤ３０がその区間のすべてのブロックにアクセスするのにかかる時間である。
【００５３】
具体的には、たとえば、まず分割部１１３は、ＨＤＤ３０の全てのブロックにアクセスするのにかかる時間（総アクセス時間）を分割数“Ｎ”で割ることにより、１つの区間あたりの時間を算出する。そして、分割部１１３は、分割によって生成するそれぞれの区間のアクセス時間が、算出した時間になるように、分割位置を求めればよい。
【００５４】
たとえば、分割部１１３は、ブロックごとのアクセス性能の情報を参照できるよう、構成されていてもよい。ブロックのアクセス性能は、たとえば、そのブロックにデータを読み書きするのにかかる時間の逆数によって表されてもよい。この情報を参照することにより、総アクセス時間および各区間におけるアクセス時間を計算することができる。なお、ブロックごとにアクセス性能が関連付けられた情報を、性能特性とも称する。前述の図２のグラフは、性能特性のグラフの例である。
【００５５】
分割部１１３は、性能特性を表す近似式を用いて、分割位置を算出してもよい。具体的には、たとえば、ＨＤＤ３０の性能特性が、図２のグラフのように表される場合、この性能特性は、アクセス性能をｙ、ブロック番号をｍとした、次の近似式で表すことができる。
【００５６】
【数１】
2017174302.tif 000003
【００５７】
上式において、ｖは、最も外側のトラック（ｍ＝０を含むトラック）のアクセス性能である。αは、最も外側のトラックと最も内側のトラックとのアクセス性能比である。この式のグラフは、図５で示される。
【００５８】
本実施形態では、分割部１１３は、上述の近似式を用いて分割位置を算出するとする。なお、本実施形態では、分割位置を容易に算出するという観点で上記の近似式を採用しているが、当然、近似式が厳密に上記の通りである必要はない。分割部１１３は、近似式を使わずに、各ブロックのアクセス性能に従って分割位置を算出してもよい。
【００５９】
上述の近似式を用いて分割位置を算出する方法を以下に示す。以下、０番目の分割位置をブロック番号“０”とし、ｎ（ｎはＮ−１以下の整数）番目の分割位置をｐｎで表すとする。
【００６０】
上述の近似式に基づくと、分割位置ｐｎは以下の式によって決定できる。
【００６１】
【数２】
2017174302.tif 000004
【００６２】
なお、この式はたとえば、ブロック番号ごとのアクセスにかかる時間を表す関数（１／ｙ）を０からｐｎまで積分した値が、すべてのブロックへのアクセスにかかる時間（１／ｙを０からＣまで積分した値）のｎ／Ｎ倍となる、という条件から導出できる。
【００６３】
分割部１１３は、この式にそれぞれのｎの値を代入することにより、ｐｎの値を算出し、算出したｐｎの値をｎ番目の分割位置として決定する。なお、“Ｎ”、“Ｃ”、“α”の値は、予め、所定の値として、図示しない機能構成により分割部１１３に入力されていればよい。
【００６４】
図６は、ＨＤＤ１およびＨＤＤ２が分割数Ｎ＝１０２４で分割されることにより生成する区間を表す概念図である。図６に示すように、分割部１１３による分割で、ＨＤＤ１では区間Ａ１〜Ａ１０２４、ＨＤＤ２では区間Ｂ１〜Ｂ１０２４が生成される。
【００６５】
このような分割によれば、アクセス性能が高い区間ほど、その区間を構成するブロックの数は多くなる。具体的には、各区間を構成するブロックの数は、その区間におけるアクセス性能の平均値（該区間内の各ブロックのアクセス性能の調和平均）にほぼ比例する。
【００６６】
分割部１１３は、算出した分割位置の情報を、ペア生成部１１５に送信する。または、ペア管理部１１４のペア管理テーブルに、算出した分割位置の情報を記録してもよい。
【００６７】
＝＝＝ペア管理部１１４＝＝＝
ペア管理部１１４は、ペア管理テーブルを記憶する。ペア管理テーブルは、分割部１１３が算出した分割位置の情報と、後述するペア生成部１１５が生成するペアの情報が記録されたものである。
【００６８】
＝＝＝ペア生成部１１５＝＝＝
ペア生成部１１５は、分割部１１３により生成された区間を、各ＨＤＤ３０から１つずつ組み合わせて、ペアを生成する。ペアを生成するとは、具体的には、組み合わせた区間に共通の識別番号（以下「ペア番号」と称す）を割り当てることである。ペア生成部１１５は、ペアの生成において、どのペアにおいても、ペアとして組み合わされた区間に含まれるブロックの合計が等しくなるように、区間を組み合わせる。たとえば、ペア生成部１１５は、ペア番号が割り当てられていない区間のうち、ＨＤＤ１における、ブロックの数が最も多い区間と、ＨＤＤ２における、ブロックの数が最も少ない区間とを組み合わせていけばよい。
【００６９】
本実施形態では、ペア生成部１１５は、区間Ａ１と区間Ｂ１０２４とにペア番号“１”、区間Ａ２と区間Ｂ１０２３とにペア番号“２”、・・・、区間Ａ１０２４と区間Ｂ１とにペア番号“１０２４”、を割り当てることで、計１０２４組のペアを生成する。図７は、本実施形態において、それぞれの区間に割り当てられたペア番号の、各ＨＤＤ３０における位置を示す概念図である。図７のように、ＨＤＤ１上においては、外側に位置する区間ほど、その区間に割り当てられるペア番号は小さい。一方、ＨＤＤ２上においては、内側に位置する区間ほど、その区間に割り当てられるペア番号は小さい。
【００７０】
ペア生成部１１５は、生成したペアの情報をペア管理部１１４が記憶するペア管理テーブルに記録する。
【００７１】
図８は、ペア管理テーブルの例である。ペア管理テーブルは、図８のように、「ペア番号」の欄で示されたペア番号に関連する様々な情報が記録される。
【００７２】
「ＨＤＤ１における先頭番号」は、そのペア番号が割り当てられたＨＤＤ１の区間に含まれるブロックのうち、最もブロック番号が小さいブロックの、ブロック番号である。「ＨＤＤ２における先頭番号」は、そのペア番号が割り当てられたＨＤＤ２の区間に含まれるブロックのうち、最もブロック番号が小さいブロックの、ブロック番号である。
【００７３】
本実施形態では、ペア番号が“ｋ”（ｋは１以上ｎ以下の整数）であるペアの、ＨＤＤ１における先頭番号は、ｐ（ｋ−１）である。また、ペア番号が“ｋ”であるペアの、ＨＤＤ２における先頭番号は、ｐ（１０２４−ｋ）である。たとえば、ｐ０の値は“０”であるから、ペア番号が“１”であるペアのＨＤＤ１における先頭番号は“０”、ペア番号が“１０２４”であるペアのＨＤＤ２における先頭番号は“０”である。
【００７４】
ペア生成部１１５は、このように、全てのペアの先頭番号を、ｐ０、・・・、ｐ１０２３の値に基づいて、特定する。ペア生成部１１５は、ペア管理テーブルにおける、「ＨＤＤ１における先頭番号」、「ＨＤＤ２における先頭番号」の欄に、特定した先頭番号の値を書き込む。
【００７５】
なお、「ＨＤＤ１における先頭番号」および「ＨＤＤ２における先頭番号」を参照することにより、各ペアを構成する区間の範囲がわかる。たとえば、図８の「ＨＤＤ１における先頭番号」および「ＨＤＤ２における先頭番号」を参照すると、ペア番号が“２”であるペアを構成する区間は、ＨＤＤ１のブロック番号“１３５３３４”以上“２７０５７７”未満の区間と、ＨＤＤ２のブロック番号“９９８６４５２８”以上“９９９３２２８６”未満の区間と、であることがわかる。
【００７６】
「ＨＤＤ１における容量（Ｃ１）」は、そのペア番号が割り当てられたＨＤＤ１上の区間に含まれるブロックの数である。「ＨＤＤ２における容量（Ｃ２）」は、そのペア番号が割り当てられたＨＤＤ２上の区間に含まれるブロックの数である。
【００７７】
ペア生成部１１５は、区間に含まれるブロックの数を、その区間の先頭番号と、その区間の隣の区間の先頭番号との差から、求めればよい。たとえば、ペア番号 “ｋ”が割り当てられた、ＨＤＤ１の区間に含まれるブロックの数Ｃ１は、ｐｎとｐ（ｎ−１）との差である（ただし、便宜的にｐ１０２４＝１００，０００，０００とする）。ペア番号 “ｋ”が割り当てられた、ＨＤＤ２の区間に含まれるブロックの数Ｃ２は、ｐ（１０２４−ｋ）とｐ（１０２５−ｋ）との差である。
【００７８】
図８の「ＨＤＤ１における容量（Ｃ１）」および「ＨＤＤ２における容量（Ｃ２）」の欄を参照すると、たとえば、ペア番号“２”が割り当てられた区間に含まれるブロックは、ＨＤＤ１には１３５２４３個、ＨＤＤ２には６７７５８個あることがわかる。
【００７９】
「ペア容量」は、そのペア番号が割り当てられた区間に含まれるブロックの総和である。すなわち、ペア容量は、Ｃ１＋Ｃ２である。図８の「ペア容量」の欄を参照すると、たとえば、ペア番号 が“２”であるペアのペア容量は、“２０３００１”である。
【００８０】
ペア生成部１１５は、同一のペア番号が割り当てられた区間に含まれるブロックには、連続した論理ブロック番号を割り当てる。
【００８１】
「先頭論理番号」は、そのペア番号が割り当てられた区間の、論理ボリュームにおける開始位置を示す。本実施形態では、論理ボリュームは、同一のペア番号が割り当てられた区間に含まれるブロックには、連続した論理ブロック番号が割り当てられるように構成される。したがって、各々のペア番号は１つの「先頭論理番号」を持つ。本実施形態では、ペア生成部１１５は、ペア番号が小さいペアほど、先頭論理番号が小さくなるように、先頭番号を割り当てる。この場合、ペア生成部１１５は、ペア番号が“１”であるペアの先頭論理番号を“０”と決定する。そして、ペア生成部１１５は、ペア番号が“ｋ” （２≦ｋ≦Ｎ）であるペアの先頭論理番号を、（ペア番号が“ｋ−１”であるペアの先頭論理番号）＋（ペア番号が“ｋ−１”であるペアのペア容量）によって算出する。
【００８２】
たとえば、図８に示す例において、ペア番号が“３”であるペアの先頭論理番号は、ペア番号が“２”であるペアの先頭論理番号が“２０３０４８”、ペア番号が“２”であるペアのペア容量が“２０３００１”であることに基づけば、“４０６０４９”であると求められる。
【００８３】
ペア生成部１１５は、たとえば、ペア番号が“１”であるペアから順に、上述の演算に基づいて先頭論理番号を決定していけばよい。ペア生成部１１５は、ペアの先頭論理番号を決定するごとに、決定した先頭論理番号を、ペア管理テーブルに書き込めばよい。
【００８４】
なお、上述のように先頭論理番号を決定することにより、ペア番号 “ｋ”が割り当てられた区間に含まれるブロックに割り当てられる論理ブロック番号は、すべて、ペア番号が“ｋ”であるペアの先頭論理番号以上、ペア番号が“ｋ＋１”であるペアの先頭論理番号未満となる。すなわち、ペア番号が“ｋ”であるペアの先頭論理番号以上、ペア番号が“ｋ＋１”であるペアの先頭論理番号未満の、範囲内の論理ブロック番号は、ペア番号“ｋ”に関連づけられている、といえる。
【００８５】
以上のようにして、ペア生成部１１５は、生成した１０２４組のペアに関する、各ＨＤＤにおける先頭番号、Ｃ１、Ｃ２、ペア容量、および先頭論理番号を、ペア管理テーブルに記録する。
【００８６】
なお、ペア管理テーブル上の値を用いて行われる値の演算は、ペア管理部１１４に備わる演算機能によって行われてもよい。
【００８７】
＝＝＝表生成部１１６＝＝＝
表生成部１１６は、ペア管理部１１４が記憶するペア管理テーブルに基づいて、論理ブロック番号と、ＨＤＤおよびブロック番号の組とを一意に関連づける番号対応表を生成する。
【００８８】
以下に、表生成部１１６が番号対応表を生成する具体的な処理の例を記載する。
【００８９】
表生成部１１６は、ペア番号ごとに、論理ブロック番号と、ＨＤＤおよびブロック番号の組とを関連づける。以下、表生成部１１６が、ペア番号“ｋ”が割り当てられた区間に含まれるブロックのブロック番号と、論理ブロック番号とを関連づける方法を、説明する。なお、以下、表生成部１１６によって、論理ブロック番号のそれぞれに関連づけられるＨＤＤを「アクセス先ＨＤＤ」、論理ブロック番号のそれぞれに関連づけられるブロック番号を「アクセス先番号」と呼ぶ。
【００９０】
まず、表生成部１１６は、ペア番号 “ｋ”に関連づけられる論理ブロック番号の範囲を特定する。ペア番号 “ｋ”に関連づけられる論理ブロック番号の範囲は、ペア番号が“ｋ”であるペアの先頭論理番号以上、ペア番号が“ｋ＋１”であるペアの先頭論理番号未満の範囲である。また、表生成部１１６は、ペア番号が“ｋ”であるペアのＣ１およびＣ２の値を、ペア管理テーブルより取得する。
【００９１】
表生成部１１６は、ペア番号 “ｋ”に関連づけられる論理ブロック番号の範囲の論理ブロック番号のそれぞれに対し、ＨＤＤ１またはＨＤＤ２を、アクセス先ＨＤＤとして関連づける。ただし、表生成部１１６は、このとき、ペア番号 “ｋ”に関連づけられる論理ブロック番号の範囲の論理ブロック番号のうち、Ｃ１個の論理ブロック番号にＨＤＤ１を、Ｃ２個の論理ブロック番号にＨＤＤ２を関連づける。
【００９２】
たとえば、ペア番号が“１”であるペアについて、図８に示される例に基づけば、表生成部１１６は、“０”以上“２０３０４８”未満の論理ブロック番号のうち、１３５３３４個の論理ブロック番号にＨＤＤ１を関連づけ、６７７１４個の論理ブロック番号にＨＤＤ２を関連づける。
【００９３】
論理ブロック番号にアクセス先ＨＤＤを関連づける方法は、上述のように、Ｃ１個の論理ブロックにＨＤＤ１を、Ｃ２個の論理ブロック番号にＨＤＤ２を関連づける方法であれば、任意の方法でよい。好ましくは、ペア番号 “ｋ”に関連づけられる論理ブロック番号の範囲内の、任意の長さの範囲の論理ブロック番号の集合においても、ＨＤＤ１に関連づけられる論理ブロック番号の数と、ＨＤＤ２に関連づけられる論理ブロック番号の数との比がほぼＣ１：Ｃ２であるような方法がよい。そのように構成されることで、一部に対するアクセスであってもアクセス性能のばらつきが抑えられる。
【００９４】
アクセス先ＨＤＤを関連づける方法の一つの例を説明する。たとえば、表生成部１１６は、ペア番号 “ｋ”に関連づけられる論理ブロック番号のうち、Ｃ１個の論理ブロック番号をランダムに選ぶ。表生成部１１６は、選んだ論理ブロック番号にＨＤＤ１を関連づける。表生成部１１６は、選ばなかったブロック番号にＨＤＤ２を関連づける。
【００９５】
アクセス先ＨＤＤを関連づける方法の他の例を説明する。たとえば、表生成部１１６は、論理ブロック番号の小さいものから順に、Ｃ１およびＣ２の値の大きさに応じた確率に基づいて、ＨＤＤ１またはＨＤＤ２をランダムに関連づける。たとえば、表生成部１１６は、各論理ブロック番号に０〜１のランダム値を与え、そのランダム値がＣ１／（Ｃ１＋Ｃ２）以下である論理ブロック番号にはＨＤＤ１を、そうでない論理ブロック番号にはＨＤＤ２を関連づける。ただし、ＨＤＤを関連づけていく過程で、一方のＨＤＤに関連づけられた論理ブロック番号の数が、そのＨＤＤにおける容量（Ｃ１またはＣ２）に達した場合には、ＨＤＤが関連付けられていない以降の論理ブロック番号に、他方のＨＤＤを関連づける。
【００９６】
表生成部１１６は、各論理ブロック番号とアクセス先ＨＤＤとを関連づけた情報を、表記憶部１１７に記録する。例として、図９に、表生成部１１６が、ペア番号が“１”であるペアの論理ブロック番号のそれぞれにアクセス先ＨＤＤを関連づけた表の例を示す。図９に示す例では、表の左２列において、論理ブロック番号と、アクセス先ＨＤＤが関連付けられている。
【００９７】
各論理ブロック番号とアクセス先ＨＤＤとを関連づけたら、表生成部１１６は、ＨＤＤ１に関連づけられた各論理ブロック番号には０からＣ１−１の番号を一意に割り当てる。表生成部１１６は、ＨＤＤ２に関連づけられた各論理ブロック番号には０からＣ２−１の番号を一意に割り当てる。以下、この割り当てられる番号を、「ペア内番号」と称する。ペア内番号は、ペア番号とアクセス先ＨＤＤが同一である論理ブロック番号の集合における序列を表す。
【００９８】
本実施形態では、ペア生成部１１５は、論理ブロック番号が小さいほど、小さいペア内番号を割り当てる。この結果、各論理ブロック番号に割り当てられるペア内番号は、図９のようになる。すなわち、「ＨＤＤ１におけるペア内番号」の欄においては、アクセス先ＨＤＤがＨＤＤ１である論理ブロック番号に対して、論理ブロック番号が小さい順に０からＣ１−１の番号が割り当てられる。「ＨＤＤ２におけるペア内番号」の欄においては、アクセス先ＨＤＤがＨＤＤ２である論理ブロック番号に対して、論理ブロック番号が小さい順に０からＣ２−１の番号が割り当てられる。
【００９９】
ペア内番号を割り当てたら、表生成部１１６は、それぞれの論理ブロック番号に、アクセス先番号を割り当てる。表生成部１１６は、それぞれの論理ブロック番号に割り当てるアクセス先番号を、ペア番号が“ｋ”であるペアの先頭論理番号、および、上記割り当てたペア内番号に基づいて、算出する。具体的には、表生成部１１６は、アクセス先番号を、（先頭論理番号）＋（ペア内番号）によって算出する。図１０は、図９の表に基づいて算出された、ペア番号が“１”であるペアの各論理ブロック番号のアクセス先番号の例である。図１０の表において、「アクセス先番号」の欄にて、各論理ブロック番号に割り当てられるアクセス先番号が記録される。
【０１００】
以上のようにして、表生成部１１６は、ペア番号が“ｋ”であるペアが占める論理ブロック番号の範囲の論理ブロック番号のそれぞれと、アクセス先ＨＤＤおよびアクセス先番号の組を、一意に関連づける。表生成部１１６は、論理ブロック番号とアクセス先のＨＤＤおよびアクセス先番号の組とを関連づけた情報を、番号対応表に記録する。
【０１０１】
なお、番号対応表上の値を用いて行われる演算は、表記憶部１１７に備わる演算機能によって行われてもよい。
【０１０２】
＜動作＞
次に、第１の実施形態に係るボリューム管理装置１１の動作の流れを説明する。
【０１０３】
（論理ボリュームの作成）
ボリューム管理装置１１が、２つのＨＤＤ３０を使用することが決定すると、ボリューム管理装置１１は、図１１に示す手順で論理ボリュームを作成する。
【０１０４】
まず、分割部１１３は、パラメータの値、たとえば、使用するＨＤＤ３０のブロックの数“Ｃ”、ＨＤＤ３０の最も外側のトラックと最も内側のトラックとのアクセス性能比“α”、および、ＨＤＤ３０の分割数“Ｎ”の値を取得する（ステップＳ１１１）。
【０１０５】
次に、分割部１１３は、取得したパラメータに基づいて、分割された後の各区間のアクセス時間が均等になるように、分割位置を算出する（ステップＳ１１２）。
【０１０６】
分割部１１３は、算出された分割位置の情報を、ペア生成部１１５に送る。本実施形態の場合、各“ｋ”に関する、ｐｋ−１の値およびＨＤＤ１における先頭番号の値は等しいため、分割部１１３は、ペア管理部１１４のペア管理テーブルの「ＨＤＤ１における先頭番号」の欄に、分割位置の値を記録してもよい。
【０１０７】
ペア生成部１１５は、分割された各区間を、各ＨＤＤ３０から１つずつ組み合わせ、ペアを生成する（ステップＳ１１３）。ペア生成部１１５は、生成したペアのそれぞれに関する情報、たとえば、ペア生成部１１５は、各ＨＤＤにおける先頭番号、Ｃ１、Ｃ２、ペア容量、および先頭論理番号を、ペア管理テーブルに記録する。（ステップＳ１１４）。
【０１０８】
表生成部１１６は、ペア管理テーブルに基づいて、ペア番号ごとに、そのペア番号が割り当てられたペアが占める論理ブロック番号の範囲の論理ブロック番号のそれぞれに、アクセス先ＨＤＤを関連づける（ステップＳ１１５）。そして、表生成部１１６は、各論理ブロック番号に、アクセス先番号を割り当てる（ステップＳ１１６）。これにより、表生成部１１６は、論理ブロック番号と、アクセス先ＨＤＤおよびアクセス先番号の組とが一意に関連づけられた、番号対応表を生成する（ステップＳ１１７）。表生成部１１６は、番号対応表を表記憶部１１７に記録する。
【０１０９】
以上の動作により、論理ボリュームが作成される。すなわち、ボリューム管理装置１１による、論理ボリュームの提供の準備が調う。
【０１１０】
（アクセス）
ホスト装置２０が論理ボリュームへアクセスする場合の、本実施形態に係るボリューム管理装置１１の動作を説明する。図１２は、ホスト装置２０が論理ボリュームにアクセスする場合の、ボリューム管理装置１１の動作の流れを示すフローチャートである。
【０１１１】
まず、ボリューム提供部１１１は、ホスト装置２０から、読み出しまたは書き込みの要求と、論理ブロック番号の範囲の指定とを受け取る（ステップＳ１２１）。この要求が書き込みの要求である場合は、ボリューム提供部１１１は、書き込まれるデータも受け取る。ボリューム提供部１１１は、受け取った要求および指定をアクセス部１０１に渡す。
【０１１２】
アクセス部１０１は、要求された論理ブロック番号の範囲に相当する、各ＨＤＤのブロック番号の範囲を、番号対応表に基づいて特定する（ステップＳ１２２）。
【０１１３】
アクセス部１０１は、特定したブロック番号の範囲にアクセスする（ステップＳ１２３）。そして、アクセス部１０１は、アクセスした結果を、ボリューム提供部１１１に渡す。
【０１１４】
最後に、ボリューム提供部１１１は、受け取った結果を、ホスト装置２０に渡す（ステップＳ１２４）。
【０１１５】
以上の動作により、ボリューム管理装置１１は、ホスト装置２０に対して論理ボリュームとしての機能を提供する。
【０１１６】
＜効果＞
本実施形態によれば、ＨＤＤ上のブロックの位置の違いによるアクセス性能の差に起因する非効率性を低減することができる。その理由は、分割部１１３が、ＨＤＤの記憶領域を、どの区間においても総アクセス時間が等しくなるように分割し、かつ、ペア生成部１１５が、どのペアにおいてもペア容量が等しくなるようにペアを生成するからである。この構成により、どのペアにおいても、ペアのアクセス性能（＝ペア容量／総アクセス時間）は、等しい。すなわち、ペアの違い（すなわち、論理ブロック番号）の違いによる、アクセス性能の不均衡が、低減される。
【０１１７】
本実施形態で説明した例では、分割部１１３が、分割位置を近似式に基づいて算出するため、ペアによってペア容量が若干異なるが、単純にアクセス先を高速領域と低速領域に半分ずつ配分する方法に比べれば、アクセス性能の不均衡は小さい。たとえば、本実施形態で説明した例の場合、最もペア容量が大きいペアは、ペア番号が“１”であるペアであり、最もペア容量が小さいペアは、ペア番号が“５１２”であるペアである。しかし、前者のペア容量は“２０３０４８”で、後者のペア容量は“１９１４５６”であり、ペア容量にはほとんど差がない。つまり、アクセス性能（ペア容量に反比例する）は、いずれのペアにおいてもほとんど差がないことがわかる。
【０１１８】
また、アクセス部１０１が一部の区間にアクセスする場合であっても、アクセス性能の不均衡性は著しくならない。すなわち、アクセス性能は、どの区間内の部分に対するアクセスであっても、ほぼ一定の値となる。その理由は、アクセスされるＨＤＤ１のブロックの数と、アクセスされるＨＤＤ２のブロックの数との比が、ほぼ、容量の比（アクセス性能の比に比例する）であるＣ１：Ｃ２になるからである。
【０１１９】
また、本実施形態によれば、最低性能を向上させることができる。その理由は、アクセス性能が均一化されるからである。また、次の概算によっても、この効果は明白である。
【０１２０】
上述したように、本実施形態で説明されたペアは、アクセス性能がほぼ等しいので、例として、ペア番号が“１”であるペアに割り当てられる論理ブロック番号におけるアクセス性能を考える。
【０１２１】
たとえば、ＨＤＤ１とＨＤＤ２とが、ホスト装置２０から要求された処理を同時に行う場合、２つのＨＤＤの処理は、ほぼ同時に完了する。このときのアクセス性能を、アクセス性能比が０．５であるとして概算する。分割数Ｎが十分に大きいという仮定のもとでは、ＨＤＤ１が、ＨＤＤ２の約２倍の速さの処理を、２倍の数のブロックに対して行う。従って、ＨＤＤ１とＨＤＤ２とを組み合わせることにより算出されるアクセス性能はＨＤＤの最低性能の約３倍である。どのペアにおいてもアクセス性能はほぼ等しいので、このアクセス性能が、本実施形態における最低性能である。なお、アクセス性能比をαとするならば、アクセス性能は、最低性能の約（１＋１／α）倍である。この性能は、単にＨＤＤを２台同時に用いることで最低性能を２倍にした場合の最低性能に比べて遥かに高い。
【０１２２】
また、たとえば、ＨＤＤ１とＨＤＤ２とが、ホスト装置２０から要求された処理を交互に行う場合、２つのＨＤＤの組み合わせによるアクセス性能は、最低性能の約（１＋１／α）／２倍（α＝０．５の場合は、約１．５倍）となる。すなわち、この場合も、最低性能は向上する。
【０１２３】
＜＜第２の実施形態＞＞
第１の実施形態に係るボリューム管理装置１１は、番号対応表に基づいてアクセス先を特定する。しかし、仮に、論理ブロック番号が、再現性のある決定方法によって、アクセス先ＨＤＤとブロック番号とに一意に関連づけられるならば、番号対応表を用意する必要はない。
【０１２４】
以下、番号対応表を用いる必要がない実施形態として、第２の実施形態について説明する。
【０１２５】
＜構成＞
図１３は、第２の実施形態に係るボリューム管理装置１２の構成を示すブロック図である。ボリューム管理装置１２は、第１の実施形態と比べて、情報提供部１２０に、表生成部１１６と表記憶部１１７とを備えず、アクセス先特定部１２６およびカウンタ１２７を備える。なお、第１の実施形態の構成要素と同等の機能を有する構成要素には同一の符号を付し、その同等の機能に関する説明を省略する。
【０１２６】
＝＝＝アクセス部１０１＝＝＝
本実施形態では、アクセス部１０１はアクセス先特定部１２６に接続される。アクセス部１０１の機能は第１の実施形態において説明した機能と同様である。ただし、アクセス部１０１は、ＨＤＤ３０へのアクセスの際、アクセス先特定部１２６に、ホスト装置２０が指定した論理ブロック番号を渡す。アクセス先ＨＤＤおよびアクセス先番号を、アクセス先特定部１２６から受け取る。
【０１２７】
＝＝＝カウンタ１２７＝＝＝
カウンタ１２７は、ＨＤＤ１に対応する変数Ｂ１（ｘ）の値と、ＨＤＤ２に対応する変数Ｂ２（ｘ）の値を保持する。Ｂ１（ｘ）およびＢ２（ｘ）については後述する。
【０１２８】
＝＝＝アクセス先特定部１２６＝＝＝
アクセス先特定部１２６は、アクセス部１０１から受け取った論理ブロック番号から、その論理ブロック番号に関連づけられるアクセス先ＨＤＤおよびアクセス先番号を、ペア管理テーブルに基づいて特定する。このとき、アクセス先特定部１２６は、アクセス先ＨＤＤおよびアクセス先番号を、再現性のある特定方法によって特定する。
【０１２９】
以下、アクセス先特定部１２６が、アクセス部１０１から受け取った論理ブロック番号を対象として、そのブロックのアクセス先ＨＤＤおよびアクセス先番号を特定する処理について詳細に説明する。なお、以下では、アクセス部１０１から受け取った論理ブロック番号を対象の論理ブロック番号と呼ぶ。
【０１３０】
（ペア番号の特定）
まず、アクセス先特定部１２６は、対象の論理ブロック番号に割り当てられるペア番号を特定する。
【０１３１】
アクセス先特定部１２６が、対象の論理ブロック番号に割り当てられるペア番号を特定するには、先頭論理番号が対象の論理ブロック番号を超えずかつ最も近いペアの番号を特定すればよい。たとえば、対象の論理ブロック番号が“２０３０６０”である場合、図８を参照すると、先頭論理番号が“２０３０６０”を超えずかつ最も近いのは、ペア番号が“２”であるペアである。したがって、アクセス先特定部１２６は、対象の論理ブロック番号に割り当てられるペア番号を“２”であると特定する。
【０１３２】
（ペア内論理番号の特定）
次に、アクセス先特定部１２６は、対象の論理ブロック番号に割り当てられるペア内論理番号を特定する。ペア内論理番号とは、特定されたペア番号に含まれる論理ブロック番号の集合における、先頭論理番号を基準とする相対的な番号である。
【０１３３】
アクセス先特定部１２６が、対象の論理ブロック番号のペア内論理番号を特定するには、そのブロックが含まれるペアの先頭論理番号を、対象の論理ブロック番号から引けばよい。たとえば、対象の論理ブロック番号が“２０３，０６０”である場合、図８を参照すると、ペア番号が“２”であるペアの先頭論理番号が“２０３，０４８”であることがわかる。したがって、アクセス先特定部１２６は、対象の論理ブロック番号のペア内論理番号を２０３０６０−２０３０４８＝“１２”であると特定する。
【０１３４】
（アクセス先ＨＤＤの特定）
次に、アクセス先特定部１２６は、特定したペア内論理番号に基づいて、対象の論理ブロック番号のアクセス先ＨＤＤを特定する。
【０１３５】
アクセス先特定部１２６が行う、アクセス先ＨＤＤの特定方法は、ペア番号“ｋ”に関連づけられる論理ブロック番号のうち、アクセス先ＨＤＤがＨＤＤ１と特定される論理ブロック番号の数がＣ１個、アクセス先ＨＤＤがＨＤＤ２と特定される論理ブロック番号の数がＣ２個、となるような特定方法である。
【０１３６】
好ましくは、その特定方法は、任意のペア内論理番号ｘ（０≦ｘ≦Ｃ１＋Ｃ２−１）について、ペア内論理番号がｘ以下である（ｘ＋１個の）ブロックのうち、アクセス先ＨＤＤがＨＤＤ１と特定されるブロックの数と、アクセス先ＨＤＤがＨＤＤ２と特定されるブロックの数の比が、Ｃ１：Ｃ２に概ね準じる、という条件を満たすように、定義されるとよい。
【０１３７】
上記条件を満たす特定方法の例を以下で説明する。
【０１３８】
特定されたペア番号が割り当てられ、ペア内論理番号がｘ以下である論理ブロック番号のうち、ＨＤＤ１に関連づけられる論理ブロック番号の数をＢ１（ｘ）、ＨＤＤ２に関連づけられる論理ブロック番号の数をＢ２（ｘ）とする。
【０１３９】
アクセス先特定部１２６は、ペア内論理番号がｊである論理ブロック番号のアクセス先ＨＤＤを、次の判定によって特定する。
・Ｂ１（ｊ−１）／Ｃ１≦Ｂ２（ｊ−１）／Ｃ２である場合、アクセス先ＨＤＤをＨＤＤ１とする。
・Ｂ１（ｊ−１）／Ｃ１＞Ｂ２（ｊ−１）／Ｃ２である場合、アクセス先ＨＤＤをＨＤＤ２とする。
・ただし、Ｂ１（−１）＝０，Ｂ２（−１）＝０と定義される。
【０１４０】
アクセス先特定部１２６は、Ｂ１（ｊ−１）／Ｃ１の値およびＢ２（ｊ−１）／Ｃ２の値を求めるために、カウンタ１２７を用いればよい。具体的には、アクセス先特定部１２６は、ｘの値を“０”に設定し、カウンタ１２７が保持するＢ１（ｘ）およびＢ２（ｘ）の値を０にして、次の繰り返し処理を行う。アクセス先特定部１２６は、カウンタ１２７が保持するＢ１（ｘ）およびＢ２（ｘ）の値を比較して上記判定を行う。アクセス先特定部１２６は、判定によりアクセス先ＨＤＤを特定したら、カウンタ１２７が保持する、アクセス先ＨＤＤと判定されたＨＤＤに対応する変数（Ｂ１（ｘ）またはＢ２（ｘ））の値を“１”増加させる。そして、アクセス先特定部１２６は、ｘの値を“１”増加させる。アクセス先特定部１２６は、以上の処理を、ｘ＝ｊになるまで繰り返す。これにより、アクセス先特定部１２６は、Ｂ１（ｊ−１）／Ｃ１の値およびＢ２（ｊ−１）／Ｃ２の値を求めることができる。アクセス先特定部１２６は、求めた値に基づき、ペア内論理番号がｊである論理ブロック番号のアクセス先ＨＤＤを特定する。
【０１４１】
図１４は、図８で示される例に基づいて生成された、ペア番号が“２”であるペアの各ペア内論理番号ｘに対して、上述の特定方法を用いた場合の、各ｘに関連づけられるアクセス先ＨＤＤ、Ｂ１（ｘ）の値、およびＢ２（ｘ）の値を、算出する例を説明する図である。図１４を参照すると、たとえば、ｘ＝６のとき、Ｂ１（５）／Ｃ１＞Ｂ２（５）／Ｃ２であるため、ｘ＝６に関連づけられるアクセス先ＨＤＤはＨＤＤ２と特定される。アクセス先特定部１２６は、カウンタ１２７が保持する、Ｂ２（ｘ）の値を“１”増加させる。これにより、Ｂ１（６）の値およびＢ２（６）の値が確定し、ｘ＝７における判定が可能となる。
【０１４２】
この特定方法によれば、任意のｘについて、ペア内論理番号がｘ以下である（ｘ＋１個の）ブロックのうち、アクセス先ＨＤＤがＨＤＤ１と特定されるブロックの数と、アクセス先ＨＤＤがＨＤＤ２と特定されるブロックの数の比が、概ねＣ１：Ｃ２となる。その理由は、上記判定に従えば、アクセス先特定部１２６は、任意のｘについて、Ｂ１（ｘ）／Ｃ１とＢ２（ｘ）／Ｃ２の値がなるべく近くなるようにアクセス先ＨＤＤを特定するからである。
【０１４３】
また、当然、ｘ＝Ｃ１＋Ｃ２−１のときは、ペア内論理番号がｘ以下であるブロックのうち、アクセス先ＨＤＤがＨＤＤ１と特定されるブロックの数はＣ１、アクセス先ＨＤＤがＨＤＤ２と特定されるブロックの数はＣ２となる。
【０１４４】
（ペア内番号の特定）
対象の論理ブロック番号のアクセス先ＨＤＤが特定されたら、アクセス先特定部１２６は、対象の論理ブロック番号のペア内番号を特定する。対象の論理ブロック番号のペア内番号は、対象の論理ブロック番号のペア内論理番号をｊとすると、アクセス先ＨＤＤがＨＤＤ１である場合はＢ１（ｊ）−１の値、アクセス先ＨＤＤがＨＤＤ２である場合はＢ２（ｊ）−１の値、である。
【０１４５】
たとえば、図１４を参照すると、ペア番号が“２”であるペアの、ペア内論理番号が“１２”であるブロックのペア内番号は、Ｂ２（１２）−１＝“４”である。
【０１４６】
（アクセス先番号の特定）
最後に、アクセス先特定部１２６は、特定されたペア番号に関連づけられる先頭論理番号および特定されたペア内番号から、対象の論理ブロック番号のアクセス先番号を算出する。具体的には、アクセス先特定部１２６は、アクセス先番号を、（先頭論理番号）＋（ペア内番号）によって算出する。
【０１４７】
たとえば、ペア番号が“２”、ＨＤＤ２におけるペア内番号が“４”である論理ブロック番号のアクセス先番号は、図８のペア管理テーブルに基づけば、ペア番号が“２”であるペアの先頭論理番号“９９８６４５２８”に、ペア内番号“４”を足した値である、“９９８６４５３２”である。
【０１４８】
以上のようにして、アクセス先特定部１２６は、対象の論理ブロック番号の、アクセス先ＨＤＤおよびアクセス先番号を特定する。
【０１４９】
＜動作＞
本実施形態のボリューム管理装置１２の動作を説明する。第１の実施形態との異なる部分について述べる。
【０１５０】
（論理ボリュームの作成）
論理ボリュームの作成においては、ボリューム管理装置１２は図１１のフローチャートのステップＳ１１１〜ステップＳ１１５を行えばよい。ステップＳ１１６以降は行わなくてよい。
【０１５１】
（アクセス）
ホスト装置２０が論理ボリュームへアクセスする場合の、本実施形態に係るボリューム管理装置１２の動作を説明する。
【０１５２】
ホスト装置２０が論理ボリュームにアクセスする場合の、本実施形態に係るボリューム管理装置１２の動作は、アクセス部１０１およびアクセス先特定部１２６の動作のみが異なる。以下、第１の実施形態と異なる点を説明する。
【０１５３】
図１５は、ホスト装置２０が論理ボリュームにアクセスする場合の、アクセス部１０１およびアクセス先特定部１２６の動作の流れを示すシーケンス図である。
【０１５４】
まず、アクセス部１０１は、ボリューム提供部１１１から、論理ブロック番号の範囲の指定を受け取る（ステップＳ１５１）。
【０１５５】
アクセス部１０１は、アクセス先ＨＤＤとアクセス先番号とを特定したい論理ブロック番号を、アクセス先特定部１２６に渡す（ステップＳ１５２）。
【０１５６】
アクセス先特定部１２６は、論理ブロック番号を受け取る（ステップＳ１５３）と、まず、ペア管理テーブルを参照して、受け取った論理ブロック番号に関連づけられるペア番号を特定する（ステップＳ１５４）。次に、アクセス先特定部１２６は、受け取った論理ブロック番号のペア内論理番号を特定する（ステップＳ１５５）。
【０１５７】
そして、アクセス先特定部１２６は、特定したペア番号および特定したペア内論理番号から、アクセス先ＨＤＤを特定する（ステップＳ１５６）。アクセス先ＨＤＤが特定されたら、アクセス先特定部１２６は、アクセス先番号を特定する（ステップＳ１５７）。
【０１５８】
アクセス先特定部１２６は、特定したアクセス先ＨＤＤの識別子とアクセス先番号とを、アクセス部１０１に渡す（ステップＳ１５８）。
【０１５９】
アクセス部１０１は、受け取ったアクセス先ＨＤＤの識別子とアクセス先番号とから、指定されている論理ブロック番号の範囲に相当するブロック番号の範囲を特定する（ステップＳ１５９）。
【０１６０】
アクセス部１０１は、特定されたブロック番号の範囲のブロックにアクセスする（ステップＳ１６０）。そして、アクセス部１０１は、アクセスした結果を、ボリューム提供部１１１に渡す（ステップＳ１６１）。
【０１６１】
なお、ボリューム提供部１１１は、受け取った結果を、ホスト装置２０に渡す。
【０１６２】
以上の動作により、ボリューム管理装置１２はホスト装置２０に対して論理ボリュームとしての機能を提供する。
【０１６３】
＜効果＞
第２の実施形態に係るボリューム管理装置１２は、第１の実施形態に係るボリューム管理装置１１と同様の効果を奏する。加えて、第２の実施形態によれば、ボリューム管理装置１２は、番号対応表を用意しておく必要がないという利点がある。その理由は、アクセス先特定部１２６が、論理ブロック番号から、再現性のある演算処理によって、アクセス先ＨＤＤおよびアクセス先番号を一意に特定するからである。
【０１６４】
＜＜第３の実施形態＞＞
先の第２の実施形態に係るアクセス先特定部１２６は、対象の論理ブロック番号の、ペア内論理番号に相当する回数の繰り返し処理によって、アクセス先ＨＤＤおよびアクセス先番号を特定する。
【０１６５】
以下で説明する第３の実施形態に係るアクセス先特定部１２６は、対象の論理ブロック番号のペア内論理番号の値に関わらず、数回の演算でアクセス先ＨＤＤおよびアクセス先番号を特定する。
【０１６６】
＜構成＞
図１６は、第３の実施形態に係るボリューム管理装置１３の構成を示すブロック図である。ボリューム管理装置１３の情報提供部１３０は、アクセス先特定部１３６を備える。なお、第２の実施形態の構成要素と同様の機能を有する構成要素には同一の符号を付し、その機能に関する説明を省略する。
【０１６７】
＝＝＝アクセス先特定部１３６＝＝＝
アクセス先特定部１３６は、アクセス部１０１から受け取った論理ブロック番号から、その論理ブロック番号に関連づけられるアクセス先ＨＤＤおよびアクセス先番号を、ペア管理テーブルに基づいて特定する。
【０１６８】
本実施形態のアクセス先特定部１３６と、第２の実施形態のアクセス先特定部１２６とは、ステップＳ８４におけるアクセス先ＨＤＤの特定方法が異なる。
【０１６９】
以下、アクセス先特定部１３６が対象の論理ブロック番号のペア番号およびペア内論理番号からアクセス先ＨＤＤを特定する方法について説明する。対象の論理ブロック番号のペア番号およびペア内論理番号を特定する方法は、第２の実施形態のアクセス先特定部１２６と同様である。
【０１７０】
任意のペアについて、ペア内論理番号がｘ以下である論理ブロック番号のうち、ＨＤＤ１に関連づけられる論理ブロック番号の数をＢ１（ｘ）、ＨＤＤ２に関連づけられる論理ブロック番号の数をＢ２（ｘ）とする。
【０１７１】
Ｂ１（ｘ）およびＢ２（ｘ）が、計算式で定義されたとする。すると、ペア内論理番号ｘに関連づけられるアクセス先ＨＤＤは、Ｂ１（ｘ）の値とＢ１（ｘ−１）の値とが異なる場合はＨＤＤ１、Ｂ２（ｘ）の値とＢ２（ｘ−１）の値とが異なる場合はＨＤＤ２であるといえる。すなわち、アクセス先特定部１３６は、Ｂ１（ｘ）−Ｂ１（ｘ−１）の値が１である場合は、アクセス先ＨＤＤはＨＤＤ１であると判断し、そうでない場合は、アクセス先ＨＤＤはＨＤＤ２であると判断すればよい。ただし、ｘ＝０の場合は、Ｂ１（０）、Ｂ２（０）のうち値が１である方に相当するＨＤＤがアクセス先ＨＤＤである。
【０１７２】
Ｂ１（ｘ）およびＢ２（ｘ）は、それぞれ次の式に示されるｆ１（ｘ）またはｆ２（ｘ）に準ずる関数として定義されればよい。
【０１７３】
【数３】
2017174302.tif 000005
【０１７４】
１つの方法として、Ｂ１（ｘ）およびＢ２（ｘ）は、次の計算によって算出可能である。Ｒｏｕｎｄ（ｘ）は、ｘを四捨五入して整数にすることを意味し、［］はガウス記号（小数部分を切り捨てる関数）である。
【０１７５】
【数４】
2017174302.tif 000006
【０１７６】
上式の意味するところは、配分量の目安であるｆ１（ｘ），ｆ２（ｘ）は四捨五入によって整数に丸められるということである。ただし、ｆ１（ｘ）およびｆ２（ｘ）の小数部分がともに０．５である場合は、いずれか一方のみが切り上がるようにするため、Ｂ２（ｘ）の値はσ（ｘ）によって補正される。σ（ｘ）は、ｆ２（ｘ）の小数部が０．５となった場合にのみ−１となり、他の場合は０である関数である。（要するに、Ｂ２（ｘ）は、いわば、ｆ２（ｘ）を「五捨五超入」した値である。）
上式と本質的に同等な計算式として、次のような計算式が用いられてもよい。
【０１７７】
【数５】
2017174302.tif 000007
【０１７８】
上式は、配分量の目安であるｆ１（ｘ），ｆ２（ｘ）を四捨五入によって整数に丸めた値をＢ１（ｘ），Ｂ２（ｘ）とすることを意味する。ただし、丸める前のｆ２（ｘ）の値はごく微小な値δによって減じられる。
【０１７９】
上述のいずれかの計算式によって定義されるＢ１（ｘ）およびＢ２（ｘ）は、ｘの値が１増加するとＢ１（ｘ）の値またはＢ２（ｘ）の値のどちらか一方のみが１増加する、という特徴がある。したがって、Ｂ１（ｘ），Ｂ２（ｘ）のそれぞれは、それぞれのＨＤＤ３０における、ペア内論理番号がｘ以下のブロックの数を表す関数である。なおかつ、Ｂ１（ｘ），Ｂ２（ｘ）は、任意のｘについての値がそれぞれｆ１（ｘ），ｆ２（ｘ）に準ずる関数である。
【０１８０】
アクセス先特定部１３６は、上述の計算を、次の手順によって行っても良い。
（手順−１）
アクセス先特定部１３６は、ペア内論理番号がｘ以下の（ｘ＋１個の）データが、各ＨＤＤに占めるブロックの数の目安として、ｆ１（ｘ）およびｆ２（ｘ）をそれぞれ求める。
（手順−２）
アクセス先特定部１３６は、ｆ１（ｘ）の小数部の値とｆ２（ｘ）の小数部の値とを求める。アクセス先特定部１３６は、小数部の値の代わりに、次に示すＲ１（ｘ）、Ｒ２（ｘ）を算出してもよい。なお、ｍｏｄは剰余を求める演算である。
【０１８１】
【数６】
2017174302.tif 000008
ちなみに、Ｒ１（ｘ）およびＲ２（ｘ）は、ｆ１（ｘ）およびｆ２（ｘ）のそれぞれの小数部分の（Ｃ１＋Ｃ２）倍に等しい。
（手順−３）
アクセス先特定部１３６は、補正値σ１（ｘ）およびσ２（ｘ）を定義する。アクセス先特定部１３６は、σ１（ｘ）の値およびσ２（ｘ）の値を、次のように、ｆ１（ｘ）の小数部とｆ２（ｘ）の小数部との値に基づき、決定する。すなわち、
・Ｒ１（ｘ）が“０”でなく、Ｒ１（ｘ）≧Ｒ２（ｘ）の場合、σ１（ｘ）＝１，σ２（ｘ）＝０とする。
・Ｒ１（ｘ）が“０”でなく、Ｒ１（ｘ）＜Ｒ２（ｘ）の場合、σ１（ｘ）＝０，σ２（ｘ）＝１とする。
・Ｒ１（ｘ）が“０”である場合は、σ１（ｘ）＝０，σ２（ｘ）＝０とする。
（手順−４）
アクセス先特定部１３６は、Ｂ１（ｘ）およびＢ２（ｘ）を、次の式により求める。
【０１８２】
【数７】
2017174302.tif 000009
【０１８３】
図１７は、本実施形態のペア番号が“２”であるペアの各ペア内論理番号ｘについて、手順１〜４に基づき算出される、それぞれの値の表である。
【０１８４】
図１７を参照すると、例えば、ｘ＝１２について、Ｒ１（１２）の値が“０”でなく、Ｒ２（１２）の値より大きいため、σ１＝１，σ２＝０となる。それぞれのσ値を［ｆ１（１２）］，［ｆ２（１２）］に加えることにより、Ｂ１（１２）＝９，Ｂ２（１２）＝４を得る。そして、同様に算出されたＢ１（１１），Ｂ２（１１）と比較すると、Ｂ１（１２）−Ｂ１（１１）＝９−８＝１，Ｂ２（１２）−Ｂ２（１１）＝４−４＝０であるから、アクセス先はＨＤＤ１と特定される。
【０１８５】
手順１〜４による算出方法は、本実施形態においては、先に示した四捨五入を用いた算出方法と本質的には同一である。図１７を参照すると、Ｂ１（ｘ），Ｂ２（ｘ）の組は、ｘが１増加するごとにいずれか一方の値のみが１増加するという特徴をもつことがわかる。このことからわかるように、アクセス先特定部１３６は、手順１〜４によって、対象の論理ブロック番号のペア番号およびペア内論理番号から、アクセス先ＨＤＤを特定できる。
【０１８６】
＜動作＞
本実施形態に係るボリューム管理装置１３の動作の流れは、第２の実施形態と同様である。ただし、アクセス先特定部１３６は、アクセス先ＨＤＤの特定において、上述した特定方法を用いる。
【０１８７】
＜効果＞
第３の実施形態に係るボリューム管理装置１３は、第２の実施形態に係るボリューム管理装置１２と同様の効果を奏する。さらに、第３の実施形態は、対象の論理ブロック番号のアクセス先ＨＤＤを、論理ブロック番号に依存しない、予測可能な演算量で特定できる。その理由は、アクセス先特定部１３６が、対象の論理ブロック番号のアクセス先ＨＤＤを、計算式によって算出される４つの値を比較することによって特定するからである。
【０１８８】
＜＜変形例＞＞
以上に示した各実施形態は、本発明の１つの例であり、その一部は、発明の趣旨から逸脱しない限りにおいて変更されうる。以下、各実施形態において変更されうる構成や動作の例について説明する。
【０１８９】
＜ストライピングの最小単位＞
アクセス先の決定において、データまたはアクセス量の分割（ストライピング）の最小単位はブロック１つ分でなくてもよい。
【０１９０】
上記各実施形態の方法では、任意のｘについてＢ１（ｘ），Ｂ２（ｘ）がそれぞれｆ１（ｘ），ｆ２（ｘ）になるべく準ずるよう、ｘを最小単位としてストライピングが行われることを説明した。これに対し、ある程度の長さのブロックをまとめたものをストライピングの最小単位として扱えば、Ｂ１（ｘ），Ｂ２（ｘ）とｆ１（ｘ），ｆ２（ｘ）との間の類似性は下がるものの、ストライピングの数（頻度）を抑えることができる。
【０１９１】
たとえば、各実施形態でアクセス先ＨＤＤを特定する主体（表生成部１１６またはアクセス先特定部１２６またはアクセス先特定部１３６）は、あるペアについて、ペア内論理番号の０から数えてｑブロック分をｓ＝０の組、次のｑブロック分をｓ＝１の組、・・・として、０≦ｓ≦（ペア容量／ｑ）を範囲とする組番号ｓを定義する。アクセス先ＨＤＤを特定する主体は、各実施形態で説明したアクセス先ＨＤＤの決定または特定において、ｘの代わりにｓを用いる。すると、ｓの値が等しいペア内論理番号のアクセス先ＨＤＤは同一となるため、データまたはアクセス量のストライピングの頻度は小さくなる。なお、この場合、アクセス先番号は、たとえばアクセス先がＨＤＤ１の場合、ｑ（Ｂ１（ｓ）−１）＋（ｘ  ｍｏｄ  ｑ）となる。
【０１９２】
上記の方法は、たとえば、そのペアに関連づけられる扱われるデータの量が一定以上であるために小さなｘに対するＢ１（ｘ），Ｂ２（ｘ）とｆ１（ｘ），ｆ２（ｘ）との間の類似性がさして問題にならない場合に、デメリットが少ない。
【０１９３】
＜ペアの生成の方法＞
ペア容量は、必ずしも厳密にどのペアにおいても等しい必要はない。すなわち、ペア生成部１１５は、ペア間のペア容量の不均衡がなるべく少なくなるようにペアを生成すればよい。
【０１９４】
また、ペア生成部１１５は、必ずしも分割された区間のすべてについてペアを生成しなくてもよい。すなわち、ペアを生成する対象の区間は、適宜設計変更されてよい。
【０１９５】
＜記憶装置＞
上記各実施形態では、ボリューム管理装置１１〜１３は、ＨＤＤ３０の記憶領域に対して論理ボリュームを構築するが、ボリューム管理装置１１〜１３は、記憶領域を提供する機能構成である他の機能構成の記憶領域に対して論理ボリュームを構築してもよい。たとえば、ボリューム管理装置１１〜１３は、論理ブロック番号によってアクセス性能の異なる論理ボリュームに対して、論理ボリュームを構築してもよい。以下、「記憶装置」とは、記憶領域を提供する機能構成を指す。
【０１９６】
＜性能特性が異なる記憶装置の組み合わせ＞
上記各実施形態ではアクセス性能の性能特性が同一の記憶装置を２つ１組としたが、性能特性が異なる記憶装置を１組として用いてもよい。
【０１９７】
この場合、ボリューム管理装置１１〜１３の設計者は、アクセス性能の差が均一化されるよう、ペアの組み合わせを工夫すればよい。各記憶装置間で総アクセス時間が異なる場合は、一方または両方の記憶装置の一部の領域を論理ボリュームの対象とすればよい。すなわち、各記憶装置間で総アクセス時間が等しくなる領域に対して各実施形態で説明される論理ボリュームを生成すれば、その領域においてはアクセス性能を均一にすることができる。
【０１９８】
また、性能特性が一定値で表される記憶装置であっても、その記憶装置のアクセス性能が相異なる場合は、それらの記憶装置に対しても論理ボリュームの効果を奏する。たとえば、分割部１１３は、それぞれの記憶装置の記憶領域を、一つの区間のアクセスにかかる時間がその記憶装置内のいずれの区間でも等しくなるように、両記憶装置の記憶領域を分割してもよい。すると、ボリューム管理装置１１〜１３がそれぞれの記憶装置に順次アクセスする場合は、それぞれの記憶装置のアクセス性能が均される。すなわち、どの論理ブロック番号の範囲のアクセスにおいても、それぞれの記憶装置にアクセスされる領域の容量の比が均一になる。したがって、それぞれの記憶装置のアクセス性能の差に起因する非効率性を低減することができる。
【０１９９】
あるいは、性能特性が一定値で表され、容量が無視できるほど十分に大きい複数の記憶装置に対しては、分割部１１３は記憶領域を分割しなくともよい（分割数が１である、ともいえる）。性能特性が一定値で表される記憶装置を２台用いる場合、論理ボリュームは、アクセス性能がそれぞれｖ１，ｖ２である記憶領域に対して、アクセス量がアクセス性能の比に応じて配分されるように、生成されればよい。アクセス量がアクセス性能の比に応じて配分されるとは、それぞれの記憶装置においてアクセスされる領域の容量の比が、アクセス性能の比にほぼ等しくなることである。論理ブロック番号からアクセス先ＨＤＤを決定する計算では、各実施形態における、Ｃ１，Ｃ２を、それぞれｖ１，ｖ２に置き換えればよい。この場合、それぞれの記憶装置へのアクセスにかかる時間はほぼ等しくなる。したがって、ボリューム管理装置１１〜１３が、それぞれの記憶装置に同時にアクセスする場合に、アクセス性能の高い記憶装置のアクセス性能が無駄にならなくなる。
【０２００】
＜並行してアクセスが行われる点＞
上記各実施形態では、２つ以上の記憶装置に対して並行してアクセスが行われ、ほぼ同時にアクセスが完了することを想定しているが、各記憶装置に対するアクセスは並行して行われなくても良い。
【０２０１】
たとえば、データブロックを読み書きする機能を持つ構成要素（ドライブ等）が１つのみである場合、ドライブ等は、低性能な区間と高性能な区間とに、順次アクセス性能の比に応じてアクセス量を配分してアクセスすればよい。これによっても、区間ごとのアクセス性能の差を均一化することができる。
【０２０２】
そのため、たとえば、１つのＨＤＤを用いて、Ｎ個に分割された区間から２つずつ組み合わせてＮ／２個のペアを生成し、同一のペア番号のそれぞれの区間に順次アクセスすることによっても、ディスクのアクセス性能の不均衡性が解消する。
【０２０３】
＜記憶装置の数＞
ボリューム管理装置は、３つ以上の記憶装置を用いて構成される論理ボリュームを構築してもよい。
【０２０４】
以下、第４の実施形態として、複数のＨＤＤを管理の対象とした実施形態について説明する。
【０２０５】
＜＜第４の実施形態＞＞
＜構成＞
図１８は、第４の実施形態に係るボリューム管理装置１４の構成を表すブロック図である。
【０２０６】
ボリューム管理装置１４は、複数のＨＤＤ３０（ＨＤＤ１、ＨＤＤ２、ＨＤＤ３，・・・）を制御する。
【０２０７】
ボリューム管理装置１４の情報提供部１４０は、第３の実施形態のペア管理部１１４、ペア生成部１１５、およびアクセス先特定部１３６に代え、セット管理部１４４、セット生成部１４５、およびアクセス先特定部１４６を備える。
【０２０８】
分割部１１３の機能は、上述の各実施形態における分割部１１３の機能と同様でよい。分割部１１３は、各ＨＤＤ３０の分割位置を決定し、その結果をセット管理部１４４に記録する。
【０２０９】
セット生成部１４５は、上述の各実施形態のペア生成部１１５に相当する。セット生成部１４５は、上記各実施形態における“ペア番号”に相当するものとして、各ＨＤＤの全区間について“セット番号”を割り当て、同じセット番号の区間をセットとして扱う。セット番号の割り当て方は任意でよい。この割り当て方は、セット容量（上述の各実施形態のペア容量に相当する）がセット間でなるべく均一になるような割り当て方が好ましい。
【０２１０】
セット管理部１４４は、上記各実施形態のペア管理部１１４に相当する。セット管理部１４４は、各セット番号に関する、各ＨＤＤにおける容量、セット容量、先頭論理番号を記憶する。各値の求め方は、上述の各実施形態に倣えばよい。
【０２１１】
アクセス先特定部１４６は、第３の実施形態のアクセス先特定部１３６に相当する。アクセス先特定部１４６による、アクセス先ＨＤＤを特定するための計算式は、２つのＨＤＤ３０を対象とする第３の実施形態の場合と異なる。
【０２１２】
以下、ある論理ブロック番号のブロックを対象の論理ブロック番号として、計算によって論理ブロック番号からアクセス先ＨＤＤを一意に決定する方法を説明する。
【０２１３】
まず、アクセス先特定部１４６は、セット管理部１４４が示す各セットの先頭論理番号に基づいて、対象の論理ブロック番号に関連づけられるセット番号、およびセット内論理番号を特定する。セット内論理番号は、上述の各実施形態のペア内論理番号に相当するものである。セット内論理番号は、特定されたセット番号に含まれる論理ブロック番号の集合における、先頭論理番号を基準とする相対的な番号である。
【０２１４】
次に、アクセス先特定部１４６は、特定したセット番号とセット内論理番号とから、アクセス先ＨＤＤを特定する。アクセス先特定部１４６は、アクセス先ＨＤＤの特定において、各ＨＤＤにおける、セット内論理番号がｘ以下のブロックの数を示す変数を用いる。以下、ＨＤＤｉ（ｉ＝１，２，３，…）におけるセット内論理番号がｘ以下のブロック数を、Ｂｉ（ｘ）と定義する。
【０２１５】
以下、特定されたセット番号が割り当てられた、ＨＤＤｉの区間のブロックの数をＣｉとして、特定されたセット番号における、Ｂｉ（ｘ）を決定する方法を述べる。
【０２１６】
Ｂｉ（ｘ）は、各ＨＤＤのブロック数の比にしたがってアクセスが配分されていくよう、定義されればよい。すなわち、各ＨＤＤにおいてアクセスされるブロックの数の比が、Ｃｉの比（Ｃ１：Ｃ２：・・・）となるよう、Ｂｉ（ｘ）は定義されればよい。好ましくは、任意のｘについて、セット内論理番号がｘ以下である（ｘ＋１個の）論理ブロック番号の、ＨＤＤｉに関連づけられる論理ブロック番号の数が、それぞれ次に示すｆｉ（ｘ）に概ね準じるとよい。
【０２１７】
【数８】
2017174302.tif 000010
ただし、ΣＣｋは、セット容量である。
【０２１８】
１つの配分方法として、アクセス先特定部１４６は、各ｉのＢｉ（ｘ）を、ＨＤＤｉごとに設定される値σｉ（ｘ）を用いて、下式により算出する。
【０２１９】
【数９】
2017174302.tif 000011
本実施形態では、σｉ（ｘ）を、ＨＤＤｉに関するσ値と呼ぶ。σ値の求め方は、次のようにする。
【０２２０】
まず、アクセス先特定部１４６は、σｉ（ｘ）のうちのいくつを１にするかを求める。以下、σｉ（ｘ）のうちのいくつを１にするかを表す値を、「補正個数」と称す。補正個数は、すべてのｉについてｆｉ（ｘ）の整数部分について総和をとったときに、（ｘ＋１）の値との間に生じる差分である。補正個数は、ｆｉ（ｘ）の小数部分の総和に等しい。
【０２２１】
次に、アクセス先特定部１４６は、補正個数の分のσ値を１にする。このとき、アクセス先特定部１４６は、特定の基準に従ってＨＤＤ１，ＨＤＤ２，・・・を順位づけし、順位の高いＨＤＤ３０に係るσ値を優先的に“１”にする。特定の基準とは、Ｂｉ（ｘ）のそれぞれが、ｘの増加に伴って必ず単調増加するように定められた基準である。
【０２２２】
例として、アクセス先特定部１４６は、各ＨＤＤ３０について、ｘがあとどれだけ増えればｆｉ（ｘ）の整数部の値が１増えるかを表す値であるＴｉ（ｘ）を、次式によって求める。
Ｔｉ（ｘ）＝（ΣＣｋ−Ｒｉ（ｘ））／Ｃｉ
ただし、Ｒｉ（ｘ）は、ｆｉ（ｘ）の小数部分のΣＣｋ倍である。そして、アクセス先特定部１４６は、求めた値が小さい順に補正個数分のＨＤＤ３０を抽出する。ただし、σ値が等しい場合に抽出する優先順位は予め定められる（たとえば、番号ｉの値が小さいほど優先して抽出する、など）。アクセス先特定部１４６は、抽出したＨＤＤ３０に関するσ値を“１”にし、抽出しなかったＨＤＤ３０に関するσ値を“０”にする。
【０２２３】
各ＨＤＤに係るσ値が決定したら、アクセス先特定部１４６は、上記の式によって、各ｉに対応するＢｉ（ｘ）の値を求めればよい。
【０２２４】
以上のような計算によって算出されるＢｉ（ｘ）と、Ｂｉ（ｘ−１）と比較すると、ｉのいずれかの値に対応するＢｉ（ｘ）−Ｂｉ（ｘ−１）の値のみが１増える。アクセス先特定部１４６は、Ｂｉ（ｘ）−Ｂｉ（ｘ−１）が１増えるｉの値を特定し、そのｉに対応するＨＤＤをアクセス先ＨＤＤとして特定する。
【０２２５】
図１９は、本実施形態の例として、３つのＨＤＤ３０を使用し、Ｃ１＝１３５３３４、Ｃ２＝６７７１４，Ｃ３＝９６５４２であるようなセットの、セット内論理番号ｘのそれぞれのアクセス先ＨＤＤを求める方法を説明する図である。
【０２２６】
たとえば、ｘ＝５であるブロックのアクセス先を求めるとする。ｘ＝５のとき、［ｂ１（ｘ）］＝２，［ｂ２（ｘ）］＝１，［ｂ３（ｘ）］＝１であるから、補正個数は（５＋１）−（２＋１＋１）＝２である。次に、Ｔ１（ｘ），Ｔ２（ｘ），Ｔ３（ｘ）を求めると、その値の大小関係はＴ３（ｘ）＜Ｔ１（ｘ）＜Ｔ２（ｘ）である。したがって、σ３（ｘ）およびσ１（ｘ）の値は“１”となり、σ２（ｘ）の値は“０”となる。これに基づき、Ｂ１（ｘ），Ｂ２（ｘ），Ｂ３（ｘ）の値が、それぞれＢ１（ｘ）＝２＋１＝３，Ｂ２（ｘ）＝１＋０＝１，Ｂ３（ｘ）＝１＋１＝２と求められる。同様にして、Ｂ１（４），Ｂ２（４），Ｂ３（４）の値を求めると、Ｂ１（４）＝２，Ｂ２（４）＝１，Ｂ３（４）＝２である。ｘ＝４の場合とｘ＝５の場合とを比較して、数値が変化したのはＢ１（ｘ）であるから、アクセス先ＨＤＤはＨＤＤ１と特定される。
【０２２７】
このようにして、セット内論理番号からアクセス先ＨＤＤが特定される。
【０２２８】
アクセス先ＨＤＤに基づくアクセス先番号の決定方法は、他の実施形態と同様でよい。
【０２２９】
以上のようにして、アクセス先特定部１４６は、指定された論理ブロック番号の、アクセス先ＨＤＤおよびアクセス先番号を一意に特定する。
【０２３０】
＜効果＞
本実施形態によれば、３つ以上のＨＤＤを使用するボリューム管理装置１４が、アクセス性能の差に起因する非効率性を低減した論理ボリュームを、ホスト装置２０に提供することができる。
【０２３１】
各ＨＤＤ３０において、アクセス部１０１によるアクセスにかかる時間が等しいので、アクセス性能の差に起因する非効率性は低減される。
【０２３２】
以上、各実施形態で説明される事項および変形例として説明された様々な事項は、互いに組み合わされてもよい。ある変形例で説明された事項が他の変形例においても適宜適用可能であることは、当業者にとって容易に理解されよう。
【０２３３】
＜＜第５の実施形態＞＞
第５の実施形態として、本発明の主要な構成による実施形態について、図２０を参照して説明する。
【０２３４】
本実施形態に係るボリューム管理装置１０は、情報提供部１００とアクセス部１０１とを備える。
【０２３５】
アクセス部１０１は、１つ以上の記憶装置４０と通信可能に接続される。
【０２３６】
記憶装置４０は、内部の記憶領域を用いて、データを記憶する。
【０２３７】
アクセス部１０１は、記憶装置にアクセスする。
【０２３８】
情報提供部１００は、記憶装置４０内の記憶領域の一部または全部の区間であってアクセス性能が相異なる複数の区間の、それぞれにおいて、アクセス部１０１によってアクセスされる領域の容量の比が、区間のアクセス性能の比に基づいた値になるよう、アクセス先を決定する。そして、情報提供部１００は、決定したアクセス先の情報をアクセス部１０１に提供する。
【０２３９】
または、情報提供部１００は、記憶装置４０内の記憶領域の一部または全部の区間であってアクセス性能が相異なる複数の区間の、それぞれにおいて、アクセス部１０１によってアクセスされる領域の容量の比が、区間の容量の比に基づいた値になるよう、アクセス先を決定する。そして、情報提供部１００は、決定したアクセス先の情報をアクセス部１０１に提供する。
【０２４０】
本実施形態によれば、記憶領域におけるアクセス性能の差に起因する非効率性を低減することができる。
【０２４１】
以上で説明した本発明の各実施形態において、各装置の各構成要素は、機能単位のブロックを示している。各装置の各構成要素の一部または全部は、例えば図２１に示すようなコンピュータ２１００とプログラムとの可能な組み合わせにより実現される。コンピュータ２１００は、一例として、以下のような構成を含む。
【０２４２】
・ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１０１
・ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２１０２
・ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２１０３
・ＲＡＭ２１０３にロードされるプログラム２１０４Ａおよび記憶情報２１０４Ｂ
・プログラム２１０４Ａおよび記憶情報２１０４Ｂを格納する記憶装置２１０５
・記録媒体２１０６の読み書きを行うドライブ装置２１０７
・通信ネットワーク２１０９と接続する通信インタフェース２１０８
・データの入出力を行う入出力インタフェース２１１０
・各構成要素を接続するバス２１１１
【０２４３】
各実施形態における各装置の各構成要素は、これらの機能を実現するプログラム２１０４ＡをＣＰＵ２１０１がＲＡＭ２１０３にロードして実行することで実現される。各装置の各構成要素の機能を実現するプログラム１２０４Ａは、例えば、予め記憶装置２１０５やＲＯＭ２１０２に格納されており、必要に応じてＣＰＵ２１０１が読み出す。なお、プログラム２１０４Ａは、通信ネットワーク２１０９を介してＣＰＵ２１０１に供給されてもよいし、予め記録媒体２１０６に格納されており、ドライブ装置２１０７が当該プログラムを読み出してＣＰＵ２１０１に供給してもよい。
【０２４４】
各装置の実現方法には、様々な変形例がある。例えば、各装置は、構成要素毎にそれぞれ別個のコンピュータ２１００とプログラムとの可能な組み合わせにより実現されてもよい。また、各装置が備える複数の構成要素が、一つのコンピュータ２１００とプログラムとの可能な組み合わせにより実現されてもよい。
【０２４５】
また、各装置の各構成要素の一部または全部は、その他の汎用または専用の回路、コンピュータ等やこれらの組み合わせによって実現される。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。
【０２４６】
各実施形態の各構成要素の一部または全部の機能は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【０２４７】
各装置の各構成要素の一部または全部が複数のコンピュータや回路等により実現される場合には、複数のコンピュータや回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、コンピュータや回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【０２４８】
本願発明は以上に説明した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０２４９】
上記実施形態の一部または全部は以下の付記のようにも記載され得るが、以下には限られない。
【０２５０】
＜＜付記＞＞
［付記１］
データを記憶する記憶装置にアクセスするアクセス手段と、
前記記憶装置内の記憶領域の一部または全部の区間であってアクセス性能が相異なる複数の前記区間の、それぞれにおいて前記アクセス手段によってアクセスされる領域の容量の比が、前記区間のアクセス性能の比に基づいた値になるよう、アクセス先を決定し、決定された前記アクセス先の情報を前記アクセス手段に提供する、情報提供手段と、
を備えるボリューム管理装置。
［付記２］
前記アクセス手段は、前記複数の前記区間に、前記データを、前記区間のアクセス性能の比に基づいた比に分割して格納する、
付記１に記載のボリューム管理装置。
［付記３］
データを記憶する記憶装置にアクセスするアクセス手段と、
前記記憶装置内の記憶領域の一部または全部の区間であってアクセス性能が相異なる複数の前記区間の、それぞれにおいて前記アクセス手段によってアクセスされる領域の容量の比が、前記区間の容量の比に基づいた値になるよう、アクセス先を決定し、決定された前記アクセス先の情報を前記アクセス手段に提供する、情報提供手段と、
を備えるボリューム管理装置。
［付記４］
前記アクセス手段は、前記複数の前記区間に、前記データを、前記区間の容量の比に基づいた比に分割して格納する、
付記３に記載のボリューム管理装置。
［付記５］
前記情報提供手段は、
前記記憶装置の前記記憶領域を、所定の分割数で、該分割数で分割されることにより生成するどの区間の開始位置から終了位置までのアクセスにかかる時間もほぼ均一になるように、分割することで、前記区間を生成する、分割手段と、
前記区間を、どの組み合わせの前記区間の容量の和もほぼ均一になるように組み合わせ、組み合わせた前記区間にその組み合わせを識別するペア番号を付与する、ペア生成手段と、
前記アクセス手段によるアクセス先が、同一の前記ペア番号が付与された前記区間のそれぞれであるように、前記アクセス手段に前記アクセス先の情報を提供する、アクセス先特定手段と、
を含む、付記１から４のいずれか一項に記載のボリューム管理装置。
［付記６］
前記分割手段は、前記記憶領域提供装置の性能特性を前記区間に含まれる前記ブロック番号による線形な関数に近似することによって得られる計算式に基づいて、前記区間の境界の位置を算出する、
付記５に記載のボリューム管理装置。
［付記７］
前記区間は、ブロック番号が付与された少なくとも１つのブロックからなり、
前記情報提供手段は、論理ブロック番号をそれぞれいずれかの前記区間のいずれかの前記ブロックの前記ブロック番号に対応付け、対応付けた情報を前記アクセス先の情報として前記アクセス手段に提供するアクセス先特定手段を含み、
前記アクセス手段は、前記アクセス先の情報に基づき、一定範囲の連続する論理ブロック番号のそれぞれが対応付けられる、それぞれの前記区間の前記ブロック番号の前記ブロックにアクセスし、
前記区間のそれぞれにおいて、前記アクセス手段によりアクセスされる前記ブロックの数の比は、前記区間のそれぞれのアクセス性能の比に基づいた値である、
付記５または６に記載のボリューム管理装置。
［付記８］
前記アクセス先特定手段は、
論理ブロック番号を受け取り、
受け取った論理ブロック番号に、該論理ブロック番号に基づいて、前記ペア番号を対応付け、
受け取った論理ブロック番号に、該論理ブロック番号と、対応付けた前記ペア番号を構成する区間の開始位置の情報とに基づいて、同一の前記ペア番号の前記論理ブロック番号の集合においてそれぞれの前記論理ブロック番号を識別するペア内論理番号を対応付け、
対応付けた前記ペア内論理番号に基づいて、受け取った論理ブロック番号に前記区間の１つを対応付け、
対応付けた前記ペア番号と対応付けた前記ペア内論理番号とに基づいて、受け取った論理ブロック番号に前記ブロック番号を対応付けることで、
受け取った論理ブロック番号をいずれかの前記区間のいずれかの前記ブロックの前記ブロック番号に対応付ける、
付記７に記載のボリューム管理装置。
［付記９］
論理ブロック番号を、第１の記憶領域、および、前記第１の記憶領域とアクセス性能が異なる前記第２の記憶領域の、いずれかに割り当て、
一定長の連続する論理ブロック番号の集合のうち、第１の記憶領域に割り当てられる論理ブロック番号の個数と、第２の記憶領域に割り当てられる論理ブロック番号の個数との比は、前記第１の記憶領域の有するブロック数と前記第２の記憶領域の有するブロック数との比に基づいた値である、
論理ブロック番号の割り当て方法。
［付記１０］
論理ブロック番号を、第１の記憶領域、および、前記第１の記憶領域よりもアクセス性能が高い前記第２の記憶領域の、いずれかに割り当て、
一定長の連続する論理ブロック番号の集合のうち、第１の記憶領域に割り当てられる論理ブロック番号の個数は、第２の記憶領域に割り当てられる論理ブロック番号の個数よりも少ない、
論理ブロック番号の割り当て方法。
［付記１１］
データを記憶する記憶装置内の記憶領域の一部または全部の区間であってアクセス性能が相異なる複数の前記区間の、それぞれにおいてアクセスされる領域の容量の比が、前記区間のアクセス性能の比に基づいた値になるよう、前記区間にアクセスする、
ボリューム管理方法。
［付記１２］
前記複数の前記区間に、前記データを、前記区間のアクセス性能の比に基づいた比に分割して格納する、
付記１１に記載のボリューム管理方法。
［付記１３］
データを記憶する記憶装置内の記憶領域の一部または全部の区間であってアクセス性能が相異なる複数の前記区間の、それぞれにおいてアクセスされる領域の容量の比が、前記区間の容量の比に基づいた値になるよう、前記区間にアクセスする、
ボリューム管理方法。
［付記１４］
前記複数の前記区間に、前記データを、前記区間の容量の比に基づいた比に分割して格納する、
付記１３に記載のボリューム管理方法。
［付記１５］
前記記憶装置の前記記憶領域を、所定の分割数で、該分割数で分割されることにより生成するどの区間の開始位置から終了位置までのアクセスにかかる時間もほぼ均一になるように、分割することで、前記区間を生成し、
前記区間を、どの組み合わせの前記区間の容量の和もほぼ均一になるように組み合わせ、組み合わせた前記区間にその組み合わせを識別するペア番号を付与し、
アクセス先が、同一の前記ペア番号が付与された前記区間のそれぞれであるように、アクセスする、
付記１１から１４のいずれか一項に記載のボリューム管理方法。
［付記１６］
前記区間の生成において、前記記憶領域提供装置の性能特性を前記区間に含まれる前記ブロック番号による線形な関数に近似することによって得られる計算式に基づいて、前記区間の境界の位置を算出する、
付記１５に記載のボリューム管理方法。
［付記１７］
前記区間は、ブロック番号が付与された少なくとも１つのブロックからなり、
論理ブロック番号をそれぞれいずれかの前記区間のいずれかの前記ブロックの前記ブロック番号に対応付け、対応付けた情報を前記アクセス先の情報として生成し、
前記アクセス先の情報に基づき、一定範囲の連続する論理ブロック番号のそれぞれが対応付けられる、それぞれの前記区間の前記ブロック番号の前記ブロックにアクセスし、
前記区間のそれぞれにおいて、アクセスされる前記ブロックの数の比は、前記区間のそれぞれのアクセス性能の比に基づいた値である、
付記１５または１６に記載のボリューム管理方法。
［付記１８］
論理ブロック番号を受け取り、
受け取った論理ブロック番号に、該論理ブロック番号に基づいて、前記ペア番号を対応付け、
受け取った論理ブロック番号に、該論理ブロック番号と、対応付けた前記ペア番号を構成する区間の開始位置の情報とに基づいて、同一の前記ペア番号の前記論理ブロック番号の集合においてそれぞれの前記論理ブロック番号を識別するペア内論理番号を対応付け、
対応付けた前記ペア内論理番号に基づいて、受け取った論理ブロック番号に前記区間の１つを対応付け、
対応付けた前記ペア番号と対応付けた前記ペア内論理番号とに基づいて、受け取った論理ブロック番号に前記ブロック番号を対応付けることで、
受け取った論理ブロック番号をいずれかの前記区間のいずれかの前記ブロックの前記ブロック番号に対応付ける、
付記１７に記載のボリューム管理方法。
［付記１９］
コンピュータに、
データを記憶する記憶装置にアクセスするアクセス処理と、
前記アクセス処理が、前記記憶装置内の記憶領域の一部または全部の区間であってアクセス性能が相異なる複数の前記区間の、それぞれにおいてアクセスされる領域の容量の比が、前記区間のアクセス性能の比に基づいた値になるよう、前記アクセス処理にアクセス先の情報を提供する、情報提供処理と、
を実行させるプログラム。
［付記２０］
前記アクセス処理は、前記記憶装置内の記憶領域の一部または全部の区間であってアクセス性能が相異なる複数の前記区間に、前記データを、前記区間のアクセス性能の比に基づいた比に分割して格納する、
付記１９に記載のプログラム。
［付記２１］
コンピュータに、
データを記憶する記憶装置にアクセスするアクセス処理と、
前記記憶装置内の記憶領域の一部または全部の区間であってアクセス性能が相異なる複数の前記区間の、それぞれにおいて前記アクセス処理によってアクセスされる領域の容量の比が、前記区間の容量の比に基づいた値になるよう、アクセス先を決定し、決定された前記アクセス先の情報を前記アクセス処理に提供する、情報提供処理と、
を備えるプログラム。
［付記２２］
前記アクセス処理は、前記記憶装置内の記憶領域の一部または全部の区間であってアクセス性能が相異なる複数の前記区間に、前記データを、前記区間の容量の比に基づいた比に分割して格納する、
付記２１に記載のプログラム。
［付記２３］
前記情報提供処理は、
前記記憶装置の前記記憶領域を、所定の分割数で、該分割数で分割されることにより生成するどの区間の開始位置から終了位置までのアクセスにかかる時間もほぼ均一になるように、分割することで、前記区間を生成する、分割処理と、
前記区間を、どの組み合わせの前記区間の容量の和もほぼ均一になるように組み合わせ、組み合わせた前記区間にその組み合わせを識別するペア番号を付与する、ペア生成処理と、
前記アクセス処理によるアクセス先が、同一の前記ペア番号が付与された前記区間のそれぞれであるように、前記アクセス処理に前記アクセス先の情報を提供する、アクセス先特定処理と、
を含む、付記１９から２２のいずれか一項に記載のプログラム。
［付記２４］
前記分割処理は、前記記憶領域提供装置の性能特性を前記区間に含まれる前記ブロック番号による線形な関数に近似することによって得られる計算式に基づいて、前記区間の境界の位置を算出する、
付記２３に記載のプログラム。
［付記２５］
前記区間は、ブロック番号が付与された少なくとも１つのブロックからなり、
前記情報提供処理は、論理ブロック番号をそれぞれいずれかの前記区間のいずれかの前記ブロックの前記ブロック番号に対応付け、対応付けた情報を前記アクセス先の情報として前記アクセス処理に提供するアクセス先特定処理を含み、
前記アクセス処理は、前記アクセス先の情報に基づき、一定範囲の連続する論理ブロック番号のそれぞれが対応付けられる、それぞれの前記区間の前記ブロック番号の前記ブロックにアクセスし、
前記区間のそれぞれにおいて、前記アクセス処理によりアクセスされる前記ブロックの数の比は、前記区間のそれぞれのアクセス性能の比に基づいた値である、
付記２３または２４に記載のプログラム。
［付記２６］
前記アクセス先特定処理は、
論理ブロック番号を受け取り、
受け取った論理ブロック番号に、該論理ブロック番号に基づいて、前記ペア番号を対応付け、
受け取った論理ブロック番号に、該論理ブロック番号と、対応付けた前記ペア番号を構成する区間の開始位置の情報とに基づいて、同一の前記ペア番号の前記論理ブロック番号の集合においてそれぞれの前記論理ブロック番号を識別するペア内論理番号を対応付け、
対応付けた前記ペア内論理番号に基づいて、受け取った論理ブロック番号に前記区間の１つを対応付け、
対応付けた前記ペア番号と対応付けた前記ペア内論理番号とに基づいて、受け取った論理ブロック番号に前記ブロック番号を対応付けることで、
受け取った論理ブロック番号をいずれかの前記区間のいずれかの前記ブロックの前記ブロック番号に対応付ける、
付記２５に記載のプログラム。
【符号の説明】
【０２５１】
１    データ管理システム
１０〜１４    ボリューム管理装置
２０    ホスト装置
３０    ＨＤＤ
４０    記憶装置
１００    情報提供部
１０１    アクセス部
１１０    情報提供部
１１１    ボリューム提供部
１１３    分割部
１１４    ペア管理部
１１５    ペア生成部
１１６    表生成部
１１７    表記憶部
１２０    情報提供部
１２６    アクセス先特定部
１２７    カウンタ
１３０    情報提供部
１３６    アクセス先特定部
１４０    情報提供部
１４４    セット管理部
１４５    セット生成部
１４６    アクセス先特定部
３１１、３１２    ディスク
【図１】
2017174302.tif 000012
【図２】
2017174302.tif 000013
【図３】
2017174302.tif 000014
【図４】
2017174302.tif 000015
【図５】
2017174302.tif 000016
【図６】
2017174302.tif 000017
【図７】
2017174302.tif 000018
【図８】
2017174302.tif 000019
【図９】
2017174302.tif 000020
【図１０】
2017174302.tif 000021
【図１１】
2017174302.tif 000022
【図１２】
2017174302.tif 000023
【図１３】
2017174302.tif 000024
【図１４】
2017174302.tif 000025
【図１５】
2017174302.tif 000026
【図１６】
2017174302.tif 000027
【図１７】
2017174302.tif 000028
【図１８】
2017174302.tif 000029
【図１９】
2017174302.tif 000030
【図２０】
2017174302.tif 000031
【図２１】
2017174302.tif 000032