(57)【要約】  空き領域の断片化を解消する処理によるストレージのアクセス性能の低下を抑制し、少なくとも書き込みアクセス性能を保証する。ストレージは、ホストからの記憶媒体へのアクセス要求を受信するアクセス受付部と、前記記憶媒体の連続する所定個数の記憶単位をまとめて一つのグループとして管理し、書き込みデータを格納するための記憶領域の確保にあたり、一グループ内に含まれる空き状態の前記記憶単位の個数がアクセス性能の設定条件を満たしているグループを選択し、一グループ内での空き状態の前記記憶単位の分布が非連続であるグループも選択の対象とする記憶領域確保部と、前記書き込みアクセス要求により前記書き込みデータの格納先として指定されるアドレスと、前記選択されたグループに含まれる空き状態の前記記憶単位の記憶媒体上でのアドレスとの対応付けを行う割り当て部と、アドレスの対応付けが行われた前記グループに含まれる前記空き状態の記憶単位に対して順に前記書き込みデータを書き込むアクセス実行部を備える。
2015076354.tif 000002
【特許請求の範囲】
【請求項１】
データを格納する少なくとも１つの記憶媒体と、
ホストからの前記記憶媒体へのアクセス要求として少なくとも書き込みアクセス要求を受信するアクセス受付部と、
前記記憶媒体の記憶領域を複数に分割してなる予め定められた容量の記憶単位であって、連続する予め定められた所定個数の前記記憶単位を、まとめて一つのグループとして管理し、
前記受信した書き込みアクセス要求による書き込みデータを格納するための記憶領域の確保にあたり、一グループ内に含まれる空き状態の前記記憶単位の個数が、指定されたアクセス性能の設定条件を満たしているグループを選択し、
前記クループの選択にあたり、一グループ内での空き状態の前記記憶単位の分布が非連続であるグループも、前記アクセス性能の設定条件を満たしていれば、選択の対象とする記憶領域確保部と、
前記書き込みアクセス要求により前記書き込みデータの格納先として指定されるアドレスと、前記選択されたグループに含まれる空き状態の少なくとも一つの前記記憶単位に割り当てられている、前記記憶媒体上でのアドレスと、の対応付けを行う割り当て部と、
前記記憶領域確保部で選択され、且つ、前記割り当て部でアドレスの対応付けが行われた前記グループに含まれる前記空き状態の記憶単位に対して、順に、前記書き込みデータを書き込むアクセス実行部と、
を備えたストレージ装置。
【請求項２】
前記記憶媒体で提供可能な記憶容量を、空き状態の前記記憶単位の個数が前記アクセス性能の設定条件を満たす数以上であるグループを、少なくとも一つ確保可能とする容量値に可変に設定し、
設定した前記記憶媒体で提供可能な容量値を、前記ホストに通知する提供容量決定部をさらに備えた、請求項１記載のストレージ装置。
【請求項３】
前記アクセス受付部が、前記ホストからの前記アクセス要求で指定されるアドレスと、前記記憶媒体上の記憶領域に割り当てられているアドレスと、を相互に変換するアドレス変換部と、
前記ホストからの前記記憶媒体への前記アクセス要求を、前記記憶媒体上の記憶領域に割り当てられているアドレスを用いた前記記憶媒体へのアクセスコマンドに変換するアクセス要求変換部と、
を備えている、請求項１又は２に記載のストレージ装置。
【請求項４】
前記アクセス性能の条件として、
前記アクセス性能の下限、又は、
前記アクセス性能の下限と上限、又は、
前記記憶媒体における未使用領域の割合の下限
を指定する性能要件指定部をさらに備えた、請求項１乃至３のいずれか１項に記載のストレージ装置。
【請求項５】
前記記憶領域確保部は、前記グループに含まれる空き状態の記憶単位の個数を、前記記憶媒体への書き込みアクセス性能が、予め定められた下限と上限の範囲内となるための数から求め、
前記書き込みアクセスのアクセス性能が前記下限以上となるための個数分の空き状態の記憶単位を含むグループが存在しないことを検出すると、前記グループの空き状態の記憶単位の数、及び、前記記憶媒体の性能から、前記ストレージ装置が維持可能なアクセス性能の下限の値を計算し、
前記記憶領域確保部は、前記アクセス性能の下限の値を、前記性能要件指定部に通知し、
前記性能要件指定部は、前記記憶領域確保部からの前記通知に基づき、前記アクセス性能の下限の設定値を変更する、請求項４記載のストレージ装置。
【請求項６】
前記記憶媒体がハードディスクドライブを含み、
同一のグループに含まれる前記所定個数の記憶単位の合計の記憶容量は、前記ハードディスクドライブの１トラック相当の記憶容量と等しい容量値、又は該記憶容量に基づき算出された容量値、に設定される、請求項１乃至５のいずれか１項に記載のストレージ装置。
【請求項７】
前記アクセス受付部は、前記ホストからの前記記憶媒体への前記アクセス要求を、前記記憶媒体の前記記憶単位に対するアクセスコマンドに変換し、前記アクセス実行部に前記コマンドの実行を指示するアクセス要求変換部と、
前記ホストが前記ストレージ装置にアクセスする際に使用する論理アドレスと、前記論理アドレスに対応した前記記憶媒体上の記憶領域を指し示す物理アドレスとの対応関係を記録したアドレス変換テーブルを備えたアドレス変換部と、
を備え、
前記アドレス変換部は、
前記アクセス要求変換部において、前記ホストからのアクセス要求を前記記憶媒体のアクセスコマンドに変換する際の、論理アドレスから物理アドレスへの変換を行い、
前記割り当て部からの論理アドレスに対応する前記記憶媒体上の記憶領域を指し示す物理アドレスの変更要求を受け、前記アドレス変換テーブルを更新し、
前記アクセス実行部は、
前記アクセス要求変換部によって、前記ホストによるアクセス要求から変換された前記アクセスコマンドを、前記記憶媒体に対して発行し、
前記記憶領域確保部は、
複数の連続した記憶単位からなる前記グループについて、前記グループ内の記憶単位の割り当て状況を管理するテーブルを備え、
前記割り当て部が論理アドレスに対して割り当てる、前記記憶媒体上の記憶単位について、記憶領域として使用する物理アドレスを決定し、
前記割り当て部は、
前記アクセス要求変換部からの要求により、書き込みデータの格納先として使用する、前記記憶単位を、論理アドレスに対して割り当て、
さらに、
前記ストレージ装置に対して指定された、書き込みアクセスにおいて維持すべき性能の下限と上限、又は、未使用領域の割合の下限を記憶部に保持する性能要件指定部を備え、
前記提供容量決定部は、
前記性能要件指定部によって指定された、前記ストレージ装置に対する書き込みアクセスの下限と上限、及び、前記記憶媒体の容量、アクセス性能に基づき、性能要件を満たす範囲で、前記ストレージ装置が前記ホストに対して提供可能な容量を算出する、請求項２記載のストレージ装置。
【請求項８】
記憶媒体の記憶領域を複数に分割してなる予め定められた容量の記憶単位であって、連続する予め定められた所定個数の記憶単位を、まとめて一つグループとして管理し、
ホストから受信した前記記憶媒体への書き込みアクセス要求に対して書き込みデータを格納するための記憶領域の確保にあたり、一グループ内に含まれる空き状態の前記記憶単位の個数が、指定されたアクセス性能の設定条件を満たしているグループを選択し、その際、前記アクセス性能の設定条件を満たしていれば、一グループ内での空き状態の前記記憶単位の分布が非連続であるグループも選択の対象とし、
前記書き込みアクセス要求により前記書き込みデータの格納先として指定されるアドレスと、前記選択されたグループに含まれる空き状態の少なくとも一つの前記記憶単位に割り当てられている、前記記憶媒体上でのアドレスと、の対応付けを行い、
前記選択され前記アドレスの対応付けが行われた前記グループに含まれる前記空き状態の記憶単位に対して、順に、前記書き込みデータを書き込む、ストレージのアクセス制御方法。
【請求項９】
前記記憶媒体で提供可能な記憶容量を、空き状態の記憶単位の個数が前記アクセス性能の設定条件を満たす数以上であるグループを、少なくとも一つ確保可能とする容量値に可変に設定し、
設定した前記記憶媒体で提供可能な容量値を、前記ホストに通知する、請求項８記載のストレージのアクセス制御方法。
【請求項１０】
前記ホストからのアクセス要求で指定されるアドレスと、前記記憶媒体で前記記憶単位に対して割り当てられているアドレスと、を相互に変換し、
前記ホストからの前記記憶媒体へのアクセス要求を、前記記憶媒体上の記憶領域に割り当てられているアドレスを用いた前記記憶媒体へのアクセスコマンドに変換する、請求項８又は９記載のストレージのアクセス制御方法。
【請求項１１】
前記アクセス性能の条件として、
前記アクセス性能の下限、又は、
前記アクセス性能の下限と上限、又は、
前記記憶媒体における未使用領域の割合の下限
を指定する、請求項８乃至１０のいずれか１項に記載のストレージのアクセス制御方法。
【請求項１２】
前記記憶単位のグループに含まれる空き状態の記憶単位の個数を、書き込みアクセス性能が、前記アクセス性能の下限と上限の範囲内となるための数から求め、
前記書き込みアクセスのアクセス性能の前記下限以上となるための個数の空き状態の記憶単位を含む前記記憶単位のグループが存在しない場合、前記記憶媒体における前記記憶単位のグループの空き状態の記憶単位の数、及び、前記記憶媒体の性能から、前記ストレージ装置が維持可能なアクセス性能の下限の値を求め、
前記アクセス性能の下限の設定値を、前記求めた下限の値に変更する、請求項１１記載のストレージのアクセス制御方法。
【請求項１３】
前記記憶媒体がハードディスクドライブを含み、同一グループに含まれる連続した記憶領域の前記所定個数の記憶単位の合計の記憶容量を、前記ハードディスクドライブの１トラック相当の記憶容量又は該記憶容量に基づき算出された容量値に設定する、請求項８乃至１２のいずれか１項に記載のストレージのアクセス制御方法。
【請求項１４】
データを格納する少なくとも１つの記憶媒体に対するホストからのアクセス要求として少なくとも書き込みアクセス要求を受信するアクセス受付処理と、
前記記憶媒体の記憶領域を複数に分割してなる予め定められた容量の記憶単位であって、連続する記憶領域に含まれる予め定められた所定個数の前記記憶単位をまとめて一つのグループとして管理し、
前記受信した書き込みアクセス要求に対して書き込みデータを格納するための記憶領域の確保にあたり、一グループ内に含まれる空き状態の前記記憶単位の個数がアクセス性能の設定条件を満たしているグループを選択し、その際、前記アクセス性能の設定条件を満たしていれば、一グループ内での空き状態の前記記憶単位の分布が非連続であるグループも選択の対象とする記憶領域確保処理と、
前記書き込みアクセス要求により前記書き込みデータの格納先として指定されるアドレスと、前記選択されたグループに含まれる空き状態の少なくとも一つの前記記憶単位に割り当てられている、前記記憶媒体上でのアドレスと、の対応付けを行う割り当て処理と、
前記記憶領域確保処理で選択され、前記割り当て処理でアドレスの対応付けが行われた前記グループに含まれる前記空き状態の記憶単位に対して、順に、前記書き込みデータを書き込むアクセス実行処理と、
をストレージ装置を構成するコンピュータに実行させるプログラム。
【請求項１５】
前記記憶媒体で提供可能な記憶容量を、空き状態の記憶単位の個数が前記アクセス性能の設定条件を満たす数以上であるグループを、少なくとも一つ確保可能とする容量値に可変に設定し、
設定した前記記憶媒体で提供可能な容量値を、前記ホストに通知する提供容量決定処理を、前記コンピュータに実行させる請求項１４記載のプログラム。
【請求項１６】
前記アクセス受付処理として、前記ホストからのアクセスで指定される第１のアドレスと、前記記憶媒体における前記記憶単位ごとの第２のアドレスを相互に変換するアドレス変換処理と、
前記ホストからの前記記憶媒体へのアクセス要求を、前記記憶媒体上の記憶領域に割り当てられているアドレスを用いた前記記憶媒体へのアクセスコマンドに変換するアクセス要求変換処理と、
を前記コンピュータに実行させる請求項１４又は１５に記載のプログラム。
【請求項１７】
前記アクセス性能の条件として、
前記アクセス性能の下限、又は、
前記アクセス性能の下と上限、又は、
前記記憶媒体における未使用領域の割合の下限
を指定する性能要件指定処理を前記コンピュータに実行させる請求項１４乃至１６のいずれか１項に記載のプログラム。
【請求項１８】
前記記憶領域確保処理では、
前記記憶単位のグループに含まれる空き状態の記憶単位の個数を、書き込みアクセス性能が、前記アクセス性能の下限と上限の範囲内となるための数から求め、
前記書き込みアクセスのアクセス性能が前記下限以上となるための個数の空き状態の記憶単位を含む前記記憶単位のグループが存在しない場合、前記記憶媒体における前記記憶単位のグループの空き状態の記憶単位の数、及び、前記記憶媒体の性能から、前記ストレージ装置が維持可能なアクセス性能の下限の値を計算して前記性能要件指定処理に通知し、
前記性能要件指定処理では、アクセス性能の下限の設定値を、前記通知された下限の値に変更する、請求項１７記載のプログラム。
【請求項１９】
前記記憶媒体がハードディスクドライブを含み、
同一グループに含まれる連続した記憶領域の前記所定個数の記憶単位の合計の記憶容量を、前記ハードディスクドライブの１トラック相当の記憶容量又は該記憶容量に基づき算出された容量値に設定する処理を、前記コンピュータに実行させる請求項１４乃至１８のいずれか１項に記載のプログラム。
【請求項２０】
前記アクセス受付処理は、
前記ホストからの前記記憶媒体への前記アクセス要求を、前記記憶媒体の前記記憶単位に対するアクセスコマンドに変換し、前記アクセス実行部に前記コマンドの実行を指示するアクセス要求変換処理と、
前記ホストが前記ストレージ装置にアクセスする際に使用する論理アドレスと、前記論理アドレスに対応した前記記憶媒体上の記憶領域を指し示す物理アドレスとの対応関係を記録したアドレス変換テーブルを備えたアドレス変換処理と、
を含み、
前記アドレス変換処理は、
前記アクセス要求変換処理において、前記ホストからのアクセス要求を前記記憶媒体のアクセスコマンドに変換する際の、論理アドレスから物理アドレスへの変換を行い、前記割り当て処理からの論理アドレスに対応する記憶媒体上の領域を指し示す物理アドレスの変更要求を受け、前記アドレス変換テーブルを更新し、
前記アクセス実行処理は、前記アクセス要求変換処理によって、前記ホストによるアクセス要求から変換されたアクセスコマンドを前記記憶媒体に対して発行し、
前記記憶領域確保処理は、前記複数の連続した記憶単位からなるグループについて、前記グループ内の記憶単位の割り当て状況を管理し、前記割り当て処理が論理アドレスに対して割り当てる、前記記憶媒体上の記憶単位について記憶領域として使用する物理アドレスを決定し、
前記割り当て処理は、前記アクセス要求変換処理からの要求により、書き込みデータを格納するために使用する、前記記憶媒体上の記憶単位を、論理アドレスに対して割り当て、
前記ストレージ装置に対して指定された、書き込みアクセスにおいて維持すべき性能の下限と上限、又は、未使用領域の割合の下限を保持する性能要件指定処理をさらに備え、
前記提供容量決定処理は、前記性能要件指定処理によって指定された、前記ストレージ装置に対する書き込みアクセスの下限と上限、及び、記憶媒体の容量、アクセス性能に基づき、性能要件を満たす範囲で前記ストレージ装置が前記ホストに対して提供可能な容量を算出する、請求項１５記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２０１３−２４１９００号（２０１３年１１月２２日出願）に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明はストレージ装置、方法、プログラムに関する。
【背景技術】
【０００２】
情報通信技術の進化及び適用分野の拡大に伴い、情報処理システムが扱うデータ量は増加している。このため、各分野の情報処理システムにおいて、データを格納するストレージの大容量化、高性能化が求められている。【０００３】
ストレージ管理を効率化するために、例えば複数のシステムのデータを単一のストレージへ集約する手法が用いられている。この構成では、ストレージには、大量のデータの格納を可能とするための記憶容量と、複数システムからの大量のアクセスを高速に処理可能とするための高い性能が求められる。【０００４】
＜HDD＞
大容量化したHDD(Hard Disk Drive）を記憶媒体として用いることで記憶容量に対する要求の増大に対応可能である。さらにストレージを構成する記憶媒体の数の増加等により、記憶容量への要求に柔軟に対応が可能である。【０００５】
＜キャッシュ＞
ストレージのアクセス高速化のために、例えばキャッシュが用いられる。キャッシュは、例えばDRAM(Dynamic Random Access Memory）等で構成される。ストレージのキャッシュは、HDD等の記憶媒体に格納されたデータの複製又は更新を一時的に格納する。キャッシュにHDD等のデータを一時的に保持することで、ホスト側からストレージへのアクセスは、キャッシュでヒットした場合、HDD等の記憶媒体へのアクセス数が削減される。その結果、アクセス性能の向上を図ることができる。しかし、キャッシュの容量はHDD等の記憶媒体の容量に比べて小さい。このため、キャッシュの記憶容量を上回る容量のデータの読み出し（Read）や書き込み（Write）の場合、キャッシュによるアクセス性能の向上の効果は限定的である。【０００６】
＜ストライピング＞
HDD等の記憶媒体へのアクセス性能を向上させる手段として、例えばストライピング（striping）が用いられる。ストライピング（RAID 0（Redundant Arrays of Inexpensive Disks 0）ともいう）は、データを所定サイズに分割し分割データを複数のHDD（記憶媒体）に交互に分散して書き込み、読み出すことで高速化を図る。ストライピング（RAID 0）には２台以上のドライブ（HDD）が必要とされる。なお、ストライピング（RAID 0）には冗長性がない。例えば１台のドライブが故障しただけで、ディスクアレイ内の全データが失われる。このため、ストライピング（RAID 0）では、ディスクアレイ内のドライブ数を増加することで、アクセス性能の向上を図ることはできるが、ディスクアレイのドライブ数（HDDの数）の増加に伴い故障率も増加する。【０００７】
＜SSD＞
アクセス性能を向上させる手段として、高速な記憶媒体にデータを格納する方法が用いられる。例えばSSD（Solid State Drive）が高速な記憶媒体（storage device）としてストレージにおいて使用されている。SSDは、一般にフラッシュメモリ（一括消去型の書換可能な不揮発性メモリ）、特にNAND型フラッシュメモリによって構成される。SSDは、DRAMと比べアクセス性能は低いものの、HDDよりもアクセス性能は高速である。SSDは、HDDと比べて記憶容量は小さいものの、DRAMと比べて、大容量の記憶媒体の実現が可能である。なお、SSDは、HDDと比べて一般に高価であり、NAND型フラッシュメモリの特性等により、データの書き込み回数に制限を持つ。【０００８】
NAND型フラッシュメモリは、書き込み及び読み出しアクセスは、ページ単位（特に制限されないが、例えば４KB（Kilo Byte）程度）で行われる。このページサイズは、一般に、一括消去単位であるブロックサイズ（例えば２５６KB）よりも小さい。NAND型フラッシュメモリにおいて、データが書き込み済みのページやブロックに新たなデータを書き込むためには、当該書き込み済みのデータを含むブロックを、ブロック単位で一括消去する必要がある。【０００９】
記憶媒体としてSSDを含むストレージに対して、ホストからランダム書き込み等の書き込み要求が行われ、書き込み先のページに既に古いデータが書き込まれている場合には、以下のようにしてデータの書き込みが行われる。
・当該書き込み要求の論理アドレスの範囲に対応するブロック（例えば２５６KB＝６４ページ）から、前記書き込み要求による上書き対象以外の各ページ（例えば４KB）をDRAM等に読み込む。
・当該ブロックを消去する。
・前記書き込み要求による書き込みデータ（上書き対象のページ）と、前記DRAM等に読み込んだ上書き対象以外のページを、前記DRAM等の上で結合する。
・前記DRAM等の上で結合した後のデータを、前記DRAM等から、SSDの当該ブロック内にページ単位に書き戻す。
・SSDの当該ブロック内に書き込んだデータのページアドレス（物理アドレス）と、ホストからの当該データのアクセスに用いられる論理アドレスとの対応（アドレス管理情報）を更新する。【００１０】
このように、SSDでは、既にデータが書き込まれたページへの上書きが発生した場合に、一般に、ホストから書き込み要求のデータのサイズに比べて、書き込みが行われるサイズ及び読み出しが行われるサイズが大きくなる。すなわち、SSDへの例えば１ページ分（例えば４KB）のデータ書き込み要求に対して、SSDの対応するブロック（例えば２５６KB＝６４ページ）のうち上書き対象のページ以外のページ（例えば６３ページ）の読み出し、及び、１ブロック分のページ単位での書き戻しが行われる。またSSDでは、書き込み済みのページを更新する（書き込む）度に、
・SSDからのページ単位での上書き対象以外のページの読み出し、DRAM等への転送と書き込み、
・DRAM等上でのデータのマージ、
・SSDのブロック単位の消去、
・DRAM等からのデータ読み出しと転送、SSDへのページ単位の書き込み、
が行われる。このため、書き込みアクセスに要する処理時間が長くなり、ランダム書き込み性能は著しく低下する。【００１１】
＜追記方式：SSD＞
追記方式（追記書き込み方式）では、ホストからの書き込み要求で指定された論理アドレスとは無関係に、書き込み対象データを、例えばページの昇順に順次書き込む。ホストから書き込み要求（以前に書き込み先アドレスとして指定した論理アドレスを書き込み先アドレスとして指定した書き込み要求）が行われると、消去済みのブロックの未書き込みの新たなページに、書き込み対象データを書き込み、該論理アドレスに対応するページ（以前書き込みが行われた当該論理アドレスに対応するページ）を無効（invalid）にし、新たに書き込み対象データが書き込まれた新たなページを有効(valid)として、該新たなページを、該書き込み要求で指定された当該当該論理アドレスに対応付ける。【００１２】
追記方式として、上記したSSDへの適用例について説明する。追記方式では、無効にされたページが増えて飛び飛びに配置されると、書き込み可能な連続したページ（記憶領域）を十分に確保できなくなる状態となる（断片化：fragmentation）。このため、適当なタイミングで、コンパクション（ガベージコレクション(garbage-collection)、あるいはデフラグメント（de-fragment））を行う。コンパクションは、無効にされたページを含むブロックの中から、例えば無効にされていないページ（物理アドレス）に記憶されている有効データを集めて、フリーブロック（消去済みの未使用ブロック）にコピーして移動させた上で、元のブロックをブロック単位で消去することで新たなフリーブロックを生成する。図２２は、コンパクションを説明する説明図である。図２２（Ａ）に模式的に示した例では、物理ページアドレスAA+０からAA+63（１ページ＝４KB）の１ブロックに関して、無効（invalid）なページは、アドレスAA+2からの２ページ、アドレスAA+６からの４ページ、アドレスAA+12からの２ページ等であり、有効（valid）なデータa、ｃ、ｅを格納したページはそれぞれアドレスAA+0、AA+４、AA+10等の各ページである。図２２（Ｂ）に示すように、フリーブロック(先頭アドレスBB+0)に、図２２（Ａ）の有効なページAA+0、AA+４、AA+10等のデータａ、ｃ、ｅ等を順にコピーする。該コピー終了後、記憶媒体がSSDの場合には、図２２（Ａ）のブロックをブロック単位に一括消去することで、図２２（Ｃ）のフリーブロックが生成される（記憶媒体がHDDの場合、消去は不要であり、コピー終了後、図２２（Ａ）のブロックはフリーブロックとして管理される）。そして、論理アドレスを物理アドレスにマッピングするアドレス変換テーブルについて、例えば、
・データａの論理アドレスＬＡａに対応する物理アドレスを、元のアドレスAA+0から新ブロックのアドレスBB+0に更新し、
・データｃの論理アドレスＬＡｃに対応する物理アドレスを、元のアドレスAA+４からアドレスBB+２に更新し、
・データｅの論理アドレスＬＡｅに対応する物理アドレスを、元のアドレスAA+10からアドレスBB+４に更新する（図２２（Ｄ）参照）。特に制限されないが、論理アドレスによるアクセス指定の先頭アドレス（ベースアドレス）は、例えば物理アドレスと同様、ページバウンダリ（ページ境界：例えばページサイズが４KBの場合、４KB単位）とする。【００１３】
＜追記方式：HDD＞
上記は、主に記憶媒体（storage device）としてSSDを用いた場合の追記方式であるが、HDD等の追記方式として、例えば非特許文献１や非特許文献２等に記載されたLFS(Log-structured File System)がある。LFSでは、書き込みアクセスの高速化を、ディスクに対してシーケンシャルに、且つ、非同期にアクセスすることで、実現する。ファイル（データ）の変更（複数）を、ファイルキャッシュ（writeバッファ）に集め、これらを一緒に詰め込み（pack）、シーケンシャルな転送により、ディスクに書き込む（例えばディスクの最大バンド幅近くの転送速度でシーケンシャルに書き込む）。例えば修正されたファイルデータ、ディレクトリブロック、inodeブロック（UNIX（登録商標）系のファイルシステムのデータ構造：ファイル、ディレクトリなどのファイルシステム上のオブジェクトに関する情報が格納される）のようなファイルシステム・メタデータは、一緒に詰め込まれ、シーケンシャルにディスクに書き込まれる。LFSでは、データは、追加のみのlog形式にて、ファイルシステムに、追加（add）される。【００１４】
追記書き込み方式は、ランダム書き込み性能のみに着目して性能向上を図る。HDDは、連続アクセス性能に比べて低いランダムアクセス性能を有する。なお、連続アクセスは、物理的に情報を順番にアクセスするもので、シーケンシャルアクセス（順アクセス）ともいう。ランダムアクセスは、物理的に順アクセスを必要としないことで特徴付けられる。【００１５】
書き込み要求で指定されるアドレスが固定的なもの（例えば論理アドレスに対する記憶媒体での物理アドレスの対応関係が固定）である場合、記憶媒体内の非連続な記憶領域に対する書き込みによって、低速なランダム書き込みが発生する。【００１６】
追記書き込み方式では、記憶媒体に格納するデータの格納先のアドレス（例えば物理ページアドレス）を動的に変更する。書き込み要求で指定された論理アドレスに書き込みデータを書き込む場合、書き込みデータを書き込んだ空き領域のアドレス（例えば物理アドレス）を、書き込み要求で指定された論理アドレスに対応付ける。そして、空き領域に書き込みデータを連続的に格納することで、低速なランダム書き込みの発生を抑える。【００１７】
追記書き込み方式は、HDD等において性能上不利なランダム書き込みを、性能上有利な連続書き込みに置き換えることができる。このため、追記用の領域を記憶媒体上に確保可能である限り、例えばキャッシュのような容量の制約（キャッシュの記憶容量を上回る容量のデータの読み出し（Read）や書き込み（Write）に対して、キャッシュによる性能向上の効果は制限される）を受けない。【００１８】
追記書き込み方式は、上記したように、低速なランダム書き込みアクセスを、追記書き込み先の連続空き領域への連続書き込みアクセスに置き換えることで、アクセス性能の向上を図るものである。すなわち、追記書き込み方式では、追記用に確保された記憶容量分、ランダム書き込みアクセスに対応可能であるが、ランダム書き込みアクセスの頻度を削減する（順アクセスを増加してアクセス性能を向上する）には、追記書き込み先として、大きな連続空き領域の確保が必要とされる。【００１９】
追記書き込み方式では、HDD等の記憶媒体に書き込まれたデータに対して、更新を行う場合に、被更新データ（古いデータ）を格納している記憶領域に、更新データを上書きせずに、当該更新データは、新たな記憶領域（空き領域）に書き込まれる。更新前の古いデータ（被更新データ）を格納していた記憶領域は、無効化され、新たにデータを格納するための記憶領域（未使用領域）となる。一方、更新されていないデータを格納した記憶領域は、有効（valid）な状態で残り続ける。このため、データの更新が続くと、空き領域（新たなデータを格納可能な未使用領域）の断片化（fragmentation）が生じる。空き領域の断片化（連続空き領域の減少）によって、追記書き込みにおける、ランダム書き込みの頻度が増加する。その結果、ストレージのアクセス性能が低下する。このため、空き領域の断片化の解消(デフラグメント(de-fragment)、ガベージコレクション(garbage-collection)、LFSでは、セグメントクリーニング(segment-cleaning))が行われる。前述したように、空き領域の断片化の解消(デフラグメント)では、例えば記憶媒体に格納された有効なデータを読み出して記憶媒体内の別の領域に再格納（コピー）して移動した上で、連続した空き領域を増大させる。デフラグメントは、記憶媒体に対する読み出しアクセスおよび書き込みアクセスを伴うため、一般のアクセス（システム側で行われるデフラグメントに関係しないデータのアクセス）に対して、アクセス性能の低下を引き起こす。一般のアクセス性能の低下を回避するため、デフラグメントは、例えば、
・記憶媒体へのアクセスが行われない時や、
・低負荷の状態
で行われる。【００２０】
例えば、ストレージに対して継続的に書き込みアクセスが行われている最中に、低負荷の状況は発生しない。継続的に書き込みアクセスが行われている最中に、デフラグメントを行うと、書き込みアクセスの性能は著しく低下する。このため、書き込みアクセスが継続的に行われている場合には、デフラグメントは行われない。しかし、デフラグメントを行わないことから、空き領域の断片化の発生により、十分な連続空き領域の確保等が困難となり、飛び飛びの空き領域にデータを格納することになり、継続的な書き込みアクセスのアクセス性能は著しく低下することになる。【００２１】
なお、特許文献１には、ガベージコレクションを行わないで、データを書き込むときのIOPS（IO/per second：1秒あたりに処理できるアクセス回数）性能を向上させる構成として、ホストからの第１データを、記録媒体を構成するブロックBlock１〜３のうちBlock３のページに書き込むステップと、不使用ページに基づいて選択されたBlock１のページに記録された第２データをバッファに書き込むステップと、Block１のページに記録されたデータを消去するステップと、その第２データをBlock１のページに再度書き込むステップとを備え、その不使用ページは、データが書き込まれていないページ、または、他のページに書き込まれたデータが書き込まれているページを示しており、ガベージコレクションを行わないで、ブロックに記録されたデータを消去する回数を低減することができるようにした方法が開示されている。【００２２】
特許文献２には、仮想ボリュームに対して少なくとも１台のストレージ装置の空き記憶領域を割り当てる技術において、フラグメンテーション（断片化）を回避し、記憶領域の使用効率を向上させる実領域割当を行う構成として、仮想化スイッチは、管理コンソールから指定された要求サイズに対して残りサイズが指定された領域サイズ上限値未満となるまで空きの記憶領域から記憶領域を切り出して割り当て、残りサイズが領域サイズ上限値未満となったとき、この残りサイズについて残りサイズ以上の最小の２のベキ乗数のサイズの記憶領域を空きの記憶領域から切り出して割り当て、また仮想化スイッチは、空きの記憶領域が複数の連続空き領域から成るとき、最大サイズをもつ連続空き領域を割当対象として選択する構成が開示されている。この特許文献２では、フラグメンテーションができるだけ発生しないように、大きな連続空き領域を選択している。
【先行技術文献】
【特許文献】
【００２３】
【特許文献１】特開２０１０−２３７９０７号公報
【特許文献２】特開２００４−１６４３７０号公報
【非特許文献】
【００２４】
【非特許文献１】Rosenblum, Mendeland, Ousterhout, John K. (June 1990)-"The LFS Storage Manager", Proceedings of the 1990 Summer Usenix, pp 315-324.
【非特許文献２】Rosenblum, Mendeland, Ousterhout, John K. (February 1992)-"The Design and Implementation of a Log-Structured File System", ACM Transactions on Computer Systems, Vol.10 Issue1, Pp 26-52.
【発明の開示】
【発明が解決しようとする課題】
【００２５】
以下に関連技術の分析を与える。【００２６】
追記書き込み方式は、追記書き込み先として大きな連続空き領域が必要とされる。空き領域の断片化を解消するために、デフラグメント（ガベージコレクション、コンパクション）が行われる。しかしながら、デフラグメント処理は、アクセス性能の低下を招く。【００２７】
デフラグメントによらず、空き領域の断片化を解消することは困難である。このため、空き領域の断片化による影響を回避又は軽減して書き込みアクセスの性能を維持できるようにする機構の実現が望まれる（本願発明者の知見）。【００２８】
上記特許文献１は、空き領域の断片化による影響を受けずに書き込みアクセスの性能を維持するための手段を具備していない。【００２９】
また、上記特許文献２は、空き領域の断片化自体を回避するための技術に関するものである。上記特許文献２では、空き領域の断片化を前提として、該断片化による影響を受けずにランダム書き込みアクセスの性能を維持する、という課題の認識自体を欠いている。【００３０】
本発明は、上記課題を解決するために創案されたものであって、その目的は、空き領域の断片化を解消する処理負荷によるストレージのアクセス性能の低下を抑制し、少なくとも書き込みアクセス性能を保証する装置、方法、プログラムを提供することにある。
【課題を解決するための手段】
【００３１】
本発明の関連するいくつかの側面の１つによれば（視点１）、データを格納する少なくとも１つの記憶媒体と、
ホストからの前記記憶媒体へのアクセス要求として少なくとも書き込みアクセス要求を受信するアクセス受付部と、
前記記憶媒体の記憶領域を複数に分割してなる予め定められた容量の記憶単位であって、連続する予め定められた所定個数の前記記憶単位をまとめて一つのグループとして管理し、
前記受信した書き込みアクセス要求による書き込みデータを格納するための記憶領域の確保にあたり、一グループ内に含まれる空き状態の前記記憶単位の個数が、指定されたアクセス性能の設定条件を満たしているグループを選択し、前記グループの選択にあたり、一グループ内での空き状態の前記記憶単位の分布が非連続であるグループも、前記アクセス性能の設定条件を満たしていれば、前記選択の対象する記憶領域確保部と、
前記書き込みアクセス要求により前記書き込みデータの格納先として指定されるアドレスと、前記選択されたグループに含まれる空き状態の少なくとも一つの前記記憶単位に割り当てられている、前記記憶媒体上でのアドレスと、の対応付けを行う割り当て部と、
前記記憶領域確保部で選択され、且つ、前記割り当て部でアドレスの対応付けが行われた前記グループに含まれる前記空き状態の記憶単位に対して、順に、前記書き込みデータを書き込むアクセス実行部と、を備えたストレージ装置が提供される。【００３２】
別の側面の１つによれば（視点２）、
記憶媒体の記憶領域を複数に分割してなる予め定められた容量の記憶単位であって、連続する予め定められた所定個数の記憶単位をまとめて一グループとして管理し、
ホストから受信した前記記憶媒体への書き込みアクセス要求に対して書き込みデータを格納するための記憶領域の確保にあたり、一グループ内に含まれる空き状態の前記記憶単位の個数が、指定されたアクセス性能の設定条件を満たしているグループを選択し、その際、前記アクセス性能の設定条件を満たしていれば、一グループ内での空き状態の前記記憶単位の分布が非連続であるグループも前記選択の対象とし、
前記書き込みアクセス要求により前記書き込みデータの格納先として指定されるアドレスと、前記選択されたグループに含まれる空き状態の少なくとも一つの前記記憶単位に割り当てられている、前記記憶媒体上でのアドレスと、の対応付けを行い、
前記選択され前記アドレスの対応付けが行われた前記グループに含まれる前記空き状態の記憶単位に対して、順に、前記書き込みデータを書き込む、ストレージのアクセス制御方法が提供される。【００３３】
さらに別の側面の１つによれば（視点３）、データを格納する少なくとも１つの記憶媒体に対するホストからのアクセス要求として少なくとも書き込みアクセス要求を受信するアクセス受付処理と、
前記記憶媒体の記憶領域を複数に分割してなる予め定められた容量の記憶単位であって、連続する記憶領域に含まれる予め定められた所定個数の前記記憶単位を、まとめて一つのグループとして管理し、
前記受信した書き込みアクセス要求に対して書き込みデータを格納するための記憶領域の確保にあたり、一グループ内に含まれる空き状態の前記記憶単位の個数がアクセス性能の設定条件を満たしているグループを選択し、
その際、前記アクセス性能の設定条件を満たしていれば、一グループ内での空き状態の前記記憶単位の分布が非連続であるグループも前記選択の対象とする記憶領域確保処理と、
前記書き込みアクセス要求により前記書き込みデータの格納先として指定されるアドレスと、前記選択されたグループに含まれる空き状態の少なくとも一つの前記記憶単位に割り当てられている、前記記憶媒体上でのアドレスと、の対応付けを行う割り当て処理と、
前記記憶領域確保処理で選択され、前記割り当て処理でアドレスの対応付けが行われた前記グループに含まれる前記空き状態の記憶単位に対して、順に、前記書き込みデータを書き込むアクセス実行処理と、ストレージ装置を構成するコンピュータに実行させるプログラムが提供される。本発明によれば、該プログラムを記録したコンピュータ読み出し可能な、半導体メモリ、あるいは磁気／光ディスク等の記録媒体が提供される。
【発明の効果】
【００３４】
本発明によれば、空き領域の断片化を解消する処理負荷によるストレージのアクセス性能の低下を抑制し、少なくとも書き込みアクセス性能を保証することを可能としている。
【図面の簡単な説明】
【００３５】
【図１】本発明の一実施形態のシステム全体の構成の一例を例示する図である。
【図２】本発明の一実施形態のストレージの構成の一例を例示する図である。
【図３】本発明の一実施形態におけるアクセス要求テーブルの一例を模式的に示す図である。
【図４】本発明の一実施形態におけるアドレス変換テーブルの一例を模式的に示す図である。
【図５】本発明の一実施形態におけるコマンドテーブルの一例を模式的に例示する図である。
【図６】本発明の一実施形態におけるページグループテーブルの一例を模式的に例示する図である。
【図７】本発明の一実施形態における性能要件テーブルの一例を模式的に例示する図である。
【図８】本発明の一実施形態においてストレージがホストからの読み出し要求を処理する動作の一例を説明するためのフローチャートである。
【図９】本発明の一実施形態において、ストレージがホストからの書き込み要求を処理する動作の一例を説明するためのフローチャートである。
【図１０】本発明の一実施形態において、書き込みデータの格納先に対する記憶媒体上のページ割り当て動作の一例を説明するためのフローチャートである。
【図１１】本発明の第１の実施例におけるアクセス要求テーブルの一例を模式的に例示する図である。
【図１２】本発明の第１の実施例におけるアドレス変換テーブルの一例を模式的に例示する図である。
【図１３】本発明の第１の実施例におけるコマンドテーブルの一例を模式的に例示する図である。
【図１４】本発明の第１の実施例におけるページグループテーブルの一例を模式的に例示する図である。
【図１５】本発明の第１の実施例における性能要件テーブルの一例を模式的に例示する図である。
【図１６】本発明の第２の実施例におけるアクセス要求テーブルの一例を模式的に例示する図である。
【図１７】本発明の第２の実施例におけるアドレス変換テーブルの一例を模式的に例示する図である。
【図１８】本発明の第２の実施例におけるコマンドテーブルの一例を模式的に例示する図である。
【図１９】本発明の第２の実施例におけるページグループテーブルの一例を模式的に例示する図である。
【図２０】本発明の第２の実施例における性能要件テーブルの一例を模式的に例示する図である。
【図２１】本発明の基本構成を説明するための模式図である。
【図２２】追記型のストレージでのコンパクション（ガベージコレクション）の一例を模式的に説明するための模式図である。
【発明を実施するための形態】
【００３６】
本発明のいくつかの好ましい形態について説明する。本発明のいくつかの形態のストレージ装置は、図２１を参照すると、データを格納する少なくとも１つの記憶媒体（２０５）と、ホストからの前記記憶媒体へのアクセス要求を受け付けるアクセス受付部（２０１）と、前記記憶媒体の記憶領域を複数に分割した記憶単位（予め定められた記憶容量）であって、連続する予め定められた所定個数の記憶単位をまとめて一つのグループとして管理し、前記ホストからの書き込みアクセス要求による書き込み対象のデータを格納するための記憶領域の確保にあたり、グループを選択し、その際、一グループに含まれる空き状態の記憶単位の個数がアクセス性能の設定条件を満たしているグループを選択する記憶領域確保部（２０４）と、を備えている。前記記憶領域確保部（２０４）は、好ましくは、前記グループの選択にあたり、一グループ内の空き状態の前記記憶単位の分布状況が、連続（隣接）していず、非連続（例えば飛び飛びに分布）であるグループも、前記アクセス性能の設定条件を満たしている場合には、選択の対象とする。
好ましい形態において、さらに、前記ホストからの前記書き込みアクセス要求により前記書き込みデータの格納先として指定されるアドレス（前記ホスト側で参照するアクセスアドレス：論理アドレス）と、前記選択されたグループに含まれる空き状態の少なくとも一つの前記記憶単位（例えばグループ内の先頭に配置された空き状態の記憶単位）に前記記憶媒体で割り当てられているアドレス（物理アドレス）との対応付けを行う割り当て部（２０３）と、前記記憶領域確保部（２０４）で選択され、且つ、前記割り当て部（２０３）でアドレスの対応付け（論理アドレスと物理アドレスの対応付け）が行われた前記グループに含まれる前記空き状態の記憶単位に対して、順に、前記書き込みデータを書き込むアクセス実行部（２０２）と、を備えている。
【００３７】
本発明のいくつかの好ましい形態において、前記記憶領域確保部（２０４）は、グループ単位に管理する前記グループとして、一クループ内での空き状態の記憶単位の分布が非連続であるグループも管理対象とする。
【００３８】
本発明のいくつかの好ましい形態において、図２を参照すると、前記記憶媒体で提供可能な記憶容量を、空き状態の記憶単位の個数が前記アクセス性能の設定条件を満たす数以上であるグループを、少なくとも一つ確保可能とする容量値に可変に設定し、設定した前記記憶媒体で提供可能な容量値を、前記ホストに通知する提供容量決定部（２８）を備えている。
【００３９】
本発明のいくつかの好ましい形態において、図２を参照すると、前記アクセス受付部（２０１）は、前記ホストからの前記アクセス要求で指定されるアドレス（論理アドレス）と、前記記憶媒体内の記憶領域に割り当てられているアドレス（物理アドレス：物理ページアドレス）と、を相互に変換するアドレス変換部（２３）と、前記ホストからの前記記憶媒体への前記アクセス要求を、前記記憶媒体内で前記記憶領域に割り当てられているアドレス）を用いた前記記憶媒体へのアクセスコマンドに変換するアクセス要求変換部（２２）と、を含む。
【００４０】
本発明のいくつかの好ましい形態において、図２を参照すると、前記アクセス性能の条件として、少なくとも前記アクセス性能の下限を指定する性能要件指定部（２７）を備えている。あるいは、性能要件指定部（２７）は、前記アクセス性能の条件として、前記記憶媒体における未使用領域の割合の下限を指定するようにしてもよい。
【００４１】
本発明のいくつかの好ましい形態において、図２を参照すると、前記アクセス受付部（２０１）は、前記ホストからのアクセス要求を受け取り、アドレス空間内の前記記憶単位（例えばページ単位）のアクセスコマンドに変換し、前記アクセス実行部（２４）に対して、前記アクセスコマンドの実行を指示するアクセス要求変換部（２２）と、前記ホストが前記ストレージ装置にアクセスする際に使用する論理アドレスと、前記論理アドレスに対応した前記記憶媒体（２１）上の記憶領域を指し示す物理アドレスとの対応関係を記録したアドレス変換テーブルを備えたアドレス変換部（２３）と、を備えている。HDD等の記憶媒体において、単体又は物理アドレスの連続した複数のセクタをページと定義するようにしてもよい。
【００４２】
前記アクセス要求変換部（２２）において、前記ホストからのアクセス要求を前記記憶媒体のアクセスコマンドに変換する際の、論理アドレスから物理アドレスへの変換を行い、前記割り当て部（２６）からの、書き込みデータの格納に伴う、論理アドレスに対応する記憶媒体上の領域を指し示す物理アドレスの変更要求を受け、前記アドレス変換テーブルを更新する。
前記アクセス実行部（２４）は、前記アクセス要求変換部（２２）によって、前記ホストによるアクセス要求から変換されたアクセスコマンドを前記記憶媒体（２１）に対して発行する。
前記記憶領域確保部（２５）は、前記複数の連続した記憶単位からなるグループについて、前記グループ内の記憶単位（ページ）の割り当て状況を管理するテーブル（２５１）を備え、前記割り当て部（２６）が論理アドレスに対して割り当てる、前記記憶媒体上の記憶単位について、記憶領域として使用する物理アドレスを決定する。
前記割り当て部（２６）は、前記アクセス要求変換部（２２）からの要求により、書き込みデータを格納するために使用する、前記記憶媒体上の記憶単位を、論理アドレスに対して割り当てる。
性能要件指定部（２７）は、前記ストレージ装置（２）に対して指定された、書き込みアクセスにおいて維持すべき性能の下限と上限、又は、未使用領域の割合の下限を記憶部に保持する。
前記提供容量決定部（２８）は、前記性能要件指定部（２７）によって指定された、前記ストレージ装置に対する書き込みアクセスの性能下限と、性能上限、及び、記憶媒体の容量、アクセス性能に基づき、性能要件を満たす範囲で、前記ストレージ装置が前記ホストに対して提供可能な容量を算出する。
【００４３】
本発明のいくつかの好ましい形態において、前記記憶領域確保部（２５）は、前記記憶単位のグループに含まれる空き状態の記憶単位の個数を、書き込みアクセス性能が、前記アクセス性能の下限と上限の範囲内となるための数から求める。
前記記憶領域確保部（２５）は、前記書き込みアクセスのアクセス性能の前記下限を確保するための（下限以上となるための）個数の空き状態の記憶単位を含む前記記憶単位のグループが存在しない場合、前記記憶媒体における前記記憶単位のグループの空き状態の記憶単位の数、及び、前記記憶媒体の性能から、前記ストレージ装置が維持可能なアクセス性能の下限の値を求め、前記記憶領域確保部（２５）は、前記性能要件指定部（２７）に通知し、前記性能要件指定部（２７）では、アクセス性能の下限の設定値を変更するようにしてもよい。
【００４４】
本発明のいくつかの好ましい形態において、前記記憶媒体（２１）がハードディスクドライブ（HDD）を含み、同一グループに含まれる連続した記憶領域の前記所定個数の記憶単位の合計の記憶容量を、前記ハードディスクドライブ（HDD）の１トラック相当の記憶容量又は該記憶容量に基づき算出された容量値に設定してもよい。なお、HDDにおいてセクタ（１セクタ（１ブロック）は例えば512Byte）の数は、内周部よりのトラックではより少なく、外周部よりのトラックではより多くなっているが、例えば最小（あるいは平均値）の記憶容量を、前記記憶単位のグループ（「ページグループ」ともいう）のトータル容量としてもよい（記憶単位の個数＝前記記憶単位のグループの容量／記憶単位の容量）。
【００４５】
追記書き込み方式のストレージへの本発明の適用例を説明する。
・ホストからの書き込み(Write)データはストレージの空き領域に追記される。
・記憶空間内で未使用領域（空きページ）の割合が、予め定められた所定値以上となる、連続した記憶領域の記憶単位（ページ）を含み、非連続も含み得る記憶単位グループを選択して確保し、該記憶単位グループの空き状態の記憶単位に対して、そのアドレス順（物理アドレスの順）に、書き込みデータ（更新データ）を、逐次的（シーケンシャル）に追記する（ホスト側からの書き込み要求の論理アドレスによらずに、空き状態の記憶単位に順に書き込む）。かかる構成により、シーケンシャルアクセス性能に比べてランダムアクセス性能が低い記憶媒体を用いるストレージにおいて、所定のランダム書き込みアクセス性能を保証する。
【００４６】
ストレージを構成する記憶媒体が提供する記憶領域を、予め定められた所定容量の記憶単位（以下、「ページ」という）に分割し、該ページを、前記記憶媒体に対する読み出し（Read）アクセスの、書き込み（Write）アクセスの単位とする。ストレージの記憶領域のアドレス空間（論理アドレス空間）に対して、ストレージの記憶媒体の物理的な記憶領域をページ単位（物理ページ）で割り当てる。
【００４７】
ストレージのアドレス空間（論理アドレス空間）に対して割り当てられる記憶媒体の物理的なページは、ライトアクセス毎に変化する。すなわち、論理アドレスと物理ページアドレスの対応は動的に変更される。例えばストレージにおける物理的な総ページ数は、論理アドレス空間における総ページ数（論理アドレス空間をページサイズで除算した商（整数値））よりも多く設定される。
【００４８】
本発明によれば、書き込みアクセスにおいて、書き込みデータを格納する記憶領域（ページ）として、通常の追記書き込み方式とは相違して、記憶媒体上のアドレス（ページアドレス）が必ずしも連続していないページを割り当てるようにしてもよい。
【００４９】
このように、追記書き込みにおいて、非連続なページの割り当てを許容することで、空きページの非連続化（断片化）に伴うデフラグメント処理の必要性をなくしている。
【００５０】
一方、例えばHDDのような記憶媒体上の非連続なページに対する書き込みアクセス（非連続書き込みアクセス）を行った場合には、連続ページに対する書き込みアクセス（連続書き込みアクセス）と比べて、アクセス性能が低下する。
【００５１】
そこで、本発明においては、書き込みデータの格納先として、割り当てる記憶媒体上のページを、予め定められた所定（一定）のアドレスの範囲内に制限して選択する（連続アドレスの複数ページからなるページグループの選択）ことで、記憶媒体に対してランダム書き込み（非連続なページに対する書き込みアクセス）を行うことによるアクセス性能の低下の幅を削減する（アクセス性能の落ち込みを軽減している）。
【００５２】
よく知られているように、一般的なHDDでは、内部で回転を続ける円盤に「トラック」と呼ばれる記憶領域が同心円状に格納されている。トラック上に「セクタ」と呼ばれる更に細かな記憶領域が順番に格納されている。HDDではディスク（円盤）上のアクセス対象の先頭アドレスに対応するセクタの直上に磁気ヘッドを移動させた（位置決めした）上で、読み出し（Read）、書き込み（Write）アクセスを行う。HDD上の目的とするデータへのアクセスは、よく知られているように、
・アクセスアームを動かし目的のデータが格納されたトラックまで磁気ヘッドを移動する（「シーク」という）、
・トラックの位置決めが完了してから磁気ヘッドに目的のセクタが現れるまでのディスクの回転を待つ（「回転待ち」という）、
・Read/書き込みデータを転送する、
の順に行われる。
【００５３】
また、よく知られているように、HDDに対するランダムアクセスに要する時間の多くは、シークと回転待ちの２種類の動作で占められており、シークと回転待ちの動作に要する時間を短縮することで、ランダムアクセス時間を短縮することができる。
【００５４】
また、よく知られているように、一般的なHDDでは、トラック上にアドレス空間における連続した記憶領域のデータが格納され、隣接したトラックは、順番に、アドレス空間上に対応付けられている。実施形態では、HDD上の記憶領域を管理するための単位（記憶単位）を設けている。本明細書では、HDD上において、単体又は物理アドレスの連続した複数のセクタをページと定義し、これを記憶単位とする（特に制限されないが、セクタのサイズが５１２バイトの場合、１ページのサイズ（ページサイズ）は例えば４Kバイト＝８セクタとしてもよい）。
アドレスの近いページほど互いに近いトラック上に存在する。このため、アクセス対象のページが非連続なアクセス（ページ同志が隣接していないアクセス）を行う場合に、前後のアクセス間のアドレスが近いほど、シーク時間は短縮される。
【００５５】
よく知られているように、アクセス対象の順番にアクセスされる非連続な２つのセクタが同一トラック内に存在する場合、アクセスの際にシークは発生せず、アクセス時間の多くは回転待ち時間となる。
【００５６】
さらに、よく知られているように、各トラックには、回転方向に、順番にデータが格納される。このため、同一トラック上のページでは、アドレスが近いほど、回転待ち時間が小さい。
【００５７】
以上から、書き込みデータの格納先となるページのアドレス範囲を制限することで、ランダム書き込みアクセスに伴うアクセス時間の増大を抑制し、ランダム書き込みアクセスにおける、連続書き込みアクセスと比べた場合のアクセス性能の低下の幅を削減する。
【００５８】
なお、書き込みデータの格納先となるページのアドレス範囲を制限することによって得られるランダム書き込みアクセスのアクセス時間の削減効果は、制限されたアドレス範囲内に存在する、書き込みデータを格納可能なページ数に比例する。制限されたアドレスの範囲内に存在する書き込みデータを格納可能なページ数が多いほど、ランダム書き込みアクセスのアクセス時間の削減効果は大きい。
【００５９】
また、ランダム書き込みアクセスにおいて、一定のアクセス性能を保証するためには、常に、アクセス時間の削減効果を得る必要がある。そこで、本発明によれば、書き込みデータの格納先に使用するページを、記憶媒体上の空きページが、予め定められた所定数（一定数）以上存在する領域（ページグループ）から、選択する。これにより、所定のランダム書き込みアクセス性能を維持する。
【００６０】
記憶媒体に対するアクセス性能（書き込みアクセス性能）は、記憶媒体の性能以外（例えばデータ転送速度等）にも、例えば、
・記憶媒体の物理ページ数（記憶容量）や、
・記憶媒体に対して、ストレージのアドレス空間（論理アドレス空間）に割り当てられるページ数
等にも依存する。
【００６１】
一例として、記憶媒体の記憶容量の半分を、ストレージのアドレス空間に割り当てた場合、記憶媒体上の物理ページの総数の半分が、書き込みデータの格納先として割り当てが可能なページとなる。この場合、書き込みアクセスで、あるアドレス範囲を指定した場合に、当該アドレス範囲内の半数以上のページが、書き込みデータの格納先の空きページとして記憶媒体上に常に存在する、ことを意味する。
【００６２】
また、ランダムアクセス性能（アクセス対象のページのアドレスが非連続なアクセスの性能）が連続アクセス性能（例えばアクセス対象のページのアドレスが連続なアクセスの性能）に比べて低いHDD等の記憶媒体において、アクセス対象となるページ間のアドレスの間隔が相対的に小さい場合、各ページに対するアクセス時間は、当該ページを含めた連続的な記憶領域に対してアクセスを行った場合とほぼ同等である、といえる。
【００６３】
HDDにおいて、同一トラック上の複数のページに対してアドレスの順番に書き込みアクセスを行うとき、各ページのアクセス時間には、シーク時間は含まれず、回転待ち時間とデータ転送時間の和である。
【００６４】
同一トラック上のデータに対して連続的にアクセスを行った場合、アクセスに要する時間は、アクセスを開始したセクタから、アクセスを終了したセクタまで磁気ヘッドが回転する時間に等しい。すなわち、書き込みデータの格納先のページが非連続であっても、アクセス間（例えば今回のアクセスと次のアクセスの間）のアドレス（物理ページアドレス）の間隔が小さければ、連続したページに書き込みアクセスを行った場合とほぼ同等のアクセス時間で済むことになる。  
【００６５】
したがって、記憶媒体の容量の半分をストレージのアドレス空間に割り当てた例では、予め定められた所定（一定）のアドレスの範囲内に含まれる、非連続なページへの書き込みアクセスについて、前記所定のアドレスの範囲において、連続なページへの書き込みアクセスを行った場合の半分の性能を維持することが可能である、といえる。
【００６６】
本発明によれば、上記のようにして、追記方式の書き込みで、デフラグメント処理を行わない状況下においても、ランダム書き込みアクセス性能の維持を実現可能としている。
【００６７】
本発明に係るストレージの好ましい形態によれば、データを格納する記憶媒体と、
ストレージに対するアクセス要求を前記記憶媒体への所定のサイズ（ページ）単位のアクセスに変換する装置（ユニット：機能）と、
ストレージのアドレス空間（論理アドレス空間）と、前記記憶媒体のページ毎のアドレス（物理ページアドレス）を相互に変換する装置（ユニット：機能）と、
記憶媒体に対するページ毎のアクセス処理を実行する装置（ユニット：機能）と、
書き込みデータの格納先ページの記憶媒体上の物理的領域を決定する装置（ユニット：機能）と、
ストレージのアドレス空間に対して前記記憶媒体上の物理的領域から、ページを割り当てる装置（ユニット：機能）と、
ストレージに対する書き込みアクセスの性能上限及び性能下限を指定する装置（ユニット：機能）と、
ストレージが提供可能な容量を決定する装置（ユニット：機能）と、
を備える。
【００６８】
具体的には、ストレージのデータ（全データ）を格納する記憶媒体として、例えばHDDが用いられる。いくつかの形態において、記憶媒体は単一構成、または複数から構成される。
【００６９】
ストレージに対するアクセス要求を、前記記憶媒体へのページ単位のアクセスに変換する装置（アクセス要求変換部）は、ストレージ外部のホスト等からの読み出しアクセス要求、書き込みアクセス要求を、アクセス先アドレスとアクセス長（データサイズ）を基に、ページ毎のアクセスに分割する。
【００７０】
アクセス要求の処理は、分割後の各ページに対する読み出しアクセス、書き込みアクセスが全て完了した時点で完了となる。
【００７１】
ストレージのアドレス空間と、記憶媒体のページ毎のアドレスと、を相互に変換する機能（アドレス変換部）は、ストレージの外部から、データを読み出し（Read）、書き込み（Write）する際に使用するアドレス（論理アドレス）と、ストレージの記憶媒体に格納されたデータにアクセスするためのアドレス（物理アドレス）の対応関係を記録し、相互に変換する。前記アドレスの対応関係は、ページ割り当て機能（ページ割り当て部）により、記憶媒体上の物理アドレス（ページ）が論理アドレス空間に割り当てられる毎に、更新される。
【００７２】
記憶媒体に対するページ毎のアクセス処理を実行する装置（ユニット：機能）（アクセス実行部）は、前記アクセス要求変換機能（アクセス要求変換部）により分割されたページ毎のアクセス処理を記憶媒体に対して実行する。
【００７３】
書き込みデータの格納先のページの記憶媒体上の物理的領域を決定する機能（ユニット、装置）は、記憶媒体上のページの使用状況を監視し、ストレージのアドレス空間に割り当てられていないページ（空きページ）の分布が、性能要件指定機能（性能要件指定部）によって書き込みアクセスに関する性能上限、及び性能下限を満たすことができる、連続した一定数（予め定められた所定数）のページからなる領域（「ページグループ」あるいは「ＰＧ」と定義する）を発見し、ページを割り当てるユニット（機能）が、アドレス空間に割り当てる記憶媒体上の物理的な領域として確保する。
【００７４】
ストレージのアドレス空間に対して、前記記憶媒体上の物理的領域からページを割り当てるユニット（ページ割り当て部）は、前記記憶領域確保機能によって確保されたページグループ（ＰＧ）に含まれる記憶媒体上のページを、ストレージへの書き込み要求によりデータが格納される論理アドレスに対して割り当てる。
【００７５】
ページ割り当てユニット（機能）は、前記ページグループ（ＰＧ）の空きページを、論理アドレス空間に、順番に割り当てる。ページ割り当てユニット（機能）は、空きページが不足すると、前記記憶領域確保機能に対して、割り当てる物理的ページを含むページグループ（ＰＧ）を確保するように、要求する。
【００７６】
ストレージに対する書き込みアクセスの性能上限及び性能下限を指定する装置（ユニット：機能）（性能要件指定部）は、ストレージに対して、書き込みアクセスにおける性能の下限（最小性能）と、性能の上限（最大性能）を指定する。
【００７７】
前記性能の指定は、ストレージの外部からの指示以外に、ストレージ内部からの制約に基づき、性能の下限または上限を変更する。また、性能要件指定機能は、書き込みアクセスの性能下限と、性能上限についての問い合わせに対して応答する。
【００７８】
ストレージが提供可能な容量を決定するユニット（提供容量決定部）は、前記性能要件指定部によって指定された、ストレージの書き込みアクセスに関する性能下限と性能上限、及び、記憶媒体の容量とアクセス性能に基づき、条件を満たす範囲で、ストレージとして外部に提供可能な容量を算出する。
【００７９】
＜特許文献１との対比＞
上記特許文献１では、フラッシュメモリで構成された記憶媒体において、書き込み要求をフラッシュメモリに対する一定のアクセス単位に分割し、フラッシュメモリの消去単位である単一のブロックに対して連続的に書き込み（Write）を行うように、追記的に書き込みを行う。また、書き込み（Write）先として、空き領域が内部に多いブロックを選択する。書き込みデータを追記的に書き込めるように、書き込み（Write）が発生する毎に、フラッシュメモリの物理的なアドレスと、ストレージの論理的なアドレスの対応関係を更新する機能を持つ。
【００８０】
特許文献１は、アクセス要求変換機能、アドレス変換機能、アクセス実行機能、ページ割り当て機能について一つの実施形態に相当する機能を持つ。特許文献１では、追記書き込み先のブロックの決定にあたり、フラッシュメモリの各ブロックについて空き領域の量を管理し、空き領域が最も多いブロックを追記先として選択する。
【００８１】
本発明において、記憶領域確保機能は、記憶媒体において、書き込みアクセスに関する性能上限、及び性能下限を満たす物理領域を追記先として選択する。
【００８２】
特許文献１には、書き込みについて定められた性能上限、及び性能下限を維持する機能を具備した構成は開示されていない。また、特許文献１には、ストレージに対する書き込みアクセスについて、指定された性能上限、及び性能下限を維持する制御を行うために必要となる性能要件指定機能、及び書き込みアクセス性能の維持に関連した提供容量決定機能を具備した構成は開示されていない。
【００８３】
本発明によれば、比較例（本発明を適用しない場合）と比べて、ストレージに対して連続的に行われるランダム書き込みアクセスにおいて、アクセス性能を向上しつつ、追記書き込み方式で必要とされているデフラグメント処理を不要としている。その結果、予め定められた性能下限と、最高性能の維持の実現を可能としている。
【００８４】
＜実施形態＞
次に、本発明を実施形態のシステム構成について図面を参照して説明する。図１は、実施形態１の構成を示す図である。図１を参照すると、本実施形態１においてシステム全体の構成はデータにアクセスする１台以上のホスト１、単体または複数の記憶媒体から構成されるストレージ２、及び前記１、２を接続するネットワーク３を含む。
【００８５】
ネットワーク３は、ストレージ２に対して複数のホスト１が接続可能な形態のみならず、ホスト１とストレージ２が直接接続される形態であってもよい。またストレージ２はネットワーク３によって接続された複数の装置、あるいは、システムによって構成されてもよい。続いてストレージ２の構成について図２、図３、図４、図５、図６、図７を参照して説明を行う。
【００８６】
図２は、図１のストレージ２の構成を示す図である。図２を参照すると、ストレージ２は、記憶媒体２１と、アクセス要求変換部２２と、アドレス変換部２３と、アクセス実行部２４と、記憶領域確保部２５と、ページ割り当て部２６と、性能要件指定部２７と、提供容量決定部２８と、アクセス要求テーブル２２１と、アドレス変換テーブル２３１と、コマンドデーブル２４１と、ページグループテーブル２５１と、性能要件テーブル２７１を備えている。アクセス要求テーブル２２１、アドレス変換テーブル２３１、コマンドデーブル２４１、ページグループテーブル２５１、性能要件テーブル２７１は、それぞれアクセス要求変換部２２、アドレス変換部２３、アクセス実行部２４、記憶領域確保部２５、性能要件指定部２７内に備えた構成としてもよいし、１つの記憶部内の別の記憶領域に備えた構成としてもよい。図２のアクセス要求変換部２２、アドレス変換部２３、アクセス要求テーブル２２１と、アドレス変換テーブル２３１は、図２１のアクセス受付部２０１を構成する。図２のアクセス実行部２４、記憶領域確保部２５、ページ割り当て部２６は、図２１のアクセス実行部２０２、記憶領域確保部２０４、割り当て部２０３にそれぞれ対応する。
【００８７】
記憶媒体２１は、ストレージ２の記憶領域全体のデータを格納し、例えばHDDのような単体または複数の記憶媒体から構成される。
【００８８】
アクセス要求変換部２２は、ホスト１からのアクセス要求を受け取り、アドレス空間内のページ単位のアクセスコマンドに変換し、アクセス実行部２４にコマンドの実行を指示する。
【００８９】
アクセス要求変換部２２は、変換したアクセス要求とコマンドの対応関係を管理するためのアクセス要求テーブル２２１を持つ。
【００９０】
アクセス要求変換部２２は、アクセス実行部２４におけるコマンド実行が完了すると、アクセス要求テーブル２２１に、該コマンドの実行完了を記録する。
【００９１】
また、完了したアクセスコマンドが読み出し（Read）である場合、アクセス要求変換部２２は、記憶媒体２１から読み出されたデータを受け取る。
【００９２】
アクセス要求変換部２２は、アクセス要求に対応するアクセスコマンド全ての実行が完了すると、ホスト１に対して読み出し要求の場合は、記憶媒体２１から読み出されたデータを返し、書き込み要求の場合は、完了を通知する。
【００９３】
アクセス要求変換部２２は、ホスト１によるアクセス要求から記憶媒体２１に対する書き込みアクセスコマンドを生成する際に、書き込み（Write）コマンドによる書き込みデータの格納先として、新たな記憶領域を割り当てるように、ページ割り当て部２６に対して要求する。
【００９４】
図３は、実施形態におけるアクセス要求テーブル２２１の一形態を模式的に表す。アクセス要求テーブル２２１は、アクセス要求変換部２２が管理する、ホスト１からのアクセス要求と、記憶媒体２１に対するページ単位のアクセスコマンドとの対応関係を記録する。
【００９５】
図３に示す例では、アクセス要求テーブル２２１は、ホスト１からの各アクセス要求に対して、
・アクセス要求毎のＩＤ、
・アクセス要求の種別（Read／Write）、
・アクセス先の先頭アドレス、
・アクセス長（データのサイズ（データ長））、
・アクセスを要求したホスト（要求元ホスト）、及び、
・アクセス要求変換部２２による変換後の記憶媒体２１に対するアクセスコマンドを指し示すＩＤ（対応コマンドＩＤ）、
を記録する。
【００９６】
アクセス要求毎のＩＤは、アクセス要求変換部２２の内部で、各アクセス要求を管理するために付与される。アクセス要求毎のＩＤを用いずに、ホスト１からのアクセス要求を管理する場合は、このＩＤは不要である。また、記憶媒体２１が単一である場合、エントリ毎の記憶媒体２１を指すＩＤは不要である。
【００９７】
ホスト１からのアクセス要求に対応した記憶媒体２１に対するアクセスコマンド全ての処理を完了すると、アクセス要求テーブル２２１から、前記アクセス要求に対応するエントリが削除される。
【００９８】
再び図２を参照すると、アドレス変換部２３は、
・ホスト１がストレージ２にアクセスする際に使用する論理アドレスと、
・前記論理アドレスに対応した記憶媒体２１上の記憶領域を指し示す物理アドレス（例えば物理ページアドレス）と、
の対応関係を記録したアドレス変換テーブル２３１を備えている。
【００９９】
アドレス変換部２３は、アドレス変換テーブル２３１を参照して、アクセス要求変換部２２においてホスト１からのアクセス要求を記憶媒体２１のアクセスコマンドに変換する際の、論理アドレスから物理アドレスへの変換を行う。
【０１００】
また、アドレス変換部２３は、ページ割り当て部２６からの、書き込みデータの格納に伴う、論理アドレスに対応する記憶媒体２１上の領域を指し示す物理アドレスの変更要求を受けて、アドレス変換テーブル２３１を更新する。
【０１０１】
図４は、図２のアドレス変換テーブル２３１の一形態を模式的に表す。アドレス変換テーブル２３１は、論理アドレス空間上のページ毎にエントリを持ち、
・該ページを表す論理アドレス、及び
・該ページのデータを格納する記憶媒体２１を表すＩＤ、
・前記ＩＤが表す記憶媒体２１におけるデータの記憶領域を表す物理アドレス
を記録する。
【０１０２】
アドレス変換テーブル２３１の各エントリが、論理アドレス上のページについて、アドレスの順番に格納されている場合、エントリ毎の各ページを表す論理アドレスは不要である。アドレス変換テーブル２３１の各エントリが、物理アドレス上のページについてアドレスの順番に格納されている場合、エントリ毎の物理アドレスは不要である。また、記憶媒体２１が単一である場合、エントリ毎の記憶媒体２１を指すＩＤは不要である。
【０１０３】
再び図２を参照すると、アクセス実行部２４は、アクセス要求変換部２２でホスト１によるアクセス要求から変換したアクセスコマンドを受け、記憶媒体２１に対して当該アクセスコマンドを発行する。
【０１０４】
アクセス実行部２４は、アクセスコマンドについての情報を管理するコマンドテーブル２４１を備えている。アクセス実行部２４は、記憶媒体２１に対するアクセスコマンドが完了すると、前記コマンドの結果をアクセス要求変換部２２に返す。
【０１０５】
また、アクセス実行部２４は、記憶媒体２１に対する書き込み（Write）コマンドを実行した結果、記憶媒体２１上のデータが新たに書き込まれて割り当て済となったページ、及び書き込み（Write）によるデータの更新の結果、新たに使用可能状態となったページについて、記憶領域確保部２５に通知する。
【０１０６】
アクセス実行部２４は、性能要件指定部２７で指定された書き込みアクセスの性能上限を参照し、書き込みアクセス性能が、性能上限を上回る場合には、書き込みコマンドの実行を遅らせる制御を行う。
【０１０７】
図５は、コマンドテーブル２４１の一形態を模式的に例示する図である。アクセス実行部２４は、コマンドテーブル２４１を用いて、アクセス要求変換部２２から受け取った、記憶媒体２１に対するアクセスコマンドを管理する。コマンドテーブル２４１は、アクセスコマンド毎にエントリを持ち、各エントリは、
・コマンドを表すＩＤ、
・コマンドの種別（Read、Write）、
・アクセス先の記憶媒体ＩＤ、
・アクセス先のアドレス、
・アクセス要求テーブル２２１で管理される、当該コマンドに対応したアクセス要求のＩＤ、
を記録する。
【０１０８】
コマンドテーブル２４１の各エントリが、各コマンドのＩＤの順番に格納されている場合、エントリ毎のＩＤは不要である。また、記憶媒体２１が単一である場合、エントリ毎の記憶媒体２１を指す記憶媒体ＩＤは不要である。
【０１０９】
図２を参照すると、記憶領域確保部２５は、ページ割り当て部２６が論理アドレスに対して割り当てる、記憶媒体２１上のページについて、実際に、記憶領域として使用する物理アドレスを決定する。記憶領域確保部２５は、記憶媒体２１上の各ページに関する割り当て状況を管理するページグループテーブル２５１を持つ。
【０１１０】
ページグループテーブル２５１は、複数の連続したページからなるページグループ（ＰＧ）について、ページの割り当て状況を管理する。
【０１１１】
記憶領域確保部２５は、性能要件指定部２７で指定された書き込みアクセスに関する性能上限、及び、性能下限の値を参照し、前記性能の値を満たすために、記憶領域として使用するページグループ（ＰＧ）を決定して確保する。
【０１１２】
また、記憶領域確保部２５は、性能要件指定部２７で指定された書き込みアクセスに関する性能下限について、
・記憶媒体２１のアクセス性能と、
・ページグループ（ＰＧ）における空きページ数と
の関係から、性能下限を満たすことが困難な場合に、該性能下限を満たすことが困難であることを、性能要件指定部２７に対して、通知する。
【０１１３】
図６は、ページグループテーブル２５１の一形態を模式的に例示する図である。記憶領域確保部２５は、ページグループテーブル２５１を用いて、記憶媒体２１上の各ページに関する割り当て状況を管理する。
【０１１４】
図６を参照すると、ページグループテーブル２５１は、ページグループ（ＰＧ）毎にエントリを持ち、各エントリは、
・ページグループ（ＰＧ）が存在する記憶媒体２１を指す記憶媒体ＩＤ、
・ページグループ（ＰＧ）の記憶媒体２１上での先頭アドレス（複数の連続したページの先頭アドレス）、及び、
・ページグループ（ＰＧ）内の各ページについて、割り当ての状況を表す割り当て情報、
を記録する。
【０１１５】
記憶媒体２１が単一である場合、エントリ毎の記憶媒体２１を指すＩＤは不要である。また、ページグループテーブル２５１の各エントリがアドレスの順番に格納されている場合、エントリ毎の格納位置を表すアドレスは不要である。
【０１１６】
図６に示す例では、ページグループテーブル２５１において、各エントリの割り当て情報は、ビットマップによって表現されており、先頭のビットから順番に、各ページグループ（ＰＧ）に含まれるページが、論理アドレスに割り当てられているか否かを表す。すなわち、ビットマップのサイズは、ページグループ（ＰＧ）に含まれるページ数に等しい。前記ビットマップでは、論理アドレスに割り当てられたページに対応するビットを１、割り当てられていないページを０として表現しているが、逆に割り当てられたページを０、割り当てられていないページを１として表現しても良い。また、割り当て情報は図６で示したビットマップではなく、ページグループ（ＰＧ）に含まれる各ページについて、論理アドレスへの割り当ての有無を表現可能な他の異なるデータ形式でも良い。
【０１１７】
図２の記憶領域確保部２５において、性能要件指定部２７で指定された書き込みアクセスに関する性能上限（上限）、及び性能下限（下限）を基に、記憶領域として使用可能なページグループ（ＰＧ）を判定する処理について説明する。
【０１１８】
ページグループ（ＰＧ）は、複数の連続したページから構成される。ページグループ（ＰＧ）が含むページ数は、ページグループ（ＰＧ）内のページに対するランダム書き込みが、記憶媒体２１における連続書き込み（Write）と同等のアクセス時間で処理可能となるようなページ数とする。
【０１１９】
例えば記憶媒体２１をHDDとして、ページグループ（ＰＧ）が含むページの合計容量が、HDDの１トラック分程度であれば、HDDにおけるヘッドのシークが発生しない。HDDにおいてセクタ（ブロック）は、内周部よりのトラックではより少なく外周部よりではより多くなっているが、例えば内周部のトラックの記憶容量、あるいは内周部と外周部のトラックの平均の記憶容量をページグループの合計記憶容量としてもよい。
ページグループ（ＰＧ）が含むページの合計容量が、HDDの１トラック分程度の場合、ページグループ（ＰＧ）内のページに対するランダムな書き込み（例えばアドレスが飛び飛びのページへのアクセス）に要するアクセス時間は、ページグループ（ＰＧ）内のページに対して連続書き込みを行った場合の総アクセス時間と同等である。
【０１２０】
すなわち、
・各ページグループ（ＰＧ）に含まれるページ数をＮ、
・書き込みデータの格納対象となるページグループ（ＰＧ）において、論理アドレスに割り当てられていず、書き込みデータを新たに格納可能なページ数をｎ、
・記憶媒体２１に対して連続書き込み（Write）を行った場合のスループットを毎秒Ａ、
・各ページの容量をＣ
とすると、前記ページグループ（ＰＧ）の論理アドレスに割り当てられていないページ（空きページ）に対して順番に書き込みを行った場合の書き込みアクセスのスループットは次式（１）で与えられる。
【０１２１】
Ａ×ｎ／Ｎ      ・・・（１）
【０１２２】
また、ページグループ（ＰＧ）全体で格納可能な新規データの容量は、次式（２）で与えられる。
【０１２３】
Ｃ×ｎ    ・・・（２）
【０１２４】
ページグループ（ＰＧ）の全ての空きページに対して書き込みが完了する時間は、次式（３）で与えられる。
【０１２５】
Ｎ×Ｃ／Ａ      ・・・（３）
【０１２６】
ページグループ（ＰＧ）の空きページ全てに書き込みを行い、書き込みデータの格納対象となるページグループ（ＰＧ）を変更する場合、記憶媒体２１におけるランダム書き込みアクセスとなる。
【０１２７】
記憶媒体２１におけるランダム書き込みの平均アクセス時間をｔとすると、１秒あたりに書き込み可能なページグループ（ＰＧ）数は、次式（４）で表される。
【０１２８】
１／（ｔ＋Ｎ×Ｃ／Ａ）      ・・・（４）
【０１２９】
上式（２）、（４）から、本実施形態において、ランダム書き込みアクセス性能は、次式（５）で見積もることができる。
【０１３０】
（Ｃ×ｎ）×（１／（ｔ＋Ｎ×Ｃ／Ａ））
＝（Ｃ×ｎ）／（ｔ＋Ｎ×Ｃ／Ａ））                          ・・・（５）
【０１３１】
記憶領域確保部２５は、前記見積もり手段により求められる書き込みアクセス性能が、性能要件指定部２７によって指定された書き込みアクセスの性能上限、及び性能下限の範囲内となるために必要となるページグループ（ＰＧ）の空きページ数ｎを求める。
【０１３２】
記憶領域確保部２５は、求められた空きページ数ｎに該当する任意のページグループ（ＰＧ）から、書き込みデータの記憶領域として使用するページグループ（ＰＧ）を選択して確保し、ページ割り当て部２６に通知する。
【０１３３】
図２において、ページ割り当て部２６は、アクセス要求変換部２２からの要求により、書き込みデータを格納するために使用する、記憶媒体２１上のページ（物理ページ）を、論理アドレスに対して、割り当てる。割り当ての対象となるページは、記憶領域確保部２５によって確保されたページグループ（ＰＧ）に含まれる空きページである。
【０１３４】
ページ割り当て部２６は、アドレス変換部２３によって、空きページが割り当てられた論理アドレスに対応する、アドレス変換テーブル２３１のエントリについて、空きページを格納する記憶媒体のＩＤ、及び、空きページの物理アドレスを記録する。
【０１３５】
性能要件指定部２７は、ストレージ２に対して指定された、書き込みアクセスにおいて性能の下限（維持すべき最小の性能）と、性能の上限（超えてはいけない最大の性能）について、性能要件テーブル２７１に記録する。
【０１３６】
また、性能要件指定部２７は、アクセス実行部２４、及び、記憶領域確保部２５からの性能の下限、上限の性能要件の問い合わせに対して応答する。性能要件指定部２７は、性能要件テーブル２７１に記録された性能下限の要件を満たすことが困難な場合に、記憶領域確保部２５から通知を受け取り、性能下限を変更する。
【０１３７】
性能要件テーブル２７１は、性能要件指定部２７が管理する、ストレージ２が書き込みアクセスにおいて、性能下限と、性能上限を記録する。
【０１３８】
図７に、性能要件テーブル２７１の一形態を表す。図７では、性能要件テーブル２７１に格納されたストレージ２の性能下限と、性能上限は、スループットによって表現されているが、例えばページへの書き込みに関するＩＯＰＳ（I/O per second）のように、他の指標で表現されていても良い。
【０１３９】
図２において、提供容量決定部２８は、性能要件指定部２７によって指定された、ストレージ２に対する書き込みアクセスの性能下限と性能上限、及び、記憶媒体２１の容量、アクセス性能に基づき、性能要件を満たす範囲でストレージ２がホスト１に対して提供可能な容量を算出する。
【０１４０】
次に、本実施形態の動作について説明する。図８は、本実施形態におけるホスト１からの読み出し要求に対する動作を説明する流れ図である。図１乃至図５、及び図８を参照して、本発明の実施形態におけるホスト１からの読み出し要求に対する動作について説明する。
【０１４１】
＜ステップＳ１１＞
ホスト１からストレージ２に対して行われた読み出し要求(read request)をアクセス要求変換部２２が受け取る。アクセス要求変換部２２は、アドレス変換部２３のアドレス変換テーブル２３１を参照して、読み出し要求を、記憶媒体２１に対するページ単位の読み出しコマンド（read command）に変換する。アクセス要求変換部２２は、変換した読み出しコマンドをアクセス要求テーブル２２１に登録し、アクセス実行部２４に通知する。
【０１４２】
＜ステップＳ１２＞
アクセス実行部２４は、ステップＳ１１で通知された読み出しコマンドをコマンドテーブル２４１に登録し、記憶媒体２１に対して読み出しコマンドを発行する。
【０１４３】
＜ステップＳ１３＞
アクセス実行部２４は、ステップＳ１２で発行した各コマンドについて、記憶媒体２１から読み出し結果（Readデータ）を受け取ると、アクセス要求変換部２２に対して、記憶媒体２１から読み出された読み出しデータ（Readデータ）を返す。また、アクセス実行部２４は、前記記憶媒体２１からの読み出し結果を受け取った読み出しコマンドについて、コマンドテーブル２４１からエントリを削除する。
【０１４４】
＜ステップＳ１４＞
アクセス要求変換部２２は、アクセス実行部２４から、読み出しコマンドの実行結果である読み出しデータ（Readデータ）を受け取ると、アクセス要求テーブル２２１を参照して、前記読み出しコマンドに対応するアクセス要求（読み出し要求）について、対応コマンドＩＤが指し示す読み出しコマンドの処理が全て完了しているか否か確認する。すなわち、アクセス要求変換部２２は、読み出し要求から生成された読み出しコマンドについてアクセス実行部２４から読み出しデータを受理したか否かを確認する。
【０１４５】
＜ステップＳ１５＞
アクセス要求における対応コマンドＩＤが指し示す読み出しコマンドの処理が全て完了していない場合（ステップＳ１５のＹｅｓ判定）、アクセス実行部２４は、ステップＳ１３の処理を実行する。アクセス要求変換部２２は、アクセス要求に対応した他の読み出しコマンドが完了し、アクセス実行部２４から、読み出しデータが返されるまで待つ。
【０１４６】
＜ステップＳ１６＞
アクセス要求における対応コマンドＩＤが指し示す読み出しコマンドの処理が全て完了している場合（ステップＳ１５のＮｏ判定）、アクセス要求変換部２２は、アクセス実行部２４から受け取った読み出しコマンドの結果である読み出しデータ（Readデータ）をホスト１（図１）に対して、読み出し要求に対する読み出しデータとして返す。アクセス要求変換部２２は、アクセス実行部２４から複数の読み出しデータ（Readデータ）を受け取った場合、これらを結合したものを読み出し要求に対する読み出しデータとして返す。具体的には、ストレージ２（図１）は、読み出しデータを、データ又ファイルにパケット化し、ネットワーク３（図１）を介してホスト１に転送する。
【０１４７】
＜ステップＳ１７＞
アクセス要求変換部２２は、アクセス要求テーブル２２１から、ステップＳ１６でホスト１に読み出しデータを返した読み出し要求に対応するエントリを削除し、ホスト１からの読み出し要求に対する処理を完了する。
【０１４８】
以上のステップＳ１１からＳ１７までの処理で、ホスト１からストレージ２に対して行われた読み出し要求に対する動作が完了する。
【０１４９】
図９は、本実施形態におけるホスト１からの書き込み要求に対する動作を説明する流れ図である。図１乃至図６、及び図９を参照して、本実施形態におけるホスト１からの書き込み要求に対する動作について説明する。
【０１５０】
＜ステップＳ２０１＞
ホスト１からストレージ２に対して行われた書き込み（Write）要求と、該要求で書き込みを行う書き込み（Write）データをアクセス要求変換部２２が受け取る。アクセス要求変換部２２は、アドレス変換部２３のアドレス変換テーブル２３１を参照して、書き込み（Write）要求を、記憶媒体２１に対するページ単位の書き込みコマンドに変換する。
【０１５１】
アクセス要求変換部２２は、ページ割り当て部２６に対して、ページ単位で分割した書き込みコマンド毎に、論理アドレスに対応した書き込みデータの格納先となる記憶媒体２１上のページの割り当てを要求する。
【０１５２】
＜ステップＳ２０２＞
ページ割り当て部２６は、アクセス要求変換部２２から要求された、書き込みデータの格納先の論理アドレスに対する記憶媒体２１のページの割り当てを行う。
【０１５３】
＜ステップＳ２０３＞
アクセス要求変換部２２は、アドレス変換部２３のアドレス変換テーブル２３１を参照して、記憶媒体２１に対するページ単位の書き込みコマンドに変換する。
【０１５４】
また、ページ割り当て部２６は、ページ単位のコマンドに変換後の書き込みコマンドに対応して、ホスト１から受け取った書き込みデータを、各書き込みコマンドでアクセス対象とされるページ単位の書き込みデータに分割する。アクセス要求変換部２２で、１０個のページ単位の書き込みコマンドに変換された場合、ページ割り当て部２６は、ページ単位の書き込みコマンドに対応させ、ホスト１から受け取った書き込みデータを１０個に分割する。
【０１５５】
アクセス要求変換部２２は、変換したページ単位の書き込みコマンドを、アクセス要求テーブル２２１に登録し、各書き込みコマンドに対応したページ毎の書き込みデータと共に、アクセス実行部２４に通知する。
【０１５６】
＜ステップＳ２０４＞
アクセス実行部２４は、ステップＳ２０３でアクセス要求変換部２２から通知された書き込みコマンドを、コマンドテーブル２４１に登録する。
【０１５７】
＜ステップＳ２０５：結合子１＞
アクセス実行部２４は、性能要件指定部２７から、書き込みアクセスに関するストレージ２の性能上限を取得し、ストレージ２の現在の書き込みアクセスの性能と比較する。書き込みアクセス性能は、当該書き込みコマンドの受信した時点の例えば直（前（直近）におけるストレージ２の書き込みアクセスの性能であってもよい。書き込みアクセスの性能は、上記した式（５）で与えられ、各パラメータはその時点での設定値が用いられる。
【０１５８】
＜ステップＳ２０６＞
ストレージ２の現在の書き込みアクセスの性能が、ストレージ２の性能上限以上である（ステップＳ２０６のＹｅｓ判定）、アクセス実行部２４は、ステップＳ２０７の処理を実行する。ストレージ２の現在の書き込みアクセスの性能が、ストレージ２の性能上限未満である場合（ステップＳ２０６のＮｏ判定）、アクセス実行部２４は、ステップＳ２０８以降の処理を実行する。
【０１５９】
＜ステップＳ２０７＞
アクセス実行部２４は、予め定められた所定時間（任意の時間）待機し、ステップＳ２０５（結合子１）に戻り、処理を実行する。アクセス実行部２４をアイドリングさせることで、書き込みアクセス性能を性能上限以下とする。  
【０１６０】
＜ステップＳ２０８＞
アクセス実行部２４は、ステップＳ２０４で登録されたコマンドの一つについて、記憶媒体２１に対して、各コマンドに対応して受け取った書き込みデータと共に、前記書き込みコマンドを発行する。
【０１６１】
＜ステップＳ２０９＞
アクセス実行部２４は、ステップＳ２０８で発行したコマンドについて、記憶媒体２１から書き込み完了の通知を受け取ると、記憶容量確保部２５を通して、ページグループテーブル２５１における、書き込みコマンドのアクセス先のページに対応する割り当て情報を、「割り当て済み」の状態に更新する。
【０１６２】
＜ステップＳ２１０＞
アクセス実行部２４は、ステップＳ２０９で完了通知を受け取った書き込みコマンドについて、アクセス要求変換部２２に対して、書き込みコマンドの処理の完了を通知する。
【０１６３】
また、アクセス実行部２４は、書き込みが完了したコマンドについて、コマンドテーブル２４１から、エントリを削除する。
【０１６４】
＜ステップＳ２１１＞
ステップＳ２０４で登録されたコマンドの実行が完了していない場合（ステップＳ２１１のＮｏ判定）、アクセス実行部２４は、ステップＳ２０５（結合子１）に戻り、処理を実行する。一方、ステップＳ２０４で登録されたコマンドの実行が全て完了している場合（ステップＳ２１１のＹｅｓ判定）、ステップＳ２１２に進む。
【０１６５】
＜ステップＳ２１２＞
ホスト１からの書き込み要求に対する全ての書き込みコマンドの完了が通知された状態であり、ホスト１に対して、書き込み要求の完了を応答する。
【０１６６】
＜ステップＳ２１３＞
アクセス要求変換部２２は、アクセス要求テーブル２２１から、ステップＳ２１２で完了を通知したアクセス要求のエントリを削除して、ホスト１からの書き込み要求に対する処理を完了する。
【０１６７】
以上のステップＳ２０１からＳ２１３までの処理を行い、本発明において、ホスト１からストレージ２に対して行われた書き込み要求の処理の動作が完了する。尚、ステップＳ２０８においてアクセス実行部２４は、記憶媒体２１に対して１個ずつコマンドを発行しているが、複数個を同時に発行してもよい。
【０１６８】
図１０は、図９のＳ２０２のページ割り当て部２６の動作を説明する流れ図である。図１乃至図７、図９、図１０を参照して、図９のステップＳ２０２におけるページ割り当て部２６の詳細な動作について説明する。
【０１６９】
＜ステップＳ３０１＞
ページ割り当て部２６は、記憶領域確保部２５から指定された、新規に論理アドレスに対して割り当てる空きページを含むページグループ（ＰＧ）について、記憶領域確保部２５のページグループテーブル２５１を参照して、空きページが存在するか否か確認する。
【０１７０】
＜ステップＳ３０２＞
空きページが存在する場合（ステップＳ３０２のＮｏ判定）、ページ割り当て部２６は、ステップＳ３１３（結合子１）以降の処理を実行する。空きページが存在しない場合（ステップＳ３０２のＹｅｓ判定）、ページ割り当て部２６は、ステップＳ３０３の処理に進む。
【０１７１】
＜ステップＳ３０３＞
ページ割り当て部２６は、記憶領域確保部２５に対して、論理アドレスに割り当てる空きページを含んだページグループ（ＰＧ）の確保を要求する。
【０１７２】
＜ステップＳ３０４＞
ページ割り当て部２６からページグループ（ＰＧ）の確保の要求を受けた記憶領域確保部２５では、性能要件指定部２７を通して、性能要件テーブル２７１に格納された、ストレージ２の書き込みアクセスに関する性能下限と性能上限の要件を取得する。記憶領域確保部２５は、書き込みアクセスの性能上限、及び性能下限の要件を満たすために必要となる、論理アドレスにページを割り当てるために確保するページグループ（ＰＧ）の空きページ数の範囲を求める。
【０１７３】
＜ステップＳ３０５＞
ステップＳ３０４で求めた性能下限を得るための空きページ数の条件を満たすページグループ（ＰＧ）が存在する場合（ステップＳ３０５のＮｏ判定）、記憶領域確保部２５はステップＳ３０８（結合子２）以降の処理を実行する。ステップＳ３０４で求めた性能下限を得るための空きページ数の条件を満たすページグループ（ＰＧ）が存在しない場合（ステップＳ３０５のＹｅｓ判定）、記憶領域確保部２５はステップＳ３０６の処理に進む。
【０１７４】
＜ステップＳ３０６＞
記憶領域確保部２５は、ページグループテーブル２５１を参照して、記憶媒体２１におけるページグループ（ＰＧ）の空きページ数、及び、記憶媒体２１の性能から、ストレージ２が維持可能な性能下限の値を求める。次に、記憶領域確保部２５は、性能要件指定部２７に対して、維持可能な性能下限の値と共に、性能下限に関する要件を満たすことが不可能であることを通知する。その後、ステップＳ３０７に進む。
【０１７５】
＜ステップＳ３０７＞
性能要件指定部２７は、ステップＳ３０６における記憶領域確保部２５からの通知を受け取り、性能要件テーブル２７１の性能下限の設定値を変更する。
【０１７６】
＜ステップＳ３０８：結合子２＞
性能要件指定部２７は、性能要件テーブル２７１の性能下限、性能上限の設定値が、前回のステップＳ３０８実行時での値と比べて、変更されているか確認する。
【０１７７】
＜ステップＳ３０９＞
性能要件テーブル２７１の性能下限、性能上限の設定値が変更されていない場合（ステップＳ３０９のＮｏ判定）、性能要件指定部２７はステップＳ３１２（結合子４）以降の処理を実行する。性能要件テーブル２７１の性能下限、性能上限の設定値が変更されている場合（ステップＳ３０９のＹｅｓ判定）、性能要件指定部２７はステップＳ３１０以降の処理を実行する。
【０１７８】
＜ステップＳ３１０＞
性能要件テーブル２７１の性能下限、性能上限の設定値が変更されている場合（ステップＳ３０９のＹｅｓ判定）、性能要件指定部２７は、記憶領域確保部２５から、変更された性能下限、性能上限の設定値を維持するために必要となるページグループ（ＰＧ）の空きページ数を取得する。
【０１７９】
＜ステップＳ３１１＞
性能要件指定部２７は、提供容量決定部２８に対して、ステップＳ３１０で取得したページグループ（ＰＧ）に、必要な空きページ数の値と共に、ストレージ２の提供容量の変更を要求する。
提供容量決定部２８は、前記空きページ数の値と、ストレージ２を構成する記憶媒体２１の容量から、ストレージ２がホスト１に対して提供可能な容量を新たに算出する。
【０１８０】
＜ステップＳ３１２：結合子４＞
記憶領域確保部２５は、ページグループテーブル２５１を参照して、ステップＳ３０４で求めた空きページ数の条件を満たす任意の１つのページグループ（ＰＧ）を、ページ割り当て部２６での論理アドレスへのページ割り当てに使用するために確保し、ページ割り当て部２６に対して確保したページグループ（ＰＧ）のアドレスを通知する。
【０１８１】
＜ステップＳ３１３＞
ページ割り当て部２６は、新規に論理アドレスに対して割り当てる空きページを含むページグループ（ＰＧ）について、先頭のアドレスから最も近い空きページを、アクセス要求変換部２２から指定された論理アドレスに対して割り当てる。また、ページ割り当て部２６は、アドレス変換部２３のアドレス変換テーブル２３１に対して、前記論理アドレスに対応する記憶媒体ＩＤ、及び物理アドレスについて、割り当てた空きページに関する情報で更新して動作を終了する。
【０１８２】
以上のステップＳ３０１からＳ３１３までの処理を行い、本発明のステップＳ２０２におけるページ割り当て部２６の詳細な動作が完了する。
【０１８３】
前記実施形態において、図２のストレージ２のアクセス要求変換部２２、アドレス変換部２３、ページ割り当て部２６、アクセス実行部２４、記憶領域確保部２５、性能要件指定部２７、提供容量決定部２８は、ストレージ２を構成する不図示のCPU（Central Processing Unit）で実行されるコンピュータプログラムによって、その機能・処理の一部又は全てを実現するようにしてもよい。
【０１８４】
＜作用効果＞
本実施形態によれば、
・複数の連続ページを、ページグループ（ＰＧ）として、管理し、
・アクセス性能を保障する空きページを含むページグループを選択し、
・当該選択したページグループ内のページ（ページグループ内で非連続アドレスのページを含む）に、書き込みデータを追記方式で書き込む。かかる構成としたことで、デフラグメント処理を行うことなく、ページグループ（ＰＧ）内のページに対して連続書き込みを行った場合のアクセスとほぼ同等のアクセス性能を実現可能としている。また、記憶媒体が提供する記憶容量をアクセス性能の要件を満たすような空きページが常に確保可能な値を、ホストに通知することで、アクセス性能が保障される。以下、上記実施形態の作用効果について具体例に即して説明する。
【０１８５】
＜実施例１＞
第１の実施例として、図１、図２、図８−図１５を参照して、ストレージ２における、アクセス要求の処理の例を示す。本実施例では、ストレージ２（図１）に対するアクセス元のホスト１（図１）を単一のホストＡ、ストレージ２を構成する記憶媒体２１(図２)は単一（ＩＤ：１）であるものとする。特に制限されないが、本実施例では、
・記憶媒体２１は、容量１２８０ＧＢ（Giga Byte）のHDDであり、セクタサイズ（ブロックサイズともいう）を５１２Byteとして、アドレスはセクタ単位で表すものとする。なお、特に制限されないが、アクセス要求で指定されるアクセスアドレス（論理アドレス）と物理アドレスは、１セクタ（５１２Byte）を単位とする３２ビット長とし、１６進（hexadecimal）表示で表記する。１つのhexadecimal digitは４ビット、したがって３２ビットは８ hexadecimal digitからなり、"0x00100000"等において、先頭の"0x"はhexadecimal表示を表す。
【０１８６】
特に制限されないが、本実施例では、
・ストレージ２の論理アドレス、物理アドレスで使用するページサイズを４KB(Kilo Byte)（＝８セクタ）として、ストレージの記憶媒体２１（図２）への読み出しと書き込みは、ページ単位で行うものとする。
・また、各ページグループ（ＰＧ）は、３２ページで構成されるものとする。
・記憶媒体２１の連続書き込みアクセスにおける性能は、１２８０００KB/s(Kilo-Bytes/second)、
・１ページ単位でランダム書き込みを行う場合の１アクセスに要する時間を４ms(millisecond）
とする。
【０１８７】
本発明を適用せずに、ページ単位のランダム書き込みを行った場合のストレージ２の性能は、１ページ＝４KBのアクセスが４msであるから単位時間（１second）あたりのアクセス性能は、以下のように1000KBである。
4KB/s×（1/0.004）＝ 1000 KB/s 
＝ 250 IOPS (IO Per Second)) ≒ 1 MB (Mega Byte)/s      ・・・（６）
である。
【０１８８】
本実施例では、ホストＡは、ストレージ２に対して、
・論理アドレス：0x00001000に対するデータサイズ（アクセス長）：８KB（２ページ）の読み出し（Read）アクセス、
・論理アドレス：0x00002000に対するデータサイズ（アクセス長）：４KB（１ページ）の書き込み（Write）アクセス、
・論理アドレス：0x00003000に対するデータサイズ（アクセス長）：４KBの書き込み（Write）アクセス
の順番で、アクセスを行う。
【０１８９】
まず、ホストＡからストレージ２に対して、論理アドレス：0x00001000に対するデータサイズ：８KBの読み出し要求が送信される。
【０１９０】
ストレージ２のアクセス要求変換部２２（図２）は、ホストＡからの読み出し要求をアクセス要求テーブル２２１Ａ（図１１）に登録し（図１１のID＝１のRead）、アドレス変換部２３（図２）を通してアドレス変換テーブル２３１Ａ（図１２）を参照して、読み出し要求をページ単位のアクセスコマンドに変換する。
【０１９１】
図１２のアドレス変換テーブル２４１Ａを参照すると、論理アドレス：0x00001000からデータサイズ：８KB（２ページ＝５１２byte×１６＝１６セクタ）の読み出しは、
物理アドレス：0x00100000、及び0x00100008
の２ページに対する２つの読み出しコマンド（各読み出しコマンドのデータサイズは１ページ）に変換して、アクセス実行部２４に通知して、コマンドテーブル２４１Ａに登録する（図１３のID＝１、２のRead参照）。
【０１９２】
アクセス実行部２４（図２）は、物理アドレス：0x00100000、及び0x00100008の２つのページに対する２つの読み出し（Read）コマンドを記憶媒体２１に対して発行して、記憶媒体２１の２つのページからそれぞれ読み出された読み出しデータ（各データサイズ：４KB）を、アクセス要求変換部２２に返す。
【０１９３】
アクセス要求変換部２２は、２つの読み出し（Read）コマンドで２つのページから読み出された読み出しデータ（各データサイズ：４KB）を結合して、ホストＡに、読み出し結果として返し、ホストＡからの論理アドレス：0x00001000に対する、データサイズ：８KBの読み出し要求の処理を終了する。
【０１９４】
次に、ホストＡからストレージ２に対して、論理アドレス：0x00002000に対するデータサイズ：４KBの書き込み要求が送信される。
【０１９５】
ストレージ２のアクセス要求変換部２２は、書き込み要求をアクセス要求テーブル２２１Ａに登録し（図１１のID＝２のWrite）、アドレス変換部２３を通してアドレス変換テーブル２３１Ａ（図１２）を参照して、書き込み要求を、ページ単位のアクセスコマンドに変換する。なお、アクセス要求テーブル２２１Ａ（図１１）には、前回の読み出し要求のエントリ（ID=1のRead）が残されているが、これは、単に、実施例を説明する際の便宜上の記載であり、実際には、読み出し要求の処理終了時にアクセス要求テーブル２２１Ａから削除される。
【０１９６】
ページ割り当て部２６（図２）は、書き込みデータの格納先となる空きページの割り当てを行う。初期の状態では、空きページの選択元となるページグループ（ＰＧ）が未選択の状態であるため、ページ割り当て部２６は、記憶領域確保部２５（図２）に対して、ページグループ（ＰＧ）の確保を要求し、図１０のステップＳ３０３以降に示した処理を実行する。
【０１９７】
記憶領域確保部２５は、性能要件指定部２７（図２）から、性能要件テーブル２７１Ａ（図１５）を取得する。図１５の性能要件テーブル２７１Ａを参照すると、
・性能下限は１０MB/s、
・性能上限は２０MB/s
に設定されている。
【０１９８】
記憶領域確保部２５によって、性能要件を満たすための空きページ数ｎ（正整数）について、ランダム書き込みアクセス性能）の上記式（５）：
(C × n) × ( 1 / (t + N × C/A)) = (C × n) / (t + N × C/A))
において、
ページサイズ：Ｃ＝４KB、
平均アクセス時間：ｔ＝０．００４、
ページグループ（ＰＧ）のページ数：Ｎ＝３２、
容量：Ａ＝１２８０００KB
を代入し、
(4KB × n) / (0.004 + 32 × 4KB/ 128000KB)
が、
性能下限：１０MB/s以上であり、且つ、
性能上限：２０MB/s以下である、
必要がある。なお、性能下限１０MB/sは、本発明を適用しない場合の上式（６）の性能約１MB/sの１０倍である。
【０１９９】
前記条件を満たすためのページグループ（ＰＧ）の空きページ数ｎは、１３以上、２５以下である。
【０２００】
図１４のページグループテーブル２５１Ａを参照すると、性能下限を満たすためには、空きページ数が１３以上である必要があることから、先頭アドレスが0x00200000のページグループ（ＰＧ）（２４ページ未使用）、または先頭アドレスが0x00200300のページグループ（ＰＧ）（３２ページ未使用）を、ページ割り当て部２６に対して確保すればよいことが分かる。
【０２０１】
また、性能上限を満たすためには、空きページ数が２５以下であるため、記憶領域確保部２５は、全ての性能要件を満たすことができる先頭アドレスが0x00200000のページグループ（ＰＧ）（２４ページ未使用）を確保して、ページ割り当て部２６に通知する。
【０２０２】
性能要件指定部２７は、図１５の性能要件テーブル２７１Ａに設定された性能下限、性能上限が変更されていた場合、図１０のステップＳ３１０、Ｓ３１１に示した処理を実行する。
【０２０３】
性能要件指定部２７は、記憶領域確保部２５で求められた、性能要件を満たすためのページグループ（ＰＧ）の空きページ数（先頭アドレス：0x00200000のページグループ（ＰＧ）の場合（図１４参照）、空きページ数は２４）を取得する。
【０２０４】
書き込みデータに対して論理アドレスに割り当てられていない、空きページを新たに割り当てることで、追記書き込みを行う。このため、空きページの分布状況によらず、空きページを割り当てるためのページグループ（ＰＧ）を確保可能である必要がある。
【０２０５】
性能下限の要件を満たすためにページグループ（ＰＧ）内の空きページが１３ページ以上必要であるため、空きページを１３ページ以上持つページグループ（ＰＧ）が、常に、１個以上、記憶媒体２１上に存在する必要がある。前記条件を常に満たすためには、記憶媒体２１上に空きページが全容量のうちの１３／３２以上の割合で存在するように、ストレージ２が提供する容量を設定する必要がある。
【０２０６】
提供容量決定部２８（図２）は、前記情報（記憶媒体２１上に空きページが全容量のうちの１３／３２以上存在する）から、ストレージ２の提供容量を、記憶媒体２１の１３／３２の容量が空きページとなる値：
1280GB × (1 - 13/32) = 760GB
と算出する。
【０２０７】
ページ割り当て部２６は、記憶領域確保部２５から通知されたページグループ（ＰＧ）について、アドレスの先頭から空きページを探して、書き込みデータの格納先の論理アドレス（この論理アドレスはホストからｎ書き込みアクセス要求で指定される）に割り当てる。
【０２０８】
ページ割り当て部２６は、ページグループテーブル２５１Ａにおいて、先頭アドレス：0x00200000のページグループ（ＰＧ）の先頭のページ（割り当て情報のビットマップにおける最上位ビット）は空きページであるため、記憶媒体２１における、先頭アドレス：0x00200000のページを、アクセス要求変換部２２から通知された、書き込み先の論理アドレス：0x00002000に割り当てる。
【０２０９】
また、アドレス変換部２３を通して、図１２のアドレス変換テーブル２３１Ａの対応するエントリを更新する。この更新の結果、図１２のアドレス変換テーブル２３１Ａにおいて、論理アドレス：0x00002000に対応する物理アドレスは0x00200000となる。
【０２１０】
アクセス要求変換部２２は、アドレス変換テーブル２３１Ａの更新結果を受けて、論理アドレス：0x00002000から、データサイズ：４KB（1ページ）の書き込み要求（図１１のID=2のWrite要求）を、物理アドレス：0x00200000のページに対するデータサイズ：４KB（1ページ）の書き込みコマンドに変換して、アクセス実行部２４に通知し、コマンドテーブル２４１Ａに登録する（図１３のID＝３参照）。なお、コマンドテーブル２４１Ａについても、完了した読み出し要求から変換されたコマンド（ID=1、２のRead）のエントリが残されているが、これは、実施例を説明する際の便宜上の記載であり、実際にはコマンドの完了時に削除される。
【０２１１】
アクセス実行部２４は、物理アドレス：0x00200000のページに対するデータサイズ：４KB（1ページ）の書き込みコマンドを記憶媒体２１に対して発行する。記憶媒体２１への書き込みコマンドの処理が完了すると、アクセス実行部２４は、アクセス要求変換部２２に対して書き込みコマンドの完了を通知する。
【０２１２】
また、アクセス実行部２４は、記憶領域確保部２５を通してページグループテーブル２５１Ａの先頭アドレス：0x00200000のページグループ（ＰＧ）について、先頭ページの割り当て情報（（図１４参照の割り当て情報の左端の１ビット）を、バイナリ値：１（割り当て済み）に更新する。
【０２１３】
つづいて、アクセス要求変換部２２は、ホストＡに書き込み要求の完了を通知して、論理アドレス：0x00002000に対するデータサイズ４KBの書き込み要求の処理を終了する。
【０２１４】
次に、ホストＡからストレージ２に対して論理アドレス：0x00003000に対するデータサイズ：４KBの書き込み要求が送信される。ストレージ２のアクセス要求変換部２２は、書き込み要求をアクセス要求テーブル２２１Ａ（図１１参照）に登録し、アドレス変換部２３を通して、アドレス変換テーブル２３１Ａ（図１２）を参照して、書き込み要求をページ単位のアクセスコマンドに変換する。
【０２１５】
ページ割り当て部２６は、書き込みデータの格納先となる空きページの割り当てを行う。以前の書き込み要求の処理において、記憶領域確保部２５によって確保されたページグループ（ＰＧ）の空きページが残っている。このため、ページ割り当て部２６は、前回確保されたページグループ（ＰＧ）について、アドレスの先頭から次の空きページを探して、書き込みデータ格納先の論理アドレスに割り当てる。
【０２１６】
図１４のページグループテーブル２５１Ａにおいて、先頭アドレス：0x00200000のページグループ（ＰＧ）について、次の空きページは、割り当て情報の左端から４ビット目、したがって、先頭から４ページ目、すなわち、アドレス：0x00200018のページであることが分かる（０ｘはヘキサデシマル表示を表している）。アドレスはセクタ（ブロック）（512Byte）を単位としており、１ページは８セクタであり、３ページ分は８×３＝２４セクタ＝０ｘ１８であるため、４ページ目の先頭アドレスは0x00200018となる。ページ割り当て部２６は、記憶媒体２１における、先頭アドレスが0x00200018のページを、アクセス要求変換部２２から通知された書き込み先の論理アドレス：0x00003000に割り当てる。また、ページ割り当て部２６は、アドレス変換部２３を通してアドレス変換テーブル２３１Ａの対応するエントリを更新する（図１２参照）。
【０２１７】
アクセス要求変換部２２は、アドレス変換テーブル２３１Ａのエントリの更新結果を受けて、論理アドレス：0x00003000からデータサイズ：４KB（１ページ）の書き込み要求を、物理アドレス：0x00200018のページ、データサイズ：１ページ（４KB）分に対する書き込みコマンドに変換して、アクセス実行部２４に通知し、コマンドテーブル２４１Ａ（図１３）に登録する。図１３において、ID=4のWrite、対応アクセスID=４のエントリが、今回、コマンドテーブル２４１Ａに登録されたものである。
【０２１８】
アクセス実行部２４は、書き込みコマンドを、記憶媒体２１に対して発行して、書き込みコマンドが完了すると、アクセス要求変換部２２に対してコマンドの完了を通知する。
【０２１９】
また、アクセス実行部２４は、記憶領域確保部２５を通してページグループテーブル２５１Ａの0x00200000のページグループ（ＰＧ）について、先頭から４ページ目の割り当て情報を、バイナリ値：１（割り当て済み）に更新する。
【０２２０】
アクセス要求変換部２２は、ホストＡに書き込み要求の完了を通知して、論理アドレス：0x00003000に対するデータサイズ：４KBの書き込み要求の処理を終了する。
【０２２１】
本実施例によれば、デフラグメント処理を必要とせず、本発明を適用しない場合の性能：約１MB/s（上式（６））の約１０倍の性能を維持可能としている。
【０２２２】
＜実施例２＞
図１、図２、図８乃至図１０、図１６乃至図２０を参照して、本発明の第２の実施例を説明する。第２の実施例の基本構成は、前記実施形態と同様とされ、例えば図１、図２、図８、図９、図１０等が参照される。第２の実施例では、図２の性能要件テーブル２７１として、図２０に示すように、未使用ページの要件（例えば未使用ページ率の下限である最小未使用ページ率）を設定する性能要件テーブル２７１Ｂを備えている。第２の実施例は、前記第１の実施例とは、アクセス要求処理が相違している。
【０２２３】
本実施例ではストレージ２（図１）に対するアクセス元のホスト１（図１）を単一のホストＡ、ストレージ２を構成する記憶媒体２１（図２）は、単一（ＩＤ：１）であるものとする。記憶媒体２１は容量１２８０ＧＢのＨＤＤであり、セクタサイズ（ブロックサイズともいう）を５１２Ｂとしてアドレスはブロック単位で表すものとする。ストレージ２の論理アドレス、物理アドレスで使用するページサイズは４KB（＝８セクタ）として、ストレージ２、及び記憶媒体２１への読み出しと書き込みはページ単位で行う。また、ページグループ（ＰＧ）は、３２ページで構成されるものとして、記憶媒体２１の連続書き込み（Write）における性能は１２８０００KB／ｓ、１ページ単位でランダム書き込みを行う場合の１アクセスに要する時間を４ｍｓとする。
【０２２４】
本発明を適用せずに、ページ単位のランダム書き込みを行った場合のストレージ２の性能は、前記第１の実施例で説明した例と同様、
4KB/s × (1/0.004) = 1000KB/s (＝ 250 IOPS)   ・・・（７）
である。
【０２２５】
第２の実施例では、ストレージ２に対して、ホストＡが、
論理アドレス：0x00001000に対するデータサイズ：８KB（２ページ）の読み出し（Read）、
論理アドレス：0x00002000に対するデータサイズ：４KBの書き込み（Write）、
論理アドレス：0x00003000に対するデータサイズ：４KBの書き込み（Write）
の順にアクセスを行う。
【０２２６】
まず、ホストＡから、ストレージ２に対して、論理アドレス：0x00001000に対するデータサイズ：８KBの読み出し要求が発行される。ストレージ２のアクセス要求変換部２２（図２）は、ホストＡからの読み出し要求をアクセス要求テーブル２２１Ｂ（図１６）に登録し（図１６のID=１）、アドレス変換部２３（図２）を通して、アドレス変換テーブル２３１Ｂ（図１７参照）を参照して、読み出し要求を、ページ単位のアクセスコマンドに変換する。アドレス変換テーブル２３１Ｂ（図１７）を参照すると、論理アドレス：0x00001000からデータサイズ：８KB（２ページ＝１６セクタ）の読み出しは、物理アドレス（先頭アドレス）:0x00100000、及び0x00100008の２つのページに対する２つの読み出しコマンドに変換して、アクセス実行部２４に通知して、コマンドテーブル２４１Ｂ（図１８）に登録する（図１８のID＝１、２のRead参照）。
【０２２７】
アクセス実行部２４（図２）は、当該２つのページに対する２つの読み出しコマンドを記憶媒体２１（図２）に対して発行する。アクセス実行部２４は、記憶媒体２１の当該２つのページから読み出されたデータ（各データサイズ：４KB）を、アクセス要求変換部２２（図２）に返す。
【０２２８】
アクセス要求変換部２２は、アクセス実行部２４から送信された、記憶媒体２１の２つのページからの読み出されたデータ（各データサイズ：４KB）を結合して、８KBのデータを、ホストＡに結果として返す。そして、アクセス要求変換部２２は、論理アドレス：0x00001000に対するデータサイズ：８KBの読み出し要求の処理を終了する。
【０２２９】
次に、ホストＡからストレージ２に対して、論理アドレス：0x00002000に対するデータサイズ：４KBの書き込み要求が発行される。ストレージ２のアクセス要求変換部２２は、ホストＡからの書き込み要求をアクセス要求テーブル２２１Ｂ（図１６）に登録し（図１６のID=2のWrite）、アドレス変換部２３を通してアドレス変換テーブル２３１Ｂ（図１７）を参照して、書き込み要求を、ページ単位のアクセスコマンドに変換する。なお、アクセス要求テーブル２２１Ｂ（図１６）には、前記読み出し要求（Read要求）のエントリ（アクセス先アドレス：0x00001000）が残されているが、これは、単に、実施例を説明する際の便宜上の記載であり、実際には読み出し要求の処理終了時に削除される。
【０２３０】
ページ割り当て部２６（図２）は、書き込みデータの格納先となる空きページの割り当てを行う。初期の状態では、空きページの選択元となるページグループ（ＰＧ）が未選択の状態であるため、ページ割り当て部２６は、記憶領域確保部２５（図２）に対して、ページグループ（ＰＧ）の確保を要求し、前述した図１０のステップＳ３０３以降に示した処理を実行する。
【０２３１】
記憶領域確保部２５は、性能要件指定部２７（図２）から、性能要件テーブル２７１（図２）の性能要件報を取得する。本実施例では、性能要件テーブル２７１は、未使用ページ率の下限（最小値）を格納する未使用ページ要件テーブル２７１Ｂ（図２０）として構成されている。図２０の例では、未使用ページ率の下限（最小未使用ページ率）は５０％に設定されている。
【０２３２】
未使用ページ率が５０％以上であるという条件を満たすためのページグループ（ＰＧ：３２ページ）の空きページ数ｎは、１６以上である。
【０２３３】
ページグループテーブル２５１Ｂ（図１９）を参照すると、先頭アドレスが0x00200000、または0x00200300のページグループ（ＰＧ）をページ割り当て部２６に対して確保すればよいことが分かる。
【０２３４】
これらのページグループ（ＰＧ）のうち、記憶領域確保部２５は、より空きページ数が多く、書き込みアクセス性能が高くなる先頭アドレスが0x00200000のページグループ（ＰＧ）を確保して、ページ割り当て部２６に通知する。
【０２３５】
本実施例では、未使用ページ要件テーブル２７１Ｂ（図２０）において、書き込み先（データ格納先）に使用するページグループ（ＰＧ）の最小未使用ページを、未使用ページ数の率（割合）で定義している。ただし、書き込み先（データ格納先）として使用するページグループ（ＰＧ）に含まれるべき最小未使用ページ数の値で示してもよい。
【０２３６】
性能要件指定部２７（図２）は、未使用ページ要件テーブル２７１Ｂ（図２０）に記憶保持されている、書き込み先（データ格納先）となるページグループ（ＰＧ）の最小未使用ページ率が変更されていた場合、図１０のステップＳ３１０、Ｓ３１１に示した処理を実行する。ただし、図１０のステップＳ３０４における「性能下限、性能上限の要件を満たす」を、「最小未使用ページ率以上であるという性能要件を満たす」等と置き換え、ステップＳ３１０における「性能下限、性能上限の維持に必要な」を、「最小未使用ページ率以上であるという要件を満たす」等と読み替える。
【０２３７】
性能要件指定部２７は、記憶領域確保部２５で求められた、性能要件を満たすためのページグループ（ＰＧ）の空きページ数を取得する。
【０２３８】
本実施例では、書き込みデータに対して論理アドレスに割り当てられていない、空きページを新たに割り当てることで、追記書き込みを行う。
【０２３９】
このため、空きページの分布状況によらずに、空きページを割り当てるためのページグループ（ＰＧ）を確保することが可能である必要がある。つまり、空きページを５０％、３２ページ中、１６ページ以上の空きページを持つページグループ（ＰＧ）が、常に１個以上記憶媒体２１上に存在するように、ストレージ２で提供される記憶容量の容量値が設定される。
【０２４０】
提供容量決定部２８（図２）は、前記情報（３２ページ中、１６ページ以上の空きページを持つページグループ（ＰＧ）が、常に１個以上記憶媒体２１上に存在する）から、ストレージ２が提供する記憶容量を、記憶媒体２１の５０％の容量が空きページとなる容量値：
1280GB × 50% = 640GB
と算出する。
【０２４１】
ページ割り当て部２６は、記憶領域確保部２５から通知されたページグループ（ＰＧ）について、アドレスの先頭から空きページを探し、書き込みデータの格納先論理アドレスに割り当てる。
【０２４２】
図１９のページグループテーブル２５１Ｂにおいて、先頭アドレス：0x00200000のページグループ（ＰＧ）の先頭のページ（割り当て情報のビットマップにおける最上位ビット）は空きページであるため、記憶媒体２１における、先頭アドレスが0x00200000のページを、アクセス要求変換部２２から通知された、書き込み先（書き込みデータ格納先）の論理アドレス：0x00002000に対して割り当てる。また、アドレス変換部２３を通して、アドレス変換テーブル２３１Ｂの対応するエントリを更新する（図１７の論理アドレス：0x00002000のエントリ参照）。
【０２４３】
アクセス要求変換部２２は、アドレス変換テーブル２３１Ｂの更新結果を受けて、論理アドレス：0x00002000からデータサイズ：４KBの書き込みを、物理アドレス：0x00200000のページに対するデータサイズ１ページ分の書き込みコマンドに変換して、アクセス実行部２４に通知し、コマンドテーブル２４１Ｂに登録する（図１８のID＝３のWrite参照）。なお、図１８のコマンドテーブル２４１Ｂについても、完了した読み出し要求から変換された読み出しコマンド（ID=1、２）のエントリが残されているが、これは、単に、実施例を説明する際の便宜上の記載であり、実際には読み出しコマンド（Readコマンド）の完了時に削除される。
【０２４４】
アクセス実行部２４は、書き込みコマンドを記憶媒体２１に対して発行する。アクセス実行部２４は、書き込みコマンドが完了すると、アクセス要求変換部２２に対して、書き込みコマンドの完了を通知する。また、アクセス実行部２４は、記憶領域確保部２５を通して、図１９のページグループテーブル２５１Ｂの先頭アドレス：0x00200000のページグループ（ＰＧ）について、先頭ページの割り当て情報を、バイナリ値１（割り当て済み）に更新する。アクセス要求変換部２２は、ホストＡに書き込み要求の完了を通知して、論理アドレス：0x00002000に対するデータサイズ４KBの書き込み要求の処理を終了する。
【０２４５】
次に、ホストＡからストレージ２に対して、論理アドレス：0x00003000に対するデータサイズ：４KBの書き込みが要求される。
【０２４６】
ストレージ２のアクセス要求変換部２２は、書き込み要求をアクセス要求テーブル２２１Ｂ（図１６）に登録し（図１６のID３のWrite）、アドレス変換部２３を通してアドレス変換テーブル２３１Ｂ（図１７）を参照して、書き込み要求をページ単位のアクセスコマンドに変換する。
【０２４７】
ページ割り当て部２６は、書き込みデータの格納先となる空きページの割り当てを行う。以前の書き込み要求の処理において、記憶領域確保部２５によって確保されたページグループ（ＰＧ）の空きページが残っている。このため、ページ割り当て部２６は、前回確保されたページグループ（ＰＧ）について、アドレスの先頭から次の空きページを探し、書き込みデータの格納先論理アドレスに割り当てる。ページグループテーブル２５１Ｂ（図１９）において、先頭アドレス：0x00200000のページグループ（ＰＧ）について次の空きページは、先頭から４ページ目、つまりアドレス：0x00200018のページであることが分かる。よって、ページ割り当て部２６は、記憶媒体２１における、先頭アドレスが0x00200018のページを、アクセス要求変換部２２から通知された書き込み先の論理アドレス：0x00003000に割り当てる。また、ページ割り当て部２６は、アドレス変換部２３を通して、アドレス変換テーブル２３１Ｂ（図１７）において、対応するエントリ（論理アドレス：0x00003000のエントリ）を更新する。
【０２４８】
アクセス要求変換部２２は、アドレス変換テーブル２３１Ｂ（図１７）の更新結果を受けて、論理アドレス：0x00003000から、データサイズ：４KBの書き込みを、物理アドレス：0x00200018のページに対するデータサイズ：４KB（１ページ分）の書き込みコマンドに変換する。アクセス要求変換部２２は、書き込みコマンドをアクセス実行部２４に通知し、コマンドテーブル２４１Ｂに登録する（図１９のID=4のWrite）。
【０２４９】
アクセス実行部２４は、書き込みコマンドを記憶媒体２１に対して発行する。アクセス実行部２４は、書き込みコマンドが完了すると、アクセス要求変換部２２に対して、当該書き込みコマンドの完了を通知する。また、アクセス実行部２４は、記憶領域確保部２５を通して、ページグループテーブル２５１Ｂ（図１９）の先頭アドレス：0x00200000のページグループ（ＰＧ）について、先頭から４ページ目の割り当て情報を、バイナリ値１（割り当て済み）に更新する。
【０２５０】
アクセス要求変換部２２は、ホストＡに対して、書き込み要求の完了を通知し、論理アドレス：0x00003000に対するデータサイズ：４KBの書き込み要求の処理を終了する。
【０２５１】
本実施例によれば、空きページが５０％以上であるページグループ（ＰＧ）が、常に１個以上記憶媒体上に存在するように、ストレージが提供する記憶容量の容量値を設定することで、前記第１の実施例と同様に、追記書き込み方式において、デフラグメント処理を行うことなく、書き込みアクセス性能の低下を回避可能としている。
【０２５２】
なお、上記の特許文献、非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整、組み合わせが可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ乃至選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【０２５３】
１  ホスト
２  ストレージ
３  ネットワーク
２１  記憶媒体
２２  アクセス要求変換部
２３  アドレス変換部
２４  アクセス実行部
２５  記憶領域確保部
２６  ページ割り当て部
２７  性能要件指定部
２８  提供容量決定部
２０１  アクセス受付部
２０２  アクセス実行部
２０３  割り当て部
２０４  記憶領域確保部
２０５  記憶媒体
２２１、２２１Ａ、２２１Ｂ  アクセス要求テーブル
２３１、２３１Ａ、２３１Ｂ  アドレス変換テーブル
２４１、２４１Ａ、２４１Ｂ  コマンドテーブル
２５１、２５１Ａ、２５１Ｂ  ページグループテーブル
２７１、２７１Ａ  性能要件テーブル
２７１Ｂ  性能要件テーブル（未使用ページ要件テーブル）
【図１】
2015076354.tif 000003
【図２】
2015076354.tif 000004
【図３】
2015076354.tif 000005
【図４】
2015076354.tif 000006
【図５】
2015076354.tif 000007
【図６】
2015076354.tif 000008
【図７】
2015076354.tif 000009
【図８】
2015076354.tif 000010
【図９】
2015076354.tif 000011
【図１０】
2015076354.tif 000012
【図１１】
2015076354.tif 000013
【図１２】
2015076354.tif 000014
【図１３】
2015076354.tif 000015
【図１４】
2015076354.tif 000016
【図１５】
2015076354.tif 000017
【図１６】
2015076354.tif 000018
【図１７】
2015076354.tif 000019
【図１８】
2015076354.tif 000020
【図１９】
2015076354.tif 000021
【図２０】
2015076354.tif 000022
【図２１】
2015076354.tif 000023
【図２２】
2015076354.tif 000024
【国際調査報告】
2015076354.tif 000025
2015076354.tif 000026