JP4975396B2 - 記憶制御装置及び記憶制御方法 - Google Patents

記憶制御装置及び記憶制御方法 Download PDF

Info

Publication number
JP4975396B2
JP4975396B2 JP2006228226A JP2006228226A JP4975396B2 JP 4975396 B2 JP4975396 B2 JP 4975396B2 JP 2006228226 A JP2006228226 A JP 2006228226A JP 2006228226 A JP2006228226 A JP 2006228226A JP 4975396 B2 JP4975396 B2 JP 4975396B2
Authority
JP
Japan
Prior art keywords
data
storage
volume
search
pool
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006228226A
Other languages
English (en)
Other versions
JP2008052512A (ja
Inventor
哲也 阿部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006228226A priority Critical patent/JP4975396B2/ja
Priority to US11/583,572 priority patent/US7970991B2/en
Priority to EP07251360A priority patent/EP1903428A3/en
Publication of JP2008052512A publication Critical patent/JP2008052512A/ja
Application granted granted Critical
Publication of JP4975396B2 publication Critical patent/JP4975396B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Description

本発明は、ホストコンピュータやサーバなどの上位装置に記憶資源を提供する記憶制御装置に係わり、特に、複数の記憶デバイスをアレイ状に配列し、記憶領域をRAIDによって構成した記憶制御装置に関するものである。詳しくは、本発明は、上位装置に、それ自身では実の記憶領域に対応しない第1の論理ボリュームを提供し、前記記憶資源の実記憶領域を備える第2の論理ボリュームを前記第1のボリュームに対応付け、上位装置の前記第1のボリュームに対するアクセスを第2の論理ボリュームを介して前記実記憶領域へのアクセスに変換する記憶制御装置に関するものである。さらに詳しくは、本発明は、第2の論理ボリュームに対応付けられる前記実記憶領域を上位装置からのアクセスに応じて増加できる記憶制御装置に関するものである。
記憶制御装置と、この記憶制御装置にネットワークなどの通信経路を介して接続するサーバやホストコンピュータなどの上位装置と、を備えた、ストレージシステムが知られている。記憶制御装置は、上位装置がアクセス可能な論理ボリュームを論理的に定義し、この論理ボリュームに前記記憶デバイスの物理的記憶領域を対応させることによって、上位装置が記憶デバイスに対してデータを格納し、さらに記憶デバイスに格納されたデータを読むことが可能になる。
近年、上位装置が取り扱うデータ量が飛躍的に増えていることから、論理ボリュームの記憶容量(ボリュームサイズ)を大幅に増やさなくてはならなくなっている。そこで、論理ボリュームに割り当てられる記憶領域を十分大きくすることによって、上位装置にとって記憶容量の不足が起こらないようにしている。
しかしながら、例えば、上位装置にサイズが大きい論理ボリュームを割り当てておきながら、実際には上位装置が大量のデータを取り扱わない場合には、論理ボリュームに割り当てられた記憶領域に相当の期間未使用の領域が発生し、しかもこの未使用の記憶領域は他の上位装置に対して開放されないことから記憶資源の浪費という不都合が発生する。
そこで、上位計算機のプロセッサがストレージ装置の論理ボリュームに書き込みを行ったときに、書き込みが行われた論理ボリュームの領域に記憶デバイスの記憶領域を割り当てることが提案されている(特開2005−11316号公報)。こうすることによって、論理ボリュームに予め多量の記憶領域を割り当てておくことに比較して、記憶領域を有効活用することが出来る。また、米国特許第6,823,442号公報にも、上位装置がアクセスする論理ボリュームを記憶制御装置に設け、この仮想ボリュームに物理的記憶領域を割り当てることが記載されている。
ストレージシステムにおける記憶資源を有効活用する他の考え方として、データ・ライフサイクル・マネージメントというものがある。これは、データの価値は時間が経過するにしたがって変化することに着目し、上位装置からのアクセス頻度が少なく、また、アクセスしてからの経過時間が長いデータをオンラインストレレージからニアラインストレージ又はバックアップデバイスに移動させて、上位装置からのアクセスに高速に応答可能で比較的高価なオンラインストレージの記憶領域を有効活用しようというものである。
なお、本発明に関連する従来例として、特開2005−128771号公報には、データを記憶する物理ストレージを有しアクセス要求を受けてその物理ストレージをアクセスするデータアクセスサーバと、そのデータアクセスサーバにアクセス要求を送りデータアクセスサーバをデータ保存のために利用してデータファイリングを行なうデータファイルサーバとを備えたデータファイルシステム等に関し、論理ブロックが不使用になったときに物理ブロックを有効に解放することが記載されている。
また、特開2004−127301号公報には、仮想記憶空間と、物理記憶空間と、仮想記憶空間の複数のアドレスを物理記憶空間の各アドレスに関連付けるように構成されたマッピングシステムと、順序に従ってマッピングシステムの除去部分を指定する優先順位付け規定に従って、マッピングシステムの一部を自動的に除去するように構成されたコントローラと、を備える記憶制御システムが記載されている。さらに、本発明に関連する従来例として、特開2006−106980号公報に記載された記憶制御装置がある。
特開2005-11316号公報 米国特許第6,823,442号公報 特開2005−128771号公報 特開2004−127301号公報 特開2006−106980号公報
既述の従来例のように、ストレージシステムにおいて記憶資源を有効に活用することが可能になっても、記憶制御装置に蓄えられるデータ量が増大すると、上位装置からのリクエストに対して記憶制御装置が実行する各種のデータ処理が煩雑になってデータ処理の効率が低下する。例えば、上位装置が目的とするデータをストレージのデータ格納領域から検索しようとすると、ストレージにあまりにも多くのデータが格納されており、上位装置は目的とするデータを迅速に検索することができない。
そこで、本発明は上位装置からのリクエストに応じたデータ処理を迅速に行い、その処理結果を上位装置に速やかに返すことが出来る記憶制御装置及び記憶制御方法を提供することを目的とするものである。本発明の他の目的は、上位装置からの検索要求を迅速に行い、その処理結果を上位装置に速やかに返すことが出来る記憶制御装置を提供することにある。本発明のさらに他の目的は、記憶制御装置に上位装置からの検索要求を処理する手段を設け、複数の上位装置に対して記憶データの検索結果を提供できる記憶制御装置を提供することにある。
前記目的を達成するために、本発明に係わる記憶制御装置は、上位装置からのライトアクセスに基づいてライトデータを記憶デバイスに格納するとともに、前記上位装置からのリードアクセスに基づいて、前記記憶デバイスのリードデータを前記上位装置に提供する記憶制御装置において、前記上位装置がアクセスした仮想ボリュームを付与する制御回路と、複数の論理ボリュームが前記制御回路によって管理される複数の記憶デバイスと、前記仮想ボリュームの領域に前記複数の論理ボリュームを対応させる制御情報を格納するメモリと、を備え、前記制御回路は、前記制御情報に基づいて前記上位装置からの前記仮想ボリュームに対するアクセスを前記複数の論理ボリュームの記憶領域へのアクセスに変換し、前記複数の論理ボリュームは、第1の種類のデータを格納する第1の論理ボリュームと、第2の種類のデータを格納する第2の論理ボリュームと、第3の種類のデータを格納する第3の論理ボリュームとから成り、前記第1の論理ボリュームは、オンラインデータを格納する第1のオンラインボリュームと、前記上位装置からアクセスされるアーカイブデータを格納する第1のアクティブ状態のアーカイブボリュームと、前記第1のアクティブ状態のアーカイブボリュームと比べて低い頻度で前記上位装置からアクセスされるアーカイブデータを格納する第1のアクティブな状態でないアーカイブボリュームとから成り、前記第1のアクティブな状態でないアーカイブボリュームの記憶デバイスは、上位装置からのアクセスに対して直ちに応答することができず、前記仮想ボリュームに対応する前記第1ないし第3の論理ボリュームのうちのいずれかを指定する前記記憶デバイスに格納されたデータの種類を検索するための検索コマンドの受信に応答して、前記データのアクセス頻度に従って、前記データは、前記第1のオンラインボリュームと前記第1のアクティブ状態のアーカイブボリュームと前記第1のアクティブな状態でないアーカイブボリュームの間で移送され、前記制御回路は、前記複数の論理ボリュームの中から前記第1の論理ボリュームを選択し、前記第1のオンラインボリュームと第1のアクティブ状態のアーカイブボリュームと第1のアクティブな状態でないアーカイブボリュームに対する前記検索コマンドをこの順番で実行し、前記第1のオンラインボリューム及び前記アクティブ状態のアーカイブボリュームを検索処理している間は、前記第1のアクティブな状態でないアーカイブボリュームの前記記憶デバイスが前記上位装置からのアクセスに対して直ちに応答できるように変更することを特徴とする。このようにすることによって、記憶制御装置は上位装置からのリクエストに基づくデータ処理をデータの種類を認識しながら行うことができることになり、データ処理が効率的かつ迅速に行なわれる。
以上説明したように、本発明によれば、上位装置からのリクエストに応じたデータ処理を迅速に行い、その処理結果を上位装置に速やかに返すことが出来る記憶制御装置を提供することができる。
図1は、記憶制御装置の記憶制御動作を示す基本的な機能ブロック図である。本発明に係わる記憶制御システムは記憶資源を有効活用するために、AOUを採用している。AOUとは“Allocation On Use”の略称である。図1に基づいてAOUについて説明する。このAOUは、記憶制御装置がそれ自身は記憶領域を持たない仮想ボリュームを上位装置に提供し、この仮想ボリュームにはプール(論理ボリューム)に属する物理的な記憶領域を対応させている。上位装置が仮想ボリュームにアクセスすると、記憶制御装置は上位装置によってアクセスされた仮想ボリュームの領域にプールに含まれる記憶領域を割り当てる。この割り当ては、上位装置が仮想ボリュームにアクセスすることによって実行される。記憶制御装置はあらかじめ大きな、見かけの容量を持つ仮想ボリュームを用意しておく。記憶制御装置は、プールボリュームに属する記憶領域の仮想ボリュームへの割り当て状況に応じて、プールに記憶容量を追加する。仮想ボリュームが請求項記載の第1の論理ボリュームに該当し、プールが請求項記載の第2のボリュームに該当する。
図1において、符号10は仮想ボリュームである。仮想ボリュームは符号11及び10Aに示すように、必要に応じてその容量を拡張することができる。符号11Aが仮想ボリューム内の論理アドレス領域であり、この領域自身が物理的な記憶領域を備えているわけではない。
符号12及14はプールであり、このプールにハードディスクドライブ等の記憶デバイスの実際の記憶領域が割り当てられている。符号12Bで示される、ドラム状の図形はプールに属する記憶領域の一部、即ち記憶領域の単位を示している。これをチャンクという。プールの記憶領域はチャンク毎で仮想ボリュームの論理的にある大きさを持った領域11Aに割り当てられる。上位装置は仮想ボリューム10に対して、記憶デバイスにデータを書き込むためのライトアクセス、記憶デバイスからデータを読み込むためのリードアクセスを行なう。
符号12はオンラインデータが格納されるオンラインプールであり、符号14はアーカイブデータが格納されるアーカイブプールである。オンラインデータとは上位装置からのアクセス頻度が高い、あるいはアクセスされてからの経過時間が短いデータをいう。アーカイブデータとは上位装置からのアクセス頻度が低い、あるいはアクセスされてからの経過時間が長いデータをいう。オンラインプールとアーカイブプールとの間でデータの移動が行なわれる。
プールに新たな記憶領域を必要に応じて割り当てることによりプールの領域を拡張することができる。記憶制御装置は、仮想ボリュームに割り当てられるべき記憶領域がプールにおいて不足したときに新たな記憶領域をプールに割り当てる。プールに割り当てられる記憶領域、そして、プールから仮想ボリュームに割り当てられた、管理領域としてのチャンク(後述のプール論理ボリュームのセグメントに対応する。)は、記憶制御装置内の情報テーブルに登録され管理される。チャンクのサイズは必要に応じて管理者によって設定される。チャンクは、例えば、一般ブロックサイズとしての256Bから画像長大データとして数MB〜数GBから構成される。
記憶領域は記憶制御装置内の記憶デバイスから提供される。記憶デバイスとはハードディスクドライブの他、フラッシュメモリなど半導体メモリでも良い。特に限定されない。仮想ボリューム10は、上下に分かれた二層を持って図示されている。上層13Aの領域にオンラインプール12の記憶領域が割り当てられている。下層13Bの領域にアーカイブプール14の記憶領域が割り当てられている。オンラインプールとアーカイブプールとの間でデータの移動があった場合は、符号13Cに示すように、仮想ボリューム内の上層13Aの領域と下層13Bの領域の間で論理ブロックアドレスの領域の移動が行われる。プールの容量は記憶デバイスを記憶制御システムに追加することによって増やすことができる。
図2は記憶制御装置1と上位装置2とを備えた計算機システムの機能ブロック図を示すものである。プールボリュームがオンラインプールとアーカイブプールから構成されている他に、上位装置2から記憶制御装置1にライトアクセスするデータの種類に応じて、データが格納されるプールを違えるようになっている。オンラインプール12は、テキスト系(ファイル系)データを格納するテキスト系データ格納用プール12−1と、ブロック系(データベース系)データを格納するブロック系データ格納用プール12−2と、長大系(画像系)データを格納する長大系データ格納用プール12−3とから構成されている。アーカイブプール14Aと14Bについても同様である。
アーカイブプール14Aは活性型であるプールであり、アーカイブプール14Bは不活性型であるプールである。活性・不活性の区別は、プールに記憶領域を提供する記憶デバイスの上位装置2から記憶制御装置に1に送られるライトアクセス又はリードアクセスに対する応答性に基づく。例えば、活性型であるプールに対応する記憶デバイスの電源はオンされており、活性型でないプールに対応する記憶デバイスの電源はオフされている。上位装置或いは記憶制御装置の制御部(制御手段)からのアクセスが活性型でないプールに及ぶ場合には、記憶デバイスをオンした後上位装置がこの記憶デバイスのライトアクセス又はリードアクセスする。アーカイブプール(不活性)に記憶領域を提供し、オンラインプール又はアーカイブプール(活性)に記憶領域を提供するものではない記憶デバイスの電源をオフすることによって、記憶制御装置が必要とする電力を少なくなるようにしている。
仮想ボリュームの記憶領域11Aは、データがテキスト系データか、ブロック系データか、長大系データかのデータ自体の種類に応じて各種のプールボリュームに対応している。さらに、仮想ボリュームの記憶領域11Aは、上位装置のデータに対するアクセス頻度に関するデータの種類、即ち、オンラインデータか或いはアーカイブデータかに応じて、オンラインプール又はアーカイブプールに割り当てられている。オンラインプールに記憶領域を提供する記憶デバイスはホストからのアクセスに対して高速に応答できるインターフェース規格に準じたものであることが好ましい。例えば、ファイバチャネルをインターフェースとするFCドライブである。アーカイブプールボリュームに記憶領域を提供する記憶デバイスは、上位装置から当該アーカイブプールへのアクセス頻度はオンラインプールより高くないことから、例えば、低コストで大容量のSATAドライブ又はATAドライブを利用する。データに対するホストからのアクセスの履歴に基づいて、記憶制御装置1はオンラインプールのデータをアーカイブプール(活性型)に移動する。一方、アーカイブプール(活性型)のデータがアーカイブプール(不活性型)に移動する。逆に、アーカイブプールからオンラインプールへのデータを移動することもある。
記憶制御装置1は、各プールの記憶領域に格納されたデータの種類を検索するための検索エンジン20を備えている。記憶制御装置は自身でこの検索エンジンを用いて上位装置からの検索アクセスに基づいてプールに格納されたデータの種類の検索を上位装置に代わって実行する。記憶制御装置はこの検索を効率的に行なうために、ホストからのライトアクセス毎にメタ情報を入手してこれを情報テーブルに登録している。メタ情報としては、ライトアクセスに伴うフレームに含まれるライトデータに上位装置側で予め付与したインデックスである。インデックスの典型的な例がキーワードである。メタ情報はテーブル化されて記憶制御装置1のメモリに保存されている。さらに、記憶制御装置は過去行われた検索について、検索用のインデックスや検索結果に関する履歴を検索来歴として、これもテーブル化してメモリに保存している。記憶制御装置は検索来歴を参照して後に行なわれる検索処理を効率的に行っている。
上位装置2は記憶制御装置1に検索を実行させるために必要なプログラムを備えている。例えば、上位装置は記憶制御装置1にライトアクセスする場合には、ライトデータを含むフレームにインデックス情報(キーワード)を載せている(21)。記憶制御装置1は上位装置2にメタ情報(インデックス情報)テーブル(22)の当該メタ情報を提供する(23)。上位装置は当該メタ情報を参照して、記憶制御装置内の過去の検索来歴を利用した検索を記憶制御装置に命令することができる。さらに、上位装置は記憶制御装置に検索範囲や検索パターンを含む検索コマンドを発行し(23A)、記憶制御装置はこの検索コマンドに基づく検索結果を上位装置に返答する。上位装置は検索結果を自身であるいは上位装置の各クライアントに画面表示させる。なお、符号24は記憶制御装置のキャッシュメモリであり、記憶制御装置の制御部は、キャッシュメモリを利用して検索を高速に行なう。記憶制御装置の検索エンジン20は、上位装置からの検索コマンドを受けて、過去の検索来歴を利用した検索の実現について最適化の処理を行い、この最適化処理の結果に基づいて検索を実行する。
記憶制御装置は、ここで説明した検索を特定のプールボリュームに対して実行する。従来はプールボリュームにテキスト系データ、ブロック系データ、及び長大系データが一緒に格納されていた。上位装置の検索エンジンが特定のデータに関する検索を行なおうとすると、容量が大きいデータも含めて全ての種類のデータを検索しなければならなかった。これでは検索に時間が掛かり、効率的な検索が可能ではなかった。
図2に示すストレージシステムにおいては、記憶制御装置1は上位装置からの検索キーワードやデータの種類に関する命令を受けて検索対象となるプールボリュームを特定することができるために、検索を効率的に行なうことができる。また、記憶制御装置自身が検索エンジンを備えているために、上位装置を検索のための処理から解放することができる。しかも、記憶制御装置は検索に当たって、メタ情報、及び検索来歴を参照するために、より検索の為の処理を効率化することができる。なお、上位装置にはNASブレード、NASゲートウエイも含まれる。
なお、検索のためのインデックスの選択、検索するデータの種別などの形態が上位装置に指定されることにより検索パターンが決まる。複数の仮想ボリュームのうちどの仮想ボリュームについて検索を行なうかを上位装置が指定することによって検索範囲が決まる。上位装置には複数の仮想ボリュームが見えており、特定の仮想ボリュームを指定できる。図2では便宜上一つの仮想ボリュームのみが表示されている。
記憶制御装置がデータを検索する場合には、オンラインプール、アーカイブプール(活性)、アーカイブプール(不活性)の順で検索し、オンラインプール又はアーカイブプールを検索している間にアーカイブプール(不活性)を活性化しておくと良い。例えば、記憶制御装置はホストからの検索要求に基づいて検索を開始し、検索すべきデータがテキスト系データと判断すると、先ず、オンラインプール、アーカイブプール(活性)を順番に検索し、検索の間にテキスト系データのアーカイブプール活性化する。あるいは記憶制御装置が検索対象のデータを保管するプールが判る場合には第1にこのプールに属する記憶領域について検索する。
図3は上位装置が記憶制御装置へライトアクセスする際のタイミングチャートである。先ず、上位装置は記憶制御装置へライトコマンド(格納コマンド)を発行する。上位装置は、次いで記憶制御装置へ格納されるべきデータを送信する。上位装置はデータの種別(グループ属性)とデータが格納されるべきプールの属性(オンラインプール・アーカイブプールの区別、活性・不活性の区別)を記憶制御装置に指示する。データの種別とは既述のとおりデータがテキスト系データかそれ以外であるかである。次いで上位装置はインデックス情報(キーワード)をストレージサブシステムに送る。記憶制御装置は上位装置から送信された情報に基づいてデータを適切なプールに格納する。さらに、インデックス情報を含むメタ情報を管理テーブルに格納する。
図4は上位装置から記憶制御装置へ発行されるライトアクセスに伴うフレームの構成例である。フレームはライトコマンドを示す領域400、ライトデータを示す領域402、データの属性を示す領域404からなる。データの属性404の領域は、グループ属性の領域404A、プール属性の領域404B、キーワードの領域404Cからなる。ライトコマンドには、上位装置がアクセスする仮想ボリュームの論理ブロックアドレスが含まれている。記憶制御装置は、自身が備える変換テーブルを利用してこの論理ブロックアドレスへのアクセスをこのアドレスに対応するプール、そしてプールに含まれる記憶領域(物理ボリューム或いは実記憶領域)へのアクセスに変換する。
グループ属性とはデータがテキスト系データか、ブロック系データか、或いは長大系データであるかに関する区別である。グループ属性を示すビットデータが“01”はテキスト系データ(ファイルデータ)であること、“02”はブロックデータであること、“03”が長大データであること、をそれぞれ示している。記憶制御装置はこのビットデータを認識することにより上位装置から送られたデータの種類を知ることが出来る。データの種類に関する既述の説明は一例である。上位装置は、記憶制御装置側にデータのグループ領域を判定させることもできる。この場合には404Aの領域に“FF”が格納される。記憶制御装置はこのフラグを認識するとデータの種類を自身で判定する。例えば、拡張子が存在するか、そして拡張子は何かにより、データがファイルデータであるかブロックデータであるか、又はビットであるかを決定することができる。
プール属性とは、データが格納されるべきプールがオンラインプールかアーカイブプールかに関する情報である。“01”はオンラインプールであることを、“02”はアーカイブプールであることをそれぞれ示している。“FF”はプール属性の決定を記憶制御装置側に委ねることを示している。404Cにはデータ402を特定する最適なキーワードが格納されている。記憶制御装置は、このキーワード(メタ情報)を情報テーブルに格納する。なお、グループ属性、プール属性、そしてキーワードに変更がない場合には、ビット配列に“NULL”が設定される。
図5は上位装置の命令(検索コマンド)に基づいて、記憶制御装置の既述の検索エンジン(図2の20)が実際にデータの検索を実行する場合におけるタイミングチャートである。上位装置は記憶制御装置へ検索コマンドを発行する。上位装置は、検索パターン及び検索範囲を記憶制御装置に指示する。記憶制御装置は検索の為のプログラムに従って検索を行い、検索結果(1,2,3・・・・n)を上位装置に送信して検索を終了する。
図6は記憶制御装置(ストレージサブシステム)のハードウエアの構成例を示すブロック図である。ストレージサブシステムは、ストレージコントロールユニット300(制御回路)と、ストレージ駆動装置30とからなる。
ストレージ駆動装置はデータを記憶する為の多数の物理ディスクドライブをアレイ状に備えている。これにより上位装置に対して大量の記憶領域を提供することができる。物理ディスクドライブはハードディスクドライブ等のデータ記録媒体からなる。多数の記憶デバイスはRAIDを構成して、記憶データの冗長化を達成している。
図6には、それぞれ同一構成のコントロールユニット一対が接続部308で接続するクラスタ構成が示されている。即ち、記憶制御装置はコントロールユニットを冗長化させている。同一の物理ディスクには両方のコントロールユニットがアクセス可能である。両方のコントロールユニットの構成は同一であるので、ここでは、一方のコントロールユニットについてその構成を説明し、他方のコントロールユニットの説明は割愛する。
コントロールユニットは、上位装置から受信したコマンドに従って物理ディスクに対する制御を行なう。例えば上位装置からデータ書き込み要求を受信し、ストレージ駆動装置が備える記憶ボリュームに対してデータの書き込みを行なう。物理ディスクドライブにより提供される物理的な記憶領域である物理ボリュームには、コントロールユニットは、論理的な記憶領域である、一つ又は複数の論理ボリュームを設定することができる。本発明のコントローラは、既述のとおり、物理ボリュームが対応していない仮想ボリューム(これも論理ボリュームではある。)を上位装置に提供し、この仮想ボリュームの下層に物理ボリュームに対応するプールを定義する。上位装置はプールを仮想ボリュームに対応させている。即ち、上位装置はプールの物理ボリュームを仮想ボリュームに割り当てている。上位装置とは、CPUやメモリを備えたコンピュータ等の情報処理装置である。情報処理装置が備えるCPUにより各種プログラムが実行される。
上位装置はSANを介して、ファイバチャネルプロトコルにしたがって、コントロールユニット10との間で、データの入出力要求やデータ送受信を行なっている。上位装置は、SANの他IP−SANを介してコントロールユニットに接続しても良い。IP−SANとは上位装置とコントロールユニットとの間のデータ入出力要求のやり取りやデータの送受信のやり取りをインターネットプロトコルによって行なうものである。符合301Aはホストインターフェース制御部301とSANとの接続線である。以後上位装置をホストということもある。ホストはホストインターフェース制御部に直結されても良い。また、ストレージ制御装置10とストレージ駆動装置10とは同一の筐体になっても、あるいはそれぞれ別な筐体になっても良い。
コントロールユニットは、ホストインターフェース制御部301の他、CPU制御部304と、
情報メモリ305と、キャッシュメモリ306とデータ転送制御部、デバイスインターフェース制御部303を備えている。ホストインターフェース制御部301、データ転送制御部302、デバイスインターフェース制御部303はそれぞれLSIによって構成されている。ここで、説明される各構成要素は図6において矢印で示されるように互いに接続されている。符号304Aは、CPU制御部304と管理装置を接続する通信手段である。管理装置はCPU制御部を介して304Aによって管理装置に接続されている。管理装置は図示されていないが、CPU制御部を介してコントロールユニットに対して、上位装置との間でこのコントロールユニットがデータの交換を行なう上で必要な各種の設定を行う。この設定後の情報を制御テーブルとして情報メモリ305に格納されている。
ホストインターフェース制御部301は、ファイバチャネルプロトコル又はインターネットプロトコルを用いて上位装置との間で通信を行い、上位装置からデータの入出力要求を受信し、上位装置との間でデータの送受信を行なう。
図7にも示すように、データ転送制御部302はホストからのライトアクセス、リードアクセスに基づく、ホストと記憶デバイス群307との間でのデータの転送を制御する。データ転送制御部302は制御処理の主体を担うデータ制御部308を備えている。データ制御部308はホストI/F部301、メタデータを格納するメタデータメモリ305と、キャッシュメモリ306に接続している。400はキャッシュメモリとのインターフェースであり、401はメタ情報メモリとのインターフェースである。
データ転送制御部302はデータ演算部309を備えている。データ演算部はデータ制御部308から送られるデータに対してRAIDパリティを演算するRAIDパリティ演算部402と、圧縮データの解凍、或いはデータの圧縮処理を行う圧縮演算部403と、データ検索のための検索演算部501を備えている。
コントロールユニットはさらに、ホストから記憶デバイスに書き込まれるデータとホストが記憶デバイスから読むデータとを一時記憶するキャッシュメモリ305と、既述のインデックス(キーワード)からなるメタデータを記憶するメタデータメモリ305と、データ制御部がHDDに接続するためのデバイスインターフェース303Aを備えている。ディスクインターフェース制御部303はデータを記憶する記憶ボリュームと通信可能に接続され、物理ディスクを制御する。
データ転送制御部302は、ホストインターフェース制御部301とCPU制御部304もしくはデバイスインターフェース制御部303とCPU制御部間の制御情報(例えばデータ入出力要求)の橋渡しを行い、又、ホストインターフェース制御部とキャッシュメモリ305間もしくはデバイスインターフェース制御部とキャッシュメモリ間のデータ転送制御を行なう。
CPU制御部304は、上位装置からの制御情報に対して、ホストインターフェース制御部、ディスクインターフェース制御部、及びデータ転送制御部を制御する。キャッシュメモリ305は、ホストインターフェース制御部とディスクインターフェース制御部との間で授受されるデータを一時記憶する。
例えば、ホストインターフェース制御部301が上位装置からデータ入力要求を受信した場合には、データ転送制御部302を介してCPU制御部304に同要求を転送する。転送されたデータ入力要求を検出したCPU制御部は同要求にしたがってデータ転送制御部をセットアップし、ホストインターフェース制御部に対してデータ転送の開始を指示し、データはホストインターフェース制御部からデータ転送制御を介してキャッシュメモリ306に格納される。データをキャッシュメモリに格納したホストインターフェース制御部は、CPU制御部に同格納を終了したことを伝える。そしてデータ格納について終了を検出したCPU制御部は、データ転送制御部をセットアップし、ディスクインターフェース制御部303に対して記憶ボリュームへデータを転送することを指示し、データはキャッシュメモリ306よりデータ転送制御部302、ディスクインターフェース制御部303を介して、記憶ボリュームに格納される。
また、ホストインターフェース制御部301が上位装置からデータ出力要求を受信した場合には、CPU制御部は、読み出し対象となるデータがキャッシュメモリ306に存在するかどうかを調べる。ここでキャッシュメモリに読み出したデータが存在しない場合には、CPU制御部はデータ転送制御部をセットアップし、ディスクインターフェース制御部に対してデータ転送の開始を指示し、読み出し対象となるデータを、記憶ボリュームからキャッシュメモリに格納する。一方、読み出しデータがキャッシュメモリに存在する場合(キャッシュヒット)、また、前記転送でキャッシュメモリに当該データを格納した場合に、CPU制御部はデータ転送制御部をセットアップし、ホストインターフェース制御部にデータ転送の開始を指示し、情報処理装置にその読み出しデータを送信する。
図6のCPU制御部304は、複数のCPUコアを備えて、CPU制御部が行なうべき処理を分散させても良い。例えば、CPUコアとしてA,Bの二つを備える場合、CPUコアAは、ホストインターフェース制御部とキャッシュメモリ間のデータ転送、RAIDパリティ演算、データの圧縮−解凍機能、電源制御機能、バッテリ制御機能、ボリュームの複製、ボリュームの管理、リモートコピーを行い、CPUコアBはキャッシュメモリとデバイスインターフェース制御部間のデータ転送、データの検索を行なってよい。
図7にはデータ転送制御部302の詳細なブロック図が示されている。308はデータの転送動作の主体を担うデータ制御部を示している。データ制御部308はCPU制御部304と、ホストインターフェース制御部301、ディスクインターフェース制御部304とそれぞれ接続されている。308は二つのコントロールユニットのデータ制御部を接続する接続回路である。二つのコントロールユニットを接続することにより、システム全体としての冗長化を図っている。
データ制御部308はキャッシュメモリインターフェース400と情報メモリインターフェース401にそれぞれ接続する。キャッシュメモリインターフェースはキャッシュメモリ306に接続されデータ制御部308とキャッシュメモリ間のデータの授受を仲介する。情報メモリインターフェースは情報メモリ305に接続されており7、データ制御部とメモリとの間のデータの授受を仲介する。
図7に示すように、データ転送制御部はデータ演算部309を備えている。データ演算部は記憶ボリュームをRAIDによって構成する場合のRAIDパリティを演算するRAIDパリティ演算部402と、データの圧縮−解凍を行なう圧縮演算部403と、記憶ボリュームに記憶されたデータの検索を上位装置からの検索命令を受けて行なう検索演算部501とから構成されている。データ転送制御部を構成するLSIはデータ転送を行なうDMAコントローラと、演算部を構成するマイクロプロセッサと、演算処理を実現するマイクロプログラムを格納するメモリとを備えて構成されても良い。なお、RAIDパリティ演算部、圧縮演算部、及び検索演算部をデータ転送制御部とは別に、あるいはホストインターフェース制御部又はディスクインターフェース制御部に存在するようにしても良し、CPU制御部が代用機能を分担しても良い。
なお、図6に示すあるハードディスクドライブ307には、二つのコントロールユニットのそれぞれのデバイスインターフェース部303から通信線307Aが接続されている。すなわち、同じ記憶ディスクにはどちらのコントロールユニットからもアクセスすることができる。310はコントロールユニット内の非常電源としてのバッテリである。ディスクアレイ部30はハードディスクドライブの駆動回路に電力を供給する電源311と、複数のHDDを冷却する冷却器312を備えている。
図8は図7に示すデータ演算部の検索演算部501(検索エンジン)の検索処理動作を示す機能ブロック図である。インデックスデータ読み込み制御部503は、ホストからデータ検索のためにストレージサブシステムに送られるインデックスデータ503Aを検索演算部501に読み込むことを制御する。キャッシュ読み込み制御部504はHDDから検索のためのデータをキャッシュメモリ306に読み込むことを制御する。
検索バッファ505はキャッシュメモリ306からデータ504Aを順次取り出して一時記憶する。検索制御部502は、インデックスデータ読込制御部503とキャッシュ読込制御部504を制御する。データ制御部308は検索制御部502を制御する。ホストからデータ制御部308に送られたインデックスデータ503Aは比較データ1,2,3として検索データ部507に格納される。比較回路部506は各比較データを検索バッファに格納された比較対象データ505A,505B,505Cと比較し、一致・不一致に関する検索結果が結果情報1,2,3として結果データ部に508格納される。結果情報はデータ制御部308に返される。データ制御部は比較結果をホストインターフェース制御部301を介してホストに送る。
図9は、仮想ボリュームを構成する、チャンク単位として、サブ論理ボリューム(SLU)にプールボリュームのサブ論理ボリューム(SLU)が割り当てられている状態を示している。プールボリューム(12,14A,14B)のサブ論理ボリュームは、図10に示すように複数の記憶デバイスPD1,PD2・・・・・PDmに跨って形成されている。上位装置は仮想ボリューム10のサブ論理ボリュームを認識することができる。プールに割り当てられた記憶デバイスの物理的な記憶領域はサブ論理ボリュームとして論理的に定義され、このサブ論理ボリュームが仮想ボリュームのサブ論理ボリュームに割り当てられている。管理装置は仮想ボリュームのある領域とプールボリュームのサブ論理ボリュームとの対応関係を、GUIを利用するなどして決定し、この対応関係を制御テーブルの形でメモリ305に記録する。記憶制御装置のCPU制御部304は上位装置からの仮想ボリュームへのアクセスを、この制御テーブルに基づいてプールボリュームの記憶領域へのアクセスに変換する。
図11は、仮想ボリュームにプールに属する記憶領域に対して設定された論理ボリュームを割り当てるための制御情報を示す管理テーブルである。この制御テーブルはメモリ305に格納されている。CPU制御部304はこの制御テーブルを参照して上位装置からの仮想ボリュームへのアクセスをプールに割り当てられた記憶デバイスへのアクセスに変換する。ホスト論理LU番号の“HLU−1”は仮想ボリュームに対するLUであり、例えば、このLUの論理ブロックアドレスの0×014f0000がプール側論理ボリュームの論理ユニット番号SLU−27の0×014F0000に対応していることを示している。プール側論理ボリュームの論理ユニット番号は図11において装置(記憶デバイス)論理LU番号として示されている。
図11において、Statusはプール側(記憶デバイス側)の論理ボリュームの属性に関連する特定値である。Status1は論理ボリュームが、通常のボリューム(01)、副ボリューム(02)、システム用のリザーブボリューム(03),未使用(FF)を示している。Status2は、リード・ライトが可能なボリューム(01),リード可・ライト不可(02)、リード・ライト共不可(03)、未使用(FF)を示している。Status3は、ストレージ内のデバイス(01)、このストレージ外のデバイス(02)、FF(定義なし)を示している。
図12はプール側の論理ボリュームのさらに他の属性を示す制御テーブルである。CPU制御部304は、この制御テーブルを参照して記憶デバイスに対して定義された論理ボリュームが属するプールの特性を判断する。この特性とは、プールの属性、すなわちプールがオンラインプールかアーカイブプールかの区別、プールに格納されるデータのグループ属性、すなわち、テキストデータ(ファイル形式で規定されたデータ)(01)、データベース用などのブロックデータ(02)、画像などの長大データ(03)の区別、または、プールのStatus、すなわち、プールボリュームが活性タイプである(01)、プールボリュームが不活性である(02)、プールボリュームが活性中であり、かつプールボリュームに格納されているデータが圧縮状態にある(03)、プールボリュームが不活性であり、かつプールボリュームに格納されているデータが圧縮状態(04)であるかの区別である。
プール属性においてFFは属性が未定であることを示している。CPU制御部304はホストから送られたフレーム(図4)を受信する都度、装置論理LU番号で特定される論理ボリュームにデータを格納するとともに、図12の制御テーブルにプール属性などの属性を既述する。図12に示す制御テーブルはCPU制御部304によって更新され、メモリ305に格納されている。
CPU制御部は、メモリに格納されている記憶領域の割り当てプログラムに基づいて、図12の論理ボリュームに記憶デバイスの記憶領域を割り当てる。なお、プール属性に応じて記憶領域が割り当てられるストレージの種別が決定される。既述のとおり、例えば、FCドライブ、ATAドライブかなどである。
図13はメタ情報を格納し、これを管理するためのテーブルである。メタ情報とは、図4において説明したとおり、上位装置からストレージサブシステムに格納されるデータに対して上位装置側で定めたキーワードなどのインデックスである。このメタ情報はプールの論理ボリュームSLUの中のチャンク単位であるセグメント(SG−001等と表示されている)として定義される記憶領域の論理的な単位毎に設定される。プールに属する論理ボリュームには複数のセグメントがあり、各セグメントにインデックス情報を設定することによって、記憶制御装置が上位装置からのリクエストを受けて精度の高い検索を上位装置に提供することができる。
上位装置はストレージのデータを検索する際に、このデータに対するインデックスを記憶制御装置に指定する。データに対するインデックスは図4で説明されているとおりである。記憶制御装置は、このインデックスが格納されているセグメント領域を検索することによってデータ検索を効率的に行なう。セグメントの領域(データ境界)とインデックスの関係は、図13で示すテーブルにCPU制御部304によって纏められメモリ305に登録される。インデックスのリスト(後述の図14乃至図16)はCPU制御部がデータ転送制御部302、ホストインターフェース制御部301を介して上位装置に提供される。上位装置はインデックスのリストを参照してインデックスを選択してデータ検索命令を記憶制御装置に送る。記憶制御装置は上位装置からのフレームの転送を受信する都度、図13のテーブルに示すように、データが格納されたセグメントに対するインデックスを追加する。
既述のとおり、仮想ボリュームには、種類が異なるデータ(テキストデータ、データベース用データ,画像データなど)を記憶するプールボリュームを対応付けている。したがって、ホストには異なる種類のデータが同一のボリュームに集約しているように見せながらも、記憶制御装置側ではデータの相違を認識することができる。ホストは検索範囲として仮想ボリュームと検索パターンを指定するだけで、記憶制御装置は、検索すべき記憶階層(プールボリューム、セグメント)を認識することによって、ホストから記憶制御装置への命令が検索命令の場合には格納のための処理を効率化されることができる。
インデックスはデータの種類毎に分けてテーブル化されているために、記憶制御装置は上位装置から検索データに関するインデックスを受信することによって、検索すべき論理ボリューム(プール)を知ることができる。したがって、記憶制御装置は、データ検索を迅速に行なうことができる。なお、上位装置が記憶制御装置に対して検索すべきデータの種類を指定しても良い。仮想ボリュームの次の階層にデータの種類毎に論理ボリュームを設定しても良い。
図13において、Index1・・・Index4はそれぞれインデックス情報を特定する項目である。例えばひとつのセグメント(SG−0001)の論理ブロックアドレスの開始アドレスは0×0000であって、領域サイズは008(例えば256B×008=4KB)である。このセグメントに格納されるデータに対して「TB01−001」というインデックステーブル番号「TB01」とインデックス番号「001」によって特定されるIndex1と、「TB02−003」によって特定されるIndex2と、「TB01−005」によって特定されるIndex3が設定されている。
インデックステーブルとは、複数のインデックスをデータの種類毎に分類したテーブルである。「TB01−001」で特定されるインデックステーブルは図14に示されている。図14において、インデックステーブル番号は複数のインデックス番号に分けられており、各インデックス番号にインデックスデータのパターン(テキストキーワード)が格納されている。図14はテキスト系データに対するインデックステーブルである。
図13において、“TB02”とは図15に示すインデックステーブルである。図15のテーブルは、ブロック系データに対応するインデックスを示している。図15も、図14と同じように複数のインデックス番号に分類され、各インデックス番号にメタ情報である、データベースキーワード、サーチワード、或いは検索式が格納されている。図13の“TB03”は図16に示すインデックステーブルである。図16のテーブルは長大系データに対するインデックスを示している。図16も図14,図15と同じように複数のインデックス番号に分類され、各インデックス番号にインデックスデータのパターンとしてビットマップパターンが登録されている。図16にはさらに各ビットマップパターンにデータサイズも登録されている。
CPU制御部304は上位装置からライト命令(図4)がある都度、そのライト命令に伴うデータフレーム中のデータの種類(404A)を認識して、インデックス情報404Cを図14乃至図16のうち該当するテーブルに書き込む。このテーブルは共有メモリ305に登録されている。CPU制御部は、セグメント(図13のSG)に対するインデックス情報の内容を図13と図14とをリンクさせて知ることができる。
図17は記憶制御装置が上位装置からリードコマンドを受けた際での記憶制御装置の動作を示すフローチャートである。CPU制御部304はホストから発行されたIOコマンドを解析して(6001)、リードコマンドを認識すると(6002)、ホストが仮想ボリュームにアクセスした、当該仮想ボリュームの論理アドレスを解析する(6003)。CPU制御部は論理アドレスのデータがキャッシュメモリにあるか否かのキャッシュヒット判定を行なう(6004)。CPU制御部はヒット判定の場合は、データ転送制御部302にキャッシュメモリ306のデータをホストインターフェース制御部へ転送する(6020)。次いで、ホストインターフェース制御部301はホストへデータを送信する(6021)。
ステップ6004においてキャッシュヒットミスが判定された場合は、CPU制御部304は図11に示した制御テーブルを参照してホストがリードコマンドを発行した先の仮想ボリュームのアドレスから対応するプール領域及び論理ボリューム(SLU)を特定する(6005)。論理ボリュームには記憶デバイスの実記憶領域が割り当てられている。
次いで、CPU制御部は、後述の図12の管理テーブルを参照して、プールに属する論理ボリュームの属性をチェックする(6006)。このチェックにより、ホストがアクセスした仮想ボリュームのアクセス先に割り当てられたプールがどのような種類のデータを格納するものであるかが判定される(6007〜6009)。
次いで、データ制御部308は記憶デバイスからのデータ読み込み単位(データストライプサイズ)をデータの種類毎に選択する。グループ属性がテキスト系である場合のデータストライプサイズは小(6009)、グループ属性がブロック系である場合にはデータストレージサブシステムライブサイズが小〜中(6010)、グループ属性が長大データ系である場合にはデータストライプサイズが大(6011)として選択される。このように記憶制御装置がグループ属性を認識することによって、データの種類毎に最適なデータの読み込み単位を決定することができる。
次いで、CPU制御部は図12のテーブルを参照して、プールボリュームの属性がオンライン(6013)、アーカイブ(活性)(6014)、あるいはアーカイブ(不活性)(6015)を判定する。プールボリュームが不活性の場合は、プールボリュームにデバイスインターフェース部303を介してアーカイブボリュームに記憶領域を提供する記憶デバイスの電源をオンし、すなわちアーカボリュームを活性に変更する(6016)とともに、図12のテーブルにおけるプールボリュームの属性を不活性から活性に更新してメタ情報メモリに格納する(6017)。オンラインボリューム及びアーカイブボリューム(活性)に対応する記憶デバイスの電源はオンされている。
CPU制御部304及びデータ転送制御部302は、プールボリュームのグループ属性に応じて記憶ディスクからキャッシュメモリに転送されるデータの転送長パラメータを認識し(6018)、記憶ディスクからこのパラメータに基づいてデータをキャッシュメモリに書き込む(6019)。
図18は記憶制御装置が上位装置(ホスト)からライトコマンドを受けた際における、記憶制御装置の動作を示すフローチャートである。CPU制御部304はホストから発行されたIOコマンドを解析して(6101)、ライトコマンドを認識すると(6102)、ホストが仮想ボリュームにアクセスした、当該仮想ボリュームの論理アドレスを解析する(6103)。次いでCPU制御部はホストからのデータフレーム(図4)をチェックしてデータのグループ属性を確認する(6104)。
CPU制御部は図11に示した制御テーブルを参照してホストがリードコマンドを発行した先の仮想ボリュームのアドレスから対応するプール領域及び論理ボリューム(SLU)を確定する(6105)。次いで、データ転送制御部302は、ホストインターフェース制御部301からライトデータを受領し、これをキャッシュメモリに書き込む(6106)。次いで、データ転送制御部はホストインターフェース制御部301からホストへデータの書き込み完了の通知を送信する(6107)。
次いで、CPU制御部304はライトデータのグループ属性をチェックする(6108)。このチェックにより、ホストからのライトデータがどのような種類のデータであるかが判定される(6109〜6111)。次いで、CPU制御部はホストのデータ読み込み単位(データストライプサイズ)をデータの種類毎に選択する。グループ属性がテキスト系である場合のデータストライプサイズは小(6112)、グループ属性がブロック系である場合にはデータストレージサブシステムライブサイズが小〜中(6113)、グループ属性が長大データ系である場合にはデータストライプサイズが大(6114)として選択される。
次いで、CPU制御部は図4のプール属性404Bを参照して、ライトデータのプール属性を判定し(6115)、プール属性がオンライン(6116)、アーカイブ(活性)(6117)、あるいはアーカイブ(不活性)(6118)を決定する。プール属性がアーカイブ(不活性)の場合は、プールボリュームにデバイスインターフェース制御部303を介してアーカイブボリュームに記憶領域を提供する記憶デバイスの電源をオンし、すなわちアーカボリュームを活性に変更する(6119)とともに、図12のテーブルにおけるプールボリュームの属性を不活性から活性に更新してメモリ305に格納する(6120)。オンラインボリューム及びアーカイブボリューム(活性)に対応する記憶デバイスの電源はオンされている。
CPU制御部304は、プールボリュームのグループ属性に応じて記憶ディスクにキャッシュメモリから転送されるデータの転送長パラメータを認識し(6121)、このパラメータに基づいてデータをキャッシュメモリからデータを読み込んでキャッシュメモリに書き込む(6122,6123)。
図19は上位装置から記憶制御装置に書き込まれるデータが長大データ系である場合において、記憶制御装置が長大系データを圧縮して記憶デバイスに書き込む場合のフローチャートを示したものである。CPU制御部304はホストから発行されたIOコマンドを解析して(6201)、ライトコマンドを認識すると(6202)、ホストが仮想ボリュームにアクセスした、当該仮想ボリュームの論理アドレスを解析する(6203)。
次いで、CPU制御部は、ホストからホストインターフェース制御部301に送られたデータフレーム(図3)のグループ属性404Aを認識してデータのグループ属性を確認する(6204A)。次いで、図11に示した制御テーブルを参照してホストがリードコマンドを発行した先の仮想ボリュームのアドレスから対応するプール領域及び論理ボリューム(SLU)を確定する(6205)。
次いで、CPU制御部は、ホストからのライトデータが長大系データであるか否かをチェックし(7001)、ライトデータが長大系データでない場合には、キャッシュメモリの空き容量が僅かであるか否かを判定する(7002)。ライトデータが長大系データである場合、そしてライトデータが長大系データではないがキャッシュメモリの空き容量に余裕がない場合、データ演算部309はキャッシュメモリから記憶ディスクへのデータのデータ転送モードを圧縮モードにし(7003)、圧縮演算回路403をイネーブル状態にする(7004)。
CPU制御部は、キャッシュメモリの空き容量に余裕がある場合には、長大系データでないライトデータを圧縮することなく、そして長大系データの場合はデータを圧縮して、ホストインターフェース制御部301からキャッシュメモリ306にライトデータを書き込む(6206)。そして、データ転送制御部はCPU制御部にホストインターフェース制御部よりホストへライトデータの書き込みを完了した旨報告する。
次いで、データ転送制御部302は、キャッシュメモリ306からライトデータを読み込み、これを記憶ディスクに書き込み(6215)、次いで、ライトデータが書き込まれた、プールの論理ボリューム(SLU)について、図12で示すStatusを変更し、変更後の制御テーブルをメモリ305に更新登録する。このフローチャートによれば、記憶制御装置は、データ容量が大きい長大系データを他のデータから区別して圧縮して記憶デバイスに記憶する。これにより記憶制御装置の記憶資源を効率的に利用することができる。
図20は、記憶制御装置がホストからの検索コマンドを受けて、記憶デバイスに記憶されたデータの検索を行う場合のフローチャートを示したものである。記憶制御装置の検索エンジン501がホストから検索コマンドを受けると検索を開始する(7101)。次いで、検索エンジンは検索コマンドに基づいて、ホストから要求があった検索に対して検索の進め方(検索パターン)を確認する(7102)。検索パターンには、既述のとおり、検索のためのインデックス(キーワード)の指定、検索対象となる仮想ボリュームの選択が含まれる。
検索エンジンはホストインターフェース制御部に送られた検索命令基づいて、検索対象となる仮想ボリュームを選択する(7013)。ホストは複数ある仮想ボリュームから検索対象となる仮想ボリュームを選択したり、さらに仮想ボリュームの下の階層に属するサブ論理ボリュームを検索対象として特定或いは選択することができる。さらに、ホストは検索すべきデータの種類を選択することもできる。
記憶制御装置は検索コマンドに基づいて、検索対象となる領域を認識して(7104)、この領域に検索するデータがあるか否かを検索する。検索エンジンは検索対象となった記憶領域(論理ボリューム)が圧縮されているか否かを図12の制御テーブルを解析して、圧縮の有無を判定する(7105)。データが圧縮されていない場合、検索パターンデータ、即ち、ホストから検索エンジンに指定された、検索用のキーワードなどのインデックスデータを圧縮することなく、当該インデックスデータと検索対象となった仮想ボリュームに対応する全てのプールの記憶領域について一致検索を行なう(7112)。
データが圧縮されている場合、検索エンジンは検索用データを圧縮して検索を実行するか否かを判定する(7106)。圧縮検索を実行する場合、検索エンジンは検索用データのパターンを圧縮し(7107)、データ転送制御部302は記憶ディスクよりキャッシュメモリに検索対象の候補となる圧縮データを順次読み出して書き込む。
検査エンジンは、キャッシュメモリに書き込まれた圧縮データと圧縮されたキーワードとの一致の有無を順次判定する(7113)。一つの仮想ボリュームについて検索が終わった場合は、他の検索すべき仮想ボリューム(LU)が無いか否かが判定され、他の仮想ボリュームがある場合には、次の検索対象となる仮想ボリュームについてステップ7103以降の処理を繰り返し実行する。他の検索すべき仮想ボリュームがない場合は、検索エンジンは検索に関する履歴である検索来歴データを更新して、更新後の検索来歴データが格納されるテーブルをメモリ305に登録する。その後、検索エンジンは検索を終了する(7117)。
ステップ7106において圧縮検索の実行が否定されると、圧縮演算回路403をイネーブルにし(7108)、記憶ディスクの圧縮データを圧縮演算回路が圧縮状態から解凍してキャッシュメモリへ書き込む(7110)。次いで、検索エンジンは既述のように圧縮されていないデータに対して、圧縮されていないキーワードとの一致検索が行なわれる。図20のフローチャートによれば、検索対象となったデータが圧縮されたボリュームに記憶されていても、記憶制御装置はホストからのインデックス情報に基づいて検索を行なうことができる。
図21は、記憶制御装置によって行われる検索の結果に関する履歴を格納した情報テーブルである。ホストから検索コマンドが記憶制御装置に送信されるつど検索履歴番号が設定され、各検索履歴番号に日付とインデックス番号が設定される。インデックス番号はインデックステーブル(図14乃至図16)に対応している。このインデックス番号に対応するインデックスで、ストレージサブシステムの検索エンジンが検索した結果、一致した記憶領域(セグメント)の数がヒットSG数である。この記憶領域は論理ボリューム番号(SLU#)と論理ボリューム中のセグメント番号(SG#)で特定される。記憶制御装置の検索エンジンはホストから検索のコマンドを受ける都度、この情報テーブルに検索結果を書き加えてメモリ305に格納する。
図22は、記憶制御装置がホストから検索コマンドを受けて、図21に示す検索来歴情報テーブルを参考にして、検索を行なう際に優先して検索すべき記憶領域を決定するためのフローチャートである。記憶制御装置の検索エンジンがホストからキーワード・検索範囲の情報を取得する(1401)。次いで、検索エンジンはホストから検索来歴の範囲を指定されたか否かをチェックし(1402)、これが肯定された場合は、インデックス情報を検索する来歴の範囲を取得する(1403)。
検索エンジンはホストからの検索コマンドによって来歴(図21)を検索するか否かを判定し(1404)、これを否定判定した場合は過去の検索来歴を参照することなく検索を開始する。一方、この判定が肯定された場合は、検索エンジンは検索データのパターン(キーワード)と図21に示す来歴情報との一致の有無を判定する(1405)。検索エンジンは、検索データと来歴情報テーブルでのインデックス(インデックス番号)によって図14乃至図16によって定まるキーワードとを比較し、キーワードの内容が完全一致又は部分一致したヒットエリアを抽出する(1406)。このヒットエリアは図21に示すように検索来歴番号によって特定される。検索エンジンはステップ1403において検索すべき来歴範囲が指定されている場合にはこの範囲を、指定されていない場合はすべの来歴の範囲についてステップ1406の判定を行なう。来歴の範囲とは日付、あるいはインデックス番号によって定まる。
検索エンジンはステップ1406によって各ヒットエリアについて、各ヒットエリアの記憶領域の数を求め、最も数が多いエリアから順に優先して検索を行なうこととする。記憶領域は図21に示すように、論理ボリューム番号(SLU番号)とセグメント番号(SG番号)の組み合わせによって特定される。検索エンジンは検索をすべき優先度順に検索すべきエリアをリストアップする(1407)。検索エンジンはこのエリアの優先度に基づいて、エリアに属する記憶領域について検索される順番を決定する(1408)。
図23は、検索エンジンが図22の検索優先エリアを決定刷るためのフローチャートである。検索エンジンがキーワードのパターン(ビットデータの配列)と来歴情報テーブル(図21のインデックス)のインデックスのパターン(ビットデータの配列)とを照合する(2001)。検索エンジンは照合率(両パターン間でビットデータの整合率)が80%以上のインデックス(図21の複数のインデックス番号)を選択する。
次いで、検索エンジンは各インデックス(インデックス番号)について、図21の情報テーブルを参照して、検索においてヒット判定されたセグメント数を累積する計算を行なう(2002)。検索エンジンはこの累積計算の結果をテーブル(2003)の形として作成し、これをメモリの所定エリアに登録する。検索エンジンはテーブル2003を検索して、最もセグメントの累積数が大きいインデックスをピークインデックスとし、このピークインデックスに属するセグメントを抽出する(2004)。次いで、検索エンジンはこのセグメントが2003のテーブル内でヒットする数を累積計算し、セグメント毎のヒット累積数のテーブル(2004)を作成する。2004のテーブルをグラフ化(ヒストグラム)すると図24に示すようになる。
検索エンジンは、図24を参照してヒット数が高いセグメントから優先して検索を開始する。検索は、例えば、ホストが記憶制御装置に図4に示すフレーム中のデータ部分402の全部或いは一部を送り、記憶制御装置はステップ2005において求められた、セグメントに対する優先検索順にしたがってセグメント内のデータがホストから送られたデータに一致するか否かを判定する。記憶制御装置が検索結果をホストに送ると、ホストの表示装置はこの検索結果をモニタに表示することができる。ステップ2004において、ピークインデックスについて、セグメントに対する優先度を決定する処理が終了すると、次にヒット判定されたセグメント数が多いインデックス番号に係わるインデックスについて、同様にステップ2004と2005の処理を実行する。
全てのインデックス番号について、たとえ全てでないにせよ多くのインデックス番号についての処理を行うことによって、セグメントに対する検索優先度の決定が多くのセグメントに対して行なわれる。このように、キーワードを利用して実データの検索を開始する前にデータの検索をすべき記憶領域を決定することによって、検索を短時間で効率的に、しかも記憶制御装置の側で完了させることができる。
上位装置から記憶制御装置へ検索要求に伴って送られた検索式に含まれるインデックスと記憶制御装置のメモリが備える検査来歴に関係する管理テーブルに記憶されたインデックスとの対比は、インデックスのテキストデータ同士を比較することによって行われる。対比はインデックスデータ同士が一致するか、類似するかを基準とする。類似の判定は、例えば次のようにすると良い。インデックステーブルのレコードの一つ(エントリ)にインデックス同士の類似関係に関するフラグ領域を設ける。記憶制御装置は、上位装置からのインデックスデータに基づいてこれに類似するインデックスデータがあるか否かをメモリの情報管理テーブルを用いて検索する。
図25は記憶制御装置に格納されるインデックス情報を整理するためのフローチャートである。検索エンジンはこのフローチャートを定期的に実行することにより、必要以上に増えたインデックス情報を取り纏め検索を効率良く進めるようにする。
ステップ1801において、検索エンジンはインデックステーブル(図14、図15及び図16)を構成するインデックスファイルを確認する。検索エンジンはインデックスファイルについて、同義であるインデックスがあるか無いかを判定する(1802)。これが肯定判定した場合、同義であるインデックスをリストアップする(1803)。
次いで、検索エンジンは図11に示すメタ情報テーブルを確認する(1804)。次いで、管理者が同義のインデックスを統一するか否かを判断し、管理装置を介して記憶制御装置に判断結果を指示する。この判定が肯定された場合は、検索エンジンは同義のインデックスを統一化し、図14乃至図16についてインデックス番号を削除して同義のインデックスに対応する他のインデックス番号に統一するなどインデックス番号を変更する。次いで、変更後のインデックステーブルに基づいてメタ情報テーブル(図11乃至図13)のインデックス番号を修正する。
図26は記憶領域のプールボリュームの属性をアーカイブ(不活性)からアーカイブ(活性)に変更した後、再度この属性を元に戻すか否かの処理を記憶制御装置が実行するためのフローチャートである。不活性な属性であるプールボリュームに属する記憶領域にホストからのライト・リードアクセス或いは検索を目的としたアクセスがあると、記憶制御装置は記憶デバイスをまずは活性状態にしなければならない。
CPU制御部はアーカイブプールの属性が不活性から活性になった記憶領域(図12のSLUで示される論理ボリューム)について、図26のフローチャートを一定時間毎に実行する。データ制御部はこの記録領域についてアーカイブプールの属性を図12の情報テーブルを用いて判定する。アーカイブプールの属性が変更された時には、変更後の属性が図12のテーブルに登録される。
CPU制御部は、アーカイブプールの属性が不活性から活性になった記憶領域について、アーカイブプールの属性をチェックする(1501)。属性が不活性な場合には処理を終了し、属性が活性な場合はステップ1502で、属性を不活性から活性にし、活性の状態を維持することにおけるポリシーに関する情報を、データ制御部はメモリに記録された制御情報から取得する(1502)。ここでポリシーとは属性を活性の状態に保持する時間(T)である。
CPU制御部は保持時間が“0”でない場合(1503)、ステップ1504で属性が不活性から活性になってからの経過時間と保持時間(T)とは比較し、経過時間が保持時間を経過していない場合は属性を再度不活性にすることは不要であると判定し(1506)、フローチャートを終了する。一方、経過時間が保持時間を越えた場合は、属性を再度不活性にすることが必要と判断する(1505)。ステップ1503において、保持時間(T)が“0”の場合は、属性が活性を維持している必要はないとしてステップ1505にジャンプする。
CPU制御部は属性を活性から不活性にするための処理、すなわち、属性を変更すべき論理ボリューム(図12のSLU)に記憶領域を提供している記憶デバイスの電源をオフする(1507)。次いで、不活性化のための処理が終了したか否かを判定する(1508)。次いで、図12に示す情報テーブルにおける属性(Status)をアーカイブプールの属性が不活性であることを示すフラグ値に変更して、変更後の情報テーブルを制御メモリ305に登録する(1509)。このフローチャートによれば、アーカイブプールの属性が活性の状態が続くことによる、記憶デバイスのドライブの電力消費の増大化を防ぐ意義がある。
図27は、アーカイブプールの属性が活性である記憶領域に対して、この活性状態を維持すべきかどうかを記憶制御装置がチェックするフローチャートである。CPU制御部は、制御メモリに格納されている情報テーブル(図12)を参照して、アーカイブプールに属する論理ボリュームの当該プールの活性・不活性に関する属性をリストアップする(1811)。データ制御部304は図21に示す検索来歴に関する情報テーブルを参照して検索来歴を確認する(1812)。
CPU制御部は検索来歴情報を参照して、検索来歴(日付)が半年を越える検索履歴(検索来歴番号)があるかをチェックする(1814)。この検索来歴番号がある場合には、図21に示す情報テーブルを参照してこの検索来歴番号の項目に含まれるプール側の論理ボリューム番号(SLU)を特定し、さらに、図11に示す情報テーブルを参照してこの論理ボリューム番号に対応するプール属性が活性である論理ボリューム番号を抽出する。CPU制御部は、この論理ボリュームに対応するプール属性を活性から不活性にすべきものと判定し、かつこの論理ボリュームに含まれる記憶領域を持つ全ての記憶デバイスの電源をオフする(1814)。以上説明した処理によって、記憶デバイスの消費電力を抑制することができる。
図28はボリュームの属性を変更する為のフローチャートである。CPU制御部は、アーカイブボリュームをオンラインボリュームに変更する。ステップ1201においてCPU制御部304は目的とするボリュームの属性をアーカイブからオンラインへ変更すべきことを判定する。CPU制御部はホストからのアクセスに基づいて、或いはホストからのアクセスを分析して自身でこの判定を行なう。CPU制御部は、オンラインプール(図1の“12”)にサブ論理ボリューム(SLU)を作成する。この作成は、図11及び図12の情報テーブルについて実行される。さらに、CPU制御部は、この論理ボリューム(SLU)について、図13及び図21に示すテーブルを作ること、すなわち上位装置からの検索コマンドに基づいて検索を行なうことを開始する(1203)。
CPU制御部は属性を変更する対象となるアーカイブプールのボリューム(SLU1)から新たに作成したオンラインプールに属するボリューム(SLU2)にデータをコピーする(1205)。CPU制御部はステップ1207においてデータのコピーが完了したか否かを判定する。データのコピーが完了するまで、ステップ1205の処理が継続される。CPU制御部は、ボリューム間のコピーが完了した後、オンラインプールの、論理ボリューム(SLU2)への差分データをさらに当該SLU2に反映させる。次に、CPU制御部は、既述の情報テーブルにSLU2を登録する(1213)。次いで、CPU制御部はSLU1に格納されたデータを削除する必要があるか否かを判定し、これが肯定された場合はSLU1に格納されたデータを削除するとともに、このSLU1を既述の情報テーブルから削除して仮想ボリュームに対してSLU1の記憶領域を開放する。図28はアーカイブプールの論理ボリュームのデータをオンラインプールの論理ボリュームにコピーすることを説明したが、これの反対も図28と同様に可能である。
図29は図6で説明した、記憶制御装置のハードウエアブロック構成の変形例を模式的に示したブロック図である。図3に示したように、記憶制御装置は二つのコントロールユニットを備え、ここではそれぞれ10A,10Bとする。符号307−1,307−2は、コントロールユニット10A側の物理ボリュームであり、符号307−3,307−4はコントロールユニット10B側の物理ボリュームである。一方の側のコントロールユニット側の物理ボリュームには他方の側のコントロールユニットのディスクインターフェース制御部303を介して、他方の側のコントロールユニットからもアクセス可能である。コントロールユニット10Aはホストに二つの仮想ボリュームA1,B1を提供し、コントロールユニット10Bはホストに二つの仮想ボリュームA2,B2を提供する。仮想ボリュームA1に対するプールは物理ボリューム307−1によって達成され、仮想ボリュームB1に対するプールは物理ボリューム307−2によって達成され、仮想ボリュームA2に対するプールは物理ボリューム307−3によって達成され、仮想ボリューB2に対するプールは物理ボリューム307−4によって達成される。
ホストはいずれのコントロールユニットからも物理ボリュームにアクセスすることができる。通常は、物理ボリューム307−1,307−2に対してはコントロールユニット10A型のディスクインターフェース制御部303Aからアクセスする。コントロールユニット10Aの側にホストからのアクセス障害がある場合には、物理ボリューム307−1,307−2に対してはコントロールユニット10Bのディスクインターフェース制御部303B側からアクセスする。物理ボリューム307−3,307−4についても図29に示すように同様である。
図30はさらに他の例であり、一基の記憶デバイスがアーカイブ用HDD3000とオンライン用HDD3002とがペアになっている場合についてのものである。コントロールユニット10AはパスB−1を介してオンラインプール用のハードディスク3002へアクセスでき、さらにパスB−2を介してアーカイブ用のハードディスクにアクセスすることができる。コントロールユニット10Bについても同様である。なお、オンライン用HDDに代えて、オンライン用ボリュームを提供する記憶デバイスを既述のとおり、フラッシュメモリなどの不揮発性半導体メモリにすることもできる。
図31(1)は、オンラインプールのボリューム12にオンラインデータ(A)が格納され、アーカイブプールのボリュームにアーカイブデータ(B)が格納されていることを示している。符号10は仮想ボリュームである。図31(2)はアーカイブデータ(B)のバックアップデータがオンラインボリュームに格納され、オンラインデータ(A)のバックアップデータがアーカイブボリュームに格納されている様子を示している。
図32は記憶制御装置の他の例を示すものである。この記憶装置はコントローラユニットとストレージ駆動部とをそれぞれ一体型のシャーシから構成してなるものである。符号3201は複数の記憶デバイス3200を金属や樹脂などで一体構成したシャーシであり、平板状のシャーシのほぼ全面で上下の複数段(図32では上下2段)に複数の記憶デバイスがアレイ状に収納されている。シャーシの左右の側面にはそれぞれ複数の短冊状に形成された通気穴3204が形成されている、さらに、シャーシの左右の側面には短冊状の放熱フィン3202が形成されている。
図34及び図35は、図32における記憶ディスク側のシャーシの特徴を説明するためのものであり、従来の記憶制御装置の構造を示す。図34は従来の記憶制御装置の正面図であり、図35はその平面図である。記憶ディスク3200は筐体3201Aの右側面側に偏って並べられている。コントロールユニット3212、電源3220、及びバッテリ3222は筐体の中心を上下に渡って占めている。こ冷却装置3210は記憶ディスクの端部に臨んで設けられている。
従来、記憶ディスク3200は特定のボリュームの記憶領域に割り当てられているため、メンテナンスやディスクを交換する必要から記憶ディスクを筐体の端部に筐体内に出し入れ可能に設けていた。しかしながら、ホストに仮想ボリュームを提供し、ホストからの仮想ボリュームへのアクセスに応じて仮想ボリュームに複数の記憶ディスクのいずれかをマッピングすることにより、記憶ディスクをボリュームへの割り当てから解放することができる。
したがって、記憶ディスクをストレージシステムの筐体の端面側に偏よらせておく必要がなく、記憶ディスクを筐体の中心側にも配置できることになり、その結果筐体内へ記憶ディスクを高密度に設けることができる。
シャーシ内の記憶ディスクの一部は予備ディスクとして存在する。一部のディスクに障害が生じた場合はこのディスクをあらかじめシャーシ内にある予備ディスクに交換する。予備ディスクは複数も受けておくが、予備ディスクが無くなったら個々のディスクではなくシャーシごと交換する。
コントロールユニットも同一のシャーシ3203内に構成される。符号3208はシャーシの両端部に設けられた通気孔である。符号3212は制御回路であり、符号3210はシャーシ3203において幅方向に均等に4つ設けられて冷却ファンである。符号3224は電源ユニットであり、符号3222はバッテリである。コントローラシャーシ3203上に記憶ユニット側のシャーシ3201がストレージシステムの筐体内に収容される。
図33に示すように、ファン3210はシャーシ3201の裏面の全体を冷却する。すなわち、図32に示すストレージサブシステムの構成によれば、記憶デバイスを高密度に備え、かつ記憶デバイスの冷却にも優れたものになる。また、シャーシごと記憶デバイスを交換すれば良く、記憶デバイスの保守は必要ではなく記憶デバイスの交換も簡単に済む。
すなわち、図32に示すように、既述のAOUを用いて記憶ディスクを使用する記憶制御装置においては、複数の記憶ディスクを筐体の端部側に偏って配列させる必要は無く、筐体の中心側も記憶ディスクの配列領域として利用できる。これによって、筐体内に多くの記憶ディスクを収納でき、記憶制御装置の記憶デバイスの実装密度を上げることができる。さらに、記憶ディスクから仮想ボリュームに提供される記憶領域はチャンク単位で管理され、チャンクを記憶ディスク間で移動できるために、一つの一つの記憶ディスクに対する保守や交換作業の要求度が低減される。したがって、複数の記憶デバイスを一体構成のシャーシ内に封入し、シャーシ単位で記憶装置を交換できる。しかも、冷却装置を筐体の幅方向に複数設け、冷却装置からの冷却手段が複数の記憶デバイスについてその広い背面に提供することができるために冷却効率も向上される。
なお、既述の実施形態においては、データの種類として、テキスト系データ、ブロック系データ、及び長大系データを例示したが、これに限らず、データの用途に基いてデータを種別することもできる。また、既述の説明は本発明の形態の一例に関するものであり、本発明はこの形態に限定されるものではない。当業者によって普通に加えられる範囲の変更も本発明の他の実施形態として許容されるものである。
図1は、本発明に係わる記憶制御装置の記憶制御動作を示す基本的な機能ブロック図である。 図2は、記憶制御装置1と上位装置2とを備えた計算機システムの機能ブロック図である。 図3は、上位装置が記憶制御装置へライトアクセスする際のタイミングチャートである。 図4は、上位装置から記憶制御装置へ発行されるライトアクセスに伴うフレームの構成例である。 図5は上位装置の命令(検索コマンド)に基づいて、記憶制御装置の既述の検索エンジン(図2の20)が実際にデータの検索を実行する場合におけるタイミングチャートである。 図6は、記憶制御装置(ストレージサブシステム)のハードウエアの構成例を示すブロック図である。 図7は、データ転送制御部302の詳細なブロック図である。 図8は、データ演算部の検索演算部の検索処理動作を示す機能ブロック図である。 図9は、仮想ボリュームのサブ論理ボリューム(SLU)にプールボリュームのサブ論理ボリューム(SLU)が割り当てられている状態を示したブロック図である。 図10は、複数の記憶デバイスPD1,PD2・・・・・PDmに跨ってサブ論理ボリュームが形成されている状態を示したブロック図である。 図11は、仮想ボリュームにプールに属する記憶領域に対して設定された論理ボリュームを割り当てるための制御情報を示す管理テーブルである。 図12は、プールボリュームの特性を管理するテーブルである。 図13はメタ情報(インデックス情報)を格納し、これを管理するためのテーブルである。 図14は、テキスト系データに対するインデックス情報を管理するためのテーブルである。 図15は、ブロック系データに対するインデックス情報を管理する為のテーブルである。 図16は、長大系データに対するインデックス情報を管理する為のテーブルである。 図17は、記憶制御装置が上位装置からリードコマンドを受けた際での記憶制御装置の動作を示すフローチャートである。 図18は、記憶制御装置が上位装置(ホスト)からライトコマンドを受けた際における、記憶制御装置の動作を示すフローチャートである。 図19は上位装置から記憶制御装置に書き込まれるデータが長大データ系である場合において、記憶制御装置が長大系データを圧縮して記憶デバイスに書き込む場合のフローチャートである。 図20は、記憶制御装置がホストからの検索コマンドを受けて、記憶デバイスに記憶されたデータの検索を行う場合のフローチャートである。 図21は、記憶制御装置によって行われる検索の結果に関する履歴を格納した情報テーブルである。 図22は、記憶制御装置がホストから検索コマンドを受けて、図21に示す検索来歴情報テーブルを参考にして、検索を行なう際に優先して検索すべき記憶領域を決定するためのフローチャートである。 図23は、検索エンジンが図22の検索優先エリアを決定刷るためのフローチャートである。 プールのセグメント毎のヒット累積数のテーブルをグラフにしたものである。 図25は記憶制御装置に格納されるインデックス情報を整理するためのフローチャートである。 図26は記憶領域のプールボリュームの属性をアーカイブ(不活性)からアーカイブ(活性)に変更した後、再度この属性を元に戻すか否かの処理を記憶制御装置が実行するためのフローチャートである。 図27は、アーカイブプールの属性が活性である記憶領域に対して、この活性状態を維持すべきかどうかを記憶制御装置がチェックするフローチャートである。 図28はボリュームの属性を変更する為のフローチャートである。 図29は図6で説明した、記憶制御装置のハードウエアブロック構成の変形例を模式的に示したブロック図である。 図30は、一基の記憶デバイスがアーカイブ用HDDとオンライン用HDDとがペアになっている場合を示した、記憶制御システムのブロック図である。 図31は、記憶制御システムの記憶動作を示す他の変形例に係わるブロック図である。 図32は、記憶制御装置の他の構成例を示す斜視図である。 図32に係わる記憶制御装置のコントロールユニットを一体のシャーシによって構成した例を示す斜視図である。 従来の記憶制御装置の正面図である。 図34の記憶制御装置の平面図である。
符号の説明
1:ホスト(上位装置)、2:記憶制御装置(ストレージサブシステム)、10:仮想ボリューム、12:14:プールボリューム、300:制御回路、307A:記憶デバイス

Claims (11)

  1. 上位装置からのライトアクセスに基づいてライトデータを記憶デバイスに格納するとともに、前記上位装置からのリードアクセスに基づいて、前記記憶デバイスのリードデータを前記上位装置に提供する記憶制御装置において、
    前記上位装置がアクセスした仮想ボリュームを付与する制御回路と、
    複数の論理ボリュームが前記制御回路によって管理される複数の記憶デバイスと、
    前記仮想ボリュームの領域に前記複数の論理ボリュームを対応させる制御情報を格納するメモリと、を備え、
    前記制御回路は、前記制御情報に基づいて前記上位装置からの前記仮想ボリュームに対するアクセスを前記複数の論理ボリュームの記憶領域へのアクセスに変換し、
    前記複数の論理ボリュームは、第1の種類のデータを格納する第1の論理ボリュームと、第2の種類のデータを格納する第2の論理ボリュームと、第3の種類のデータを格納する第3の論理ボリュームとから成り、
    前記第1の論理ボリュームは、オンラインデータを格納する第1のオンラインボリュームと、前記上位装置からアクセスされるアーカイブデータを格納する第1のアクティブ状態のアーカイブボリュームと、前記第1のアクティブ状態のアーカイブボリュームと比べて低い頻度で前記上位装置からアクセスされるアーカイブデータを格納する第1のアクティブな状態でないアーカイブボリュームとから成り、
    前記第1のアクティブな状態でないアーカイブボリュームの記憶デバイスは、上位装置からのアクセスに対して直ちに応答することができず、
    前記仮想ボリュームに対応する前記第1ないし第3の論理ボリュームのうちのいずれかを指定する前記記憶デバイスに格納されたデータの種類を検索するための検索コマンドの受信に応答して、前記データのアクセス頻度に従って、前記データは、前記第1のオンラインボリュームと前記第1のアクティブ状態のアーカイブボリュームと前記第1のアクティブな状態でないアーカイブボリュームの間で移送され、
    前記制御回路は、
    前記複数の論理ボリュームの中から前記第1の論理ボリュームを選択し、
    前記第1のオンラインボリュームと第1のアクティブ状態のアーカイブボリュームと第1のアクティブな状態でないアーカイブボリュームに対する前記検索コマンドをこの順番で実行し、
    前記第1のオンラインボリューム及び前記アクティブ状態のアーカイブボリュームを検索処理している間は、前記第1のアクティブな状態でないアーカイブボリュームの前記記憶デバイスが前記上位装置からのアクセスに対して直ちに応答できるように変更する、記憶制御装置。
  2. 第2の論理ボリュームは前記記憶領域を予めプールしたプールボリュームから構成され、前記制御回路は、前記第1の論理ボリュームへ前記上位装置からのライトアクセスがあると、前記プールボリュームに予めプールされている前記記憶領域の一部を前記第1の論理ボリュームへ対応付け、この対応付けに基づいて前記制御情報を更新する請求項1記載の記憶制御装置。
  3. 前記制御回路は前記プールボリュームへ前記記憶デバイスの新たな記憶領域を追加することができる請求項2記載の記憶制御装置。
  4. 前記記憶デバイスがアクティブ状態であるとは、前記記憶デバイスの駆動回路の電源がオン状態にあることであり、前記記憶デバイスがアクティブな状態でないとは、前記記憶デバイスの駆動回路の電源がオフ状態であることをいう請求項2記載の記憶制御装置。
  5. 前記上位装置からのライトアクセスに前記ライトデータのインデックスが含まれており、前記制御回路は前記プールボリュームに属する前記記憶領域の単位毎に前記インデックスを情報テーブルに記録する請求項2記載の記憶制御装置。
  6. 前記制御回路は検索演算部を備え、この検索演算部は前記上位装置からの検索コマンドに含まれる前記インデックスと前記情報テーブルに記録されたインデックスとを比較し、前者のインデックスに相当する後者のインデックスが設定された前記記憶領域の単位について前記検索コマンドに基づいてデータ検索を行なう請求項5記載の記憶制御装置。
  7. 前記検索演算部は前記上位装置からの検索コマンドに応じて、前記第2の論理ボリュームに対してデータ検索を行い、このデータ検索の結果に関する履歴を情報テーブルに記録し、前記上位装置から新たな検索コマンドに含まれる複数の前記インデックスを認識し、各インデックスと各インデックスが設定された前記記憶領域の単位の数との対応関係を複数決定し、前記単位数が多い対応関係の順に当該対応関係に含まれる前記記憶領域に対して前記検索コマンドを実行する請求項6記載の記憶制御装置。
  8. 前記上位装置からのライトアクセスに、前記ライトデータの種類を識別する情報が含まれており、前記制御回路はこの情報に基づいて前記ライトデータの種類を判定し、当該ライトデータの種類に対応した前記複数の第2の論理ボリュームのいずれかに当該ライトデータを格納する請求項1記載の記憶制御装置。
  9. 前記制御回路は検索演算部を備え、この検索演算部は前記上位装置からの検索コマンドに応じて検索対象となるデータの種類を認識し、前記第2の論理ボリュームのうち当該データの種類に対応する論理ボリュームについてデータ検索を行なう請求項1記載の記憶制御装置。
  10. 前記制御回路は検索演算部を備え、前記検索演算部は前記上位装置からの検索コマンドに応じて、前記第2の論理ボリュームに対してデータ検索を行い、このデータ検索の結果に関する履歴を情報テーブルに記録し、前記上位装置から新たな検索コマンドを認識し、この検索コマンドと前記情報テーブルとを比較して前記第2の論理ボリュームの記憶領域のうち優先検索エリアを決定し、この優先検索エリアについて前記検索コマンドを実行する請求項1記載の記憶制御装置。
  11. 前記制御回路は前記上位装置からの検索コマンドに基づいて前記第2の論理ボリュームに対して検索を行なう検索演算部を備え、前記検索コマンドに基づく検索対象が前記アクティブな状態でないボリュームである場合にはこのボリュームをアクティブな状態に変更する請求項1記載の記憶制御装置。
JP2006228226A 2006-08-24 2006-08-24 記憶制御装置及び記憶制御方法 Active JP4975396B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006228226A JP4975396B2 (ja) 2006-08-24 2006-08-24 記憶制御装置及び記憶制御方法
US11/583,572 US7970991B2 (en) 2006-08-24 2006-10-18 Storage control apparatus and storage control method
EP07251360A EP1903428A3 (en) 2006-08-24 2007-03-29 Storage control apparatus and storage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006228226A JP4975396B2 (ja) 2006-08-24 2006-08-24 記憶制御装置及び記憶制御方法

Publications (2)

Publication Number Publication Date
JP2008052512A JP2008052512A (ja) 2008-03-06
JP4975396B2 true JP4975396B2 (ja) 2012-07-11

Family

ID=38805822

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006228226A Active JP4975396B2 (ja) 2006-08-24 2006-08-24 記憶制御装置及び記憶制御方法

Country Status (3)

Country Link
US (1) US7970991B2 (ja)
EP (1) EP1903428A3 (ja)
JP (1) JP4975396B2 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007015535A1 (de) * 2007-03-30 2008-10-02 Siemens Ag Verfahren zur digitalen Speicherung von Daten auf einem Datenspeicher mit beschränktem verfügbarem Speicherplatz
US8145643B2 (en) 2007-12-04 2012-03-27 Yahoo! Inc. Time based ordering of provided mobile content
JP5192932B2 (ja) * 2008-07-23 2013-05-08 株式会社日立製作所 ストレージシステム内の論理ユニットを論理ボリュームに割り当てる方法及び記憶制御装置
FR2938355B1 (fr) * 2008-11-10 2010-11-26 Active Circle Procede et systeme de stockage virtualise d'un ensemble de donnees numeriques
US20100169570A1 (en) * 2008-12-31 2010-07-01 Michael Mesnier Providing differentiated I/O services within a hardware storage controller
WO2010089802A1 (en) * 2009-02-06 2010-08-12 Hitachi, Ltd. Information processing system and program for controlling the information processing system
WO2010097961A1 (en) * 2009-02-25 2010-09-02 Hitachi, Ltd. Storage apparatus and its control method
CN107247565B (zh) * 2009-03-18 2020-06-09 株式会社日立制作所 存储控制装置以及虚拟卷的控制方法
CN101546342B (zh) * 2009-05-08 2012-07-04 阿里巴巴集团控股有限公司 实现搜索服务的方法与系统
JP5375972B2 (ja) * 2009-12-10 2013-12-25 日本電気株式会社 分散ファイルシステム、そのデータ選択方法およびプログラム
US9594527B2 (en) * 2009-12-16 2017-03-14 Teradata Us, Inc. Precedence based storage
KR101099130B1 (ko) * 2010-04-14 2011-12-27 (주)엑스소프트 가상볼륨 저장관리 시스템
US20120297134A1 (en) * 2011-05-16 2012-11-22 Dell Products, Lp System and Method to Isolate Passive Disk Transfers to Improve Storage Performance
JP5924482B2 (ja) * 2012-02-09 2016-05-25 日本電気株式会社 ストレージ装置
US9098547B1 (en) * 2012-03-23 2015-08-04 The Mathworks, Inc. Generation of results to a search query with a technical computing environment (TCE)-based search engine
JP5826949B2 (ja) * 2012-05-11 2015-12-02 株式会社日立製作所 ストレージ装置及びデータ管理方法
US9104590B2 (en) * 2012-07-20 2015-08-11 Hitachi, Ltd. Storage system including multiple storage apparatuses and pool virtualization method
JP6286542B2 (ja) * 2014-06-20 2018-02-28 株式会社日立製作所 計算機システム
WO2016170619A1 (ja) * 2015-04-22 2016-10-27 株式会社日立製作所 計算機システム
CN106919342A (zh) * 2015-12-28 2017-07-04 成都华为技术有限公司 基于自动精简配置的存储资源分配方法和装置
US20180024964A1 (en) * 2016-07-19 2018-01-25 Pure Storage, Inc. Disaggregated compute resources and storage resources in a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US10503654B2 (en) 2016-09-01 2019-12-10 Intel Corporation Selective caching of erasure coded fragments in a distributed storage system
US10296214B2 (en) 2016-10-31 2019-05-21 International Business Machines Corporation Storage pool selection for provisioning volumes in an over-allocation system
US10592170B2 (en) * 2017-01-25 2020-03-17 International Business Machines Corporation Optimizing dual-layered compression in storage systems
US20190034306A1 (en) * 2017-07-31 2019-01-31 Intel Corporation Computer System, Computer System Host, First Storage Device, Second Storage Device, Controllers, Methods, Apparatuses and Computer Programs
CN110308861B (zh) * 2018-03-20 2023-07-21 浙江宇视科技有限公司 存储数据保存方法、装置、电子设备和可读存储介质
US10628061B2 (en) * 2018-04-27 2020-04-21 Veritas Technologies Llc Systems and methods for rebalancing striped information across multiple storage devices
US10922268B2 (en) 2018-08-30 2021-02-16 International Business Machines Corporation Migrating data from a small extent pool to a large extent pool
US11106378B2 (en) 2018-11-21 2021-08-31 At&T Intellectual Property I, L.P. Record information management based on self describing attributes
US11016691B2 (en) 2019-01-25 2021-05-25 International Business Machines Corporation Migrating data from a large extent pool to a small extent pool
US11204716B2 (en) 2019-01-31 2021-12-21 EMC IP Holding Company LLC Compression offloading to RAID array storage enclosure
US10831407B2 (en) * 2019-01-31 2020-11-10 EMC IP Holding Company LLC Write flow offloading to raid array storage enclosure
US11055188B2 (en) 2019-04-12 2021-07-06 EMC IP Holding Company LLC Offloading error processing to raid array storage enclosure
US11269525B2 (en) * 2020-01-06 2022-03-08 International Business Machines Corporation Co-processing a plurality of dependent systems with a finite number of processing threads

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1074347A (ja) * 1996-08-30 1998-03-17 Nec Corp 磁気テープ制御装置
JP3611230B2 (ja) * 1997-06-12 2005-01-19 富士ゼロックス株式会社 情報処理方法
US6691209B1 (en) * 2000-05-26 2004-02-10 Emc Corporation Topological data categorization and formatting for a mass storage system
US8219777B2 (en) 2002-10-03 2012-07-10 Hewlett-Packard Development Company, L.P. Virtual storage systems, virtual storage methods and methods of over committing a virtual raid storage system
JP2004178254A (ja) * 2002-11-27 2004-06-24 Hitachi Ltd 情報処理システム、ストレージシステム、記憶デバイス制御装置、及びプログラム
JP4322031B2 (ja) * 2003-03-27 2009-08-26 株式会社日立製作所 記憶装置
US6823442B1 (en) * 2003-05-12 2004-11-23 3Pardata, Inc. Method of managing virtual volumes in a utility storage server system
JP4438457B2 (ja) 2003-05-28 2010-03-24 株式会社日立製作所 記憶領域割当方法、システム及び仮想化装置
JP2005128771A (ja) 2003-10-23 2005-05-19 Fujitsu Ltd データファイルシステム、データアクセスサーバ、およびデータアクセスプログラム
JP4480479B2 (ja) 2004-06-15 2010-06-16 株式会社日立製作所 ストレージシステム
US20060074912A1 (en) 2004-09-28 2006-04-06 Veritas Operating Corporation System and method for determining file system content relevance
WO2006037091A2 (en) 2004-09-28 2006-04-06 Storagedna, Inc. Managing disk storage media
JP4648674B2 (ja) 2004-10-01 2011-03-09 株式会社日立製作所 記憶制御装置、記憶制御システム及び記憶制御方法
JP2006113648A (ja) * 2004-10-12 2006-04-27 Hitachi Ltd ディスクアレイ装置
US7533230B2 (en) 2004-10-13 2009-05-12 Hewlett-Packard Developmetn Company, L.P. Transparent migration of files among various types of storage volumes based on file access properties
WO2006054334A1 (ja) * 2004-11-16 2006-05-26 Fujitsu Limited 記憶領域割当装置、記憶領域割当方法および記憶領域割当プログラム
KR100703698B1 (ko) 2005-02-16 2007-04-05 삼성전자주식회사 공간 필기 인식 장치 및 방법, 그리고 상기 방법을 기록한기록 매체

Also Published As

Publication number Publication date
US20080049276A1 (en) 2008-02-28
US7970991B2 (en) 2011-06-28
EP1903428A2 (en) 2008-03-26
EP1903428A3 (en) 2010-07-07
JP2008052512A (ja) 2008-03-06

Similar Documents

Publication Publication Date Title
JP4975396B2 (ja) 記憶制御装置及び記憶制御方法
US8078819B2 (en) Arrangements for managing metadata of an integrated logical unit including differing types of storage media
US9747036B2 (en) Tiered storage device providing for migration of prioritized application specific data responsive to frequently referenced data
JP4749255B2 (ja) 複数種類の記憶デバイスを備えたストレージシステムの制御装置
US7975115B2 (en) Method and apparatus for separating snapshot preserved and write data
US8478729B2 (en) System and method for controlling the storage of redundant electronic files to increase storage reliability and space efficiency
US8200631B2 (en) Snapshot reset method and apparatus
US8271718B2 (en) Storage system and control method for the same, and program
US20170212691A1 (en) Block storage device
US8762674B2 (en) Storage in tiered environment for colder data segments
JP5944587B2 (ja) 計算機システム及び制御方法
US20100082900A1 (en) Management device for storage device
US7127583B2 (en) Disk control system and control method of disk control system
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
US8560801B1 (en) Tiering aware data defragmentation
CN105027069A (zh) 卷区域的重复数据删除
WO2015097751A1 (ja) 不揮発性キャッシュメモリにデータをバックアップするストレージシステム
WO2018171296A1 (zh) 一种文件合并方法及控制器
US11249666B2 (en) Storage control apparatus
US20230418798A1 (en) Information processing apparatus and information processing method
US8447945B2 (en) Storage apparatus and storage system including storage media having different performances
EP3862863A1 (en) Method for managing performance of logical disk, and storage array
WO2015145707A1 (ja) 追記型記憶装置への書き込みデータ決定方法
JP2004157859A (ja) データストレージ装置及びデータストレージ方法
JP2016197357A (ja) データアーカイブシステム及びデータ記録方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090611

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110830

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111213

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120321

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120411

R150 Certificate of patent or registration of utility model

Ref document number: 4975396

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150420

Year of fee payment: 3