(57)【要約】【解決課題】位装置からのリクエストに応じたデータ処理を迅速に行い、その処理結果を上位装置に速やかに返すことが出来る記憶制御装置を提供する。【解決手段】本発明は、上位装置２と記憶制御装置１とからなる計算機システムである。上位装置は仮想ボリューム１０にアクセスする。仮想ボリュームにはプールボリュームが割り当てられえいる。プールボリュームは記憶ディスクの記憶領域を備える。プールボリュームは上位装置から送られるデータの種類毎にテキスト系１２、ブロック系１４Ａ、そして長大系１４Ｂに分かれている。記憶制御装置はデータの種類を認識して、それぞれのボリュームにデータを記憶する。【選択図】図２
2008052512.tif 000002
【特許請求の範囲】
【請求項１】
記憶デバイスを備え、上位装置からのライトアクセスに基づいてライトデータを前記記憶デバイスに格納し、前記上位装置からのリードアクセスに基づいて、前記記憶デバイスのリードデータを前記上位装置に提供する記憶制御装置において、
前記上位装置がアクセスする第１の論理ボリュームと、
前記記憶デバイスの記憶領域が割り当てられた第２の論理ボリュームと、
前記第１の論理ボリュームの領域に前記第２の論理ボリュームを対応させる制御情報を記憶するメモリと、
前記制御情報に基づいて前記上位装置からの前記第１の論理ボリュームに対するアクセスを前記複数の第２の論理ボリュームの前記記憶領域へのアクセスに変換する制御回路と、
を備え、
前記第２の論理ボリュームは、前記ライトデータの種類毎にそれぞれ定義された複数のボリュームからなり、前記制御回路は、当該ライトデータの種類を認識して、複数の第２の論理ボリュームのうち対応するボリュームに属する前記記憶領域に前記ライトデータを格納する、記憶制御装置。
【請求項２】
前記第２の論理ボリュームは、第１の種類からなる前記ライトデータを格納する第１ボリュームと、前記第１の種類とは異なる第２の種類からなるライトデータを格納する第２ボリュームと備えてなる請求項１記載の記憶制御装置。
【請求項３】
前記第２の論理ボリュームは、テキスト系のデータからなるライトデータを格納するテキスト系データ格納ボリュームと、ブロック系データからなるライトデータを格納するブロック系データ格納ボリュームと、長大系のデータからなるライトデータを格納する長大系データ格納ボリュームと、を備えてなる請求項２記載の記憶制御装置。
【請求項４】
第２の論理ボリュームは前記記憶領域を予めプールしたプールボリュームから構成され、前記制御回路は、前記第１の論理ボリュームへ前記上位装置からのライトアクセスがあると、前記プールボリュームに予めプールされている前記記憶領域の一部を前記第１の論理ボリュームへ対応付け、この対応付けに基づいて前記制御情報を更新する請求項１記載の記憶制御装置。
【請求項５】
前記制御回路は前記プールボリュームへ前記記憶デバイスの新たな記憶領域を追加することができる請求項４記載の記憶制御装置。
【請求項６】
前記プールボリュームは、オンラインデータを格納するオンラインボリュームと、アーカイブデータを格納するアーカイブボリュームと、とからなる請求項４記載の記憶制御装置。
【請求項７】
前記プールボリュームは、オンラインデータを格納するオンラインボリュームと、アーカイブデータを格納するアーカイブボリュームと、からなり、前記オンラインボリューム及びアーカイブボリュームはそれぞれ前記ライトデータの種類毎に分けられた複数のボリュームから構成されてなる請求項６記載の記憶制御装置。
【請求項８】
前記アーカイブボリュームは、
当該アーカイブボリュームに前記記憶領域を提供する前記記憶デバイスが前記上位装置からのアクセスに対して直ちに応答できるアクティブ状態であるボリュームと、
前記アーカイブボリュームに前記記憶領域を提供する前記記憶デバイスが前記上位装置からのアクセスに対して直ちに応答できるアクティブな状態でないボリュームと、
を備えてなる請求項６記載の記憶制御装置。
【請求項９】
前記記憶デバイスがアクティブ状態であるとは、前記記憶デバイスの駆動回路の電源がオン状態にあることであり、前記記憶デバイスがアクティブな状態ではないとは、前記記憶デバイスの駆動回路の電源がオフ状態であることをいう請求項８記載の記憶制御装置。
【請求項１０】
前記上位装置からのライトアクセスに、前記ライトデータの種類を識別する情報が含まれており、前記制御回路はこの情報に基づいて前記ライトデータの種類を判定し、当該ライトデータの種類に対応した前記複数の第２の論理ボリュームのいずれかに当該ライトデータを格納する請求項１記載の記憶制御装置。
【請求項１１】
前記上位装置からのライトアクセスに前記ライトデータのインデックスが含まれており、前記制御回路は前記プールボリュームに属する前記記憶領域の単位毎に前記インデックスを情報テーブルに記録する請求項４記載の記憶制御装置。
【請求項１２】
前記制御回路は検索演算部を備え、この検索演算部は前記上位装置からの検索コマンドに含まれる前記インデックスと前記情報テーブルに記録されたインデックスとを比較し、前者のインデックスに相当する後者のインデックスが設定された前記記憶領域の単位について前記検索コマンドに基づいてデータ検索を行なう請求項１１記載の記憶制御装置。
【請求項１３】
前記制御回路は検索演算部を備え、この検索演算部は前記上位装置からの検索コマンドに応じて検索対象となるデータの種類を認識し、前記第２の論理ボリュームのうち当該データの種類に対応する論理ボリュームについてデータ検索を行なう請求項１記載の記憶制御装置。
【請求項１４】
前記制御回路は検索演算部を備え、前記検索演算部は前記上位装置からの検索コマンドに応じて、前記第２の論理ボリュームに対してデータ検索を行い、このデータ検索の結果に関する履歴を情報テーブルに記録し、前記上位装置から新たな検索コマンドを認識し、この検索コマンドと前記情報テーブルとを比較して前記第２の論理ボリュームの記憶領域のうち優先検索エリアを決定し、この優先検索エリアについて前記検索コマンドを実行する請求項１記載の記憶制御装置。
【請求項１５】
前記検索演算部は前記上位装置からの検索コマンドに応じて、前記第２の論理ボリュームに対してデータ検索を行い、このデータ検索の結果に関する履歴を情報テーブルに記録し、前記上位装置から新たな検索コマンドに含まれる複数の前記インデックスを認識し、各インデックスと各インデックスが設定された前記記憶領域の単位の数との対応関係を複数決定し、前記単位数が多い対応関係の順に当該対応関係に含まれる前記記憶領域に対して前記検索コマンドを実行する請求項１２記載の記憶制御装置。
【請求項１６】
前記制御回路は前記上位装置からの検索コマンドに基づいて前記第２の論理ボリュームに対して検索を行なう検索演算部を備え、前記検索コマンドに基づく検索対象が前記アクティブな状態でないボリュームである場合にはこのボリュームをアクティブな状態に変更する請求項１記載の記憶制御装置。
【請求項１７】
前記制御回路は、上位装置からの前記記憶デバイスに格納されたデータパターンを検索する検索コマンドを受けると、当該制御回路が有する検索演算回路で前記検索コマンドを前記オンラインボリューム及び前記アクティブ状態にあるアーカイブの少なくとも一方に対して行い、当該ボリュームに対して検索を行なっている過程で前記アクティブな状態にないアーカイブボリュームをアクティブな状態に変更する、請求項８記載の記憶制御装置。
【請求項１８】
記憶制御装置において、
複数の記憶デバイスと、
上位装置が前記記憶デバイスにデータを書き込み、及び当該記憶デバイスから前記データの読み込みを制御する制御回路と、
前記上位装置がアクセスする仮想ボリュームと、
前記記憶デバイスの複数の記憶領域を備えるプールと、
前記仮想ボリュームの領域に前記記憶領域を対応付けるための制御情報を備えるメモリと、
を備え、
前記制御回路は前記上位装置からライトコマンドを受けた際、前記制御情報を参照して、当該上位装置がアクセスした前記仮想ボリュームの領域に対応する前記プールの前記記憶領域にライトデータを格納し、
前記制御回路は前記上位装置からリードコマンドを受けた際、前記制御情報を参照して、当該上位装置がアクセスした前記仮想ボリュームの領域に対応する前記プールの前記記憶領域のリードデータを前記上位装置に提供し、
前記プールが複数あり、前記制御回路は前記上位装置から送られた前記ライトデータの種類を識別し、データの種類毎に対応する当該プールに属する前記記憶領域に当該ライトデータを格納する、記憶制御装置。
【請求項１９】
記憶制御装置において、
複数の記憶デバイスと、
上位装置が前記記憶デバイスにデータを書き込み、及び当該記憶デバイスから前記データの読み込みを制御する制御回路と、
前記上位装置がアクセスする仮想ボリュームと、
前記記憶デバイスの複数の記憶領域を備えるプールと、
前記仮想ボリュームの領域に前記記憶領域を対応付けるための制御情報を備えるメモリと、
を備え、
前記制御回路は前記上位装置からライトコマンドを受けた際、前記制御情報を参照して、当該上位装置がアクセスした前記仮想ボリュームの領域に対応する前記プールの前記記憶領域にライトデータを格納し、
前記制御回路は前記上位装置からリードコマンドを受けた際、前記制御情報を参照して、当該上位装置がアクセスした前記仮想ボリュームの領域に対応する前記プールの前記記憶領域のリードデータを前記上位装置に提供し、
前記記憶制御装置は前記上位装置からの検索要求に基づいて前記記憶デバイスに格納されるデータパターンを検索する検索演算回路を備えている、記憶制御装置。
【請求項２０】
前記上位装置からの前記論理ボリュームに対する検索要求に基づいて、前記記憶デバイスに格納されたデータパターンを検索する検索演算回路と、を備え、
前記論理ボリュームはオンラインデータが記憶されるオンラインボリュームと、アーカイブデータが格納されるアーカイブボリュームとを備え、
当該アーカイブボリュームは、前記複数の記憶デバイスの一部の記憶デバイスであって、前記検索コマンドに対してアクティブな記憶デバイスから記憶領域を提供される第１のボリュームと、前記複数の記憶デバイスの他の一部の記憶デバイスであって、前記検索コマンドに対してアクティブでない記憶デバイスから記憶領域を提供される第２のボリュームと、を備え、
前記検索演算回路は、前記オンラインボリューム及び前記第１のボリュームの少なくとも一つに対する前記検索命令を処理している間に、前記第２のボリュームに前記記憶領域を提供する記憶デバイスを前記検索命令に対してアクティブになるようにし、次いで、当該第２のボリュームに対して前記検索命令を処理する、請求項１９記載の記憶制御装置。
【請求項２１】
上位装置に記憶制御装置が記憶領域を提供し、制御回路が前記記憶領域に対するアクセスを処理して、当該記憶領域と前記上位装置との間のデータ交換を実現する記憶制御方法において、
前記制御回路は、
前記上位装置から当該制御回路に送られるフレームを受領する工程と、
前前記フレームに基づいて前記データの種別を決定する工程と、
前記上位装置からのアクセス対象となる第１の論理ボリュームを提供する工程と、
前記第１の論理ボリュームに複数の第２の論理ボリュームを対応させる工程と、
前記上位装置の前記第１の論理ボリュームに対するアクセスを前記第２の論理ボリュームへのアクセスに変換する工程と、
前記第２の論理ボリュームに前記記憶領域を対応させる工程と、
前記データの種別を判定する工程と、
前記第２の論理ボリュームが複数の第３ボリュームから構成され、前記データの種別に応じて、前記複数の第３のボリュームのうち互いに異なるボリュームに種類が異なるデータをそれぞれ記憶する工程と、を備えてなる記憶制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコンピュータやサーバなどの上位装置に記憶資源を提供する記憶制御装置に係わり、特に、複数の記憶デバイスをアレイ状に配列し、記憶領域をＲＡＩＤによって構成した記憶制御装置に関するものである。詳しくは、本発明は、上位装置に、それ自身では実の記憶領域に対応しない第１の論理ボリュームを提供し、前記記憶資源の実記憶領域を備える第２の論理ボリュームを前記第１のボリュームに対応付け、上位装置の前記第１のボリュームに対するアクセスを第２の論理ボリュームを介して前記実記憶領域へのアクセスに変換する記憶制御装置に関するものである。さらに詳しくは、本発明は、第２の論理ボリュームに対応付けられる前記実記憶領域を上位装置からのアクセスに応じて増加できる記憶制御装置に関するものである。
【背景技術】
【０００２】
記憶制御装置と、この記憶制御装置にネットワークなどの通信経路を介して接続するサーバやホストコンピュータなどの上位装置と、を備えた、ストレージシステムが知られている。記憶制御装置は、上位装置がアクセス可能な論理ボリュームを論理的に定義し、この論理ボリュームに前記記憶デバイスの物理的記憶領域を対応させることによって、上位装置が記憶デバイスに対してデータを格納し、さらに記憶デバイスに格納されたデータを読むことが可能になる。
【０００３】
近年、上位装置が取り扱うデータ量が飛躍的に増えていることから、論理ボリュームの記憶容量（ボリュームサイズ）を大幅に増やさなくてはならなくなっている。そこで、論理ボリュームに割り当てられる記憶領域を十分大きくすることによって、上位装置にとって記憶容量の不足が起こらないようにしている。
【０００４】
しかしながら、例えば、上位装置にサイズが大きい論理ボリュームを割り当てておきながら、実際には上位装置が大量のデータを取り扱わない場合には、論理ボリュームに割り当てられた記憶領域に相当の期間未使用の領域が発生し、しかもこの未使用の記憶領域は他の上位装置に対して開放されないことから記憶資源の浪費という不都合が発生する。
【０００５】
そこで、上位計算機のプロセッサがストレージ装置の論理ボリュームに書き込みを行ったときに、書き込みが行われた論理ボリュームの領域に記憶デバイスの記憶領域を割り当てることが提案されている（特開２００５−１１３１６号公報）。こうすることによって、論理ボリュームに予め多量の記憶領域を割り当てておくことに比較して、記憶領域を有効活用することが出来る。また、米国特許第６,８２３,４４２号公報にも、上位装置がアクセスする論理ボリュームを記憶制御装置に設け、この仮想ボリュームに物理的記憶領域を割り当てることが記載されている。
【０００６】
ストレージシステムにおける記憶資源を有効活用する他の考え方として、データ・ライフサイクル・マネージメントというものがある。これは、データの価値は時間が経過するにしたがって変化することに着目し、上位装置からのアクセス頻度が少なく、また、アクセスしてからの経過時間が長いデータをオンラインストレレージからニアラインストレージ又はバックアップデバイスに移動させて、上位装置からのアクセスに高速に応答可能で比較的高価なオンラインストレージの記憶領域を有効活用しようというものである。
【０００７】
なお、本発明に関連する従来例として、特開２００５−１２８７７１号公報には、データを記憶する物理ストレージを有しアクセス要求を受けてその物理ストレージをアクセスするデータアクセスサーバと、そのデータアクセスサーバにアクセス要求を送りデータアクセスサーバをデータ保存のために利用してデータファイリングを行なうデータファイルサーバとを備えたデータファイルシステム等に関し、論理ブロックが不使用になったときに物理ブロックを有効に解放することが記載されている。
【０００８】
また、特開２００４−１２７３０１号公報には、仮想記憶空間と、物理記憶空間と、仮想記憶空間の複数のアドレスを物理記憶空間の各アドレスに関連付けるように構成されたマッピングシステムと、順序に従ってマッピングシステムの除去部分を指定する優先順位付け規定に従って、マッピングシステムの一部を自動的に除去するように構成されたコントローラと、を備える記憶制御システムが記載されている。さらに、本発明に関連する従来例として、特開２００６−１０６９８０号公報に記載された記憶制御装置がある。
【特許文献１】特開２００５-１１３１６号公報
【特許文献２】米国特許第６,８２３,４４２号公報
【特許文献３】特開２００５−１２８７７１号公報
【特許文献４】特開２００４−１２７３０１号公報
【特許文献５】特開２００６−１０６９８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
既述の従来例のように、ストレージシステムにおいて記憶資源を有効に活用することが可能になっても、記憶制御装置に蓄えられるデータ量が増大すると、上位装置からのリクエストに対して記憶制御装置が実行する各種のデータ処理が煩雑になってデータ処理の効率が低下する。例えば、上位装置が目的とするデータをストレージのデータ格納領域から検索しようとすると、ストレージにあまりにも多くのデータが格納されており、上位装置は目的とするデータを迅速に検索することができない。
【００１０】
そこで、本発明は上位装置からのリクエストに応じたデータ処理を迅速に行い、その処理結果を上位装置に速やかに返すことが出来る記憶制御装置及び記憶制御方法を提供することを目的とするものである。本発明の他の目的は、上位装置からの検索要求を迅速に行い、その処理結果を上位装置に速やかに返すことが出来る記憶制御装置を提供することにある。本発明のさらに他の目的は、記憶制御装置に上位装置からの検索要求を処理する手段を設け、複数の上位装置に対して記憶データの検索結果を提供できる記憶制御装置を提供することにある。
【課題を解決するための手段】
【００１１】
前記目的を達成するために、本発明に係わる記憶制御装置は、仮想ボリュームに対応付けられ、仮想ボリュームに上位装置からのアクセスがあった際に記憶デバイスの記憶領域を前記仮想ボリュームに割り当てる論理ボリュームを、上位装置からのライトデータの種類に着目して、複数のボリュームから構成したことを特徴とする。このようにすることによって、記憶制御装置は上位装置からのリクエストに基づくデータ処理をデータの種類を認識しながら行うことができることになり、データ処理が効率的かつ迅速に行なわれる。
【発明の効果】
【００１２】
以上説明したように、本発明によれば、上位装置からのリクエストに応じたデータ処理を迅速に行い、その処理結果を上位装置に速やかに返すことが出来る記憶制御装置及び記憶制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１３】
図１は、記憶制御装置の記憶制御動作を示す基本的な機能ブロック図である。本発明に係わる記憶制御システムは記憶資源を有効活用するために、ＡＯＵを採用している。ＡＯＵとは“Allocation On Use”の略称である。図１に基づいてＡＯＵについて説明する。このＡＯＵは、記憶制御装置がそれ自身は記憶領域を持たない仮想ボリュームを上位装置に提供し、この仮想ボリュームにはプール（論理ボリューム）に属する物理的な記憶領域を対応させている。上位装置が仮想ボリュームにアクセスすると、記憶制御装置は上位装置によってアクセスされた仮想ボリュームの領域にプールに含まれる記憶領域を割り当てる。この割り当ては、上位装置が仮想ボリュームにアクセスすることによって実行される。記憶制御装置はあらかじめ大きな、見かけの容量を持つ仮想ボリュームを用意しておく。記憶制御装置は、プールボリュームに属する記憶領域の仮想ボリュームへの割り当て状況に応じて、プールに記憶容量を追加する。仮想ボリュームが請求項記載の第１の論理ボリュームに該当し、プールが請求項記載の第２のボリュームに該当する。
【００１４】
図１において、符号１０は仮想ボリュームである。仮想ボリュームは符号１１及び１０Ａに示すように、必要に応じてその容量を拡張することができる。符号１１Ａが仮想ボリューム内の論理アドレス領域であり、この領域自身が物理的な記憶領域を備えているわけではない。
【００１５】
符号１２及１４はプールであり、このプールにハードディスクドライブ等の記憶デバイスの実際の記憶領域が割り当てられている。符号１２Ｂで示される、ドラム状の図形はプールに属する記憶領域の一部、即ち記憶領域の単位を示している。これをチャンクという。プールの記憶領域はチャンク毎で仮想ボリュームの論理的にある大きさを持った領域１１Ａに割り当てられる。上位装置は仮想ボリューム１０に対して、記憶デバイスにデータを書き込むためのライトアクセス、記憶デバイスからデータを読み込むためのリードアクセスを行なう。
【００１６】
符号１２はオンラインデータが格納されるオンラインプールであり、符号１４はアーカイブデータが格納されるアーカイブプールである。オンラインデータとは上位装置からのアクセス頻度が高い、あるいはアクセスされてからの経過時間が短いデータをいう。アーカイブデータとは上位装置からのアクセス頻度が低い、あるいはアクセスされてからの経過時間が長いデータをいう。オンラインプールとアーカイブプールとの間でデータの移動が行なわれる。
【００１７】
プールに新たな記憶領域を必要に応じて割り当てることによりプールの領域を拡張することができる。記憶制御装置は、仮想ボリュームに割り当てられるべき記憶領域がプールにおいて不足したときに新たな記憶領域をプールに割り当てる。プールに割り当てられる記憶領域、そして、プールから仮想ボリュームに割り当てられた、管理領域としてのチャンク（後述のプール論理ボリュームのセグメントに対応する。）は、記憶制御装置内の情報テーブルに登録され管理される。チャンクのサイズは必要に応じて管理者によって設定される。チャンクは、例えば、一般ブロックサイズとしての２５６Ｂから画像長大データとして数ＭＢ〜数ＧＢから構成される。
【００１８】
記憶領域は記憶制御装置内の記憶デバイスから提供される。記憶デバイスとはハードディスクドライブの他、フラッシュメモリなど半導体メモリでも良い。特に限定されない。仮想ボリューム１０は、上下に分かれた二層を持って図示されている。上層１３Ａの領域にオンラインプール１２の記憶領域が割り当てられている。下層１３Ｂの領域にアーカイブプール１４の記憶領域が割り当てられている。オンラインプールとアーカイブプールとの間でデータの移動があった場合は、符号１３Ｃに示すように、仮想ボリューム内の上層１３Ａの領域と下層１３Ｂの領域の間で論理ブロックアドレスの領域の移動が行われる。プールの容量は記憶デバイスを記憶制御システムに追加することによって増やすことができる。
【００１９】
図２は記憶制御装置１と上位装置２とを備えた計算機システムの機能ブロック図を示すものである。プールボリュームがオンラインプールとアーカーブプールから構成されている他に、上位装置２から記憶制御装置１にライトアクセスするデータの種類に応じて、データが格納されるプールを違えるようになっている。オンラインプール１２は、テキスト系（ファイル系）データを格納するテキスト系データ格納用プール１２−１と、ブロック系（データベース系）データを格納するブロック系データ格納用プール１２−２と、長大系（画像系）データを格納する長大系データ格納用プール１２−３とから構成されている。アーカイブプール１４Ａと１４Ｂについても同様である。
【００２０】
アーカイブプール１４Ａは活性型であるプールであり、アーカイブプール１４Ｂは不活性型であるプールである。活性・不活性の区別は、プールに記憶領域を提供する記憶デバイスの上位装置２から記憶制御装置に１に送られるライトアクセス又はリードアクセスに対する応答性に基づく。例えば、活性型であるプールに対応する記憶デバイスの電源はオンされており、活性型でないプールに対応する記憶デバイスの電源はオフされている。上位装置或いは記憶制御装置の制御部（制御手段）からのアクセスが活性型でないプールに及ぶ場合には、記憶デバイスをオンした後上位装置がこの記憶デバイスのライトアクセス又はリードアクセスする。アーカイブプール（不活性）に記憶領域を提供し、オンラインプール又はアーカイブプール(活性)に記憶領域を提供するものではない記憶デバイスの電源をオフすることによって、記憶制御装置が必要とする電力を少なくなるようにしている。
【００２１】
仮想ボリュームの記憶領域１１Ａは、データがテキスト系データか、ブロック系データか、長大系データかのデータ自体の種類に応じて各種のプールボリュームに対応している。さらに、仮想ボリュームの記憶領域１１Ａは、上位装置のデータに対するアクセス頻度に関するデータの種類、即ち、オンラインデータか或いはアーカイブデータかに応じて、オンラインプール又はアーカイブプールに割り当てられている。オンラインプールに記憶領域を提供する記憶デバイスはホストからのアクセスに対して高速に応答できるインターフェース規格に準じたものであることが好ましい。例えば、ファイバチャネルをインターフェースとするＦＣドライブである。アーカイブプールボリュームに記憶領域を提供する記憶デバイスは、上位装置から当該アーカイブプールへのアクセス頻度はオンラインプールより高くないことから、例えば、低コストで大容量のＳＡＴＡドライブ又はＡＴＡドライブを利用する。データに対するホストからのアクセスの履歴に基づいて、記憶制御装置１はオンラインプールのデータをアーカイブプール（活性型）に移動する。一方、アーカイブプール（活性型）のデータがアーカイブプール（不活性型）に移動する。逆に、アーカイブプールからオンラインプールへのデータを移動することもある。
【００２２】
記憶制御装置1は、各プールの記憶領域に格納されたデータパターンを検索するための検索エンジン２０を備えている。記憶制御装置は自身でこの検索エンジンを用いて上位装置からの検索アクセスに基づいてプールに格納されたデータの検索を上位装置に代わって実行する。記憶制御装置はこの検索を効率的に行なうために、ホストからのライトアクセス毎にメタ情報を入手してこれを情報テーブルに登録している。メタ情報としては、ライトアクセスに伴うフレームに含まれるライトデータに上位装置側で予め付与したインデックスである。インデックスの典型的な例がキーワードである。メタ情報はテーブル化されて記憶制御装置１のメモリに保存されている。さらに、記憶制御装置は過去行われた検索について、検索用のインデックスや検索結果に関する履歴を検索来歴として、これもテーブル化してメモリに保存している。記憶制御装置は検索来歴を参照して後に行なわれる検索処理を効率的に行っている。
【００２３】
上位装置２は記憶制御装置１に検索を実行させるために必要なプログラムを備えている。例えば、上位装置は記憶制御装置１にライトアクセスする場合には、ライトデータを含むフレームにインデックス情報（キーワード）を載せている（２１）。記憶制御装置１は上位装置２にメタ情報（インデックス情報）テーブル（２２）の当該メタ情報を提供する（２３）。上位装置は当該メタ情報を参照して、記憶制御装置内の過去の検索来歴を利用した検索を記憶制御装置に命令することができる。さらに、上位装置は記憶制御装置に検索範囲や検索パターンを含む検索コマンドを発行し（２３Ａ）、記憶制御装置はこの検索コマンドに基づく検索結果を上位装置に返答する。上位装置は検索結果を自身であるいは上位装置の各クライアントに画面表示させる。なお、符号２４は記憶制御装置のキャッシュメモリであり、記憶制御装置の制御部は、キャッシュメモリを利用して検索を高速に行なう。記憶制御装置の検索エンジン２０は、上位装置からの検索コマンドを受けて、過去の検索来歴を利用した検索の実現について最適化の処理を行い、この最適化処理の結果に基づいて検索を実行する。
【００２４】
記憶制御装置は、ここで説明した検索を特定のプールボリュームに対して実行する。従来はプールボリュームにテキスト系データ、ブロック系データ、及び長大系データが一緒に格納されていた。上位装置の検索エンジンが特定のデータに関する検索を行なおうとすると、容量が大きいデータも含めて全ての種類のデータを検索しなければならなかった。これでは検索に時間が掛かり、効率的な検索が可能ではなかった。
【００２５】
図２に示すストレージシステムにおいては、記憶制御装置１は上位装置からの検索キーワードやデータの種類に関する命令を受けて検索対象となるプールボリュームを特定することができるために、検索を効率的に行なうことができる。また、記憶制御装置自身が検索エンジンを備えているために、上位装置を検索のための処理から解放することができる。しかも、記憶制御装置は検索に当たって、メタ情報、及び検索来歴を参照するために、より検索の為の処理を効率化することができる。なお、上位装置にはＮＡＳブレード、ＮＡＳゲートウエイも含まれる。
【００２６】
なお、検索のためのインデックスの選択、検索するデータの種別などの形態が上位装置に指定されることにより検索パターンが決まる。複数の仮想ボリュームのうちどの仮想ボリュームについて検索を行なうかを上位装置が指定することによって検索範囲が決まる。上位装置には複数の仮想ボリュームが見えており、特定の仮想ボリュームを指定できる。図２では便宜上一つの仮想ボリュームのみが表示されている。
【００２７】
記憶制御装置がデータを検索する場合には、オンラインプール、アーカイブプール(活性)、アーカイブプール(不活性)の順で検索し、オンラインプール又はアーカイブプールを検索している間にアーカイブプール(不活性)を活性化しておくと良い。例えば、記憶制御装置はホストからの検索要求に基づいて検索を開始し、検索すべきデータがテキスト系データと判断すると、先ず、オンラインプール、アーカイブプール(活性)を順番に検索し、検索の間にテキスト系データのアーカイブプール活性化する。あるいは記憶制御装置が検索対象のデータを保管するプールが判る場合には第１にこのプールに属する記憶領域について検索する。
【００２８】
図３は上位装置が記憶制御装置へライトアクセスする際のタイミングチャートである。先ず、上位装置は記憶制御装置へライトコマンド（格納コマンド）を発行する。上位装置は、次いで記憶制御装置へ格納されるべきデータを送信する。上位装置はデータの種別（グループ属性）とデータが格納されるべきプールの属性(オンラインプール・アーカイブプールの区別、活性・不活性の区別)を記憶制御装置に指示する。データの種別とは既述のとおりデータがテキスト系データかそれ以外であるかである。次いで上位装置はインデックス情報（キーワード）をストレージサブシステムに送る。記憶制御装置は上位装置から送信された情報に基づいてデータを適切なプールに格納する。さらに、インデックス情報を含むメタ情報を管理テーブルに格納する。
【００２９】
図４は上位装置から記憶制御装置へ発行されるライトアクセスに伴うフレームの構成例である。フレームはライトコマンドを示す領域４００、ライトデータを示す領域４０２、データの属性を示す領域４０４からなる。データの属性４０４の領域は、グループ属性の領域４０４Ａ、プール属性の領域４０４Ｂ、キーワードの領域４０４Ｃからなる。ライトコマンドには、上位装置がアクセスする仮想ボリュームの論理ブロックアドレスが含まれている。記憶制御装置は、自身が備える変換テーブルを利用してこの論理ブロックアドレスへのアクセスをこのアドレスに対応するプール、そしてプールに含まれる記憶領域（物理ボリューム或いは実記憶領域）へのアクセスに変換する。
【００３０】
グループ属性とはデータがテキスト系データか、ブロック系データか、或いは長大系データであるかに関する区別である。グループ属性を示すビットデータが“01”はテキスト系データ（ファイルデータ）であること、“02”はブロックデータであること、“03”が長大データであること、をそれぞれ示している。記憶制御装置はこのビットデータを認識することにより上位装置から送られたデータの種類を知ることが出来る。データの種類に関する既述の説明は一例である。上位装置は、記憶制御装置側にデータのグループ領域を判定させることもできる。この場合には４０４Ａの領域に“FF”が格納される。記憶制御装置はこのフラグを認識するとデータの種類を自身で判定する。例えば、拡張子が存在するか、そして拡張子は何かにより、データがファイルデータであるかブロックデータであるか、又はビットであるかを決定することができる。
【００３１】
プール属性とは、データが格納されるべきプールがオンラインプールかアーカイブプールかに関する情報である。“01”はオンラインプールであることを、“02”はアーカイブプールであることをそれぞれ示している。“FF”はプール属性の決定を記憶制御装置側に委ねることを示している。４０４Ｃにはデータ４０２を特定する最適なキーワードが格納されている。記憶制御装置は、このキーワード（メタ情報）を情報テーブルに格納する。なお、グループ属性、プール属性、そしてキーワードに変更がない場合には、ビット配列に“NULL”が設定される。
【００３２】
図５は上位装置の命令（検索コマンド）に基づいて、記憶制御装置の既述の検索エンジン（図２の２０）が実際にデータの検索を実行する場合におけるタイミングチャートである。上位装置は記憶制御装置へ検索コマンドを発行する。上位装置は、検索パターン及び検索範囲を記憶制御装置に指示する。記憶制御装置は検索の為のプログラムに従って検索を行い、検索結果（1,2,3・・・・ｎ）を上位装置に送信して検索を終了する。
【００３３】
図６は記憶制御装置（ストレージサブシステム）のハードウエアの構成例を示すブロック図である。ストレージサブシステムは、ストレージコントロールユニット３００(制御回路)と、ストレージ駆動装置３０とからなる。
【００３４】
ストレージ駆動装置はデータを記憶する為の多数の物理ディスクドライブをアレイ状に備えている。これにより上位装置に対して大量の記憶領域を提供することができる。物理ディスクドライブはハードディスクドライブ等のデータ記録媒体からなる。多数の記憶デバイスはＲＡＩＤを構成して、記憶データの冗長化を達成している。
【００３５】
図６には、それぞれ同一構成のコントロールユニット一対が接続部３０８で接続するクラスタ構成が示されている。即ち、記憶制御装置はコントロールユニットを冗長化させている。同一の物理ディスクには両方のコントロールユニットがアクセス可能である。両方のコントロールユニットの構成は同一であるので、ここでは、一方のコントロールユニットについてその構成を説明し、他方のコントロールユニットの説明は割愛する。
【００３６】
コントロールユニットは、上位装置から受信したコマンドに従って物理ディスクに対する制御を行なう。例えば上位装置からデータ書き込み要求を受信し、ストレージ駆動装置が備える記憶ボリュームに対してデータの書き込みを行なう。物理ディスクドライブにより提供される物理的な記憶領域である物理ボリュームには、コントロールユニットは、論理的な記憶領域である、一つ又は複数の論理ボリュームを設定することができる。本発明のコントローラは、既述のとおり、物理ボリュームが対応していない仮想ボリューム（これも論理ボリュームではある。）を上位装置に提供し、この仮想ボリュームの下層に物理ボリュームに対応するプールを定義する。上位装置はプールを仮想ボリュームに対応させている。即ち、上位装置はプールの物理ボリュームを仮想ボリュームに割り当てている。上位装置とは、ＣＰＵやメモリを備えたコンピュータ等の情報処理装置である。情報処理装置が備えるＣＰＵにより各種プログラムが実行される。
【００３７】
上位装置はＳＡＮを介して、ファイバチャネルプロトコルにしたがって、コントロールユニット１０との間で、データの入出力要求やデータ送受信を行なっている。上位装置は、ＳＡＮの他ＩＰ−ＳＡＮを介してコントロールユニットに接続しても良い。ＩＰ−ＳＡＮとは上位装置とコントロールユニットとの間のデータ入出力要求のやり取りやデータの送受信のやり取りをインターネットプロトコルによって行なうものである。符合３０１Ａはホストインターフェース制御部３０１とＳＡＮとの接続線である。以後上位装置をホストということもある。ホストはホストインターフェース制御部に直結されても良い。また、ストレージ制御装置１０とストレージ駆動装置１０とは同一の筐体になっても、あるいはそれぞれ別な筐体になっても良い。
【００３８】
コントロールユニットは、ホストインターフェース制御部３０１の他、ＣＰＵ制御部３０４と、
情報メモリ３０５と、キャッシュメモリ３０６とデータ転送制御部、デバイスインターフェース制御部３０３を備えている。ホストインターフェース制御部３０１、データ転送制御部３０２、デバイスインターフェース制御部３０３はそれぞれＬＳＩによって構成されている。ここで、説明される各構成要素は図６において矢印で示されるように互いに接続されている。符号３０４Ａは、ＣＰＵ制御部３０４と管理装置を接続する通信手段である。管理装置はＣＰＵ制御部を介して３０４Ａによって管理装置に接続されている。管理装置は図示されていないが、ＣＰＵ制御部を介してコントロールユニットに対して、上位装置との間でこのコントロールユニットがデータの交換を行なう上で必要な各種の設定を行う。この設定後の情報を制御テーブルとして情報メモリ３０５に格納されている。
【００３９】
ホストインターフェース制御部３０１は、ファイバチャネルプロトコル又はインターネットプロトコルを用いて上位装置との間で通信を行い、上位装置からデータの入出力要求を受信し、上位装置との間でデータの送受信を行なう。
【００４０】
図７にも示すように、データ転送制御部３０２はホストからのライトアクセス、リードアクセスに基づく、ホストと記憶デバイス群３０７との間でのデータの転送を制御する。データ転送制御部３０２は制御処理の主体を担うデータ制御部３０８を備えている。データ制御部３０８はホストＩ／Ｆ部３０１、メタデータを格納するメタデータメモリ３０５と、キャッシュメモリ３０６に接続している。４００はキャッシュメモリとのインターフェースであり、４０１はメタ情報メモリとのインターフェースである。
【００４１】
データ転送制御部３０２はデータ演算部３０９を備えている。データ演算部はデータ制御部３０８から送られるデータに対してＲＡＩＤパリティを演算するＲＡＩＤパリティ演算部４０２と、圧縮データの解凍、或いはデータの圧縮処理を行う圧縮演算部４０３と、データ検索のための検索演算部５０１を備えている。
【００４２】
コントロールユニットはさらに、ホストから記憶デバイスに書き込まれるデータとホストが記憶デバイスから読むデータとを一時記憶するキャッシュメモリ３０５と、既述のインデックス（キーワード）からなるメタデータを記憶するメタデータメモリ３０５と、データ制御部がＨＤＤに接続するためのデバイスインターフェース３０３Ａを備えている。ディスクインターフェース制御部３０３はデータを記憶する記憶ボリュームと通信可能に接続され、物理ディスクを制御する。
【００４３】
データ転送制御部３０２は、ホストインターフェース制御部３０１とＣＰＵ制御部３０４もしくはデバイスインターフェース制御部３０３とＣＰＵ制御部間の制御情報(例えばデータ入出力要求)の橋渡しを行い、又、ホストインターフェース制御部とキャッシュメモリ３０５間もしくはデバイスインターフェース制御部とキャッシュメモリ間のデータ転送制御を行なう。
【００４４】
ＣＰＵ制御部３０４は、上位装置からの制御情報に対して、ホストインターフェース制御部、ディスクインターフェース制御部、及びデータ転送制御部を制御する。キャッシュメモリ３０５は、ホストインターフェース制御部とディスクインターフェース制御部との間で授受されるデータを一時記憶する。
【００４５】
例えば、ホストインターフェース制御部３０１が上位装置からデータ入力要求を受信した場合には、データ転送制御部３０２を介してＣＰＵ制御部３０４に同要求を転送する。転送されたデータ入力要求を検出したＣＰＵ制御部は同要求にしたがってデータ転送制御部をセットアップし、ホストインターフェース制御部に対してデータ転送の開始を指示し、データはホストインターフェース制御部からデータ転送制御を介してキャッシュメモリ３０６に格納される。データをキャッシュメモリに格納したホストインターフェース制御部は、ＣＰＵ制御部に同格納を終了したことを伝える。そしてデータ格納について終了を検出したＣＰＵ制御部は、データ転送制御部をセットアップし、ディスクインターフェース制御部３０３に対して記憶ボリュームへデータを転送することを指示し、データはキャッシュメモリ３０６よりデータ転送制御部３０２、ディスクインターフェース制御部３０３を介して、記憶ボリュームに格納される。
【００４６】
また、ホストインターフェース制御部３０１が上位装置からデータ出力要求を受信した場合には、ＣＰＵ制御部は、読み出し対象となるデータがキャッシュメモリ３０６に存在するかどうかを調べる。ここでキャッシュメモリに読み出したデータが存在しない場合には、ＣＰＵ制御部はデータ転送制御部をセットアップし、ディスクインターフェース制御部に対してデータ転送の開始を指示し、読み出し対象となるデータを、記憶ボリュームからキャッシュメモリに格納する。一方、読み出しデータがキャッシュメモリに存在する場合（キャッシュヒット）、また、前記転送でキャッシュメモリに当該データを格納した場合に、ＣＰＵ制御部はデータ転送制御部をセットアップし、ホストインターフェース制御部にデータ転送の開始を指示し、情報処理装置にその読み出しデータを送信する。
【００４７】
図６のＣＰＵ制御部３０４は、複数のＣＰＵコアを備えて、ＣＰＵ制御部が行なうべき処理を分散させても良い。例えば、ＣＰＵコアとしてＡ，Ｂの二つを備える場合、ＣＰＵコアＡは、ホストインターフェース制御部とキャッシュメモリ間のデータ転送、ＲＡＩＤパリティ演算、データの圧縮−解凍機能、電源制御機能、バッテリ制御機能、ボリュームの複製、ボリュームの管理、リモートコピーを行い、ＣＰＵコアＢはキャッシュメモリとデバイスインターフェース制御部間のデータ転送、データの検索を行なってよい。
【００４８】
図７にはデータ転送制御部３０２の詳細なブロック図が示されている。３０８はデータの転送動作の主体を担うデータ制御部を示している。データ制御部３０８はＣＰＵ制御部３０４と、ホストインターフェース制御部３０１、ディスクインターフェース制御部３０４とそれぞれ接続されている。３０８は二つのコントロールユニットのデータ制御部を接続する接続回路である。二つのコントロールユニットを接続することにより、システム全体としての冗長化を図っている。
【００４９】
データ制御部３０８はキャッシュメモリインターフェース４００と情報メモリインターフェース４０１にそれぞれ接続する。キャッシュメモリインターフェースはキャッシュメモリ３０６に接続されデータ制御部３０８とキャッシュメモリ間のデータの授受を仲介する。情報メモリインターフェースは情報メモリ３０５に接続されており7、データ制御部とメモリとの間のデータの授受を仲介する。
【００５０】
図７に示すように、データ転送制御部はデータ演算部３０９を備えている。データ演算部は記憶ボリュームをＲＡＩＤによって構成する場合のＲＡＩＤパリティを演算するＲＡＩＤパリティ演算部４０２と、データの圧縮−解凍を行なう圧縮演算部４０３と、記憶ボリュームに記憶されたデータの検索を上位装置からの検索命令を受けて行なう検索演算部５０１とから構成されている。データ転送制御部を構成するＬＳＩはデータ転送を行なうＤＭＡコントローラと、演算部を構成するマイクロプロセッサと、演算処理を実現するマイクロプログラムを格納するメモリとを備えて構成されても良い。なお、ＲＡＩＤパリティ演算部、圧縮演算部、及び検索演算部をデータ転送制御部とは別に、あるいはホストインターフェース制御部又はディスクインターフェース制御部に存在するようにしても良し、ＣＰＵ制御部が代用機能を分担しても良い。
【００５１】
なお、図６に示すあるハードディスクドライブ３０７には、二つのコントロールユニットのそれぞれのデバイスインターフェース部３０３から通信線３０７Ａが接続されている。すなわち、同じ記憶ディスクにはどちらのコントロールユニットからもアクセスすることができる。３１０はコントロールユニット内の非常電源としてのバッテリである。ディスクアレイ部３０はハードディスクドライブの駆動回路に電力を供給する電源３１１と、複数のＨＤＤを冷却する冷却器３１２を備えている。
【００５２】
図８は図７に示すデータ演算部の検索演算部５０１（検索エンジン）の検索処理動作を示す機能ブロック図である。インデックスデータ読み込み制御部５０３は、ホストからデータ検索のためにストレージサブシステムに送られるインデックスデータ５０３Ａを検索演算部５０１に読み込むことを制御する。キャッシュ読み込み制御部５０４はＨＤＤから検索のためのデータをキャッシュメモリ３０６に読み込むことを制御する。
【００５３】
検索バッファ５０５はキャッシュメモリ３０６からデータ５０４Ａを順次取り出して一時記憶する。検索制御部５０２は、インデックスデータ読込制御部５０３とキャッシュ読込制御部５０４を制御する。データ制御部３０８は検索制御部５０２を制御する。ホストからデータ制御部３０８に送られたインデックスデータ５０３Ａは比較データ１，２，３として検索データ部５０７に格納される。比較回路部５０６は各比較データを検索バッファに格納された比較対象データ５０５Ａ，５０５Ｂ，５０５Ｃと比較し、一致・不一致に関する検索結果が結果情報１，２，３として結果データ部に５０８格納される。結果情報はデータ制御部３０８に返される。データ制御部は比較結果をホストインターフェース制御部３０１を介してホストに送る。
【００５４】
図９は、仮想ボリュームを構成する、チャンク単位として、サブ論理ボリューム（ＳＬＵ）にプールボリュームのサブ論理ボリューム（ＳＬＵ）が割り当てられている状態を示している。プールボリューム（１２，１４Ａ，１４Ｂ）のサブ論理ボリュームは、図１０に示すように複数の記憶デバイスＰＤ１，ＰＤ２・・・・・ＰＤｍに跨って形成されている。上位装置は仮想ボリューム１０のサブ論理ボリュームを認識することができる。プールに割り当てられた記憶デバイスの物理的な記憶領域はサブ論理ボリュームとして論理的に定義され、このサブ論理ボリュームが仮想ボリュームのサブ論理ボリュームに割り当てられている。管理装置は仮想ボリュームのある領域とプールボリュームのサブ論理ボリュームとの対応関係を、ＧＵＩを利用するなどして決定し、この対応関係を制御テーブルの形でメモリ３０５に記録する。記憶制御装置のＣＰＵ制御部３０４は上位装置からの仮想ボリュームへのアクセスを、この制御テーブルに基づいてプールボリュームの記憶領域へのアクセスに変換する。
【００５５】
図１１は、仮想ボリュームにプールに属する記憶領域に対して設定された論理ボリュームを割り当てるための制御情報を示す管理テーブルである。この制御テーブルはメモリ３０５に格納されている。ＣＰＵ制御部３０４はこの制御テーブルを参照して上位装置からの仮想ボリュームへのアクセスをプールに割り当てられた記憶デバイスへのアクセスに変換する。ホスト論理ＬＵ番号の“ＨＬＵ−１”は仮想ボリュームに対するＬＵであり、例えば、このＬＵの論理ブロックアドレスの０×０１４ｆ００００がプール側論理ボリュームの論理ユニット番号ＳＬＵ−２７の０×０１４Ｆ００００に対応していることを示している。プール側論理ボリュームの論理ユニット番号は図１１において装置（記憶デバイス）論理ＬＵ番号として示されている。
【００５６】
図１１において、Statusはプール側（記憶デバイス側）の論理ボリュームの属性に関連する特定値である。Status１は論理ボリュームが、通常のボリューム（０１）、副ボリューム（０２）、システム用のリザーブボリューム（０３），未使用（ＦＦ）を示している。Status２は、リード・ライトが可能なボリューム（０１）,リード可・ライト不可（０２）、リード・ライト共不可（０３）、未使用（ＦＦ）を示している。Status３は、ストレージ内のデバイス（０１）、このストレージ外のデバイス（０２）、ＦＦ（定義なし）を示している。
【００５７】
図１２はプール側の論理ボリュームのさらに他の属性を示す制御テーブルである。ＣＰＵ制御部３０４は、この制御テーブルを参照して記憶デバイスに対して定義された論理ボリュームが属するプールの特性を判断する。この特性とは、プールの属性、すなわちプールがオンラインプールかアーカイブプールかの区別、プールに格納されるデータのグループ属性、すなわち、テキストデータ（ファイル形式で規定されたデータ）（０１）、データベース用などのブロックデータ（０２）、画像などの長大データ（０３）の区別、または、プールのStatus、すなわち、プールボリュームが活性タイプである（０１）、プールボリュームが不活性である（０２）、プールボリュームが活性中であり、かつプールボリュームに格納されているデータが圧縮状態にある（０３）、プールボリュームが不活性であり、かつプールボリュームに格納されているデータが圧縮状態（０４）であるかの区別である。
【００５８】
プール属性においてＦＦは属性が未定であることを示している。ＣＰＵ制御部３０４はホストから送られたフレーム（図４）を受信する都度、装置論理ＬＵ番号で特定される論理ボリュームにデータを格納するとともに、図１２の制御テーブルにプール属性などの属性を既述する。図１２に示す制御テーブルはＣＰＵ制御部３０４によって更新され、メモリ３０５に格納されている。
ＣＰＵ制御部は、メモリに格納されている記憶領域の割り当てプログラムに基づいて、図１２の論理ボリュームに記憶デバイスの記憶領域を割り当てる。なお、プール属性に応じて記憶領域が割り当てられるストレージの種別が決定される。既述のとおり、例えば、ＦＣドライブ、ＡＴＡドライブかなどである。
【００５９】
図１３はメタ情報を格納し、これを管理するためのテーブルである。メタ情報とは、図４において説明したとおり、上位装置からストレージサブシステムに格納されるデータに対して上位装置側で定めたキーワードなどのインデックスである。このメタ情報はプールの論理ボリュームＳＬＵの中のチャンク単位であるセグメント（ＳＧ−００１等と表示されている）として定義される記憶領域の論理的な単位毎に設定される。プールに属する論理ボリュームには複数のセグメントがあり、各セグメントにインデックス情報を設定することによって、記憶制御装置が上位装置からのリクエストを受けて精度の高い検索を上位装置に提供することができる。
【００６０】
上位装置はストレージのデータを検索する際に、このデータに対するインデックスを記憶制御装置に指定する。データに対するインデックスは図４で説明されているとおりである。記憶制御装置は、このインデックスが格納されているセグメント領域を検索することによってデータ検索を効率的に行なう。セグメントの領域(データ境界)とインデックスの関係は、図１３で示すテーブルにＣＰＵ制御部３０４によって纏められメモリ３０５に登録される。インデックスのリスト(後述の図１４乃至図１６)はＣＰＵ制御部がデータ転送制御部３０２、ホストインターフェース制御部３０１を介して上位装置に提供される。上位装置はインデックスのリストを参照してインデックスを選択してデータ検索命令を記憶制御装置に送る。記憶制御装置は上位装置からのフレームの転送を受信する都度、図１３のテーブルに示すように、データが格納されたセグメントに対するインデックスを追加する。
【００６１】
既述のとおり、仮想ボリュームには、種類が異なるデータ（テキストデータ、データベース用データ，画像データなど）を記憶するプールボリュームを対応付けている。したがって、ホストには異なる種類のデータが同一のボリュームに集約しているように見せながらも、記憶制御装置側ではデータの相違を認識することができる。ホストは検索範囲として仮想ボリュームと検索パターンを指定するだけで、記憶制御装置は、検索すべき記憶階層（プールボリューム、セグメント）を認識することによって、ホストから記憶制御装置への命令が検索命令の場合には格納のための処理を効率化されることができる。
【００６２】
インデックスはデータの種類毎に分けてテーブル化されているために、記憶制御装置は上位装置から検索データに関するインデックスを受信することによって、検索すべき論理ボリューム（プール）を知ることができる。したがって、記憶制御装置は、データ検索を迅速に行なうことができる。なお、上位装置が記憶制御装置に対して検索すべきデータの種類を指定しても良い。仮想ボリュームの次の階層にデータの種類毎に論理ボリュームを設定しても良い。
【００６３】
図１３において、Index１・・・Index4はそれぞれインデックス情報を特定する項目である。例えばひとつのセグメント（ＳＧ−０００１）の論理ブロックアドレスの開始アドレスは０×００００であって、領域サイズは００８（例えば２５６Ｂ×００８＝４ＫＢ）である。このセグメントに格納されるデータに対して「ＴＢ０１−００１」というインデックステーブル番号「ＴＢ０１」とインデックス番号「００１」によって特定されるIndex１と、「ＴＢ０２−００３」によって特定されるIndex２と、「ＴＢ０１−００５」によって特定されるIndex３が設定されている。
【００６４】
インデックステーブルとは、複数のインデックスをデータの種類毎に分類したテーブルである。「ＴＢ０１−００１」で特定されるインデックステーブルは図１４に示されている。図１４において、インデックステーブル番号は複数のインデックス番号に分けられており、各インデックス番号にインデックスデータのパターン（テキストキーワード）が格納されている。図１４はテキスト系データに対するインデックステーブルである。
【００６５】
図１３において、“ＴＢ０２”とは図１５に示すインデックステーブルである。図１５のテーブルは、ブロック系データに対応するインデックスを示している。図１５も図１４と同じように複数のインデックス番号に分類され、各インデックス番号にメタ情報である、データベースキーワード、サーチワード、或いは検索式が格納されている。図１３の“ＴＢ０３”は図１６に示すインデックステーブルである。図１６のテーブルは長大系データに対するインデックスを示している。図１６も図１４，図１５と同じように複数のインデックス番号に分類され、各インデックス番号にインデックスデータパターンとしてビットマップパターンが登録されている。図１６にはさらに各ビットマップパターンにデータサイズも登録されている。
【００６６】
ＣＰＵ制御部３０４は上位装置からライト命令（図４）がある都度、そのライト命令に伴うデータフレーム中のデータの種類（４０４Ａ）を認識して、インデックス情報４０４Ｃを図１４乃至図１６のうち該当するテーブルに書き込む。このテーブルは共有メモリ３０５に登録されている。ＣＰＵ制御部は、セグメント（図１３のＳＧ）に対するインデックス情報の内容を図１３と図１４とをリンクさせて知ることができる。
【００６７】
図１７は記憶制御装置が上位装置からリードコマンドを受けた際での記憶制御装置の動作を示すフローチャートである。ＣＰＵ制御部３０４はホストから発行されたＩＯコマンドを解析して（６００１）、リードコマンドを認識すると（６００２）、ホストが仮想ボリュームにアクセスした、当該仮想ボリュームの論理アドレスを解析する（６００３）。ＣＰＵ制御部は論理アドレスのデータがキャッシュメモリにあるか否かのキャッシュヒット判定を行なう（６００４）。ＣＰＵ制御部はヒット判定の場合は、データ転送制御部３０２にキャッシュメモリ３０６のデータをホストインターフェース制御部へ転送する（６０２０）。次いで、ホストインターフェース制御部３０１はホストへデータを送信する（６０２１）。
【００６８】
ステップ６００４においてキャッシュヒットミスが判定された場合は、ＣＰＵ制御部３０４は図１１に示した制御テーブルを参照してホストがリードコマンドを発行した先の仮想ボリュームのアドレスから対応するプール領域及び論理ボリューム（ＳＬＵ）を特定する（６００５）。論理ボリュームには記憶デバイスの実記憶領域が割り当てられている。
【００６９】
次いで、ＣＰＵ制御部は、後述の図１２の管理テーブルを参照して、プールに属する論理ボリュームの属性をチェックする（６００６）。このチェックにより、ホストがアクセスした仮想ボリュームのアクセス先に割り当てられたプールがどのような種類のデータを格納するものであるかが判定される（６００７〜６００９）。
【００７０】
次いで、データ制御部３０８は記憶デバイスからのデータ読み込み単位（データストライプサイズ）をデータの種類毎に選択する。グループ属性がテキスト系である場合のデータストライプサイズは小（６００９）、グループ属性がブロック系である場合にはデータストレージサブシステムライブサイズが小〜中（６０１０）、グループ属性が長大データ系である場合にはデータストライプサイズが大（６０１１）として選択される。このように記憶制御装置がグループ属性を認識することによって、データの種類毎に最適なデータの読み込み単位を決定することができる。
【００７１】
次いで、ＣＰＵ制御部は図１２のテーブルを参照して、プールボリュームの属性がオンライン（６０１３）、アーカイブ（活性）（６０１４）、あるいはアーカイブ（不活性）（６０１５）を判定する。プールボリュームが不活性の場合は、プールボリュームにデバイスインターフェース部３０３を介してアーカイブボリュームに記憶領域を提供する記憶デバイスの電源をオンし、すなわちアーカボリュームを活性に変更する（６０１６）とともに、図１２のテーブルにおけるプールボリュームの属性を不活性から活性に更新してメタ情報メモリに格納する（６０１７）。オンラインボリューム及びアーカイブボリューム（活性）に対応する記憶デバイスの電源はオンされている。
【００７２】
ＣＰＵ制御部３０４及びデータ転送制御部３０２は、プールボリュームのグループ属性に応じて記憶ディスクからキャッシュメモリに転送されるデータの転送長パラメータを認識し（６０１８）、記憶ディスクからこのパラメータに基づいてデータをキャッシュメモリに書き込む（６０１９）。
【００７３】
図１８は記憶制御装置が上位装置（ホスト）からライトコマンドを受けた際における、記憶制御装置の動作を示すフローチャートである。ＣＰＵ制御部３０４はホストから発行されたＩＯコマンドを解析して（６１０１）、ライトコマンドを認識すると（６１０２）、ホストが仮想ボリュームにアクセスした、当該仮想ボリュームの論理アドレスを解析する（６１０３）。次いでＣＰＵ制御部はホストからのデータフレーム（図４）をチェックしてデータのグループ属性を確認する（６１０４）。
【００７４】
ＣＰＵ制御部は図１１に示した制御テーブルを参照してホストがリードコマンドを発行した先の仮想ボリュームのアドレスから対応するプール領域及び論理ボリューム（ＳＬＵ）を確定する（６１０５）。次いで、データ転送制御部３０２は、ホストインターフェース制御部３０１からライトデータを受領し、これをキャッシュメモリに書き込む（６１０６）。次いで、データ転送制御部はホストインターフェース制御部３０１からホストへデータの書き込み完了の通知を送信する（６１０７）。
【００７５】
次いで、ＣＰＵ制御部３０４はライトデータのグループ属性をチェックする（６１０８）。このチェックにより、ホストからのライトデータがどのような種類のデータであるかが判定される（６１０９〜６１１１）。次いで、ＣＰＵ制御部はホストのデータ読み込み単位（データストライプサイズ）をデータの種類毎に選択する。グループ属性がテキスト系である場合のデータストライプサイズは小（６１１２）、グループ属性がブロック系である場合にはデータストレージサブシステムライブサイズが小〜中（６１１３）、グループ属性が長大データ系である場合にはデータストライプサイズが大（６１１４）として選択される。
【００７６】
次いで、ＣＰＵ制御部は図４のプール属性４０４Ｂを参照して、ライトデータのプール属性を判定し（６１１５）、プール属性がオンライン（６１１６）、アーカイブ（活性）（６１１７）、あるいはアーカイブ（不活性）（６１１８）を決定する。プール属性がアーカイブ（不活性）の場合は、プールボリュームにデバイスインターフェース制御部３０３を介してアーカイブボリュームに記憶領域を提供する記憶デバイスの電源をオンし、すなわちアーカボリュームを活性に変更する（６１１９）とともに、図１２のテーブルにおけるプールボリュームの属性を不活性から活性に更新してメモリ３０５に格納する（６１２０）。オンラインボリューム及びアーカイブボリューム（活性）に対応する記憶デバイスの電源はオンされている。
【００７７】
ＣＰＵ制御部３０４は、プールボリュームのグループ属性に応じて記憶ディスクにキャッシュメモリから転送されるデータの転送長パラメータを認識し（６１２１）、このパラメータに基づいてデータをキャッシュメモリからデータを読み込んでキャッシュメモリに書き込む（６１２２，６１２３）。
【００７８】
図１９は上位装置から記憶制御装置に書き込まれるデータが長大データ系である場合において、記憶制御装置が長大系データを圧縮して記憶デバイスに書き込む場合のフローチャートを示したものである。ＣＰＵ制御部３０４はホストから発行されたＩＯコマンドを解析して（６２０１）、ライトコマンドを認識すると（６２０２）、ホストが仮想ボリュームにアクセスした、当該仮想ボリュームの論理アドレスを解析する（６２０３）。
【００７９】
次いで、ＣＰＵ制御部は、ホストからホストインターフェース制御部３０１に送られたデータフレーム（図３）のグループ属性４０４Ａを認識してデータのグループ属性を確認する（６２０４Ａ）。次いで、図１１に示した制御テーブルを参照してホストがリードコマンドを発行した先の仮想ボリュームのアドレスから対応するプール領域及び論理ボリューム（ＳＬＵ）を確定する（６２０５）。
【００８０】
次いで、ＣＰＵ制御部は、ホストからのライトデータが長大系データであるか否かをチェックし（７００１）、ライトデータが長大系データでない場合には、キャッシュメモリの空き容量が僅かであるか否かを判定する（７００２）。ライトデータが長大系データである場合、そしてライトデータが長大系データではないがキャッシュメモリの空き容量に余裕がない場合、データ演算部３０９はキャッシュメモリから記憶ディスクへのデータのデータ転送モードを圧縮モードにし（７００３）、圧縮演算回路４０３をイネーブル状態にする（７００４）。
【００８１】
ＣＰＵ制御部は、キャッシュメモリの空き容量に余裕がある場合には、長大系データでないライトデータを圧縮することなく、そして長大系データの場合はデータを圧縮して、ホストインターフェース制御部３０１からキャッシュメモリ３０６にライトデータを書き込む（６２０６）。そして、データ転送制御部はＣＰＵ制御部にホストインターフェース制御部よりホストへライトデータの書き込みを完了した旨報告する。
【００８２】
次いで、データ転送制御部３０２は、キャッシュメモリ３０６からライトデータを読み込み、これを記憶ディスクに書き込み（６２１５）、次いで、ライトデータが書き込まれた、プールの論理ボリューム（ＳＬＵ）について、図１２で示すStatusを変更し、変更後の制御テーブルをメモリ３０５に更新登録する。このフローチャートによれば、記憶制御装置は、データ容量が大きい長大系データを他のデータから区別して圧縮して記憶デバイスに記憶する。これにより記憶制御装置の記憶資源を効率的に利用することができる。
【００８３】
図２０は、記憶制御装置がホストからの検索コマンドを受けて、記憶デバイスに記憶されたデータの検索を行う場合のフローチャートを示したものである。記憶制御装置の検索エンジン５０１がホストから検索コマンドを受けると検索を開始する（７１０１）。次いで、検索エンジンは検索コマンドに基づいて、ホストから要求があった検索に対して検索の進め方（検索パターン）を確認する(７１０２)。検索パターンには、既述のとおり、検索のためのインデックス（キーワード）の指定、検索対象となる仮想ボリュームの選択が含まれる。
【００８４】
検索エンジンはホストインターフェース制御部に送られた検索命令基づいて、検索対象となる仮想ボリュームを選択する(７０１３）。ホストは複数ある仮想ボリュームから検索対象となる仮想ボリュームを選択したり、さらに仮想ボリュームの下の階層に属するサブ論理ボリュームを検索対象として特定或いは選択することができる。さらに、ホストは検索すべきデータの種類を選択することもできる。
【００８５】
記憶制御装置は検索コマンドに基づいて、検索対象となる領域を認識して(７１０４)、この領域に検索するデータがあるか否かを検索する。検索エンジンは検索対象となった記憶領域（論理ボリューム）が圧縮されているか否かを図１２の制御テーブルを解析して、圧縮の有無を判定する（７１０５）。データが圧縮されていない場合、検索パターンデータ、即ち、ホストから検索エンジンに指定された、検索用のキーワードなどのインデックスデータを圧縮することなく、当該インデックスデータと検索対象となった仮想ボリュームに対応する全てのプールの記憶領域について一致検索を行なう（７１１２）。
【００８６】
データが圧縮されている場合、検索エンジンは検索用データを圧縮して検索を実行するか否かを判定する（７１０６）。圧縮検索を実行する場合、検索エンジンは検索用データのパターンを圧縮し（７１０７）、データ転送制御部３０２は記憶ディスクよりキャッシュメモリに検索対象の候補となる圧縮データを順次読み出して書き込む。
【００８７】
検査エンジンは、キャッシュメモリに書き込まれた圧縮データと圧縮されたキーワードとの一致の有無を順次判定する（７１１３）。一つの仮想ボリュームについて検索が終わった場合は、他の検索すべき仮想ボリューム（ＬＵ）が無いか否かが判定され、他の仮想ボリュームがある場合には、次の検索対象となる仮想ボリュームについてステップ７１０３以降の処理を繰り返し実行する。他の検索すべき仮想ボリュームがない場合は、検索エンジンは検索に関する履歴である検索来歴データを更新して、更新後の検索来歴データが格納されるテーブルをメモリ３０５に登録する。その後、検索エンジンは検索を終了する（７１１７）。
【００８８】
ステップ７１０６において圧縮検索の実行が否定されると、圧縮演算回路４０３をイネーブルにし（７１０８）、記憶ディスクの圧縮データを圧縮演算回路が圧縮状態から解凍してキャッシュメモリへ書き込む（７１１０）。次いで、検索エンジンは既述のように圧縮されていないデータに対して、圧縮されていないキーワードとの一致検索が行なわれる。図２０のフローチャートによれば、検索対象となったデータが圧縮されたボリュームに記憶されていても、記憶制御装置はホストからのインデックス情報に基づいて検索を行なうことができる。
【００８９】
図２１は、記憶制御装置によって行われる検索の結果に関する履歴を格納した情報テーブルである。ホストから検索コマンドが記憶制御装置に送信されるつど検索履歴番号が設定され、各検索履歴番号に日付とインデックス番号が設定される。インデックス番号はインデックステーブル（図１４乃至図１６）に対応している。このインデックス番号に対応するインデックスで、ストレージサブシステムの検索エンジンが検索した結果、一致した記憶領域（セグメント）の数がヒットＳＧ数である。この記憶領域は論理ボリューム番号（ＳＬＵ＃）と論理ボリューム中のセグメント番号（ＳＧ＃）で特定される。記憶制御装置の検索エンジンはホストから検索のコマンドを受ける都度、この情報テーブルに検索結果を書き加えてメモリ３０５に格納する。
【００９０】
図２２は、記憶制御装置がホストから検索コマンドを受けて、図２１に示す検索来歴情報テーブルを参考にして、検索を行なう際に優先して検索すべき記憶領域を決定するためのフローチャートである。記憶制御装置の検索エンジンがホストからキーワード・検索範囲の情報を取得する（１４０１）。次いで、検索エンジンはホストから検索来歴の範囲を指定されたか否かをチェックし（１４０２）、これが肯定された場合は、インデックス情報を検索する来歴の範囲を取得する（１４０３）。
【００９１】
検索エンジンはホストからの検索コマンドによって来歴（図２１）を検索するか否かを判定し（１４０４）、これを否定判定した場合は過去の検索来歴を参照することなく検索を開始する。一方、この判定が肯定された場合は、検索エンジンは検索データのパターン（キーワード）と図２１に示す来歴情報との一致の有無を判定する（１４０５）。検索エンジンは、検索データと来歴情報テーブルでのインデックス（インデックス番号）によって図１４乃至図１６によって定まるキーワードとを比較し、キーワードの内容が完全一致又は部分一致したヒットエリアを抽出する（１４０６）。このヒットエリアは図２１に示すように検索来歴番号によって特定される。検索エンジンはステップ１４０３において検索すべき来歴範囲が指定されている場合にはこの範囲を、指定されていない場合はすべの来歴の範囲についてステップ１４０６の判定を行なう。来歴の範囲とは日付、あるいはインデックス番号によって定まる。
【００９２】
検索エンジンはステップ１４０６によって各ヒットエリアについて、各ヒットエリアの記憶領域の数を求め、最も数が多いエリアから順に優先して検索を行なうこととする。記憶領域は図２１に示すように、論理ボリューム番号（ＳＬＵ番号）とセグメント番号（ＳＧ番号）の組み合わせによって特定される。検索エンジンは検索をすべき優先度順に検索すべきエリアをリストアップする（１４０７）。検索エンジンはこのエリアの優先度に基づいて、エリアに属する記憶領域について検索される順番を決定する（１４０８）。
【００９３】
図２３は、検索エンジンが図２２の検索優先エリアを決定刷るためのフローチャートである。検索エンジンがキーワードのパターン（ビットデータの配列）と来歴情報テーブル（図２１のインデックス）のインデックスのパターン（ビットデータの配列）とを照合する（２００１）。検索エンジンは照合率（両パターン間でビットデータの整合率）が８０％以上のインデックス（図２１の複数のインデックス番号）を選択する。
【００９４】
次いで、検索エンジンは各インデックス（インデックス番号）について、図２１の情報テーブルを参照して、検索においてヒット判定されたセグメント数を累積する計算を行なう（２００２）。検索エンジンはこの累積計算の結果をテーブル（２００３）の形として作成し、これをメモリの所定エリアに登録する。検索エンジンはテーブル２００３を検索して、最もセグメントの累積数が大きいインデックスをピークインデックスとし、このピークインデックスに属するセグメントを抽出する（２００４）。次いで、検索エンジンはこのセグメントが２００３のテーブル内でヒットする数を累積計算し、セグメント毎のヒット累積数のテーブル（２００４）を作成する。２００４のテーブルをグラフ化(ヒストグラム)すると図２４に示すようになる。
【００９５】
検索エンジンは、図２４を参照してヒット数が高いセグメントから優先して検索を開始する。検索は、例えば、ホストが記憶制御装置に図４に示すフレーム中のデータ部分４０２の全部或いは一部を送り、記憶制御装置はステップ２００５において求められた、セグメントに対する優先検索順にしたがってセグメント内のデータがホストから送られたデータに一致するか否かを判定する。記憶制御装置が検索結果をホストに送ると、ホストの表示装置はこの検索結果をモニタに表示することができる。ステップ２００４において、ピークインデックスについて、セグメントに対する優先度を決定する処理が終了すると、次にヒット判定されたセグメント数が多いインデックス番号に係わるインデックスについて、同様にステップ２００４と２００５の処理を実行する。
【００９６】
全てのインデックス番号について、たとえ全てでないにせよ多くのインデックス番号についての処理を行うことによって、セグメントに対する検索優先度の決定が多くのセグメントに対して行なわれる。このように、キーワードを利用して実データの検索を開始する前にデータの検索をすべき記憶領域を決定することによって、検索を短時間で効率的に、しかも記憶制御装置の側で完了させることができる。
【００９７】
上位装置から記憶制御装置へ検索要求に伴って送られた検索式に含まれるインデックスと記憶制御装置のメモリが備える検査来歴に関係する管理テーブルに記憶されたインデックスとの対比は、インデックスのテキストデータ同士を比較することによって行われる。対比はインデックスデータ同士が一致するか、類似するかを基準とする。類似の判定は、例えば次のようにすると良い。インデックステーブルのレコードの一つ（エントリ）にインデックス同士の類似関係に関するフラグ領域を設ける。記憶制御装置は、上位装置からのインデックスデータに基づいてこれに類似するインデックスデータがあるか否かをメモリの情報管理テーブルを用いて検索する。
【００９８】
図２５は記憶制御装置に格納されるインデックス情報を整理するためのフローチャートである。検索エンジンはこのフローチャートを定期的に実行することにより、必要以上に増えたインデックス情報を取り纏め検索を効率良く進めるようにする。
【００９９】
ステップ１８０１において、検索エンジンはインデックステーブル（図１４、図１５及び図１６）を構成するインデックスファイルを確認する。検索エンジンはインデックスファイルについて、同義であるインデックスがあるか無いかを判定する（１８０２）。これが肯定判定した場合、同義であるインデックスをリストアップする（１８０３）。
【０１００】
次いで、検索エンジンは図１１に示すメタ情報テーブルを確認する（１８０４）。次いで、管理者が同義のインデックスを統一するか否かを判断し、管理装置を介して記憶制御装置に判断結果を指示する。この判定が肯定された場合は、検索エンジンは同義のインデックスを統一化し、図１４乃至図１６についてインデックス番号を削除して同義のインデックスに対応する他のインデックス番号に統一するなどインデックス番号を変更する。次いで、変更後のインデックステーブルに基づいてメタ情報テーブル（図１１乃至図１３）のインデックス番号を修正する。
【０１０１】
図２６は記憶領域のプールボリュームの属性をアーカイブ（不活性）からアーカイブ（活性）に変更した後、再度この属性を元に戻すか否かの処理を記憶制御装置が実行するためのフローチャートである。不活性な属性であるプールボリュームに属する記憶領域にホストからのライト・リードアクセス或いは検索を目的としたアクセスがあると、記憶制御装置は記憶デバイスをまずは活性状態にしなければならない。
【０１０２】
ＣＰＵ制御部はアーカイブプールの属性が不活性から活性になった記憶領域（図１２のＳＬＵで示される論理ボリューム）について、図２６のフローチャートを一定時間毎に実行する。データ制御部はこの記録領域についてアーカイブプールの属性を図１２の情報テーブルを用いて判定する。アーカイブプールの属性が変更された時には、変更後の属性が図１２のテーブルに登録される。
【０１０３】
ＣＰＵ制御部は、アーカイブプールの属性が不活性から活性になった記憶領域について、アーカイブプールの属性をチェックする（１５０１）。属性が不活性な場合には処理を終了し、属性が活性な場合はステップ１５０２で、属性を不活性から活性にし、活性の状態を維持することにおけるポリシーに関する情報を、データ制御部はメモリに記録された制御情報から取得する（１５０２）。ここでポリシーとは属性を活性の状態に保持する時間（Ｔ）である。
【０１０４】
ＣＰＵ制御部は保持時間が“０”でない場合（１５０３）、ステップ１５０４で属性が不活性から活性になってからの経過時間と保持時間（Ｔ）とは比較し、経過時間が保持時間を経過していない場合は属性を再度不活性にすることは不要であると判定し（１５０６）、フローチャートを終了する。一方、経過時間が保持時間を越えた場合は、属性を再度不活性にすることが必要と判断する（１５０５）。ステップ１５０３において、保持時間（Ｔ）が“０”の場合は、属性が活性を維持している必要はないとしてステップ１５０５にジャンプする。
【０１０５】
ＣＰＵ制御部は属性を活性から不活性にするための処理、すなわち、属性を変更すべき論理ボリューム（図１２のＳＬＵ）に記憶領域を提供している記憶デバイスの電源をオフする（１５０７）。次いで、不活性化のための処理が終了したか否かを判定する（１５０８）。次いで、図１２に示す情報テーブルにおける属性(Status)をアーカイブプールの属性が不活性であることを示すフラグ値に変更して、変更後の情報テーブルを制御メモリ３０５に登録する(１５０９)。このフローチャートによれば、アーカイブプールの属性が活性の状態が続くことによる、記憶デバイスのドライブの電力消費の増大化を防ぐ意義がある。
【０１０６】
図２７は、アーカイブプールの属性が活性である記憶領域に対して、この活性状態を維持すべきかどうかを記憶制御装置がチェックするフローチャートである。ＣＰＵ制御部は、制御メモリに格納されている情報テーブル(図１２)を参照して、アーカイブプールに属する論理ボリュームの当該プールの活性・不活性に関する属性をリストアップする(１８１１)。データ制御部３０４は図２１に示す検索来歴に関する情報テーブルを参照して検索来歴を確認する(１８１２)。
【０１０７】
ＣＰＵ制御部は検索来歴情報を参照して、検索来歴（日付）が半年を越える検索履歴(検索来歴番号)があるかをチェックする(１８１４)。この検索来歴番号がある場合には、図２１に示す情報テーブルを参照してこの検索来歴番号の項目に含まれるプール側の論理ボリューム番号（ＳＬＵ）を特定し、さらに、図１１に示す情報テーブルを参照してこの論理ボリューム番号に対応するプール属性が活性である論理ボリューム番号を抽出する。ＣＰＵ制御部は、この論理ボリュームに対応するプール属性を活性から不活性にすべきものと判定し、かつこの論理ボリュームに含まれる記憶領域を持つ全ての記憶デバイスの電源をオフする（１８１４）。以上説明した処理によって、記憶デバイスの消費電力を抑制することができる。
【０１０８】
図２８はボリュームの属性を変更する為のフローチャートである。ＣＰＵ制御部は、アーカイブボリュームをオンラインボリュームに変更する。ステップ１２０１においてＣＰＵ制御部３０４は目的とするボリュームの属性をアーカイブからオンラインへ変更すべきことを判定する。ＣＰＵ制御部はホストからのアクセスに基づいて、或いはホストからのアクセスを分析して自身でこの判定を行なう。ＣＰＵ制御部は、オンラインプール（図１の“１２”）にサブ論理ボリューム（ＳＬＵ）を作成する。この作成は、図１１及び図１２の情報テーブルについて実行される。さらに、ＣＰＵ制御部は、この論理ボリューム（ＳＬＵ）について、図１３及び図２１に示すテーブルを作ること、すなわち上位装置からの検索コマンドに基づいて検索を行なうことを開始する(１２０３)。
【０１０９】
ＣＰＵ制御部は属性を変更する対象となるアーカイブプールのボリューム（ＳＬＵ１）から新たに作成したオンラインプールに属するボリューム（ＳＬＵ２）にデータをコピーする（１２０５）。ＣＰＵ制御部はステップ１２０７においてデータのコピーが完了したか否かを判定する。データのコピーが完了するまで、ステップ１２０５の処理が継続される。ＣＰＵ制御部は、ボリューム間のコピーが完了した後、オンラインプールの、論理ボリューム（ＳＬＵ２）への差分データをさらに当該ＳＬＵ２に反映させる。次に、ＣＰＵ制御部は、既述の情報テーブルにＳＬＵ２を登録する（１２１３）。次いで、ＣＰＵ制御部はＳＬＵ１に格納されたデータを削除する必要があるか否かを判定し、これが肯定された場合はＳＬＵ１に格納されたデータを削除するとともに、このＳＬＵ１を既述の情報テーブルから削除して仮想ボリュームに対してＳＬＵ１の記憶領域を開放する。図２８はアーカイブプールの論理ボリュームのデータをオンラインプールの論理ボリュームにコピーすることを説明したが、これの反対も図２８と同様に可能である。
【０１１０】
図２９は図６で説明した、記憶制御装置のハードウエアブロック構成の変形例を模式的に示したブロック図である。図３に示したように、記憶制御装置は二つのコントロールユニットを備え、ここではそれぞれ１０Ａ，１０Ｂとする。符号３０７−１，３０７−２は、コントロールユニット１０Ａ側の物理ボリュームであり、符号３０７−３，３０７−４はコントロールユニット１０Ｂ側の物理ボリュームである。一方の側のコントロールユニット側の物理ボリュームには他方の側のコントロールユニットのディスクインターフェース制御部３０３を介して、他方の側のコントロールユニットからもアクセス可能である。コントロールユニット１０Ａはホストに二つの仮想ボリュームＡ１，Ｂ１を提供し、コントロールユニット１０Ｂはホストに二つの仮想ボリュームＡ２，Ｂ２を提供する。仮想ボリュームＡ1に対するプールは物理ボリューム３０７−１によって達成され、仮想ボリュームＢ１に対するプールは物理ボリューム３０７−２によって達成され、仮想ボリュームＡ２に対するプールは物理ボリューム３０７−３によって達成され、仮想ボリューＢ２に対するプールは物理ボリューム３０７−４によって達成される。
【０１１１】
ホストはいずれのコントロールユニットからも物理ボリュームにアクセスすることができる。通常は、物理ボリューム３０７−１，３０７−２に対してはコントロールユニット１０Ａ型のディスクインターフェース制御部３０３Ａからアクセスする。コントロールユニット１０Ａの側にホストからのアクセス障害がある場合には、物理ボリューム３０７−１，３０７−２に対してはコントロールユニット１０Ｂのディスクインターフェース制御部３０３Ｂ側からアクセスする。物理ボリューム３０７−３，３０７−４についても図２９に示すように同様である。
【０１１２】
図３０はさらに他の例であり、一基の記憶デバイスがアーカイブ用ＨＤＤ３０００とオンライン用ＨＤＤ３００２とがペアになっている場合についてのものである。コントロールユニット１０ＡはパスＢ−１を介してオンラインプール用のハードディスク３００２へアクセスでき、さらにパスＢ−２を介してアーカイブ用のハードディスクにアクセスすることができる。コントロールユニット１０Ｂについても同様である。なお、オンライン用ＨＤＤに代えて、オンライン用ボリュームを提供する記憶デバイスを既述のとおり、フラッシュメモリなどの不揮発性半導体メモリにすることもできる。
【０１１３】
図３１（１）は、オンラインプールのボリューム１２にオンラインデータ（Ａ）が格納され、アーカイブプールのボリュームにアーカイブデータ（Ｂ）が格納されていることを示している。符号１０は仮想ボリュームである。図３１（２）はアーカイブデータ（Ｂ）のバックアップデータがオンラインボリュームに格納され、オンラインデータ（Ａ）のバックアップデータがアーカイブボリュームに格納されている様子を示している。
【０１１４】
図３２は記憶制御装置の他の例を示すものである。この記憶装置はコントローラユニットとストレージ駆動部とをそれぞれ一体型のシャーシから構成してなるものである。符号３２０１は複数の記憶デバイス３２００を金属や樹脂などで一体構成したシャーシであり、平板状のシャーシのほぼ全面で上下の複数段（図３２では上下２段）に複数の記憶デバイスがアレイ状に収納されている。シャーシの左右の側面にはそれぞれ複数の短冊状に形成された通気穴３２０４が形成されている、さらに、シャーシの左右の側面には短冊状の放熱フィン３２０２が形成されている。
【０１１５】
図３４及び図３５は、図３２における記憶ディスク側のシャーシの特徴を説明するためのものであり、従来の記憶制御装置の構造を示す。図３４は従来の記憶制御装置の正面図であり、図３５はその平面図である。記憶ディスク３２００は筐体３２０１Ａの右側面側に偏って並べられている。コントロールユニット３２１２、電源３２２０、及びバッテリ３２２２は筐体の中心を上下に渡って占めている。こ冷却装置３２１０は記憶ディスクの端部に臨んで設けられている。
【０１１６】
従来、記憶ディスク３２００は特定のボリュームの記憶領域に割り当てられているため、メンテナンスやディスクを交換する必要から記憶ディスクを筐体の端部に筐体内に出し入れ可能に設けていた。しかしながら、ホストに仮想ボリュームを提供し、ホストからの仮想ボリュームへのアクセスに応じて仮想ボリュームに複数の記憶ディスクのいずれかをマッピングすることにより、記憶ディスクをボリュームへの割り当てから解放することができる。
【０１１７】
したがって、記憶ディスクをストレージシステムの筐体の端面側に偏よらせておく必要がなく、記憶ディスクを筐体の中心側にも配置できることになり、その結果筐体内へ記憶ディスクを高密度に設けることができる。
【０１１８】
シャーシ内の記憶ディスクの一部は予備ディスクとして存在する。一部のディスクに障害が生じた場合はこのディスクをあらかじめシャーシ内にある予備ディスクに交換する。予備ディスクは複数も受けておくが、予備ディスクが無くなったら個々のディスクではなくシャーシごと交換する。
【０１１９】
コントロールユニットも同一のシャーシ３２０３内に構成される。符号３２０８はシャーシの両端部に設けられた通気孔である。符号３２１２は制御回路であり、符号３２１０はシャーシ３２０３において幅方向に均等に４つ設けられて冷却ファンである。符号３２２４は電源ユニットであり、符号３２２２はバッテリである。コントローラシャーシ３２０３上に記憶ユニット側のシャーシ３２０１がストレージシステムの筐体内に収容される。
【０１２０】
図３３に示すように、ファン３２１０はシャーシ３２０１の裏面の全体を冷却する。すなわち、図３２に示すストレージサブシステムの構成によれば、記憶デバイスを高密度に備え、かつ記憶デバイスの冷却にも優れたものになる。また、シャーシごと記憶デバイスを交換すれば良く、記憶デバイスの保守は必要ではなく記憶デバイスの交換も簡単に済む。
【０１２１】
すなわち、図３２に示すように、既述のＡＯＵを用いて記憶ディスクを使用する記憶制御装置においては、複数の記憶ディスクを筐体の端部側に偏って配列させる必要は無く、筐体の中心側も記憶ディスクの配列領域として利用できる。これによって、筐体内に多くの記憶ディスクを収納でき、記憶制御装置の記憶デバイスの実装密度を上げることができる。さらに、記憶ディスクから仮想ボリュームに提供される記憶領域はチャンク単位で管理され、チャンクを記憶ディスク間で移動できるために、一つの一つの記憶ディスクに対する保守や交換作業の要求度が低減される。したがって、複数の記憶デバイスを一体構成のシャーシ内に封入し、シャーシ単位で記憶装置を交換できる。しかも、冷却装置を筐体の幅方向に複数設け、冷却装置からの冷却手段が複数の記憶デバイスについてその広い背面に提供することができるために冷却効率も向上される。
【０１２２】
なお、既述の実施形態においては、データの種類として、テキスト系データ、ブロック系データ、及び長大系データを例示したが、これに限らず、データの用途に基いてデータを種別することもできる。また、既述の説明は本発明の形態の一例に関するものであり、本発明はこの形態に限定されるものではない。当業者によって普通に加えられる範囲の変更も本発明の他の実施形態として許容されるものである。
【図面の簡単な説明】
【０１２３】
【図１】図１は、本発明に係わる記憶制御装置の記憶制御動作を示す基本的な機能ブロック図である。
【図２】図２は、記憶制御装置１と上位装置２とを備えた計算機システムの機能ブロック図である。
【図３】図３は、上位装置が記憶制御装置へライトアクセスする際のタイミングチャートである。
【図４】図４は、上位装置から記憶制御装置へ発行されるライトアクセスに伴うフレームの構成例である。
【図５】図５は上位装置の命令（検索コマンド）に基づいて、記憶制御装置の既述の検索エンジン（図２の２０）が実際にデータの検索を実行する場合におけるタイミングチャートである。
【図６】図６は、記憶制御装置（ストレージサブシステム）のハードウエアの構成例を示すブロック図である。
【図７】図７は、データ転送制御部３０２の詳細なブロック図である。
【図８】図８は、データ演算部の検索演算部の検索処理動作を示す機能ブロック図である。
【図９】図９は、仮想ボリュームのサブ論理ボリューム（ＳＬＵ）にプールボリュームのサブ論理ボリューム（ＳＬＵ）が割り当てられている状態を示したブロック図である。
【図１０】図１０は、複数の記憶デバイスＰＤ１，ＰＤ２・・・・・ＰＤｍに跨ってサブ論理ボリュームが形成されている状態を示したブロック図である。
【図１１】図１１は、仮想ボリュームにプールに属する記憶領域に対して設定された論理ボリュームを割り当てるための制御情報を示す管理テーブルである。
【図１２】図１２は、プールボリュームの特性を管理するテーブルである。
【図１３】図１３はメタ情報(インデックス情報)を格納し、これを管理するためのテーブルである。
【図１４】図１４は、テキスト系データに対するインデックス情報を管理するためのテーブルである。
【図１５】図１５は、ブロック系データに対するインデックス情報を管理する為のテーブルである。
【図１６】図１６は、長大系データに対するインデックス情報を管理する為のテーブルである。
【図１７】図１７は、記憶制御装置が上位装置からリードコマンドを受けた際での記憶制御装置の動作を示すフローチャートである。
【図１８】図１８は、記憶制御装置が上位装置（ホスト）からライトコマンドを受けた際における、記憶制御装置の動作を示すフローチャートである。
【図１９】図１９は上位装置から記憶制御装置に書き込まれるデータが長大データ系である場合において、記憶制御装置が長大系データを圧縮して記憶デバイスに書き込む場合のフローチャートである。
【図２０】図２０は、記憶制御装置がホストからの検索コマンドを受けて、記憶デバイスに記憶されたデータの検索を行う場合のフローチャートである。
【図２１】図２１は、記憶制御装置によって行われる検索の結果に関する履歴を格納した情報テーブルである。
【図２２】図２２は、記憶制御装置がホストから検索コマンドを受けて、図２１に示す検索来歴情報テーブルを参考にして、検索を行なう際に優先して検索すべき記憶領域を決定するためのフローチャートである。
【図２３】図２３は、検索エンジンが図２２の検索優先エリアを決定刷るためのフローチャートである。
【図２４】プールのセグメント毎のヒット累積数のテーブルをグラフにしたものである。
【図２５】図２５は記憶制御装置に格納されるインデックス情報を整理するためのフローチャートである。
【図２６】図２６は記憶領域のプールボリュームの属性をアーカイブ（不活性）からアーカイブ（活性）に変更した後、再度この属性を元に戻すか否かの処理を記憶制御装置が実行するためのフローチャートである。
【図２７】図２７は、アーカイブプールの属性が活性である記憶領域に対して、この活性状態を維持すべきかどうかを記憶制御装置がチェックするフローチャートである。
【図２８】図２８はボリュームの属性を変更する為のフローチャートである。
【図２９】図２９は図６で説明した、記憶制御装置のハードウエアブロック構成の変形例を模式的に示したブロック図である。
【図３０】図３０は、一基の記憶デバイスがアーカイブ用ＨＤＤとオンライン用ＨＤＤとがペアになっている場合を示した、記憶制御システムのブロック図である。
【図３１】図３１は、記憶制御システムの記憶動作を示す他の変形例に係わるブロック図である。
【図３２】図３２は、記憶制御装置の他の構成例を示す斜視図である。
【図３３】図３２に係わる記憶制御装置のコントロールユニットを一体のシャーシによって構成した例を示す斜視図である。
【図３４】従来の記憶制御装置の正面図である。
【図３５】図３４の記憶制御装置の平面図である。
【符号の説明】
【０１２４】
１:ホスト(上位装置)、２：記憶制御装置(ストレージサブシステム)、１０：仮想ボリューム、１２：１４：プールボリューム、３００：制御回路、３０７Ａ：記憶デバイス
【図１】
2008052512.tif 000003
【図２】
2008052512.tif 000004
【図３】
2008052512.tif 000005
【図４】
2008052512.tif 000006
【図５】
2008052512.tif 000007
【図６】
2008052512.tif 000008
【図７】
2008052512.tif 000009
【図８】
2008052512.tif 000010
【図９】
2008052512.tif 000011
【図１０】
2008052512.tif 000012
【図１１】
2008052512.tif 000013
【図１２】
2008052512.tif 000014
【図１３】
2008052512.tif 000015
【図１４】
2008052512.tif 000016
【図１５】
2008052512.tif 000017
【図１６】
2008052512.tif 000018
【図１７】
2008052512.tif 000019
【図１８】
2008052512.tif 000020
【図１９】
2008052512.tif 000021
【図２０】
2008052512.tif 000022
【図２１】
2008052512.tif 000023
【図２２】
2008052512.tif 000024
【図２３】
2008052512.tif 000025
【図２４】
2008052512.tif 000026
【図２５】
2008052512.tif 000027
【図２６】
2008052512.tif 000028
【図２７】
2008052512.tif 000029
【図２８】
2008052512.tif 000030
【図２９】
2008052512.tif 000031
【図３０】
2008052512.tif 000032
【図３１】
2008052512.tif 000033
【図３２】
2008052512.tif 000034
【図３３】
2008052512.tif 000035
【図３４】
2008052512.tif 000036
【図３５】
2008052512.tif 000037