(57)【要約】【課題】単一の論理ディスクに対する複数のシーケンシャルライトの性能の低下を防止できるようにする。【解決手段】構成管理部２６０は、ＲＡＩＤアレイ１２０-0〜１２０-5のそれぞれの記憶領域を一定サイズの物理スライスに分割して管理し、これらの物理スライスのうちの一部の物理スライスの群を論理ディスクの論理スライスの群に割り当てる。割り当て要求部２４２は論理ディスクに対する複数のシーケンシャルライトの実行時に、複数のシーケンシャルライトのそれぞれについて、論理ディスク内の書き込み先となる論理スライスに対する、ＲＡＩＤアレイ１２０-0〜１２０-5のうちの異なるディスクアレイ内の物理スライスの再割り当てを構成管理部２６０に要求する。【選択図】      図２
2012014450.tif 000002
【特許請求の範囲】
【請求項１】
複数のディスクアレイを備えたデータ記憶装置において、
前記複数のディスクアレイのそれぞれの記憶領域を一定サイズの物理スライスに分割して管理すると共に、これらの物理スライスのうちの一部の物理スライスの群を論理ディスクの論理スライスの群に割り当てる構成管理手段と、
前記論理ディスクに対する複数のシーケンシャルライトの実行時に、前記複数のシーケンシャルライトのそれぞれについて、前記論理ディスク内の書き込み先となる論理スライスに対する、前記複数のディスクアレイのうちの異なるディスクアレイ内の物理スライスの再割り当てまたは新規割り当てを前記構成管理手段に要求する割り当て要求手段と
を具備することを特徴とするデータ記憶装置。
【請求項２】
前記論理ディスクの論理スライスの群には、当該論理ディスクの作成時に、前記複数のディスクアレイの物理スライスのうちの一部の物理スライスの群が前記構成管理手段によって割り当てられ、
前記割り当て要求手段は、前記複数のシーケンシャルライトのそれぞれについて書き込み先となる論理スライスに既に割り当てられている物理スライスが同一のディスクアレイに属する場合、当該書き込み先となる論理スライスに対する、前記複数のディスクアレイのうちの異なるディスクアレイ内の物理スライスの再割り当てを、前記書き込み先となる論理スライスと再割り当てに用いられるべき物理スライスが属するディスクアレイとを指定することによって前記構成管理手段に要求し、
前記構成管理手段は、前記指定された論理スライスに既に割り当てられている物理スライスが属するディスクアレイが前記指定されたディスクアレイと異なる場合、前記指定されたディスクアレイ内の未使用の物理スライスを再割り当てする
ことを特徴とする請求項１記載のデータ記憶装置。
【請求項３】
ホスト装置からのライト要求で指定されたデータを一時格納するためのキャッシュメモリと、
前記論理ディスクに対する複数のシーケンシャルライトの実行によって前記キャッシュメモリに格納されたデータを、シーケンシャルライト別に、前記一定サイズよりも小さいサイズのストライプグループを単位に、前記複数のディスクアレイのうちの対応する論理スライスに割り当てられているディスクアレイ内の物理スライスに書き込むための後追い吐き出し処理を行う入出力管理手段とを更に具備し、
前記構成管理手段は、第１の論理スライスに第１の物理スライスが割り当てられている状態で、前記第１の論理スライスに第２の物理スライスが再割り当てされ、しかる後に前記キャッシュメモリに格納されたデータが前記第２の物理スライスに書き込まれた場合、前記第２の物理スライスへのデータの書き込みが完了した後に、前記第１の物理スライスを任意の論理スライスに割り当て可能な未使用状態に設定する
ことを特徴とする請求項２記載のデータ記憶装置。
【請求項４】
前記論理ディスクを構成する論理スライス毎に、当該論理スライスを管理するための第１の管理データであって、当該論理スライスに割り当てられている物理スライスを指し示す第１のポインタ及び当該論理スライスに再割り当てされた物理スライスを指し示す第２のポインタとを含む第１の管理データを保持する論理ディスク管理テーブルと、
前記複数のディスクアレイを構成する物理スライス毎に、当該物理スライスを管理するための第２の管理データであって、当該物理スライスが属するディスクアレイを示すディスクアレイ情報及び当該物理スライスが割り当てられている論理スライスを指し示す第３のポインタを含む第２の管理データを保持するスライス管理テーブルと、
前記複数のディスクアレイを構成する物理スライスのうち、未使用状態にある物理スライスを管理するための第３の管理データであって、当該物理スライスが属するディスクアレイを示すディスクアレイ情報を含む第３の管理データを保持するプール管理テーブルとを更に具備し、
前記構成管理手段は、前記指定された論理スライスに再割り当てすべき前記未使用の物理スライスの前記第３の管理データを前記プール管理テーブルから選択して前記第２の管理データとして前記スライス管理テーブルに登録し直すと共に、前記指定された論理スライスを指し示すように当該登録し直された第２の管理データの前記第３のポインタを設定し、且つ前記指定された論理スライスの前記第１の管理データの前記第２のポインタを前記再割り当てすべき物理スライスを指し示すように設定する
ことを特徴とする請求項３記載のデータ記憶装置。
【請求項５】
前記論理ディスクの作成時、当該論理ディスクの論理スライスの群には物理スライスの群が割り当てられておらず、
前記割り当て要求手段は、前記複数のシーケンシャルライトのそれぞれについて書き込み先となる論理スライスに対する、前記複数のディスクアレイのうちの異なるディスクアレイ内の物理スライスの新規割り当てを、前記書き込み先となる論理スライスと割り当てに用いられるべき物理スライスが属するディスクアレイとを指定することによって前記構成管理手段に要求し、
前記構成管理手段は、前記指定された論理スライスに前記指定されたディスクアレイ内の未使用の物理スライスを新規に割り当てる
ことを特徴とする請求項１記載のデータ記憶装置。
【請求項６】
一定サイズの物理スライスに分割して管理される複数のディスクアレイと、割り当て要求手段と、構成管理手段とを備えたデータ記憶装置におけるスライス割り当て方法であって、
前記論理ディスクに対する複数のシーケンシャルライトの実行時に、前記複数のシーケンシャルライトのそれぞれについて、前記論理ディスク内の書き込み先となる論理スライスに対する、前記複数のディスクアレイのうちの異なるディスクアレイ内の物理スライスの再割り当てまたは新規割り当てを前記割り当て要求手段が前記構成管理手段に要求するステップと、
前記割り当て要求手段による要求に応じて、前記構成管理手段が、前記複数のシーケンシャルライトのそれぞれについて、前記論理ディスク内の書き込み先となる論理スライスに対し、前記複数のディスクアレイのうちの異なるディスクアレイ内の未使用の物理スライスを再割り当てするまたは新規に割り当てるステップと
を具備することを特徴とするスライス割り当て方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のディスクアレイのそれぞれの記憶領域が一定サイズの物理スライスに分割して管理され、これらの物理スライスのうちの一部の物理スライスの群が論理ディスクの論理スライスの群に割り当てられるデータ記憶装置に係り、特に、当該論理ディスクに対する複数のシーケンシャルライトの実行時に、当該論理ディスク内のライト先となる論理スライスに物理スライスを再割り当てするまたは新規に割り当てるデータ記憶装置及びスライス割り当て方法に関する。
【背景技術】
【０００２】
従来から１つまたは複数のディスクアレイを備えたデータ記憶装置が知られている。一般にディスクアレイは、複数のハードディスクドライブ（ＨＤＤ）を用いて構成される。また、データ記憶装置を利用するホスト装置から認識可能な論理ディスクは、単一または少数のディスクアレイから構築されるのが一般的である。
【０００３】
特許文献１は、ディスクアレイに対するシーケンシャルライトの実行時に、並列動作するドライブの数をできるだけ多くすることができる、ドライブ内の領域割り当て技術（以下、従来技術と称する）を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−１８５２７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし従来技術では、単一または少数のディスクアレイから構築される論理ディスクに対して複数のシーケンシャルライトが実行される場合、ディスクアレイ内の同一のドライブに対する複数のライトが発生する。ドライブの物理的性質上、当該ドライブへの複数のライトを同時に実行することはできず、当該ドライブへのライトアクセスがランダムになる。このように従来技術では、論理ディスクに対して複数のシーケンシャルライトが実行される場合、当該複数のシーケンシャルライト相互の影響で、当該複数のシーケンシャルライトの各々はシーケンシャル性が失われ、性能を低下させる要因となっていた。
【０００６】
本発明は上記事情を考慮してなされたものでその目的は、単一の論理ディスクに対する複数のシーケンシャルライトの実行時に、当該複数のシーケンシャルライトのそれぞれについて、当該論理ディスク内の書き込み先となる論理スライスに対し、異なるディスクアレイ内の物理スライスを再割り当てするまたは新規に割り当てることにより、単一の論理ディスクに対する複数のシーケンシャルライトの性能の低下を防止できるデータ記憶装置及スライス割り当て方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の１つの観点によれば、複数のディスクアレイを備えたデータ記憶装置が提供される。このデータ記憶装置は、前記複数のディスクアレイのそれぞれの記憶領域を一定サイズの物理スライスに分割して管理すると共に、これらの物理スライスのうちの一部の物理スライスの群を論理ディスクの論理スライスの群に割り当てる構成管理手段と、前記論理ディスクに対する複数のシーケンシャルライトの実行時に、前記複数のシーケンシャルライトのそれぞれについて、前記論理ディスク内の書き込み先となる論理スライスに対する、前記複数のディスクアレイのうちの異なるディスクアレイ内の物理スライスの再割り当てまたは新規割り当てを前記構成管理手段に要求する割り当て要求手段とを具備することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、論理ディスクに対する複数のシーケンシャルライトの実行時に、当該複数のシーケンシャルライトのそれぞれについて、当該論理ディスク内のライト先となる論理スライスに対し、異なるディスクアレイ内の物理スライスを再割り当てするまたは新規に割り当てる構成とすることにより、同一論理ディスクに対する複数のシーケンシャルライトの性能の低下を防止できる
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係るデータ記憶装置の概略構成を示すブロック図。
【図２】図１に示される制御装置のモジュール構成を主として示すブロック図。
【図３】ＲＡＩＤアレイ内の物理スライスと論理ディスク内の論理スライスとの関係の一例を示す図。
【図４】図２に示される論理ディスク管理テーブルの各エントリに保持される論理ディスク管理データのデータ構造例を示す図。
【図５】図２に示されるスライス管理テーブルの各エントリに保持されるスライス管理データのデータ構造例を示す図。
【図６】図２に示されるプール管理テーブルの各エントリに保持されるプール管理データのデータ構造例を示す図。
【図７】論理ディスクが２つのＲＡＩＤアレイ内の一部のスライスの集合から構成されている場合における、論理ディスク管理データ及びスライス管理データの一例を示す図。
【図８】シーケンシャルライトの３つのパターンを説明するための図。
【図９】ＲＡＩＤアレイにおける、複数の記憶媒体、ストライプ及びストライプグループの関係を示す図。
【図１０】シーケンシャルライトと、当該シーケンシャルライトにおける後追い吐き出し処理とを説明するための図。
【図１１】同実施形態で適用されるＩＯ特性判定処理の手順を示すフローチャート。
【図１２】シーケンシャル判定テーブルのデータ構造の一例を示す図。
【図１３】同実施形態で適用される性能最適化処理の手順を示すフローチャート。
【図１４】同実施形態で適用されるスライス入れ替え処理の手順を示すフローチャート。
【図１５】同実施形態における論理スライスへの物理スライスの再割り当ての動作の流れを説明するための図。
【図１６】同実施形態における論理スライスへの物理スライスの再割り当ての動作の流れを説明するための図。
【図１７】同実施形態の変形例における論理スライスへの物理スライスの新規割り当ての動作の流れを説明するための図。
【図１８】同実施形態の変形例における論理スライスへの物理スライスの新規割り当ての動作の流れを説明するための図。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態につき図面を参照して説明する。  
図１は本発明の一実施形態に係るデータ記憶装置１０の概略構成を示すブロック図である。  
図１に示されるデータ記憶装置１０は、制御装置１１と、複数の記憶媒体１２とから構成される。制御装置１１はデータ通信路２０を介して接続されるホスト装置と記憶媒体１２との間に介在して設けられる。記憶媒体１２は、例えばハードディスクドライブのディスクである。
【００１１】
制御装置１１は、ホストインタフェース部（ＨＯＳＴ  Ｉ／Ｆ）１１１、ＣＰＵ１１２、プログラムメモリ１１３、キャッシュメモリ１１４及びＨＤＤインタフェース部（ＨＤＤ  Ｉ／Ｆ）１１５を有している。なお、データ通信路２０を介してデータ記憶装置１０に接続されるものとしては、ホスト装置となるコンピュータまたはその集合体の他、他のデータ記憶装置も想定される。
【００１２】
ホストインタフェース部１１１及びＨＤＤインタフェース部１１５は、それぞれ外部接続される装置との間の通信を制御する。ホストインタフェース部１１１はデータ通信路２０側の通信を司る。ＨＤＤインタフェース部１１５は記憶媒体１２側の通信を司る。
【００１３】
ＣＰＵ１１２は、制御装置１１における必要処理を実行するものであり、プログラムメモリ１１３には、そのための各種プログラムが格納されている。本実施形態で適用される、後述するスライス割り当てのための手法（より詳細には、論理ディスク内のライト先となる論理スライスに物理スライスを再割り当てするまたは新規に割り当てるための手法）は、このプログラムメモリ１１３（コンピュータ読み取り可能な記憶媒体）に格納されているプログラムをＣＰＵ１１２が読み取って実行することによって実現されるものとする。プログラムメモリ１１３には、上述のプログラムを格納するための領域に加えて、ＣＰＵ１１２が利用するデータ等を格納するための領域、更には後述する構成管理用記憶部２７０及びシーケンシャル判定データ記憶部２７４（図２参照）のための領域も確保されている。
【００１４】
キャッシュメモリ１１４は、データ通信路２０を介して接続されるホスト装置（或いは他のデータ記憶装置）からデータ記憶装置１０内の記憶媒体１２に対して発行される入出力要求に対するバッファの役目を提供する。キャッシュメモリ１１４は、ある論理的な単位に分割されて管理されている。この分割された単位で自由にキャッシュメモリ１１４内の記憶位置に対応させて、その記憶位置のデータをキャッシュメモリ１１４に格納することができる。この分割された１つの単位をキャッシュブロックと呼ぶ。
【００１５】
ここで、キャッシュメモリ１１４は、例えば１６ＫＢ（キロバイト）単位のキャッシュブロックに分割されている。各キャッシュブロックは、例えばセットアソシアティブ方式によるメモリマッピングで管理される。キャッシュメモリ１１４上では、リードキャッシュ（ＲＤＣ）とライトバックキャッシュ（ＷＢＣ）の２種類のデータが管理される。ホスト装置からのリード／ライトアクセスに応じて各エントリがサーチされ、対象となるキャッシュブロックとホスト装置または記憶媒体１２との間でデータ転送が行われる。
【００１６】
例えば、ホスト装置から記憶媒体１２へのデータ書き込み処理は、キャッシュメモリ１１４を用いて次のように行われる。まず、入出力要求で指定されたデータがキャッシュメモリ１１４にエントリされた時点で、要求元のホスト装置に対して書き込み処理完了が通知される。その後に、キャッシュメモリ１１４から記憶媒体１２に対する実際のデータ書き込みが実行される。
【００１７】
一方、記憶媒体１２からのデータ読み込み処理は、次のように行われる。まず、該当するデータがキャッシュメモリ１１４にエントリ（キャッシュ）されているか否かが判定され、エントリされていれば、そのデータがキャッシュメモリ１１４からデータ通信路２０を介してホスト装置に返される。これに対し、該当するデータがキャッシュメモリ１１４にエントリされていないならば、データが記憶媒体１２からキャッシュメモリ１１４に読み出されて、しかる後に、要求元のホスト装置に対して読み出されたデータがデータ通信路２０を介して返される。
【００１８】
図２は、図１に示される制御装置１１のプログラムメモリ１１３に格納されるプログラムをＣＰＵ１１２が読み取って実行することによって実現されるモジュール構成を主として示すブロック図である。
【００１９】
ホストインタフェース制御部（ＨＯＳＴ Ｉ／Ｆ制御部）２１０は、ホスト装置（または他のデータ記憶装置）との間のインタフェース処理を担当する。ＩＯ（入出力）管理部２２０は、ＩＯアクセス管理及びＩＯアクセス領域制御を実行する。
【００２０】
キャッシュ管理部２３０は、キャッシュメモリ１１４におけるＩＯアクセス管理を実行する。ＩＯ特性判定部２４０は、シーケンシャル性検出部２４１及び割り当て要求部２４２を含む。シーケンシャル性検出部２４１は、ホスト装置からのＩＯ要求を監視することによりＩＯアクセスの統計情報を取得し、当該統計情報に基づいてＩＯアクセスのシーケンシャル性を検出する。シーケンシャル性検出部２４１はＩＯアクセスのシーケンシャル性を検出した場合、シーケンシャルライトであれば後追い吐き出し要求を、シーケンシャルリードであればデータ先読み要求を、ＩＯ管理部２２０に領域を指定して発行する。割り当て要求部２４２は、同一論理ディスクに対する複数のシーケンシャルライトの実行時に、当該複数のシーケンシャルライトのそれぞれについて、論理ディスク内の書き込み先となる論理スライスに対する、異なるディスクアレイ内の物理スライスの再割り当てを構成管理部２６０に要求する。論理スライス及び物理スライスについては後述する。
【００２１】
論理／物理アドレス管理部２５０は論理アドレスから物理アドレスへの変換及び物理アドレスから論理アドレスへの変換を行う。構成管理部２６０は論理アドレスと物理アドレスとのマッピングを管理する。構成管理用記憶部２７０は、論理ディスク管理テーブル２７１、スライス管理テーブル２７２及びプール管理テーブル２７３を格納する。これらテーブル２７１〜２７３の詳細については後述する。
【００２２】
シーケンシャル判定データ記憶部２７４は、論理ディスク毎にシーケンシャル判定テーブル２７５を格納する。シーケンシャル判定テーブル２７５の各エントリはシーケンシャル判定データを保持するのに用いられる。シーケンシャル判定データはホスト装置から要求されたＩＯアクセスの統計情報であり、対応する論理ディスクに対するライトのシーケンシャル性の、ＩＯ特性判定部２４０内のシーケンシャル性検出部２４１による判定に用いられる。
【００２３】
本実施形態において、複数の記憶媒体１２は、例えばディスクアレイ１２０-0〜１２０-5を構成する。ディスクアレイ１２０-0〜１２０-5の各々は、ＲＡＩＤ（Redundant Arrays of Independent Disks，Redundant Arrays of Inexpensive Disks）構成の記憶媒体１２の集合である。そこで、ディスクアレイ１２０-0〜１２０-5をＲＡＩＤアレイ１２０-0〜１２０-5と称する。ＲＡＩＤアレイ１２０-0〜１２０-5は、例えば固有のＲＡＩＤアレイ番号０〜５によって識別される。ここで、ＲＡＩＤアレイ１２０-0〜１２０-5の集合をプール１２１と称する。ＲＡＩＤアレイ１２０-i（ｉ＝０，１…５）の記憶領域は、一定のサイズＤの部分領域（以下、物理スライスと称する）に分割して管理される。１つ以上のＲＡＩＤアレイ１２０-i内の任意の物理スライスの集合は、ホスト装置から認識可能な論理ディスクを構成する。
【００２４】
ＲＡＩＤ制御部２８０はＲＡＩＤアレイ１２０-iを記憶媒体１２の集合として管理する。ＲＡＩＤ制御部２８０は、ＩＯ特性判定部２４０内のシーケンシャル性検出部２４１からの要求に応じて、ＲＡＩＤアレイ１２０-iとの間のディスクデータの転送を制御する。ＨＤＤインタフェース制御部（ＨＤＤ Ｉ／Ｆ制御部）２９０は、ＲＡＩＤ制御部２８０からの要求に応じて、ＲＡＩＤアレイ１２０-i内のディスクデータ転送の対象となる、１つ以上の記憶媒体１２へのアクセスを制御する。
【００２５】
上述したように、シーケンシャル性検出部２４１はホスト装置からのＩＯ要求を監視する。ホスト装置からのＩＯ要求の列がライト要求の列であるものとする。シーケンシャル性検出部２４１は、ライト要求の列に基づいてライト要求アドレスに関する統計情報を取得し、当該統計情報に基づいてＩＯアクセスのシーケンシャル性を検出する。従来技術ではシーケンシャル性検出部２４１は、シーケンシャル性を検出した場合に、ホスト装置からのＩＯ要求で指定されたライト要求アドレスの後を追うように、ＲＡＩＤアレイ１２０-iに対してキャッシュメモリ１１４上の未保存データの書き込みを要求する。ところが従来技術では、ホスト装置からのシーケンシャルライトが複数存在する場合、ＲＡＩＤアレイ１２０-iを構成する個々の記憶媒体１２にとって、シーケンシャル性検出部２４１から要求される書き込みのための論理アドレスが、シーケンシャルライト相互間でシーケンシャルではなくなり、性能が低下するおそれがあった。
【００２６】
図３は、ＲＡＩＤアレイ内のスライスと論理ディスクとの関係の一例を示す。
【００２７】
図３において、論理ディスク３００の論理的な記憶領域は、ＲＡＩＤアレイ１２０-iと同様に、一定サイズＤの部分領域（以下、論理スライスと称する）３１０に分割して管理される。論理ディスク３００内の各論理スライス３１０には、当該論理ディスク３００上の論理アドレス（ＬＢＡ）の順にシーケンス番号（以下、論理スライス番号と称する）が割り当てられる。
【００２８】
図３の例では、論理ディスク３００内の論理スライス３１０の集合の一部には、ＲＡＩＤアレイ１２０-0内の物理スライス３２０の集合の一部がスライス単位で割り当てられ、論理ディスク３００内の論理スライス３１０の集合の残りには、ＲＡＩＤアレイ１２０-1内の物理スライス３２０の集合の一部がスライス単位で割り当てられている。この論理ディスク３００の状態を、論理ディスク３００がＲＡＩＤアレイ１２０-0及び１２０-1内の一部の物理スライス３２０の集合から構成されていると称する。論理ディスク３００を識別するための論理ディスク番号は０であり、ＲＡＩＤアレイ１２０-0，１２０-1を識別するためのＲＡＩＤアレイ番号は、それぞれ０，１であるものとする。
【００２９】
図３において、ＲＡＩＤアレイ１２０-0の記憶領域はＮ＋１個の物理スライス３２０に分割して管理され、ＲＡＩＤアレイ１２０-1の記憶領域はＭ＋１個の物理スライス３２０に分割して管理されている。ＲＡＩＤアレイ１２０-0内のＮ＋１個の物理スライス３２０には、当該ＲＡＩＤアレイ１２０-0上の物理アドレスの順に物理スライス番号０〜Ｎが割り当てられ、ＲＡＩＤアレイ１２０-1内のＭ＋１個の物理スライス３２０には、当該ＲＡＩＤアレイ１２０-1上の物理アドレスの順に物理スライス番号０〜Ｍが割り当てられている。
【００３０】
図３の例では、論理ディスク３００内の論理スライス番号が０の論理スライス３１０には、ＲＡＩＤアレイ１２０-0内の物理スライス番号が０の物理スライス３２０が割り当てられ、論理ディスク３００内の論理スライス番号が１の論理スライス３１０には、ＲＡＩＤアレイ１２０-1内の物理スライス番号が０の物理スライス３２０が割り当てられている。
【００３１】
図４は論理ディスク管理テーブル２７１の各エントリに保持される論理ディスク管理データのデータ構造例を示す。論理ディスク管理テーブル２７１は、図１に示すデータ記憶装置１０が有する全ての論理ディスク内の全論理スライスの数に一致するエントリを有する。
【００３２】
図４に示すように、論理ディスク管理データ（第１の管理データ）は、論理ディスク内の論理スライスについて、論理ディスク番号、論理スライス番号、物理リストポインタ（第１のポインタ）及び物理ミラーリストポインタ（第２のポインタ）から構成される。論理ディスク番号は、対応する論理スライスが属する論理ディスクを識別するための番号であり、論理スライス番号は当該論理ディスク内で当該論理スライスを識別するための番号である。
【００３３】
物理リストポインタは、対応する論理スライスに割り当てられている物理スライスを指し示す。より詳細には物理リストポインタは、対応する論理スライスに割り当てられている物理スライスに関する、スライス管理テーブル２７２内のスライス管理データを指し示す。つまり、物理リストポインタには、対応する論理スライスに割り当てられている物理スライスに関するスライス管理データが繋がれる。
【００３４】
物理ミラーリストポインタは、対応する物理リストポインタで指し示される物理スライスのミラーとして用いられる物理スライスを指し示す。より詳細には物理ミラーリストポインタは、対応する物理リストポインタで指し示される物理スライスのミラーとして用いられる物理スライスに関する、スライス管理テーブル２７２内のスライス管理データを指し示す。つまり、物理ミラーリストポインタには、対応する物理リストポインタで指し示される物理スライスのミラーとして用いられる物理スライスに関するスライス管理データが繋がれる。このミラーとして用いられる物理スライスは、対応する物理リストポインタによって指し示される物理スライス（つまり対応する論理スライスに割り当てられている物理スライス）に代えて再割り当てされた物理スライスである。
【００３５】
図５はスライス管理テーブル２７２の各エントリに保持されるスライス管理データのデータ構造例を示す。スライス管理テーブル２７２は、図１に示すデータ記憶装置１０が有する全てのＲＡＩＤアレイ１２０-0〜１２０-5内の全物理スライスの数に一致するエントリを有する。
【００３６】
図５に示すように、スライス管理データ（第２の管理データ）は、ＲＡＩＤアレイ番号、物理スライス番号及び論理リストポインタ（第３のポインタ）から構成される。ＲＡＩＤアレイ番号は、対応する物理スライスが属するＲＡＩＤアレイを識別するための番号であり、物理スライス番号は当該ＲＡＩＤアレイ内で当該物理スライスを識別するための番号である。
【００３７】
論理リストポインタは、対応する物理スライスが割り当てられている論理スライスに関する、論理ディスク管理テーブル２７１内の論理ディスク管理データを指し示す。つまり、論理リストポインタには、対応する物理スライスが割り当てられている論理スライスに関する論理ディスク管理データが繋がれる。
【００３８】
図６はプール管理テーブル２７３の各エントリに保持されるプール管理データのデータ構造例を示す。データ記憶装置１０が１つのプール１２１を有する本実施形態では、プール管理テーブル２７３は１つのエントリを有する。
【００３９】
図６に示すように、プール管理データ（第３の管理データ）は、プール番号、所属ＲＡＩＤアレイ番号配列、所属論理ディスク番号配列及びフリーリストから構成される。プール番号は、対応するプールを識別するための番号である。所属ＲＡＩＤアレイ番号配列は、対応するプールに属する全てのＲＡＩＤアレイを識別するためのＲＡＩＤアレイ番号のリストであり、所属論理ディスク番号配列は、対応するプールに属するＲＡＩＤアレイ群により構成される全ての論理ディスクを識別するための論理ディスク番号のリストである。フリーリストは、所属ＲＡＩＤアレイ番号配列で示されるＲＡＩＤアレイの群に属する全ての物理スライスのうち、未使用の物理スライスに関するスライス管理データを保持する。
【００４０】
図７は、論理ディスク３００が図３に示すようにＲＡＩＤアレイ１２０-0及び１２０-1内の一部のスライス３１０の集合から構成されている場合における、論理ディスク管理データ及びスライス管理データの一例を示す。
【００４１】
次に、データ記憶装置１０における動作について説明する。
【００４２】
構成管理部２６０は、複数の記憶媒体１２を用いてＲＡＩＤアレイ１２０-iを構築する際、当該ＲＡＩＤアレイ１２０-iの記憶領域を、予め定められたサイズＤの物理スライスに分割して、その物理スライスに当該ＲＡＩＤアレイ１２０-i上の物理アドレスの順に物理スライス番号を割り当てることにより、サイズＤの物理スライスの集合を定義する。構成管理部２６０は、定義した物理スライスの集合における物理スライス毎にスライス管理データを生成し、プール管理テーブル２７３のフリーリストに繋ぐ。このフリーリストに繋がれたスライス管理データは、未使用の物理スライスのスライス管理データとして管理される。
【００４３】
構成管理部２６０は、例えばホスト装置から図３に示されるような論理ディスク番号が０の論理ディスク３００の作成が指定された場合、当該ホスト装置によって指定された容量分の物理スライスを、プール管理データのフリーリストに繋がれている未使用の物理スライスのスライス管理データに基づいて確保する。構成管理部２６０は、確保した物理スライス毎に、その物理スライスのスライス管理データをスライス管理テーブル２７２に登録すると共に、指定された論理ディスク３００の論理ディスク管理データを生成して論理ディスク管理テーブル２７１に登録する。このとき構成管理部２６０は、論理ディスク管理データの物理リストポインタに、確保した物理スライスのスライス管理データを繋ぐと共に、当該スライス管理データの論理リストポインタに当該論理ディスク管理データを繋ぐ。これにより、指定された容量分の物理スライスの各々が、当該物理スライスと同一サイズの論理ディスク３００内の論理スライスに割り当てられる。
【００４４】
なお、構成管理部２６０が指定された容量分の物理スライスを確保するのに、何らポリシーに従うことなく任意の物理スライスを選別してもよい。また、ＲＡＩＤアレイ１２０-iが適用するＲＡＩＤレベル等の信頼性や、ＲＡＩＤアレイ１２０-iを構成する記憶媒体１２の種別、当該記憶媒体１２（ここではディスク）の内周側領域または外周側領域等の性能に関する要素を用いて、特定のポリシーに従ってスライスを選別してもよい。論理ディスク管理データにスライス管理データを繋ぐ方法は、論理ディスクの論理アドレスから当該論理アドレスが割り当てられているＲＡＩＤアレイ１２０-iの物理アドレスに変換できるならば、どのような方法でもよい。例えば、ハッシュやツリー形式にするなど、線形リストより高速に変換可能な別の手段で実現してもよい。
【００４５】
論理／物理アドレス管理部２５０は、ホストインタフェース制御部２１０がホスト装置からのＩＯ要求を受信した際には、論理ディスク管理テーブル２７１内の論理ディスク管理データ及びスライス管理テーブル２７２内のスライス管理データを用いて、当該ＩＯ要求で指定された論理ディスク３００の論理アドレスに対応する物理スライスを判定する。論理／物理アドレス管理部２５０は、判定した物理スライスのスライス管理データ内のＲＡＩＤアレイ番号と物理スライス番号とから、指定された論理ディスク３００の論理アドレスをＲＡＩＤアレイ１２０-iの物理アドレスに変換し、当該物理アドレスの物理スライスを対象とするＩＯ処理を、ＲＡＩＤ制御部２８０に対して要求する。
【００４６】
一般に、シーケンシャルライトには、パターンＰ０〜Ｐ２の３つのパターンがある。この３つのパターンＰ０〜Ｐ２について、図８を参照して説明する。  
パターンＰ０の特徴は、ホスト装置からのデータライトを指定するＩＯ要求が、ｗｔ０〜ｗｔ２であるものとすると、先行するＩＯ要求ｗｔｊ（ｊ＝０，１）の終了論理アドレスＬＢＡejに対して、後続するＩＯ要求ｗｔｊ＋１の開始論理アドレスＬＢＡsj+1が連続している点にある。一般に、ＩＯ要求ｗｔｊは、開始論理アドレスＬＢＡsjとアクセスサイズの情報とを含む。終了論理アドレスＬＢＡejは、“開始論理アドレスＬＢＡsj＋アクセスサイズ”の演算によって算出できる。
【００４７】
パターンＰ１の特徴は、ホスト装置からのデータライトを指定するＩＯ要求が、ｗｔ３〜ｗｔ５であるものとすると、先行するＩＯ要求ｗｔｊ（ｊ＝３，４）の終了論理アドレスＬＢＡejに対して、後続するＩＯ要求ｗｔｊ＋１の開始論理アドレスＬＢＡsj+1が連続していないものの、開始論理アドレスＬＢＡsj+1の方が終了論理アドレスＬＢＡejよりも大きく、且つその論理アドレスの差分Δの絶対値｜Δ｜が許容差分を示す閾値未満である点にある。パターンＰ２の特徴は、ホスト装置からのデータライトを指定するＩＯ要求が、ｗｔ６〜ｗｔ８であるものとすると、先行するＩＯ要求ｗｔｊ（ｊ＝６，７）の終了論理アドレスＬＢＡejに対して、後続するＩＯ要求ｗｔｊ＋１の開始論理アドレスＬＢＡsj+1が連続していないものの、開始論理アドレスＬＢＡsj+1の方が終了論理アドレスＬＢＡejよりも小さく、且つその論理アドレスの差分の絶対値｜Δ｜が閾値未満である点にある。
【００４８】
つまり本実施形態では、先行するＩＯ要求の終了論理アドレス（開始論理アドレス＋アクセスサイズ）と、後続するＩＯ要求の開始論理アドレスとの差分Δの絶対値｜Δ｜が閾値未満である場合に、シーケンシャルであると判定される。
【００４９】
ＲＡＩＤアレイ１２０-iは、前述したように複数の記憶媒体１２から構成される。ＲＡＩＤアレイ１２０-i内の複数の記憶媒体１２のそれぞれの記憶領域は、ストライプと称する一定サイズのデータ区分を単位に分割して管理される。ＲＡＩＤアレイ１２０-i内の複数の記憶媒体１２の物理アドレスが同一のストライプをまとめたものをストライプグループと称する。スライスのサイズとストライプグループのサイズとの間には、
スライスのサイズ≫ストライプグループのサイズ
のような関係がある。  
図９は、ＲＡＩＤアレイ１２０-iにおける、複数の記憶媒体１２、ストライプ及びストライプグループの関係を示す。
【００５０】
さて本実施形態では、シーケンシャル性検出部２４１によってＩＯアクセスのシーケンシャル性が検出された場合、シーケンシャルライトであれば、シーケンシャル性検出部２４１からＩＯ管理部２２０に、後追い吐き出し要求が発行される。すると、ＩＯ管理部２２０の管理の下で、後追い吐き出し処理が行われる。
【００５１】
シーケンシャルライトにおける後追い吐き出し処理とは、ホスト装置からのシーケンシャルライトでキャッシュメモリ１１４に書き込まれたデータの当該キャッシュメモリ１１４からＲＡＩＤアレイ１２０-iへの書き出しを、当該シーケンシャルライトの後を追うようにストライプグループサイズ毎に行うことで、効率良くキャッシュメモリ１１４の空きブロックを確保する手法である。例えばＲＡＩＤアレイ１２０-iがＲＡＩＤ５を適用する場合、当該ＲＡＩＤアレイ１２０-iにデータをライトするためには、パリティデータを格納しているストライプへのリードアクセス及びライトアクセスを含めて、２回のリードアクセスと２回のライトアクセスが必要となる。このような非効率なディスクＩ／Ｏ（記憶媒体がディスクの場合）を、上述の後追い吐き出し処理によって抑止することにより、記憶媒体１２への書き出しを高速に行うことができる。
【００５２】
図１０は、ホスト装置からのライトがシーケンシャルライトであると判定された場合における、当該シーケンシャルライトと、当該シーケンシャルライトにおける後追い吐き出し処理とを示す。図１０から明らかなように、後追い吐き出し処理は、ストライプグループＳＴＲＧＲＰ０，ＳＴＲＧＲＰ１，…のようにストライプグループサイズ毎に行われる。
【００５３】
次に、ＩＯ特性判定部２４０によるＩＯ特性判定処理について、図１１のフローチャートを参照して説明する。  
ＩＯ特性判定部２４０内のシーケンシャル性検出部２４１は、以下に述べるように、ホスト装置から要求されたライトの履歴をシーケンシャル判定データとして取得して、当該シーケンシャル判定データに基づいてシーケンシャル性を判定する。シーケンシャル性にはシーケンシャルリードとシーケンシャルライトの２種類がある。ここでは、本発明に関係するシーケンシャルライト、つまりライトのシーケンシャル性の判定についてのみ説明する。
【００５４】
まず、ホストインタフェース制御部２１０がホスト装置からＩＯ要求としてライト要求を受信したものとする（ステップ１１０１）。このライト要求は、ライト先の論理ディスクを指定する論理ディスク番号、ライト先の開始論理アドレス（以下、ＬＢＡまたは開始ＬＢＡと称する）及びアクセスサイズの情報を含む。シーケンシャル性検出部２４１は、ホストインタフェース制御部２１０によって受信されたライト要求（以下、最新のライト要求と称する）の指定する論理ディスク番号及びＬＢＡに対応するシーケンシャル判定テーブル２７５内のエントリが存在するかを判定する（ステップ１１０２）。
【００５５】
図１２は、シーケンシャル判定データ記憶部２７４に格納されるシーケンシャル判定テーブル２７５のデータ構造の一例を示す。図１２に示すように、シーケンシャル判定テーブル２７５は、論理ディスク番号フィールドと複数のエントリとを有する。論理ディスク番号フィールドは論理ディスクの論理ディスク番号を保持し、複数のエントリの各々はシーケンシャル判定データを保持するのに用いられる。シーケンシャル判定データは、開始ＬＢＡ、最新ＬＢＡ、書き込みＬＢＡ、アクセスサイズ、ヒット回数、最適化フラグ、ＲＡＩＤアレイ番号、入れ替え済みスライス番号の各情報から構成される。
【００５６】
シーケンシャル判定データ中の開始ＬＢＡは、最初にシーケンシャルライトが判定されるまでは、対応するライト要求の開始ＬＢＡを示し、最初にシーケンシャルライトが判定された後は当該判定されたシーケンシャルライトの先頭のＬＢＡを示す。最新ＬＢＡは、シーケンシャルライトに対応する受信済みのライト要求の列における最後尾のライト要求のＬＢＡを示し、書き込みＬＢＡは、対応するシーケンシャルライトにおける後追い吐き出し処理で吐き出しの対象となっている最新のストライプグループのＬＢＡを示す。アクセスサイズは、シーケンシャルライトに対応する受信済みのライト要求の列における最後尾のライト要求の指定するアクセスサイズを示す。ヒット回数、最適化フラグ、ＲＡＩＤアレイ番号、入れ替え済みスライス番号については後述する。
【００５７】
本実施形態では、指定の論理ディスク番号を含むシーケンシャル判定テーブル２７５のエントリ群の中に、シーケンシャル判定データ中の最新ＬＢＡ及びアクセスサイズから算出される終了論理アドレス“最新ＬＢＡ＋アクセスサイズ”と最新のライト要求の指定するＬＢＡとの差分Δの絶対値｜Δ｜が閾値未満となるエントリが存在する場合に、最新のライト要求の指定する論理ディスク番号及びＬＢＡに対応するエントリが存在すると判定される（ステップ１１０２のＹｅｓ）。ステップ１１０２の判定がＹｅｓの場合、シーケンシャル性検出部２４１は、最新のライト要求の指定するライトが、該当するシーケンシャル判定テーブル２７５のエントリの情報（シーケンシャル判定データ）で示されるライトに対してシーケンシャル性を有する後続ライトであると判定する。
【００５８】
もし、最新のライト要求の指定する論理ディスク番号及びＬＢＡに対応するシーケンシャル判定テーブル２７５のエントリが存在しないならば（ステップ１１０２のＮｏ）、シーケンシャル性検出部２４１は、シーケンシャル判定テーブル２７５の空きエントリが存在しないかを判定する（ステップ１１０３）。もし、シーケンシャル判定テーブル２７５の空きエントリが存在するならば（ステップ１１０３のＮｏ）、シーケンシャル性検出部２４１はステップ１１０４に進む。このステップ１１０４においてシーケンシャル性検出部２４１は、シーケンシャル判定テーブル２７５の空きエントリにシーケンシャル判定データを設定する。この空きエントリに設定されるシーケンシャル判定データは、開始ＬＢＡ及び最新ＬＢＡとして最新のライト要求の指定するＬＢＡを含み、アクセスサイズとして当該最新のライト要求の指定するアクセスサイズを含む。また空きエントリに設定されるシーケンシャル判定データの最適化フラグは“０”に、ヒット回数は１にそれぞれ設定される。ステップ１１０４が実行されると、ＩＯ特性判定部２４０によるＩＯ特性判定処理は終了する。
【００５９】
一方、最新のライト要求の指定する論理ディスク番号及びＬＢＡに対応するシーケンシャル判定テーブル２７５のエントリが存在するならば（ステップ１１０２のＹｅｓ）、シーケンシャル性検出部２４１は、当該テーブル２７５のエントリに設定されているシーケンシャル判定データの最新ＬＢＡ及びアクセスサイズを、それぞれ当該最新のライト要求の指定するＬＢＡ及びアクセスサイズに更新すると共に、ヒット回数を１インクリメントする（ステップ１１０５）。ヒット回数は、当該ヒット回数を含むシーケンシャル判定テーブル２７５のエントリで示されるライトに対してシーケンシャル性を有する後続ライトであると判定された回数を示す。このようにヒット回数は、シーケンシャル判定テーブル２７５のエントリを参照することによってシーケンシャルライトが判定された回数を示しており、当該シーケンシャルライトの進捗の度合いを示す。
【００６０】
次にシーケンシャル性検出部２４１は、インクリメント後のヒット回数が閾値を越えたかを判定する（ステップ１１０６）。もし、インクリメント後のヒット回数が閾値を越えていないならば（ステップ１１０６のＮｏ）、ＩＯ特性判定部２４０によるＩＯ特性判定処理は終了する。
【００６１】
これに対し、インクリメント後のヒット回数が閾値を越えているならば（ステップ１１０６のＹｅｓ）、シーケンシャル性検出部２４１は、最新のライト要求の指定するアクセスがストライプグループサイズ境界を越えているかを、当該最新のライト要求の指定するＬＢＡに対応する物理アドレスに基づいて判定する（ステップ１１０７）。そこでシーケンシャル性検出部２４１はステップ１１０７を実行する際に、最新のライト要求の指定するＬＢＡに対応するＲＡＩＤアレイ１２０-iの物理アドレスを論理／物理アドレス管理部２５０に問い合わせる。
【００６２】
すると論理／物理アドレス管理部２５０は、ＬＢＡからＲＡＩＤアレイ１２０-iの物理アドレスへの変換を実行して、当該物理アドレスをシーケンシャル性検出部２４１に応答する。この論理／物理アドレス管理部２５０によるＬＢＡから物理アドレスへの変換の詳細は後述する。シーケンシャル性検出部２４１は、論理／物理アドレス管理部２５０によって変換された物理アドレスに基づいて、ステップ１１０７の判定を行う。もし、最新のライト要求の指定するアクセスがストライプグループサイズ境界を越えていないならば（ステップ１１０７のＮｏ）、ＩＯ特性判定部２４０によるＩＯ特性判定処理は終了する。
【００６３】
これに対し、最新のライト要求の指定するアクセスがストライプグループサイズ境界を越えているならば（ステップ１１０７のＹｅｓ）、シーケンシャル性検出部２４１は、上述のシーケンシャル判定テーブル２７５のエントリに設定されているシーケンシャル判定データ中の最適化フラグが“１”にセットされているかを判定する（ステップ１１０８）。もし、最適化フラグが“１”にセットされていないならば（ステップ１１０８のＮｏ）、つまり最適化フラグが最適化未実行を示す初期値“０”にリセットされているならば、当該ＩＯ特性判定部２４０における後述する性能最適化処理を起動する（ステップ１１０９）。
【００６４】
これに対し、最適化フラグが“１”にセットされているならば（ステップ１１０８のＹｅｓ）、ＩＯ特性判定部２４０内では、シーケンシャル性検出部２４１から割り当て要求部２４２に制御が渡される。すると割り当て要求部２４２は、スライス入れ替え処理を行う必要があるかを判定する（ステップ１１１０）。このステップ１１１０の判定は、先のステップ１１０５で更新された最新ＬＢＡが入れ替え済みスライス番号の示す論理スライスの位置に到達したかをチェックすることによって行われる。入れ替え済みスライス番号は、既に物理スライスが入れ替え済みの論理スライスの列の最後尾の論理スライスを示す。最新ＬＢＡが、この最後尾の論理スライスの位置に到達すると、当該最後尾の論理スライスに後続する論理スライスに割り当てられている物理スライスを入れ替える必要が生じる（ステップ１１１０のＹｅｓ）。この場合、割り当て要求部２４２は、構成管理部２６０による後述するスライス入れ替え処理を起動する（ステップ１１１１）。
【００６５】
ステップ１１１が実行されると、割り当て要求部２４２からシーケンシャル性検出部２４１に制御が戻される。するとシーケンシャル性検出部２４１は、後追い吐き出しの実行をＩＯ管理部２２０に要求する（ステップ１１１２）。この要求では、後追い吐き出しの対象となるストライプグループが、対応するシーケンシャル判定テーブル２７５のエントリに設定されているシーケンシャル判定データ中の書き込みＬＢＡによって指定される。これによりＩＯ管理部２２０は、シーケンシャルライトが通り過ぎたストライプグループのデータのうち、キャッシュメモリ１１４上の未だＲＡＩＤアレイ１２０-iに書き出されていない、いわゆるライトバックデータを、当該ＲＡＩＤアレイ１２０-iに書き出すための処理を実行する。シーケンシャルライトが通り過ぎたストライプグループとは、当該シーケンシャルライトにおける開始ＬＢＡから最新ＬＢＡまでの範囲に対応するストライプグループを指す。シーケンシャル判定データ中の書き込みＬＢＡは、後追い吐き出しの実行の都度更新される。
【００６６】
また、シーケンシャル性検出部２４１は、性能最適化処理を起動した場合（ステップ１１０９）と、最新ＬＢＡが既に物理スライスが入れ替え済みの論理スライスの列の最後尾の論理スライスの位置に到達していない場合（ステップ１１１０のＮｏ）にも、後追い吐き出しの実行をＩＯ管理部２２０に要求する（ステップ１１１２）。  
ステップ１１１２が実行されると、ＩＯ特性判定部２４０によるＩＯ特性判定処理は終了する。
【００６７】
さてシーケンシャル性検出部２４１は、上記ステップ１１０３で、シーケンシャル判定テーブル２７５の空きエントリが存在していないと判定した場合、ライト要求の指定する論理ディスク番号に対応付けられているシーケンシャル判定テーブル２７５のエントリの群のうち、最低優先度のシーケンシャル判定テーブル２７５のエントリを空きエントリとするための置換対象として決定する。本実施形態では、シーケンシャル判定データ記憶部２７４に格納されているシーケンシャル判定テーブル２７５のエントリの群の優先度は、ＬＲＵ（Least Recently Used）ルールに従って管理される。このため最も以前に使用されたシーケンシャル判定テーブル２７５のエントリが置換対象となる。なお、シーケンシャル判定テーブル２７５のエントリの群の優先度を、ＬＲＵルール以外のアルゴリズムで管理することも可能である。
【００６８】
シーケンシャル性検出部２４１は、最低優先度のシーケンシャル判定テーブル２７５のエントリに設定されているシーケンシャル判定データ中の最適化フラグが“１”にセットされているかを判定する（ステップ１１１３）。もし、最適化フラグが“１”にセットされていないならば（ステップ１１１３のＮｏ）、シーケンシャル性検出部２４１は最低優先度のシーケンシャル判定テーブル２７５のエントリを空きのエントリとして、上記ステップ１１０４を実行する。これに対し、最適化フラグが“１”にセットされているならば（ステップ１１１３のＹｅｓ）、シーケンシャル性検出部２４１は、構成管理部２６０による後述するリカバリ処理を起動して（ステップ１１１４）、上記ステップ１１０４を実行する。
【００６９】
次に、ステップ１１０９で起動される性能最適化処理について、図１３のフローチャートを参照して説明する。  
シーケンシャル性検出部２４１は、ステップ１１０８で判定された最適化フラグを含むシーケンシャル判定テーブル２７５のエントリの示す書き込みＬＢＡの位置から後追い吐き出し実行中のシーケンシャルライトの数（以下、値Ａと称する）を、シーケンシャル判定データ記憶部２７４に格納されているシーケンシャル判定テーブル２７５のエントリの群に基づいて算出する。シーケンシャル性検出部２４１は、この値Ａが２以上であるかを判定する。即ちシーケンシャル性検出部２４１は、書き込みＬＢＡの位置から複数の後追い吐き出しが実行中であるかを判定する（ステップ１３０１）。
【００７０】
もし、書き込みＬＢＡの位置から複数の後追い吐き出しが実行中である場合（ステップ１３０１のＹｅｓ）、シーケンシャル性検出部２４１は、対応する複数のシーケンシャルライトを示すシーケンシャル判定テーブル２７５のエントリの群の中に、最適化フラグが“１”にセットされていないシーケンシャルライト、つまり最適化が実行されていないシーケンシャルライトを示すエントリが存在するかを判定する（ステップ１３０２）。もし、このようなエントリが存在するならば（ステップ１３０２のＹｅｓ）、シーケンシャル性検出部２４１は、構成管理部２６０に問い合わせることにより、当該構成管理部２６０から、プール１２１に属する全てのＲＡＩＤアレイ１２０-iのＲＡＩＤアレイ番号の配列を取得する（ステップ１３０３）。つまり構成管理部２６０は、シーケンシャル性検出部２４１からの問い合わせに従い、プール管理テーブル２７３を参照することにより、所属ＲＡＩＤアレイ番号配列を取得して、シーケンシャル性検出部２４１に通知する。
【００７１】
シーケンシャル性検出部２４１は、取得した所属ＲＡＩＤアレイ番号配列で示されるＲＡＩＤアレイ１２０-iの群の中に、最適化で未選択のＲＡＩＤアレイが存在するかを判定する（ステップ１３０４）。もし、未選択のＲＡＩＤアレイが存在するならば（ステップ１３０４のＹｅｓ）、シーケンシャル性検出部２４１はそのＲＡＩＤアレイを選択する（ステップ１３０５）。シーケンシャル性検出部２４１は、選択したＲＡＩＤアレイのＲＡＩＤアレイ番号を、ステップ１１１３で判定された最適化フラグを含むシーケンシャル判定テーブル２７５のエントリに保持すると共に、当該最適化フラグを“１”にセットして（ステップ１３０６）、性能最適化処理を終了する。この最適化フラグが“１”にセットされたシーケンシャル判定テーブル２７５のエントリのデータ（つまりシーケンシャル判定データ）は、対応するシーケンシャルライトにおける書き込み先となる論理スライスに既に割り当てられている物理スライスが当該データ中のＲＡＩＤアレイ番号のＲＡＩＤアレイに属していない場合、当該ＲＡＩＤアレイ番号のＲＡＩＤアレイに属する物理スライスに再割り当てすべきことを示す。
【００７２】
次に、ステップ１１１１で起動されるスライス入れ替え処理について、図１４のフローチャートを参照して説明する。  
割り当て要求部２４２は構成管理部２６０によるスライス入れ替え処理を起動する際に、物理スライスの入れ替えの対象となる論理ディスク及び当該論理ディスク内の論理スライスの、それぞれ論理ディスク番号及び論理スライス番号と、入れ替え先のＲＡＩＤアレイのＲＡＩＤアレイ番号とを構成管理部２６０に渡す。入れ替えの対象となる論理スライスの論理スライス番号は、ステップ１１１０で判定された入れ替え済みスライス番号に１を加算することによって取得される。つまり割り当て要求部２４２は、スライス入れ替え処理のための論理ディスク番号、論理スライス番号及びＲＡＩＤアレイ番号を構成管理部２６０に対して指定して、当該構成管理部２６０によるスライス入れ替え処理を起動する。
【００７３】
すると構成管理部２６０は、指定された論理ディスク番号から、当該論理ディスク番号の論理ディスクを構成するＲＡＩＤアレイ１２０-iの群が含まれるプール１２１のプール番号を特定する（ステップ１４０１）。このステップ１４０１は、プール管理テーブル２７３を参照して、指定された論理ディスク番号を所属論理ディスク番号配列内に含むプール管理データを検索することにより、実現される。
【００７４】
次に構成管理部２６０は、指定された論理スライス番号の論理スライスに、現在何れのＲＡＩＤアレイの物理スライスが割り当てられているかを特定し、その物理スライスを含むＲＡＩＤアレイが、指定されたＲＡＩＤアレイ番号のＲＡＩＤアレイと同一でないかを判定する（ステップ１４０２）。もし、同一であるならば（ステップ１４０２のＮｏ）、構成管理部２６０は、物理スライスの入れ替えは不要であるとして、スライス入れ替え処理を終了する。
【００７５】
これに対して同一でないならば（ステップ１４０２のＹｅｓ）、構成管理部２６０はステップ１４０１で特定したプール番号のプール１２１に関するプール管理データのフリーリスト内に、指定されたＲＡＩＤアレイの物理スライスのスライス管理データが存在するかを判定する（ステップ１４０３）。もし、存在するならば（ステップ１４０３のＹｅｓ）、構成管理部２６０は、該当する物理スライスのスライス管理データを上記フリーリストから取り外して、論理ディスク管理テーブル２７１に保持されている、指定された論理ディスク番号、論理スライス番号を含む論理ディスク管理データの物理ミラーリストポインタに、当該スライス管理データを繋ぐ（ステップ１４０４）。この時点でシーケンシャルライトは、指定された論理スライスの１つ前に到達している。したがって、指定された論理スライスの２つ前の論理スライスは、既にシーケンシャルライト済みの状態にある。この状態を、シーケンシャルライトが論理スライス（より詳細には、指定された論理スライスの２つ前の論理スライス）を通り過ぎていると表現する。
【００７６】
そこで構成管理部２６０は、シーケンシャルライトが通り過ぎている論理スライスの論理ディスクデータ内の物理ミラーリストポインタに、物理スライスのスライス管理データが繋がっているかを判定する（ステップ１４０５）。もし、繋がっているならば（ステップ１４０５のＹｅｓ）、つまり物理ミラーリストポインタがＮＵＬＬでないならば、構成管理部２６０は当該物理ミラーリストポインタと対をなす物理リストポインタに繋がっている物理スライスのスライス管理データを、プール管理データ構造のフリーリストに繋ぎ直す（ステップ１４０６）。これにより、物理リストポインタに繋がっていたスライス管理データによって管理される物理スライスは、未使用の物理スライスとしてプール１２１に返却されたことになる。ステップ１４０６において構成管理部２６０は、上記物理ミラーリストポインタに繋がっている物理スライスのスライス管理データを、当該物理ミラーリストポインタと対をなす物理リストポインタに移す。構成管理部２６０はステップ１４０６を実行すると、スライス入れ替え処理を終了する。
【００７７】
次に論理／物理アドレス管理部２５０によるＬＢＡから物理アドレスへの変換について説明する。  
論理／物理アドレス管理部２５０は、ＬＢＡから物理アドレスへの変換に際し、当該ＬＢＡ（以下、対象ＬＢＡと称する）の指す領域を含む論理スライスに対応する論理ディスク管理テーブル２７１内の論理ディスク管理データを参照する。そして論理／物理アドレス管理部２５０は、この論理スライスに対応する論理ディスク管理データ内の物理ミラーリストポインタがＮＵＬＬでない場合、当該論理スライスのシーケンシャルライトがどこまで進捗しているかを、シーケンシャル性検出部２４１に問い合わせる。もし対象ＬＢＡの指す領域が、シーケンシャルライトが通り過ぎている領域であった場合、論理／物理アドレス管理部２５０は対象ＬＢＡを、物理ミラーリストポインタに繋がっているスライス管理データに基づいて、当該スライス管理データによって管理される物理スライスの物理アドレスに変換する。これに対し、対象ＬＢＡの指す領域が、シーケンシャルライトが通り過ぎている領域でない場合、構成管理部２６０は、物理リストポインタに繋がっているスライス管理データに基づいて、当該スライス管理データによって管理される物理スライスの物理アドレスに変換する。
【００７８】
次に構成管理部２６０によるリカバリ処理について説明する。  
シーケンシャル性検出部２４１は構成管理部２６０によるリカバリ処理を起動する際に、リカバリの対象となる論理ディスク及び当該論理ディスク内の論理スライスの、それぞれ論理ディスク番号及び論理スライス番号と、どこまでライトが進んだかを示すライト進捗情報とを構成管理部２６０に対して指定して、当該構成管理部２６０によるリカバリ処理を起動する。
【００７９】
すると構成管理部２６０は、指定された論理ディスク番号及び論理スライス番号に対応する論理ディスク管理データを参照する。そして構成管理部２６０は、この論理ディスク管理データの物理リストポインタに繋がれているスライス管理データからコピー元の物理スライスを特定し、当該論理ディスク管理データの物理ミラーリストポインタに繋がれているスライス管理データからコピー先の物理スライスを特定する。次に構成管理部２６０は、ライト進捗情報に基づき、指定された論理スライスの最後尾まで、コピー元物理スライスからコピー先物理スライスへのデータのコピーを行う。コピー元とコピー先は逆でも良い。従って、コピー量が少ない方向等の特定のポリシを用いてコピー方向を決定しても当然良い。コピー機能自体は、レプリケーションや、スライスの移動で使われる既に知られた機能であるため、詳細は省略する。構成管理部２６０はコピーを完了すると、コピー先の物理スライスのスライス管理データを物理リストポインタに移し、物理ミラーリストポインタをＮＵＬＬに設定する。これによりリカバリ処理は終了する。
【００８０】
以上に述べた論理スライスへの物理スライスの再割り当ての動作の流れについて、図１５及び図１６を参照して説明する。  
ホスト装置からのライト要求で指定されるアクセスサイズは、一般にスライスサイズよりも極めて小さい。本実施形態では、スライスサイズは５１２ＭＢ（メガバイト）である。これに対し、アクセスサイズは最大でも高々１ＭＢである。このため、例えばスライスサイズを越えるストリームデータを論理ディスク３００にライトする場合、ホスト装置からデータ記憶装置１０の制御装置１１に対して複数のライト要求が順次送られる。
【００８１】
図１５及び図１６の例では、論理スライス番号が０の論理スライス３１０から始まる論理アドレスが連続する複数の論理スライス３１０へのストリームデータのライトのための複数の第１のライト要求がホスト装置から制御装置１１に１要求ずつ順に送られると共に、論理スライス番号がｐの論理スライス３１０から始まる論理アドレスが連続する複数の論理スライス３１０へのストリームデータのライトのための複数の第２のライト要求が当該ホスト装置（または他のホスト装置）から制御装置１１に１要求ずつ順に送られるものとする。以下の説明では、論理スライス番号がｑ（ｑ＝０，１，…）の論理スライス３１０を、論理スライス３１０（ｑ）と表現する。
【００８２】
上述の複数の第１のライト要求（つまり第１のライト要求の列）における先頭の第１のライト要求が制御装置１１に送られた段階では、この先頭の第１のライト要求に対応するシーケンシャル判定データ（以下、第１のシーケンシャル判定データと称する）が、シーケンシャル判定テーブル２７５の空きエントリに保持される。この第１のシーケンシャル判定データの開始ＬＢＡ及び最新ＬＢＡには、先頭の第１のライト要求の開始ＬＢＡが設定される。
【００８３】
同様に、複数の第２のライト要求（つまり第２のライト要求の列）における先頭の第２のライト要求が制御装置１１に送られた段階では、この先頭第２のライト要求に対応するシーケンシャル判定データ（以下、第２のシーケンシャル判定データと称する）が、シーケンシャル判定テーブル２７５の空きエントリに保持される。この第２のシーケンシャル判定データの開始ＬＢＡ及び最新ＬＢＡには、先頭の第２のライト要求の開始ＬＢＡが設定される。
【００８４】
シーケンシャル性検出部２４１は、第１のライト要求の列における２番目以降の第１のライト要求が制御装置１１に送られる都度、当該２番目以降の第１のライト要求と第１のシーケンシャル判定データとに基づきシーケンシャル性（以下、第１のシーケンシャルライトと称する）を判定する。同様にシーケンシャル性検出部２４１は、第２のライト要求の列における２番目以降の第２のライト要求が制御装置１１に送られる都度、当該２番目以降の第２のライト要求と第２のシーケンシャル判定データとに基づきシーケンシャル性（以下、第２のシーケンシャルライトと称する）を判定する。
【００８５】
図１５（ａ）は、図３と同様に、論理ディスク３００内の論理スライス３１０の集合に、ＲＡＩＤアレイ１２０-0及び１２０-1内のそれぞれ一部の物理スライス３２０の集合が割り当てられている状態を示す。論理ディスク３００内の白抜きの矩形で示される各論理スライス３１０は、当該論理スライス３１０にＲＡＩＤアレイ１２０-0内の物理スライス３２０が割り当てられていることを示し、論理ディスク３００内のハッチングが施された矩形で示される各論理スライス３１０は、当該論理スライス３１０にＲＡＩＤアレイ１２０-1内の物理スライス３２０が割り当てられていることを示す。
【００８６】
複数の第１のライト要求及び複数の第２のライト要求がそれぞれ指定するライトデータは、キャッシュ管理部２３０によって所定サイズのブロック単位でキャッシュメモリ１１４に一時格納される。また、第１のシーケンシャルライトにおける後追い吐き出し処理と第２のシーケンシャルライトにおける追い吐き出し処理とが、それぞれ第１及び第２のシーケンシャルライトを追いかけるように、ストライプグループサイズを単位に並行して実行される。これら２つの後追い吐き出し処理は、論理的には論理ディスク３００内の論理スライス３１０（０）から始まる論理アドレスが連続する複数の論理スライス３１０及び論理スライス３１０（ｐ）から始まる論理アドレスが連続する複数の論理スライス３１０に対して行われるが、物理的には同一または異なるＲＡＩＤアレイ内の対応する物理スライスに対して行われる。
【００８７】
ここで、第１及び第２のシーケンシャルライトにおける後追い吐き出し処理が同一のＲＡＩＤアレイ内の物理スライスに対してなされるものとする。この場合、たとえ対象となるストライプグループが異なっていても、当該ＲＡＩＤアレイを構成する記憶媒体１２の物理的性質から、当該ＲＡＩＤアレイに対する第１及び第２のシーケンシャルライトにおける後追い吐き出し処理を同時に行うことはできない。
【００８８】
まず説明の簡略化のために、第１及び第２のシーケンシャルライトが、ストライプグループサイズを単位に交互に行われる場合を想定する。また、論理スライス３１０（０）及び３１０（ｐ）に、それぞれ同一のＲＡＩＤアレイ内の第１及び第２の物理スライスが割り当てられているものとする。この場合、第１の物理スライス内と第２の物理スライス内では、見かけ上シーケンシャルライトとなるものの、アクセス先が第１の物理スライスと第２の物理スライスとの間で頻繁に切り替えられる。このため、実際にはシーケンシャルではなくなる。
【００８９】
そこで本実施形態では、後追い吐き出し処理の高速化のために、論理スライスへの物理スライスの再割り当てを行う。  
まず図１５（ａ）の状態で、第１及び第２のシーケンシャルライトが判定され、図１５（ｂ）に示すように論理スライス３１０（０），３１０（ｐ）へのライトが進捗したものとする。ここでは、論理スライス３１０（ｐ）へのライトの方がより進捗しているものとする。
【００９０】
第１のシーケンシャルライトにおける次のライト先は論理スライス３１０（１）であり、第２のシーケンシャルライトにおける次のライト先は論理スライス３１０（ｐ＋１）である。論理スライス３１０（１）及び３１０（ｐ＋１）には、それぞれ同一ＲＡＩＤアレイ１２０-1内の異なる物理スライス３２０が割り当てられている。
【００９１】
割り当て要求部２４２は、第１のシーケンシャルライト及び第２のシーケンシャルライトの各々について、論理ディスク３００内で現在ライト処理中の論理スライス３１０（０），３１０（ｐ）に後続する論理スライス３１０（１），３１０（ｐ＋１）に割り当てられている物理スライス３２０が属するＲＡＩＤアレイのＲＡＩＤアレイ番号（以下、ＲＡＩＤアレイ番号Ａ，Ｂと称する）を、構成管理部２６０への問い合わせによって取得する。割り当て要求部２４２は、取得したＲＡＩＤアレイ番号Ａ，Ｂを比較する。図１５（ｂ）の例では、ＲＡＩＤアレイ番号Ａ，Ｂは、いずれもＲＡＩＤアレイ１２０-1を示す“１”である。
【００９２】
この例のように、ＲＡＩＤアレイ番号Ａ，Ｂが同一（Ａ＝Ｂ＝１）であるならば、割り当て要求部２４２は、現在ライト処理中の論理スライス３１０（０），３１０（ｐ）のいずれか一方、例えばライトがより進捗している論理スライス３１０（ｐ）に後続する論理スライス３１０（ｐ＋１）に対する物理スライス３２０の再割り当てを、構成管理部２６０に対して要求する。このとき割り当て要求部２４２は、ＲＡＩＤアレイ番号Ａ（＝Ｂ＝１）以外の、未選択のＲＡＩＤアレイ１２０-iのＲＡＩＤアレイ番号Ｃを、構成管理部２６０に対して指定する。ここでは、ＲＡＩＤアレイ番号Ｃが、ＲＡＩＤアレイ１２０-0を示す“０”であるものとする。
【００９３】
このため図１５（ｂ）の例では、構成管理部２６０は論理スライス３１０（ｐ＋１）に対し、現在ＲＡＩＤアレイ１２０-1内の物理スライス３２０（以下、旧物理スライス３２０（ｏｌｄ）と称する）が割り当てられている状態で、矢印１５１で示すように、ＲＡＩＤアレイ１２０-0内の未使用の物理スライス３２０（以下、新物理スライス３２０（ｎｅｗ）と称する）を割り当てる。これらの新旧２つの物理スライスによって、相互の差分が管理される。つまり、新物理スライス３２０（ｎｅｗ）が割り当てられた段階では、旧物理スライス３２０（ｏｌｄ）のみに有効なデータが格納されている。その後、ライトデータの書き込みが新物理スライス３２０（ｎｅｗ）の開始位置から開始されると、新物理スライス３２０（ｎｅｗ）の開始位置から最新のライトデータの書き込みが完了した位置までの領域のデータと、当該書き込みが完了した位置に対応する旧物理スライス３２０（ｏｌｄ）内の位置から当該旧物理スライス３２０（ｏｌｄ）の終端までの領域のデータとにより、論理スライス３１０（ｐ＋１）のデータが表される。このように、１つの論理スライスに対して、異なる２つのＲＡＩＤアレイ内の物理スライスが同時に割り当てられている状態をミラー状態と呼ぶ。
【００９４】
以後、割り当て要求部２４２は、シーケンシャルライトが各論理スライス３１０の開始位置に達した時点で次の論理スライス３１０への物理スライス３２０の割り当てを構成管理部２６０に要求する。つまり割り当て要求部２４２は、第１のシーケンシャルライトの場合、上記次の論理スライス３１０に割り当てられている物理スライス３２０が属するＲＡＩＤアレイのＲＡＩＤアレイ番号がＲＡＩＤアレイ番号Ａ（＝１）以外であるならば、未選択のＲＡＩＤアレイのＲＡＩＤアレイ番号Ａ（＝１）、つまりＲＡＩＤアレイ１２０-1のＲＡＩＤアレイ番号“１”を構成管理部２６０に対して指定することにより、当該次の論理スライス３１０に対する物理スライス３２０の再割り当てを当該構成管理部２６０に要求する。同様に第２のシーケンシャルライトの場合、割り当て要求部２４２は、上記次の論理スライス３１０に割り当てられている物理スライス３２０が属するＲＡＩＤアレイのＲＡＩＤアレイ番号がＲＡＩＤアレイ番号Ｃ（＝０）以外であるならば、未選択のＲＡＩＤアレイのＲＡＩＤアレイ番号Ｃ（＝０）、つまりＲＡＩＤアレイ１２０-0のＲＡＩＤアレイ番号“０”を構成管理部２６０に対して指定することにより、当該次の論理スライス３１０に対する物理スライス３２０の再割り当てを当該構成管理部２６０に要求する。
【００９５】
図１６（ａ）は、論理スライス３１０（０）へのライトが進捗した結果、当該論理スライス３１０（０）へのライトが完了し、最新ＬＢＡ（つまり第１のシーケンシャルライト）が次の論理スライス３１０（１）の開始位置に達した状態を示す。第１のシーケンシャルライトにおける論理スライス３１０（１）の次のライト先は論理スライス３１０（２）である。この論理スライス３１０（２）には、ＲＡＩＤアレイ番号がＡ（＝１）以外のＲＡＩＤアレイ１２０-0内の物理スライス３２０が割り当てられている。この場合、割り当て要求部２４２は、ＲＡＩＤアレイ１２０-0以外のＲＡＩＤアレイのＲＡＩＤアレイ番号、例えばＲＡＩＤアレイ１２０-1のＲＡＩＤアレイ番号を構成管理部２６０に対して指定することにより、論理スライス３１０（２）に対する物理スライス３２０の再割り当てを当該構成管理部２６０に要求する。
【００９６】
すると構成管理部２６０は論理スライス３１０（２）に対し、現在ＲＡＩＤアレイ１２０-0内の物理スライス３２０が割り当てられている状態で、図１６（ａ）において矢印１６１で示すように、ＲＡＩＤアレイ１２０-1内の未使用の物理スライス３２０を割り当てる。
【００９７】
図１６（ａ）はまた、論理スライス３１０（ｐ＋１）へのライトが進捗した結果、当該論理スライス３１０（ｐ＋１）へのライトが完了し、最新ＬＢＡ（つまり第２のシーケンシャルライト）が次の論理スライス３１０（ｐ＋２）の開始位置に達した状態をも示す。論理スライス３１０（ｐ＋２）の次の論理スライス３１０（ｐ＋３）には、ＲＡＩＤアレイ番号がＣ（＝０）以外のＲＡＩＤアレイ１２０-1内の物理スライス３２０が割り当てられている。この場合、割り当て要求部２４２は、ＲＡＩＤアレイ１２０-1以外のＲＡＩＤアレイのＲＡＩＤアレイ番号、例えばＲＡＩＤアレイ１２０-0のＲＡＩＤアレイ番号を構成管理部２６０に対して指定することにより、論理スライス３１０（ｐ＋３）に対する物理スライス３２０の再割り当てを当該構成管理部２６０に要求する。
【００９８】
すると構成管理部２６０は、論理スライス３１０（ｐ＋３）に対し、現在ＲＡＩＤアレイ１２０-1内の物理スライス３２０が割り当てられている状態で、図１６（ａ）において矢印１６２で示すように、ＲＡＩＤアレイ１２０-0内の未使用の物理スライス３２０を割り当てる。また構成管理部２６０は、論理スライス３１０（ｐ＋１）に割り当てられていた旧物理スライス３２０（ｏｌｄ）を、図１６（ａ）において矢印１６３で示すように、ＲＡＩＤアレイ１２０-1内の未使用の物理スライス３２０として（プール１２１に）返却する。
【００９９】
図１６（ｂ）は、論理スライス３１０（２）へのライトが進捗した結果、当該論理スライス３１０（２）へのライトが完了し、最新ＬＢＡが次の論理スライス３１０（３）の開始位置に達した状態を示す。論理スライス３１０（３）の次の論理スライス３１０（４）には、ＲＡＩＤアレイ番号がＡ（＝１）以外のＲＡＩＤアレイ１２０-0内の物理スライス３２０が割り当てられている。この場合、割り当て要求部２４２は、ＲＡＩＤアレイ１２０-0以外のＲＡＩＤアレイのＲＡＩＤアレイ番号、例えばＲＡＩＤアレイ１２０-1のＲＡＩＤアレイ番号を構成管理部２６０に対して指定することにより、論理スライス３１０（４）に対する物理スライス３２０の再割り当てを当該構成管理部２６０に要求する。
【０１００】
すると構成管理部２６０は論理スライス３１０（４）に対し、現在ＲＡＩＤアレイ１２０-0内の物理スライス３２０が割り当てられている状態で、図１６（ｂ）において矢印１６４で示すように、ＲＡＩＤアレイ１２０-1内の未使用の物理スライス３２０を割り当てる。また構成管理部２６０は、論理スライス３１０（２）に割り当てられていた旧物理スライス３２０を、図１６（ｂ）において矢印１６５で示すように、ＲＡＩＤアレイ１２０-0内の未使用の物理スライス３２０として（プール１２１に）返却する。
【０１０１】
本実施形態によれば、複数のシーケンシャルライトの進行に伴い、自律的に相互のライトデータを異なるＲＡＩＤアレイに格納していくことが可能になる。これにより、複数のシーケンシャルライトの処理時に、相互の後追い吐き出しが干渉して記憶媒体１２へのアクセスがランダムになることによる性能低下を防止することができる。
【０１０２】
［変形例］
次に上記実施形態の変形例について説明する。  
上記実施形態では、論理ディスク３００の作成時に、当該論理ディスク３００内の全ての論理スライスに対して物理スライスが割り当てられる。これに対し、本変形例では、論理ディスク３００は仮想的に構成されており、当該論理ディスク３００内の論理スライスへのライトが最初に要求された時点で、当該論理スライスに物理スライスが新規に割り当てられる。このため本変形例では、論理ディスク３００の作成時には、当該論理ディスク３００に対応する論理ディスク管理テーブル２７１内の論理ディスク管理データの物理リストポインタは、物理ミラーリストポインタと同様にＮＵＬＬに設定される。
【０１０３】
本変形例では、論理ディスク３００内の論理スライスに対する物理スライスの割り当てに際し、シーケンシャル判定テーブル２７５内エントリの最適化フラグが“１”にセットされているかが判定される（図１１のステップ１１０８参照）。もし、最適化フラグが“１”にセットされているならば、構成管理部２６０は、割り当て要求部２４２によって指定されたＲＡＩＤアレイ番号のＲＡＩＤアレイ内の未使用の物理スライスを、プール管理テーブル２７３に保持されるプール管理データ内のフリーリストに基づいて確保して、該当する論理スライスに割り当てる。これにより、図１１のステップ１１１０及びステップ１１１１（つまりスライス入れ替え処理）を不要とすることができる。
【０１０４】
本変形例において割り当て要求部２４２は、シーケンシャル性検出部２４１が複数のシーケンシャルライト、例えば第１及び第２のシーケンシャルライトを検出した場合、構成管理部２６０に対して、第１のシーケンシャルライト及び第２のシーケンシャルライトのそれぞれについて、論理ディスク３００内で現在ライト処理中の論理スライスに後続する論理スライスに、それぞれ異なるＲＡＩＤアレイ内の第１の物理スライス及び第２の物理スライスを新規に割り当てることを要求する。この要求に際し、割り当て要求部２４２は構成管理部２６０に対して、異なるＲＡＩＤアレイ番号（以下、ＲＡＩＤアレイ番号Ａ，Ｂと称する）を指定する。
【０１０５】
構成管理部２６０は、割り当て要求部２４２からの要求に従い、指定されたＲＡＩＤアレイ番号Ａ，ＢのＲＡＩＤアレイからそれぞれ新たに未使用の物理スライスを取得して、その物理スライスを現在ライト処理中の論理スライスに後続する論理スライスに割り当てる。
【０１０６】
以後、割り当て要求部２４２は、各論理スライスの開始位置に達した時点で次の論理スライスに割り当てられている物理スライスの割り当てを構成管理部２６０に要求する。つまり割り当て要求部２４２は、第１のシーケンシャルライトの場合、ＲＡＩＤアレイ番号ＡのＲＡＩＤアレイ内の物理スライスの割り当てを、当該ＲＡＩＤアレイ番号Ａを指定することにより、構成管理部２６０に対して要求する。また割り当て要求部２４２は、第２のシーケンシャルライトの場合、ＲＡＩＤアレイ番号ＢのＲＡＩＤアレイ内の物理スライスの割り当てを、当該ＲＡＩＤアレイ番号Ｂを指定することにより、構成管理部２６０に対して要求する。
【０１０７】
次に本変形例における論理スライスへの物理スライスの割り当ての動作の流れについて、図１７及び図１８を参照して説明する。  
図１７及び図１８の例においても、図１５及び図１６の例と同様に、論理スライス３１０（０）から始まる論理アドレスが連続する複数の論理スライス３１０へのストリームデータのライトのための複数の第１のライト要求がホスト装置から制御装置１１に１要求ずつ順に送られると共に、論理スライス３１０（ｐ）から始まる論理アドレスが連続する複数の論理スライス３１０へのストリームデータのライトのための複数の第２のライト要求が当該ホスト装置（または他のホスト装置）から制御装置１１に１要求ずつ順に送られるものとする。
【０１０８】
図１７（ａ）は、上記複数の第１及び第２のライト要求のうちのそれぞれ先頭の第１及び第２のライト要求がホスト装置から制御装置１１に送られた状態を示す。このとき論理ディスク３００内の少なくとも論理スライス３１０（０）及び３１０（ｐ）は、当該論理ディスク３００が作成されたときと同一の状態にあるものとする。つまり図１７（ａ）の状態では、論理スライス３１０（０）及び３１０（ｐ）には、物理スライス３２０は割り当てられていない。そこで本変形例では、論理ディスク３００内の論理スライス３１０に最初にライトが要求された時点で、当該論理スライス３１０に物理スライス３２０が割り当てられる。
【０１０９】
上記複数の第１及び第２のライト要求のうちの先頭の第１及び第２のライト要求がホスト装置から制御装置１１に送られた状態では、シーケンシャル性検出部２４１はシーケンシャル性を判定できない。このような場合、割り当て要求部２４２は論理スライス３１０（０）及び３１０（ｐ）に対する任意の物理スライス３２０の割り当てを、構成管理部２６０に対して要求する。
【０１１０】
すると構成管理部２６０は、論理スライス３１０（０）及び３１０（ｐ）にそれぞれ割り当てるべき物理スライス３２０を、プール管理テーブル２７３に保持されるプール管理データ内のフリーリストに繋がれている未使用の物理スライス３２０のスライス管理データに基づいて確保する。ここでは、ＲＡＩＤアレイ１２０-0内の２つの物理スライス３２０が確保されたものとする。
【０１１１】
このとき構成管理部２６０は、該当する２つの物理スライス３２０のスライス管理データを上記フリーリストから取り外して、論理ディスク管理テーブル２７１に保持されている、論理ディスク３００の論理ディスク番号及び論理スライス３１０（０）の論理スライス番号を含む論理ディスク管理データ、並びに論理ディスク３００の論理ディスク番号及び論理スライス３１０（ｐ）の論理スライス番号を含む論理ディスク管理データのそれぞれの物理リストポインタに、当該スライス管理データを繋ぐ。つまり構成管理部２６０は、確保した物理スライス３２０毎に、その物理スライス３２０のスライス管理データを上記フリーリストから取り外してスライス管理テーブル２７２に登録すると共に、論理ディスク管理テーブル２７１に登録されている論理スライス３１０（０）及び３１０（ｐ）に関する論理ディスク管理データの物理リストポインタに、確保した物理スライス３２０のスライス管理データを繋ぐ。これにより図１７（ａ）の例では、矢印１７１及び１７２で示されるように、論理スライス３１０（０）及び３１０（ｐ）に、ＲＡＩＤアレイ１２０-0内の物理スライス３２０がそれぞれ割り当てられる。
【０１１２】
このような状態で、シーケンシャル性検出部２４１が、論理スライス３１０（０）内の領域へのデータのライトのための少なくとも２つの第１のライト要求に基づいて第１のシーケンシャルライトを判定する一方、論理スライス３１０（ｐ）内の領域へのデータのライトのための少なくとも２つの第２のライト要求に基づいて第２のシーケンシャルライトを判定したものとする。また、論理スライス３１０（０）及び３１０（ｐ）に対するライトがそれぞれ進捗したものとする。
【０１１３】
すると、割り当て要求部２４２は構成管理部２６０に対して、第１のシーケンシャルライト及び第２のシーケンシャルライトのそれぞれについて、論理ディスク３００内で現在ライト処理中の論理スライス３１０（０）及び３１０（ｐ）に後続する論理スライス３１０（１）及び３１０（ｐ＋１）に、それぞれＲＡＩＤアレイ番号がＡ及びＢのＲＡＩＤアレイ内の物理スライス３２０を割り当てることを要求する。
【０１１４】
構成管理部２６０は、割り当て要求部２４２からの要求に従い、指定されたＲＡＩＤアレイ番号Ａ，ＢのＲＡＩＤアレイからそれぞれ新たに未使用の物理スライス３２０を取得して、その物理スライス３２０を論理スライス３１０（１）及び３１０（ｐ＋１）に割り当てる。ここでは、ＲＡＩＤアレイ番号がＡ，ＢのＲＡＩＤアレイはＲＡＩＤアレイ１２０-0及び１２０-1であるものとする。この場合、ＲＡＩＤアレイ１２０-0及び１２０-1から取得された未使用の物理スライス３２０が、図１７（ｂ）において矢印１７３及び１７４で示されるように、それぞれ論理スライス３１０（１）及び３１０（ｐ＋１）に割り当てられる。
【０１１５】
その後、論理スライス３１０（０）及び３１０（ｐ）に対するライトがそれぞれ進捗して、第１及び第２のシーケンシャルライトが次の論理スライス３１０（１）及び３１０（ｐ＋１）の開始位置に達すると、構成管理部２６０は割り当て要求部２４２からの要求に応じて、ＲＡＩＤアレイ１２０-0及び１２０-1から未使用の物理スライス３２０を取得する。構成管理部２６０は取得した物理スライス３２０を、図１８（ａ）において矢印１８１及び１８２で示されるように、それぞれ論理スライス３１０（１）及び３１０（ｐ＋１）に後続する論理スライス３１０（２）及び３１０（ｐ＋２）に割り当てる。
【０１１６】
その後、論理スライス３１０（１）及び３１０（ｐ＋１）に対するライトがそれぞれ進捗して、第１及び第２のシーケンシャルライトが次の論理スライス３１０（２）及び３１０（ｐ＋２）の開始位置に達すると、構成管理部２６０は割り当て要求部２４２からの要求に応じて、ＲＡＩＤアレイ１２０-0及び１２０-1から未使用の物理スライス３２０を取得する。構成管理部２６０は取得した物理スライス３２０を、図１８（ｂ）において矢印１８３及び１８４で示されるように、それぞれ論理スライス３１０（２）及び３１０（ｐ＋２）に後続する論理スライス３１０（３）及び３１０（ｐ＋３）に割り当てる。
【０１１７】
本変形例によれば、複数のシーケンシャルライトの進行に伴い、自律的に相互のライトデータを異なるＲＡＩＤアレイに格納していくことが可能になる。これにより、複数のシーケンシャルライトの処理時に、記憶媒体１２へのアクセスがランダムになることによる性能低下をすることができる。また上記実施形態と異なり、スライス入れ替え処理を不要とすることができる。
【０１１８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１９】
１０…データ記憶装置、１１…制御装置、１２…記憶媒体、２０…データ通信路、１１２…ＣＰＵ、１１３…プログラムメモリ、１１４…キャッシュメモリ、１２０-0〜１２０-5…ＲＡＩＤアレイ（ディスクアレイ）、１２１…プール、２１０…ホストインタフェース制御部、２２０…ＩＯ管理部、２３０…キャッシュ管理部、２４０…ＩＯ特性判定部、２４１…シーケンシャル性検出部、２４２…割り当て要求部、２５０…論理／物理アドレス管理部、２６０…構成管理部、２７０…構成管理用記憶部、２７１…論理ディスク管理テーブル、２７２…スライス管理テーブル、２７３…プール管理テーブル、２７４…シーケンシャル判定データ記憶部、２７５…シーケンシャル判定テーブル、２８０…ＲＡＩＤ制御部、２９０…ＨＤＤインタフェース制御部、３００…論理ディスク、３１０…論理スライス、３２０…物理スライス。
【図１】
2012014450.tif 000003
【図２】
2012014450.tif 000004
【図３】
2012014450.tif 000005
【図４】
2012014450.tif 000006
【図５】
2012014450.tif 000007
【図６】
2012014450.tif 000008
【図７】
2012014450.tif 000009
【図８】
2012014450.tif 000010
【図９】
2012014450.tif 000011
【図１０】
2012014450.tif 000012
【図１１】
2012014450.tif 000013
【図１２】
2012014450.tif 000014
【図１３】
2012014450.tif 000015
【図１４】
2012014450.tif 000016
【図１５】
2012014450.tif 000017
【図１６】
2012014450.tif 000018
【図１７】
2012014450.tif 000019
【図１８】
2012014450.tif 000020