(57)【特許請求の範囲】
【請求項１】
データを格納する記憶媒体を有するディスクデバイスと、前記ディスクデバイスを制御するディスクコントローラと、を備えるストレージ装置であって、
前記ディスクコントローラは、
ホスト装置に接続するためのチャネルアダプタと、
前記ディスクデバイスに接続されたディスクアダプタと、
前記チャネルアダプタと前記ディスクアダプタとの間でやり取りされるデータを一時的に格納するキャッシュメモリと、を備え、
前記ディスクアダプタは、
前記記憶媒体の固有記憶容量よりも大きな記憶容量が定義され、前記記憶媒体の記憶領域に対応付けられた実ボリューム及び前記実ボリューム以外の記憶領域が割り当てられた仮想ボリュームを含むデータボリュームと、前記仮想ボリュームに割り当てられた記憶領域に対するデータを格納するための記憶領域が割り当てられたプールボリュームとを形成するように、前記ディスクデバイスを制御し、
前記ディスクアダプタは、
所定のＲＡＩＤ構成による制御の下、前記ホスト装置から送られた書き込み要求に従う書き込みデータに基づいて、当該書き込みデータが属するパリティグループ内のパリティデータを生成し、
前記パリティグループ内の前記書き込みデータ及び前記生成されたパリティデータのそれぞれを圧縮して、圧縮データ及び圧縮パリティデータを生成し、
前記パリティグループ内の前記圧縮データ及び前記圧縮パリティデータのそれぞれが所定のサイズを超えるか否かを判断し、
前記圧縮データ及び前記圧縮パリティデータのうち前記所定のサイズを超えない分のデータを前記実ボリュームの記憶領域に格納し、前記圧縮データ及び前記圧縮パリティデータのうち前記所定のサイズを超える分のデータを前記仮想ボリュームに対応する前記プールボリュームの記憶領域に格納することを特徴とするストレージ装置。
【請求項２】
請求項１記載のストレージ装置であって、
前記ディスクアダプタは、
前記書き込みデータを構成するデータブロック及び前記パリティグループ内の他のデータブロックに基づいて前記パリティデータのデータブロックを生成し、
前記パリティグループ内の前記データブロックのそれぞれに対して圧縮することにより得られる圧縮データ列が所定数を超える圧縮データブロックにより構成されているか否かに従って、前記所定のサイズを超えているか否かを判断し、
前記所定数を超えていない前記圧縮データブロックを前記実ボリュームの記憶領域に格納し、前記所定数を超えている前記圧縮データブロックを前記仮想ボリュームに対応する前記プールボリュームの記憶領域に格納することを特徴とするストレージ装置。
【請求項３】
請求項２記載のストレージ装置であって、
前記ディスクアダプタは、
前記パリティグループ内の前記圧縮データブロックのそれぞれを、前記データボリュームを構成する物理的に異なる系列のディスクデバイスに分散させて格納することを特徴とするストレージ装置。
【請求項４】
請求項３記載のストレージ装置であって、
前記ディスクアダプタは、
前記圧縮データ列を構成する前記圧縮データブロックは、前記データボリュームを構成する同一系列のディスクデバイスに形成される実ボリューム及び仮想ボリュームに格納することを特徴とするストレージ装置。
【請求項５】
請求項２記載のストレージ装置であって、
前記パリティグループ内の前記データブロックのそれぞれを格納する、前記キャッシュメモリ上に形成された記憶領域のサイズは、前記実ボリュームの単位記憶領域のサイズよりも大きいことを特徴とするストレージ装置。
【請求項６】
請求項１記載のストレージ装置であって、
前記ディスクアダプタは、
前記書き込み要求に従う書き込みデータに対するＲＡＩＤ構成によるデータ格納方式を記憶し、当該記憶されたデータ格納方式に従って、前記書き込みデータを圧縮して、前記データボリュームに格納することを特徴とするストレージ装置。
【請求項７】
データを格納する記憶媒体を有するディスクデバイスと、前記ディスクデバイスを制御するディスクコントローラと、を備えるストレージ装置におけるデータ格納方法であって、
前記データ格納方法は、
前記ディスクコントローラが、前記記憶媒体の固有記憶容量よりも大きな記憶容量が定義され、前記記憶媒体の記憶領域に対応付けられた実ボリューム及び前記実ボリューム以外の記憶領域が割り当てられた仮想ボリュームを含むデータボリュームと、前記仮想ボリュームに割り当てられた記憶領域に対するデータを格納するための記憶領域が割り当てられたプールボリュームとが形成されるように、前記ディスクデバイスを制御するステップと、
前記ディスクコントローラが、所定のＲＡＩＤ構成に従い、前記ホスト装置から送られた書き込み要求に従う書き込みデータに基づいて、当該書き込みデータが属するパリティグループ内のパリティデータを生成するステップと、
前記ディスクコントローラが、前記パリティグループ内の前記書き込みデータ及び前記生成されたパリティデータのそれぞれを圧縮して、圧縮データ及び圧縮パリティデータを生成するステップと、
前記ディスクコントローラが、前記パリティグループ内の前記圧縮データ及び前記圧縮パリティデータのそれぞれが所定のサイズを超えるか否かを判断するステップと、
前記ディスクコントローラが、前記圧縮データ及び前記圧縮パリティデータのうち前記所定のサイズを超えない分のデータを前記実ボリュームの記憶領域に格納するとともに、前記圧縮データ及び前記圧縮パリティデータのうち前記所定のサイズを超える分のデータを前記仮想ボリュームに対応する前記プールボリュームの記憶領域に格納するステップと、を含むことを特徴とするデータ格納方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置及びこれを用いたデータ格納方法に関し、特に、ＲＡＩＤ制御の下、書き込みデータを圧縮して効率的に格納するストレージ技術に関する。
【背景技術】
【０００２】
ストレージ装置の限られた記憶資源を有効に活用するため、データを圧縮して、格納する技術が知られている。データを圧縮して格納する場合、圧縮後のデータのサイズは不定であり、圧縮前のデータの内容に大きく依存する。
【０００３】
下記特許文献１は、ディスクドライブにデータを圧縮して格納する際に、所定の格納エリアに格納しきれない圧縮データの一部をオーバーフロー用の格納エリアに格納する記憶装置を開示している。具体的には、特許文献１において、主処理装置からのデータをディスクドライブに書き込む場合に、当該データがデータ圧縮手段により圧縮され、書き込み先アドレスに基づいて、圧縮データがディスクドライブ内の固定サイズ格納エリアの該当ブロックに格納できるか否かを判定し、格納できないと判定される場合に、当該圧縮データの一部が該当ブロックに格納されるとともに、当該圧縮データの残りがオーバーフロー部格納エリアに格納される。
【０００４】
また、近年では、大容量かつ高信頼性等の観点から、ＲＡＩＤ（Redundant Arrays of Independent Disks）技術を採用したストレージ装置が主流を占めつつある。ＲＡＩＤには、ハードディスクドライブの構成に応じて、ＲＡＩＤレベル（ＲＡＩＤ０〜６）が定義されている。例えば、ＲＡＩＤ１は、複数台のハードディスクドライブに、同時に同じ内容のデータを書き込む（ミラーリング）方式である。また、ＲＡＩＤ５は、ブロック単位のデータを複数のハードディスクドライブに誤り訂正符号データ（パリティデータ）とともに分散させて書き込む方式である。
【特許文献１】特開平５-１８９１５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ＲＡＩＤ構成は、実用的には、総合的なパフォーマンスに優れたＲＡＩＤ５の構成が主流である。ＲＡＩＤ５では、上述したように、耐障害性の観点から、パリティデータが存在する。従って、ＲＡＩＤ５の構成の下、書き込みデータを圧縮して格納する場合には、そのパリティデータも圧縮して格納することになる。パリティデータは、書き込みデータに比較してデータビットのランダム性が一般に高い傾向にあり、高い圧縮効率が期待できない。このため、圧縮効率の低下によるデータのオーバーフローが絶えず発生する可能性が高く、単に、従前のオーバーフロー用格納エリアを用意したのでは、すぐに使い切ってしまうおそれがある。また、予め十分なサイズのオーバーフロー用格納エリアを用意したのでは、ランニングコストが高くなり、経済的でない。
【０００６】
そこで、本発明は、所定のＲＡＩＤ構成の下で、書き込みデータに基づく圧縮データを効率的に格納することができるストレージ装置を提案することを目的としている。
【０００７】
具体的には、本発明は、圧縮データが所定の記憶領域に格納しきれない場合に、当該圧縮データのうち格納しきれない分（あふれ分）を、使用実績に応じた柔軟な拡張を可能にする記憶領域（拡張記憶領域）に格納するストレージ装置を提案する。
【０００８】
また、本発明は、あるＲＡＩＤ構成の下で、圧縮データの効率的な格納が期待できない場合に、効率的な格納が期待できる他のＲＡＩＤ構成により当該圧縮データを格納するストレージ装置を提案する。つまり、本発明は、パリティデータに対する圧縮効率に応じて、圧縮データを格納する最適なＲＡＩＤ構成を選択するストレージ装置を提案する。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明に係るストレージ装置は、以下の技術的特徴を含んで構成される。
【００１０】
すなわち、第１の観点に従う本発明は、データを格納する記憶媒体を有するディスクデバイスと、前記ディスクデバイスを制御するディスクコントローラと、を備えるストレージ装置である。前記ディスクコントローラは、ホスト装置に接続するためのチャネルアダプタと、前記ディスクデバイスに接続されたディスクアダプタと、前記チャネルアダプタと前記ディスクアダプタとの間でやり取りされるデータを一時的に格納するキャッシュメモリと、を備える。また、前記ディスクアダプタは、前記記憶媒体の固有記憶容量よりも大きな記憶容量が定義され、前記記憶媒体の記憶領域に対応付けられた実ボリューム及び前記実ボリューム以外の記憶領域が割り当てられた仮想ボリュームを含むデータボリュームと、前記仮想ボリュームに割り当てられた記憶領域に対するデータを格納するための記憶領域が割り当てられたプールボリュームとを形成するように、前記ディスクデバイスを制御する。
【００１１】
前記ディスクアダプタは、所定のＲＡＩＤ構成による制御の下、前記ホスト装置から送られた書き込み要求に従う書き込みデータに基づいて、当該書き込みデータが属するパリティグループ内のパリティデータを生成し、前記パリティグループ内の前記書き込みデータ及び前記生成されたパリティデータのそれぞれを圧縮して、圧縮データ及び圧縮パリティデータを生成する。また、前記ディスクアダプタは、前記パリティグループ内の前記圧縮データ及び前記圧縮パリティデータのそれぞれが所定のサイズを超えるか否かを判断し、前記圧縮データ及び前記圧縮パリティデータのうち前記所定のサイズを超えない分のデータを前記実ボリュームの記憶領域に格納し、前記圧縮データ及び前記圧縮パリティデータのうち前記所定のサイズを超える分のデータを前記仮想ボリュームに対応する前記プールボリュームの記憶領域に格納する。
【００１２】
また、本発明は、方法の発明として把握することができる。すなわち、第２の観点に従う本発明は、データを格納する記憶媒体を有するディスクデバイスと、前記ディスクデバイスを制御するディスクコントローラと、を備えるストレージ装置におけるデータ格納方法である。
【００１３】
前記データ格納方法は、前記ディスクコントローラが、前記記憶媒体の固有記憶容量よりも大きな記憶容量が定義され、前記記憶媒体の記憶領域に対応付けられた実ボリューム及び前記実ボリューム以外の記憶領域が割り当てられた仮想ボリュームを含むデータボリュームと、前記仮想ボリュームに割り当てられた記憶領域に対するデータを格納するための記憶領域が割り当てられたプールボリュームとが形成されるように、前記ディスクデバイスを制御するステップと、前記ディスクコントローラが、所定のＲＡＩＤ構成に従い、前記ホスト装置から送られた書き込み要求に従う書き込みデータに基づいて、当該書き込みデータが属するパリティグループ内のパリティデータを生成するステップと、前記ディスクコントローラが、前記パリティグループ内の前記書き込みデータ及び前記生成されたパリティデータのそれぞれを圧縮して、圧縮データ及び圧縮パリティデータを生成するステップと、前記ディスクコントローラが、前記パリティグループ内の前記圧縮データ及び前記圧縮パリティデータのそれぞれが所定のサイズを超えるか否かを判断するステップと、前記ディスクコントローラが、前記圧縮データ及び前記圧縮パリティデータのうち前記所定のサイズを超えない分のデータを前記実ボリュームの記憶領域に格納するとともに、前記圧縮データ及び前記圧縮パリティデータのうち前記所定のサイズを超える分のデータを前記仮想ボリュームに対応する前記プールボリュームの記憶領域に格納するステップと、を含む。
【発明の効果】
【００１４】
本発明によれば、所定のＲＡＩＤ構成の下で、書き込み圧縮データに基づく圧縮データを効率的に格納することができるようになる。
【００１５】
また、本発明によれば、圧縮データが所定の記憶領域に格納しきれない場合に、拡張記憶領域に格納しているので、記憶領域の使用実績に応じた柔軟なディスクデバイスの構成を採用することができるようになる。
【００１６】
さらに、本発明によれば、パリティを含むデータに対する圧縮効率に応じて最適なＲＡＩＤ構成を選択するので、圧縮データの効率的な格納ができるようになる。
【発明を実施するための最良の形態】
【００１７】
次に、本発明の実施の形態について、図面を参照しつつ説明する。
［第１の実施形態］
【００１８】
第１の実施形態では、ＲＡＩＤ５の構成の下、書き込みデータを圧縮し、当該圧縮されたデータをデータボリューム上の実記憶領域に格納しきれない場合に、当該格納しきれない分を、ボリューム容量仮想化機能により提供される拡張記憶領域に格納するように構成されたストレージ装置が説明される。
【００１９】
図１は、本発明の一実施形態に係るストレージシステムの構成を説明するための図である。同図に示すように、コンピュータシステム１は、ネットワーク２を介してホスト装置３に接続されたストレージ装置４を含んで構成されている。
【００２０】
ネットワーク２は、例えばＬＡＮ、インターネット、又はＳＡＮ（Storage Area Network）であり、ネットワークスイッチやハブ等を含んで構成される。本実施形態では、ネットワーク２は、ファイバーチャネルプロトコルを用いたＳＡＮ（ＦＣ−ＳＡＮ）で構成されているものとする。
【００２１】
ホスト装置３は、例えば銀行の業務システムや航空機の座席予約業務システム等における中核をなすコンピュータである。ホスト装置３は、プロセッサと、メインメモリと、通信インターフェースと、ローカル入出力装置等のハードウェア資源を備え、また、デバイスドライバやオペレーティングシステム（ＯＳ）、アプリケーションプログラム等のソフトウェア資源を備えている（図示せず）。これによって、ホスト装置３は、プロセッサの制御の下、各種のプログラムを実行して、ハードウェア資源との協働作用により、所望の処理を実現する。例えば、ホスト装置３は、プロセッサの制御の下、業務アプリケーションプログラムを実行することにより、以下に詳述されるストレージ装置４にアクセスし、所望の業務システムを実現する。
【００２２】
ストレージ装置４は、データストレージサービスをホスト装置３に提供する補助記憶装置である。ストレージ装置４は、データを格納するディスクデバイス５と、ディスクデバイス５の構成を管理して、それに対する書き込み又は読み出しといったＩ／Ｏ処理を制御するディスクコントローラ６と、を備える。ストレージ装置４はまた、ストレージ装置４全体を管理するための管理装置乃至はサービスプロセッサ（図示せず）を含むことができる。あるいは、ディスクコントローラ６が管理装置の機能を含むように、ディスクコントローラ６を構成してもよい。管理装置は、例えば、管理プログラムが実装された汎用コンピュータである。
【００２３】
本実施形態のストレージ装置４は、後述するように、ＲＡＩＤ制御の下、書き込みデータを圧縮し、その圧縮データをディスクデバイス５の所定の記憶領域に格納する。ストレージ装置４は、圧縮データが所定のブロックサイズを超える場合には、当該超えた分を拡張記憶領域（プールボリューム）に格納する。プールボリュームは、後述するように、ボリューム容量仮想化機能により提供される仮想ボリュームに対応付けられた、データの実体を格納する論理ボリュームである。
【００２４】
ディスクデバイス５は、例えば複数のハードディスクドライブ（ＨＤＤ）や半導体メモリ等の記憶媒体を含んで構成される物理デバイス（ＰＤＥＶ）である。複数のハードディスクの集合体をディスクアレイと呼ぶこともある。ディスクデバイス５には、ディスクコントローラ６の制御の下、ホスト装置３に提供するための１つ以上の論理デバイス（ＬＤＥＶ）が形成される。論理デバイスは、いくつかのハードディスクドライブを仮想的に１つのデバイスにまとめた仮想デバイスＶＤＥＶに対して形成されてもよい。
【００２５】
論理デバイスは、ホスト装置３が認識しうる論理的な記憶装置である。論理デバイスには、論理ユニット（ＬＵ）が割り当てられてもよい。この場合、各論理デバイスは、後述するチャネルアダプタ６１に設けられた各ポートに割り当てられ、これにより、ホスト装置３は、論理デバイスを論理ユニットとして認識する。各論理ユニットには、論理ユニット番号（ＬＵＮ）が付与される。また、論理ユニットは、Ｉ／Ｏアクセスの最小単位であるブロックに分割され、各ブロックには、論理ブロックアドレス（ＬＢＡ）が割り当てられる。これにより、ホスト装置３は、ＬＵＮおよびＬＢＡからなる論理アドレスをストレージ装置４に与えることにより、特定の論理ユニットにおける任意のブロックに記憶されたデータに対してアクセスを行うことができる。論理デバイス及び論理ユニットは、ストレージ装置４が適用されるシステム環境により区別されうるが、本発明では両者を同義に扱うことができる。
【００２６】
論理デバイスには、属性に応じた論理ボリューム（ＬＶＯＬまたはＶＯＬ）が定義される。ただし、慣用的に両者は同義に扱われることもある。本実施形態では、論理ボリュームとして、データボリューム及びプールボリュームが定義される。後述するように、データボリュームは、実ボリューム及び仮想ボリュームを含んでいる。
【００２７】
ディスクコントローラ６は、チャネルアダプタ（ＣＨＡ）６１と、キャッシュメモリ（ＣＭ）６２と、ディスクアダプタ（ＤＫＡ）６３と、共有メモリ（ＳＭ）６４と、を備え、これらのコンポーネントは、内部スイッチ（ＳＷ）６５を介して相互に接続されている。これらのコンポーネントは、高速性、耐障害性の観点等の観点から、多重化されることが望ましい。
【００２８】
ディスクコントローラ６は、ディスクデバイス５を制御して、データストレージサービスを実現するストレージ装置４のメインシステムボードである。本実施形態のディスクコントローラ６は、ホスト装置３からのＩ／Ｏアクセス要求に基づく通常のＩ／Ｏ処理機能に加え、データ圧縮／伸張機能、ＲＡＩＤ機能、及びボリューム容量仮想化機能を実現する構成を含んでいる。
【００２９】
チャネルアダプタ６１は、ネットワーク２を介してストレージ装置４をホスト装置３に通信可能に接続するためのコンポーネントである。本例では、２つのチャネルアダプタ６１が搭載されている。各チャネルアダプタ６１は、マイクロプロセッサ６１１と、ローカルメモリ６１２と、通信インターフェース（Ｉ／Ｆ）６１３と、Ｉ／Ｏプロセッサ６１４と、を備える。
【００３０】
マイクロプロセッサ６１１は、ローカルメモリ６１２に格納されたマイクロプログラムを実行することにより、チャネルアダプタ６１の動作を統括的に制御するチップ回路である。通信Ｉ／Ｆ６１３は、ネットワーク２から通信パケット乃至はフレームを取り込み、または、ネットワーク２に通信パケットを送出する。通信Ｉ／Ｆ６１３は、ネットワーク２に接続するための複数のポートを備える（図示せず）。Ｉ／Ｏプロセッサ６１４は、内部スイッチ６５を介して接続されるディスクコントローラ６内の他のコンポーネント（例えば、キャッシュメモリ６２や共有メモリ６４）との間でデータの授受を制御する。
【００３１】
具体的には、マイクロプロセッサ６１１は、通信Ｉ／Ｆ６１３を介してパケットを受け取ると、所定のプロトコルに応じたプロトコル変換処理を行って、内部データを取り出す。続いて、マイクロプロセッサ６１１は、当該内部データを解釈して、これが書き込みコマンドであれば、当該書き込みコマンドを共有メモリ６４に、その書き込みデータ（すなわちユーザデータ）をキャッシュメモリ６２に書き込むように、Ｉ／Ｏプロセッサ６１４を制御する。Ｉ／Ｏプロセッサ６１４は、これを受けて、書き込みコマンドを共有メモリ６４に書き込むとともに、その書き込みデータをキャッシュメモリ６２に書き込む。
【００３２】
また、マイクロプロセッサ６１１は、読み出しコマンドに従って、Ｉ／Ｏプロセッサ６１４を介して読み出しデータをキャッシュメモリ６２から取り出して、所定のプロトコルに応じたプロトコル変換処理を行ってパケットを生成し、通信Ｉ／Ｆ６１３を介してネットワーク２に送出する。
【００３３】
キャッシュメモリ６２は、ホスト装置３に対して高いシステムパフォーマンスを提供するため、ホスト装置３とディスクデバイス５（論理ボリューム）との間でやり取りされるユーザデータを一時的に記憶（キャッシュ）する。つまり、キャッシュメモリ６２は、チャネルアダプタ６１とディスクアダプタ６３との間のデータの受け渡しに利用されるメモリである。キャッシュメモリ６２は、例えば、ＤＲＡＭ等の揮発性メモリで構成される。あるいは、キャッシュメモリ６２は、フラッシュメモリ等の不揮発性メモリで構成されるかも知れない。
【００３４】
キャッシュメモリ６２はまた、後述するように、圧縮された書き込みデータ（圧縮データ）を一時的に記憶するメモリとしても利用される。データ圧縮／伸張処理は、例えば、ディスクアダプタ６３によって行われる。
【００３５】
ディスクアダプタ６３は、ディスクチャネルを介して接続されたディスクデバイス５に対するＩ／Ｏアクセスを行うコンポーネントである。本例では、２つのディスクアダプタ６３が搭載されている。各ディスクダプタ６３は、マイクロプロセッサ６３１と、ローカルメモリ６３２と、ディスクインターフェース（Ｉ／Ｆ）６３３と、Ｉ／Ｏプロセッサ６３４と、を備える。本実施形態では、ディスクアダプタ６３は、Ｉ／Ｏ制御機能、データ圧縮／伸張機能、ＲＡＩＤ機能、及びボリューム容量仮想化機能を実装している。これらの機能は、例えば、図２に示すようなファームウェアとして実現される。
【００３６】
マイクロプロセッサ６３１は、ローカルメモリ６３２に格納されたマイクロプログラムを実行することにより、ディスクアダプタ６３の動作を統括的に制御するチップ回路である。本実施形態では、マイクロプロセッサ６３１は、ＲＡＩＤ制御の下、キャッシュメモリ６２に格納された書き込みデータに対して所定の圧縮アルゴリズムに従った圧縮処理を行って圧縮データを生成し、これをディスクデバイス５の所定の記憶領域に書き込む。ここでいう所定の記憶領域とは、実ボリューム上の記憶領域（実記憶領域）である。圧縮データのうち当該実記憶領域に格納しきれない分のデータは、ボリューム容量仮想化機能により管理される拡張記憶領域（プールボリューム）に格納される。圧縮／伸張アルゴリズムは、例えば、ＬＺＷ方式等の既知のアルゴリズムを適用することができる。
【００３７】
ディスクＩ／Ｆ６３３は、物理デバイスとしてのディスクデバイス５にＩ／Ｏアクセスを行うためのインターフェースである。Ｉ／Ｏプロセッサ６３４は、内部スイッチ６５を介して接続される他のコンポーネント（例えばキャッシュメモリ６２や共有メモリ６４）との間のデータの授受を制御する。
【００３８】
より具体的には、マイクロプロセッサ６３１は、定期的（例えば数十ｍｓおき）又は不定期に、Ｉ／Ｏプロセッサ６３４を介して共有メモリ６４を参照する。マイクロプロセッサ６３１は、共有メモリ６４上の未処理の書き込みコマンドを見つけると、キャッシュメモリ６２から対応する書き込みデータを取り出して、ＲＡＩＤ制御の下で、圧縮処理を行い、圧縮データを生成する。つまり、書き込みデータに基づくパリティデータが生成され、このパリティデータを含む書き込みデータに対する圧縮データが生成される。圧縮データは、キャッシュメモリ６２上の圧縮データ用ブロックに、再度、格納される。そして、マイクロプロセッサ６３１は、生成した圧縮データを、ＲＡＩＤ制御の下で、データボリュームを形成しているディスクデバイス５上の所定の記憶領域（ブロック）に格納（デステージング）する。例えばＲＡＩＤ５（３Ｄ＋１Ｐ）の構成にあれば、圧縮データは、そのパリティデータとともに、物理的に異なる系列のディスクデバイス５に分散されて格納される。また、このとき、マイクロプロセッサ６３は、生成された圧縮データをデータボリュームにおいて規定される実記憶領域に格納しきれるか否かを判断し、格納しきれないと判断する場合には、当該圧縮データのうち格納しきれない分のデータを、ボリューム容量仮想化機能により管理される拡張記憶領域に格納する。
【００３９】
また、マイクロプロセッサ６３１は、共有メモリ６４上の読み出しコマンドに従い、ＲＡＩＤ制御の下、所定の論理ボリュームから圧縮データを読み出して、キャッシュメモリ６２に、一旦、格納する。そして、マイクロプロセッサ６３１は、伸張処理を行い、得られた伸張データ（元のデータ）をキャッシュメモリ５２２に、再度、書き込む（ステージング）。圧縮データの一部が拡張記憶領域に格納されている場合には、マイクロプロセッサ６３１は、適宜、拡張記憶領域から当該部分的な圧縮データを読み出し、一つの圧縮データに統合する。
【００４０】
共有メモリ６４は、ストレージ装置４内の各コンポーネントが参照すべき各種の情報を記憶する。共有メモリ６４は、例えばＤＲＡＭ等の揮発性メモリで構成される。
【００４１】
内部スイッチ６５は、クロスバースイッチ等により構成されるスイッチングデバイスである。内部スイッチ４２８は、入力されるデータ信号の競合を調停し、データ信号のパスを切り替えて、送出元のモジュールと送出先のモジュールとのパスを構築する。なお、内部スイッチ４２８は、パケット交換方式のスイッチングデバイスであってもよい。
【００４２】
図３は、本発明の一実施形態に係るストレージ装置４における共有メモリ６４の内容を示す図である。同図に示すように、共有メモリ６３は、例えば、システム構成情報、キャッシュ管理テーブル、データブロック管理テーブル、物理デバイス管理テーブル等の各種の情報を記憶する。
【００４３】
システム構成情報は、ディスクデバイス５の構成情報やストレージ装置４内の各コンポーネント上で動作するマイクロプログラムのバージョン情報といったシステムの構成に関する情報である。ディスクデバイス５の構成情報としては、例えば、ＲＡＩＤ構成情報、物理デバイス／論理デバイス（ボリューム）の構成情報、ボリューム容量仮想化構成情報を含む。物理デバイス／論理デバイス構成情報は、例えば、セグメント管理テーブル及びアドレス管理テーブルとして定義される。また、ボリューム容量仮想化構成情報は、例えば、プールボリューム管理テーブルを含む。
【００４４】
システム構成情報は、システム管理者が操作する管理装置によって、設定・管理される。例えば、システム管理者は、管理装置を操作して、ＲＡＩＤ５（３Ｄ＋１Ｐ）の構成を設定することができる。また、システム管理者は、ハードディスクドライブの増設に併せて、管理装置を操作して、ボリューム容量仮想化構成情報を設定する。
【００４５】
キャッシュ管理テーブルは、キャッシュメモリ６２にキャッシュされたデータのディレクトリ情報を管理するテーブルである。キャッシュ管理テーブルは、書き込みデータを構成するデータブロックのそれぞれがディスクデバイス５（論理ボリューム）上のどのブロックに対応するかを管理する。
【００４６】
上述したように、本実施形態では、論理ボリューム（データボリューム）には、書き込みデータそのものではなく、その圧縮データが格納される。従って、データボリューム上に上に規定された記憶領域のブロックサイズは、典型的には、平均的な圧縮率を考慮して、キャッシュメモリ６２上に規定されたブロックサイズよりも小さく規定されている。また、ディスクアダプタ６３は、キャッシュメモリ６２の所定のブロックから読み出して圧縮したデータを、再度、キャッシュメモリ６２の別のブロック（圧縮データ用ブロック）に格納してから、デステージングしている。このため、キャッシュ管理テーブルは、キャッシュメモリ６２上のＲＡＷ状態の書き込みデータ及び圧縮データの各論理アドレスと、データボリューム上の論理アドレスとを対応付けている。
【００４７】
データブロック管理テーブルは、ＲＡＩＤ制御によるパリティグループごとのデータブロックを管理するためのテーブルである。パリティグループとは、本明細書では、同時並列的にアレイディスクに書き込まれるデータブロック群を指している。例えば、ＲＡＩＤ５（３Ｄ＋１Ｐ）であれば、３つのデータブロックと１つのパリティブロックからなるデータブロック群が同一のパリティグループに属する。
【００４８】
ディスクデバイス管理テーブルは、ＲＡＩＤ制御の下でデータボリュームを形成するストライプ構成された（すなわち、物理的に異なる系列として構成された）「ディスクデバイス」のアドレス空間の使用状況を管理するためのテーブルである。ディスクデバイス管理テーブルは、ストライプ構成数だけ用意される。例えば、ＲＡＩＤ５（３Ｄ＋１Ｐ）であれば、４つのディスクデバイス管理テーブルが用意される。なお、慣用的なＲＡＩＤの説明に従えば、ストライプ構成されたディスクデバイスは、個々の物理デバイスに等しく考えることができる。しかしながら、本実施形態では、ストライプ構成された「ディスクデバイス」は、ボリューム容量仮想化機能により物理記憶領域を持たない仮想ボリュームを含む概念で説明される。従って、本明細書では、ＲＡＩＤ制御の下でストライプ構成された個々のディスクデバイスを「疑似ディスクデバイス」と呼ぶことにする。ＲＡＩＤ５（３Ｄ＋１Ｐ）であれば、あるデータボリュームは、４つの疑似ディスクデバイス上に形成される。
【００４９】
図４は、本発明の一実施形態に係るストレージ装置４におけるセグメント管理テーブルの一例を示している。セグメント管理テーブルは、ストレージ装置４が提供する論理ボリューム上の記憶領域空間を管理するためのテーブルである。同図に示すように、セグメント管理テーブルは、ディスクＩＤと、セグメント番号と、ＬＢＡ開始アドレスと、ＬＢＡ終了アドレスと、セグメントの使用状況とを含む。
【００５０】
ディスクＩＤは、ディスクデバイス５を構成する物理デバイスを一意に識別するための識別子である。セグメント番号は、セグメントを一意に識別するための番号である。セグメントは、ディスクコントローラ６が管理するディスクデバイス５上の記憶領域である。ＬＢＡ開始アドレス及びＬＢＡ終了アドレスは、ディスクデバイス５上のセグメントの物理的な開始位置及び終了位置を示すアドレスである。ＬＢＡ開始アドレス及びＬＢＡ終了アドレスより、セグメントの大きさが求められる。使用状況は、セグメントが使用されているか否かを示す。セグメントが使用中の場合は“１”、未使用の場合は“０”の値が設定される。
【００５１】
図５は、本発明の一実施形態に係るストレージ装置４の共有メモリ６４に格納されたアドレス管理テーブルの一例を示している。アドレス管理テーブルは、ストレージ装置４が提供する論理ボリューム上の記憶領域（すなわち、論理アドレス空間）とディスクデバイス５上の実際の記憶領域（すなわち、物理アドレス空間）とを対応付けるテーブルである。ディスクアダプタ６３は、アドレス管理テーブルを参照することによって、データの格納先として指定された論理アドレスを、ディスクデバイス５上の物理アドレスに変換し、その物理アドレスに従ってアクセスを行う。また、アドレス管理テーブルは、論理ボリュームのうち、プールボリュームとして使用されるセグメントを定義する。
【００５２】
すなわち、同図に示すように、アドレス管理テーブルは、論理ユニット番号（ＬＵＮ）、セグメント番号、ＬＢＡ開始アドレス、ＬＢＡ終了アドレス、及びプール割り当て状況を含む。論理ユニット番号は、ストレージ装置４がホスト装置３に提供する論理ボリュームを一意に識別するための番号である。セグメント番号は、セグメント管理テーブルにおいて管理されている記憶領域を一意に識別するための番号である。論理ボリュームＬＵは、複数のセグメントから構成される。ＬＢＡ開始アドレス及びＬＢＡ終了アドレスは、セグメントの論理的な開始アドレス及び終了アドレスを示す。プール割り当て状況は、そのセグメントがプールボリュームとして使用されるか否かを示す。セグメントがプールボリュームとして使用される場合には、“１”が書き込まれる。
【００５３】
図６は、本発明の一実施形態に係るストレージ装置４の共有メモリ６４に格納されたデータボリュームを説明するための図である。同図に示すように、データボリュームＤＶＯＬ０は、０〜９９９９９の論理アドレス空間を有し、第１のディスクデバイス及び第２のディスクデバイスにおけるそれぞれのセグメントが割り当てられている。第１のディスクデバイス５は、図４に示されたように、ディスクＩＤ「０」が割り当てられた物理デバイスであり、第２のディスクデバイス５は、ディスクＩＤ「１」が割り当てられた物理デバイスである。また、図５に示されるように、セグメント番号「１」で示されるセグメントは、データボリュームＤＶＯＬ０上の０〜１２９９の論理アドレス空間を提供する。また、セグメント番号「３」で示されるセグメントは、１３００〜１９９９の論理アドレス空間を提供する。このようにして、データボリュームＤＶＯＬ０は、あたかも１つのディスクデバイスのように扱われる。
【００５４】
データボリュームＤＶＯＬ０の論理アドレス空間２０００〜９９９９９は、物理デバイスとしてのディスクデバイスが割り当てられていない。ディスクコントローラ６は、データボリュームＤＶＯＬ０のその空間に対しても、見かけ上、データを格納する。このため、ストレージ装置４は、プールボリュームＰＶＯＬと呼ばれる論理ボリュームをさらに備え、データボリュームＤＶＯＬ０内の記憶領域であって、ディスクデバイス５上のセグメントが割り当てられていない記憶領域（拡張記憶領域）に対して格納されるべきデータを、このプールボリュームＰＶＯＬに格納する。つまり、データボリュームＤＶＯＬ０の論理アドレス空間２０００〜４９９９９に格納されるデータの実体は、プールボリュームＰＶＯＬに格納されることになる。このため、データボリュームの拡張記憶領域に対するアクセスは、内部的には、プールボリューム管理テーブルに従って、プールボリュームＰＶＯＬに対して行われることになる。拡張記憶領域に格納されるべきデータは、物理デバイスにより実際に提供される記憶領域（実記憶領域）に格納しきれない圧縮されたデータブロックである。
【００５５】
同図は、ボリューム容量仮想化機能を適用されたデータボリュームＤＶＯＬを簡略的に説明している。本実施形態では、ディスクデバイス５は、ＲＡＩＤ構成に応じてストライプ構成される。従って、データボリュームＤＶＯＬは、実際は、物理的に異なる系列の４つの疑似ディスクデバイスによって提供される。
【００５６】
図７は、本発明の一実施形態に係るストレージ装置４における記憶領域の動的割り当てを概念的に説明するための図である。
【００５７】
上述したように、本実施形態に係るストレージ装置４のディスクデバイス５には、データボリュームＤＶＯＬ及びプールボリュームＰＶＯＬが形成される。データボリュームＤＶＯＬは、ホスト装置３に提供される論理ボリュームである。データボリュームＤＶＯＬは、実際に実装されているディスクデバイス５を構成する物理デバイスの固有記憶容量に依存して、実ボリュームと仮想ボリュームとに分けられている。つまり、実ボリュームは、ディスクデバイス５を構成する物理デバイスにより実際に提供されるセグメント上に形成された物理的な記憶領域を含む。これに対して、仮想ボリュームは、実際に提供されるセグメント以外の仮想的な記憶領域（拡張記憶領域）に対応する。従って、仮想ボリュームには、データの実体が格納されない。プールボリュームＰＶＯＬは、仮想ボリュームに格納されるべきデータの実体を、将来的にディスクデバイスが追加的に実装され物理的な記憶領域が確保されて新たなデータボリュームＤＶＯＬが定義されるまでの間、一時的に格納する記憶領域を提供する論理ボリュームである。
【００５８】
ストレージ装置４は、データボリュームＶＯＬにおける実ボリューム上の記憶領域に対しては、ホスト装置２が認識する論理アドレス（ＬＵＮおよびＬＢＡ）と、ディスクデバイス５における記憶領域上の物理アドレスとを一対一に関連付けている。これによって、ホスト装置２は、所定の論理アドレスを指定することによって、ディスクデバイス５上の所望の記憶領域にアクセスすることができる。
【００５９】
一方、プールボリュームＰＶＯＬ上の記憶領域については、ホスト装置３が認識する論理アドレスと、実際にデータにアクセスするためのディスクデバイス５上の物理アドレスとを直接的に関連付けていない。ディスクアダプタ６３は、データボリュームＤＶＯＬにおける仮想ボリューム上の記憶領域を指定したデータの書き込み命令に従い、当該記憶領域をプールボリュームＰＶＯＬに動的に割り当てる。また、ディスクアダプタ６３は、データボリュームＤＶＯＬにおける仮想ボリューム上の記憶領域からの読み出し命令に従い、プールボリュームＰＶＯＬ上の当該記憶領域からデータを読み出す。
【００６０】
このように、ストレージ装置４は、プールボリューム管理テーブルを保持し、仮想ボリュームとプールボリュームとの間の動的な割り当てを管理している。プールボリューム管理テーブルは、例えば、ディスクコントローラ６の共有メモリ６４に保持される。ストレージ装置４は、圧縮データを実ボリュームに格納しきれない場合には、当該格納しきれない分を、プールボリュームＰＶＯＬに格納するとともに、仮想ボリューム上の論理アドレスとプールボリュームのアドレスを示すポインタとを関連付けて、プールボリューム管理テーブルに登録する。
【００６１】
図８は、本発明の一実施形態に係るストレージ装置４における共有メモリ６４に格納されたデータブロック管理テーブルの一例を示す図である。同図に示すように、データブロック管理テーブルは、スロットＩＤとデータボリューム内のアドレスとを対応付けている。スロットＩＤは、パリティグループ内のデータブロックを識別するための識別子である。これにより、データブロック管理テーブルは、パリティグループ内のデータブロックが、どの物理デバイスのどのアドレスに格納されるかを管理する。
【００６２】
図９は、本発明の一実施形態に係るストレージ装置４における共有メモリ６４に格納されたディスクデバイス管理テーブルの一例を示す図である。同図に示すように、ディスクデバイス管理テーブルは、各疑似ディスクデバイス内の個々のアドレスで示される記憶領域とそこに格納されているデータブロック（スロット識別子）とを対応付けている。また、ディスクデバイス管理テーブルは、拡張記憶領域における使用状況を管理している。本例は、疑似ディスクデバイス（０）に対応するディスクデバイス管理テーブルを示している。すなわち、同図のディスクデバイス管理テーブルは、アドレス“ｘｘｘｘ”で示される記憶領域には“Ｄ１−１”が格納され、拡張記憶領域１には“Ｄ１−２”が格納されていることを示している。また、拡張記憶領域２は使用可能であることを示している。さらに、拡張記憶領域ｎは、まだ、実際の記憶領域が割り当てられていないことを示している。
【００６３】
図１０及び図１１は、本発明の一実施形態に係るストレージ装置４におけるデータ書き込みメカニズムを説明するための図である。具体的には、これらの図は、ある書き込みデータが圧縮された後、ＲＡＩＤ５（３Ｄ＋１Ｐ）の下で、異なる系列の疑似ディスクデバイスに格納される様子を示している。
【００６４】
データボリュームに対する書き込みデータは、ストレージ装置４内部で、ブロック化されたデータ（データブロック）として扱われる。単位ブロックのサイズは、例えば６４ＫＢである。本実施形態では、書き込みデータは圧縮されて格納されるため、データボリューム上では、当該サイズよりも小さなサイズ（例えば、１６ＫＢ）の単位記憶領域が規定される。キャッシュメモリ６２上の６４ＫＢの各ブロックは、データボリューム上の１６ＫＢの各ブロックに対応付けられている。従って、６４ＫＢのデータが圧縮されたときに、その圧縮データが１６ＫＢを超えなければ、キャッシュメモリ６２上の６４ＫＢブロックに対応付けられたデータボリューム上の１６ＫＢブロック（基本ブロック）に収容できるが、その圧縮データが１６ＫＢを超える場合には、当該１６ＫＢブロック以外の予備ブロックが必要になる。つまり、６４ＫＢ×１データブロックの圧縮データが１６ＫＢ×３データブロックで構成される場合、超過分の２データブロックは、予備的なブロックに格納されることになる。
【００６５】
今、あるデータボリュームに対するデータＤ１の書き込み要求があったとする。説明を簡略化するために、書き込みデータＤ１は、ブロックサイズが６４ＫＢである単一のデータブロックであるとする。ＲＡＩＤ制御の下、書き込みデータＤ１をデータボリュームに格納するためには、同一のパリティグループ内のデータブロックＤ２及びＤ３とともにパリティを算出して、これらを格納する必要がある（図１０（Ａ））。
【００６６】
データブロックＤ１〜Ｄ３は、ディスクアダプタ６３の制御の下、圧縮され、図１０（Ｂ）に示すような圧縮データブロックが得られたとする。圧縮データブロックの単位サイズは１６ＫＢである。すなわち、圧縮前のデータブロックＤ１は、圧縮データブロックＤ１−１及びＤ１−２となり、圧縮前のデータブロックＤ２は、圧縮データブロックＤ２−１及びＤ２−２となり、そして、圧縮前のデータブロックＤ３は、圧縮データブロックＤ３−１となったとする。また、これら圧縮前データブロックＤ１〜Ｄ３のパリティデータＰは、圧縮データブロックＰ１−１〜Ｐ−４に変換されたとする。つまり、圧縮データブロックＤ１−２、Ｄ２−２、及びＰ−２〜Ｐ−４は、データボリューム上の基本ブロックに格納しきれないデータブロックである。
【００６７】
本実施形態では、キャッシュメモリ６２上の６４ＫＢブロックは、データボリューム上の１６ＫＢ基本ブロックに関連付けられている。基本ブロックは、データボリュームの実ボリュームにおける記憶領域（実記憶領域）である。また、データの内容によっては、その圧縮データを実記憶領域に格納しきれない場合があるため、当該格納しきれない分のデータブロックは、仮想ボリュームのブロック（拡張記憶領域）に格納する。
【００６８】
すなわち、図１１に示すように、圧縮データブロックＤ１−１、Ｄ２−１、Ｄ３−１、及びＰ−１は、ＲＡＩＤ制御の下、データボリュームを構成するＲＡＩＤグループにおける疑似ディスクデバイス（０）〜疑似ディスクデバイス（３）上の実ボリュームにおけるブロック（実記憶領域）にそれぞれ格納される。また、圧縮データブロックＤ１−２、Ｄ２−２、及びＰ−２〜Ｐ−４は、当該ＲＡＩＤグループにおける対応する疑似ディスクデバイス（０）〜疑似ディスクデバイス（４）上の仮想ボリュームにおけるブロック（拡張記憶領域）にそれぞれ格納される。ただし、上述したように、仮想ボリュームは、データの実体を格納する物理デバイスのセグメントが割り当てられていない。従って、仮想ボリュームに格納されるデータの実体は、プールボリュームに格納されることになる。
【００６９】
図１２は、本発明の一実施形態に係るストレージ装置４におけるデータ書き込み処理を説明するためのフローチャートである。具体的には、同図は、データ書き込み処理時におけるディスクアダプタ６３の動作を説明している。
【００７０】
すなわち、ディスクアダプタ６３は、共有メモリ６４を参照し、未処理の書き込みコマンドを見つけると、キャッシュメモリ６２上のそれに対応する書き込みデータを特定する。ディスクアダプタ６３は、当該書き込みデータに基づいて、ＲＡＩＤ構成に従ったパリティデータを生成する（ＳＴＥＰ１２０１）。つまり、本例では、ディスクアダプタ６３は、ＲＡＩＤ５（３Ｄ＋１Ｐ）の構成に従い、３つのデータブロックごとに１つのパリティデータブロックを生成する。これら３つのデータブロックと１つのパリティデータブロックにより１つのパリティグループが形成される。従って、１つのデータブロックの書き込みであっても、パリティグループ内の残りの２つのデータブロックとともに新しいパリティデータブロックを生成する必要がある。これは一般に「ライトペナルティ」と呼ばれている。このフェーズでは、各データブロックは、６４ＫＢのブロックサイズである。
【００７１】
続いて、ディスクアダプタ６３は、当該パリティグループにおける各データブロック（パリティデータブロックを含む。）に対して圧縮処理を行って、圧縮データ列をそれぞれ生成する（ＳＴＥＰ１２０２）。圧縮データ列は、１以上のデータブロック（圧縮データブロック）から構成される。ディスクアダプタ６３は、各圧縮されたデータブロックをキャッシュメモリ６２における圧縮データ用ブロックに書き込み、キャッシュ管理テーブルを更新する。圧縮データ用ブロックは、例えば、１６ＫＢのブロックサイズである。
【００７２】
ディスクアダプタ６３は、次に、圧縮データブロックを系列の異なる疑似ディスクデバイスに分散させて格納するために以下の処理を行う。
【００７３】
具体的には、ディスクアダプタ６３は、まず、パリティサイクル変数Ｉに０をセットする（ＳＴＥＰ１２０３）。次に、ディスクアダプタ６３は、データブロック管理テーブルに当該圧縮データブロックのエントリを登録する（ＳＴＥＰ１２０４）。すなわち、ディスクアダプタ６３は、疑似ディスクデバイス（Ｉ）に格納されるべき圧縮データ列を構成する先頭の圧縮データブロックに対して、疑似ディスクデバイス（Ｉ）における実記憶領域のアドレスを割り当てる。つまり、圧縮データ列が圧縮データブロックＤ１−１及びＤ１−２で構成されている場合、当該圧縮データブロックＤ１−１について、疑似ディスクデバイス（Ｉ）における実記憶領域のアドレスをまず割り当てる。続いて、ディスクアダプタ６３は、当該アドレスに従って、当該実記憶領域に圧縮データブロックを格納する（ＳＴＥＰ１２０５）。
【００７４】
ディスクアダプタ６３は、次に、当該圧縮データ列が超過分の圧縮データブロックを含んでいるか否かを判断する（ＳＴＥＰ１２０６）。すなわち、圧縮データ列が２つ以上の圧縮データブロックで構成されるか否かが判断される。ディスクアダプタ６３は、超過分の圧縮データブロックがないと判断する場合（ＳＴＥＰ１２０６のＮｏ）、パリティサイクル変数Ｉの値を１つインクリメントし（ＳＴＥＰ１２０９）、パリティサイクル変数Ｉが所定のパリティサイクル数（本例では４）以下であるか否かを判断する（ＳＴＥＰ１２１０）。パリティサイクル変数Ｉが所定のパリティサイクル数以下である場合（ＳＴＥＰ１２１０のＮｏ）、パリティグループ内に未処理の圧縮データブロックがあるため、ＳＴＥＰ１２０４の処理に戻る。
【００７５】
ディスクアダプタ６３は、超過分の圧縮データブロックがあると判断する場合（ＳＴＥＰ１２０６のＹｅｓ）、データブロック管理テーブルに当該超過分の圧縮データブロックのエントリを登録する（ＳＴＥＰ１２０７）。すなわち、ディスクアダプタ６３は、当該超過分圧縮データブロックに対して、疑似ディスクデバイス（Ｉ）における拡張記憶領域のアドレスを割り当てる。
【００７６】
続いて、ディスクアダプタ６３は、超過分の圧縮データブロックを仮想ボリュームに格納するための処理を行う（ＳＴＥＰ１２０８）。仮想ボリュームに対する格納処理の詳細については、後述する。
【００７７】
その後、ディスクアダプタ６３は、パリティサイクル変数Ｉの値を１つインクリメントし（ＳＴＥＰ１２０９）、パリティサイクル変数Ｉが所定のパリティサイクル数（本例では４）以下であるか否かを判断する（ＳＴＥＰ１２１０）。パリティサイクル変数Ｉが所定のパリティサイクル数以下である場合（ＳＴＥＰ１２１０のＮｏ）、パリティグループ内に未処理の圧縮データブロックがあるため、ＳＴＥＰ１２０４の処理に戻る。
【００７８】
パリティサイクル変数Ｉが所定のパリティサイクル数に達した場合（ＳＴＥＰ１２１０のＹｅｓ）、ディスクアダプタ６３は、当該データ書き込み処理を終了する。
【００７９】
図１３は、本発明の一実施形態に係るストレージ装置４における仮想ボリュームに対するデータ書き込み処理を説明するためのフローチャートである。具体的には、同図は、図１２に示したＳＴＥＰ１２０８の詳細を説明するためのフローチャートである。
【００８０】
すなわち、同図に示すように、ディスクアダプタ６３は、まず、仮想ボリュームにプールボリューム上の記憶領域がすでに割り当てられているか否かを判断する（ＳＴＥＰ１３０１）。ディスクアダプタ６３は、仮想ボリュームにプールボリューム上の記憶領域が割り当てられていないと判断する場合（ＳＴＥＰ１３０１のＮｏ）、プールボリューム管理テーブルに、超過分の圧縮データブロックについてのエントリを追加する（ＳＴＥＰ１３０２）。上述の例でいえば、圧縮データブロックＤ１−２について、仮想ボリュームのアドレスとプールボリュームのアドレスとを対応付ける。
【００８１】
続いて、ディスクアダプタ６３は、ディスクデバイス管理テーブルの拡張記憶領域にデータブロックを追加する（ＳＴＥＰ１３０３）。そして、ディスクアダプタ６３は、超過分の圧縮データブロックを仮想ボリュームに格納する（ＳＴＥＰ１３０４）。この場合、実際には、ディスクアダプタ６３の制御の下、当該超過分の圧縮データブロックは、プールボリュームを提供するディスクデバイス５に格納されることになる。
【００８２】
以上のように本実施形態によれば、書き込みデータを圧縮して格納するために、キャッシュメモリ６２上のブロックをディスクデバイス５上のより小さなブロックに固定的に割り当てた構成を採用するストレージ装置において、圧縮データがディスクデバイス５上の当該ブロックに格納しきれない場合であっても、当該圧縮データのうち格納しきれない分のデータを拡張記憶領域に格納することができるようになる。当該拡張記憶領域は、これに関連付けられたプールボリュームとして管理されているため、記憶領域の使用実績に応じた柔軟なディスクデバイスの構成を採用することができるようになる。
［第２の実施形態］
【００８３】
第２の実施形態では、ストレージ装置４は、ＲＡＩＤ１の構成の下、書き込みデータの圧縮データをミラーリングして格納する際に、複製された圧縮データを仮想ボリュームに格納するように構成されたストレージ装置４が説明される。
【００８４】
図１４及び図１５は、本発明の一実施形態に係るストレージ装置４におけるデータ書き込みメカニズムを説明するための図である。具体的には、これらの図は、ある書き込みデータＤ４〜Ｄ６が圧縮された後、ＲＡＩＤ１（４Ｄ）の下で、疑似ディスクデバイスに格納される様子を説明している。
【００８５】
あるデータボリュームに対して書き込みデータＤ４〜Ｄ６を格納する場合を考える。説明を簡略化するために、書き込みデータＤ４〜Ｄ６は、ブロックサイズが６４ＫＢである単一のデータブロックであるとする。データブロックＤ４〜Ｄ６は、ディスクアダプタ６３の制御の下、圧縮され、圧縮データブロックＤ４−１〜Ｄ６−１が得られたとする。また、圧縮データブロックＤ４−１〜Ｄ６−１の複製データ（ミラーリングデータ）を圧縮データブロックＤ４−１’〜Ｄ６−１’で示す。圧縮データブロックのサイズは１６ＫＢである。従って、ストレージ装置４は、６４ＫＢ×３データブロックに対して、１６ＫＢ×６データブロックを格納することになる（図１４）。
【００８６】
本実施形態では、図１５に示すように、これら圧縮データブロックを、疑似ディスクデバイスごとの実記憶領域に分散して格納するとともに、ミラーリングされた圧縮データブロックを拡張記憶領域に分散して格納する。ただし、本例のように、データサイクルが３であり、疑似ディスクデバイスが４つである場合には、ミラーリングされた圧縮後データブロックの一つを第４の疑似ディスクデバイスの実記憶領域に格納するようにしてもよい。
【００８７】
図１６は、本発明の一実施形態に係るストレージ装置４における共有メモリ６４に格納されたディスクデバイス管理テーブルの一例を示す図である。同図に示すように、本実施形態のディスクデバイス管理テーブルは、スロットＩＤごとに、第１のアドレス及び第２のアドレスを対応付けている。第２のアドレスは、ミラーリングされた圧縮後データブロックを格納するデータボリュームのアドレスである。
【００８８】
図１７は、本発明の一実施形態に係るストレージ装置４におけるデータ書き込み処理を説明するためのフローチャートである。具体的には、同図は、データ書き込み処理時におけるディスクアダプタ６３の動作を説明している。なお、本例では、ＲＡＩＤグループは、４Ｄであるとする。
【００８９】
すなわち、同図に示すように、ディスクアダプタ６３は、共有メモリ６４を参照し、未処理の書き込みコマンドを見つけると、キャッシュメモリ６２上のそれに対応する書き込みデータを特定する。ディスクアダプタ６３は、ＲＡＩＤ１に従って、当該書き込みデータを構成するデータブロックに対して圧縮処理を行って、圧縮データブロックを生成すし（ＳＴＥＰ１７０１）、さらに、当該圧縮データブロックを二重化する（ＳＴＥＰ１７０２）。圧縮データブロック及びその二重化された圧縮データブロックは、キャッシュメモリ６２における圧縮データ用ブロックに格納される。本例では、３つの圧縮データブロックを１データサイクルとして、二重化された圧縮後データブロックがそれに続いて格納される。
【００９０】
ディスクアダプタ６３は、次に、圧縮データブロックを系列の異なる疑似ディスクデバイスに分散させて格納するために以下の処理を行う。すなわち、ディスクアダプタ６３は、まず、１データサイクル分の圧縮ブロックデータを異なる疑似ディスクデバイス（０）〜疑似ディスクデバイス（２）に分散させて格納する（ＳＴＥＰ１７０３）。次に、ディスクアダプタ６３は、データサイクル変数Ｉに０をセットする（ＳＴＥＰ１７０４）。
【００９１】
ディスクアダプタ６３は、データサイクル変数Ｉが０であるか否かを判断する（ＳＴＥＰ１７０５）。つまり、ディスクアダプタ６３は、疑似ディスクデバイス（０）に格納された圧縮データブロック（例えばＤ４−１）に対応する二重化された圧縮データブロック（例えばＤ４−１’）を選択する。
【００９２】
ディスクアダプタ６３は、データサイクル変数Ｉが０であると判断する場合（ＳＴＥＰ１７０５のＹｅｓ）、当該二重化された圧縮データブロックを疑似ディスクデバイス（３）の実記憶領域に格納し（ＳＴＥＰ１７０６）、データブロック管理テーブルに、当該二重化された圧縮データブロックのエントリを登録する（ＳＴＥＰ１７０７）。
【００９３】
これに対して、データサイクル変数Ｉが０以外である場合、ディスクアダプタ６３は、当該二重化された圧縮後データブロックを、疑似ディスクデバイス（Ｉ−１）の拡張記憶領域に格納し（ＳＴＥＰ１７０８）、データブロック管理テーブルに、当該二重化された圧縮データブロックのエントリを登録する（ＳＴＥＰ１７０９）。つまり、疑似ディスクデバイス（０）以外の疑似ディスクデバイスに格納された圧縮データブロックに対応する二重化された圧縮データブロックは、１つ分だけローテイトシフトされた疑似ディスクデバイスに格納されることになる。
【００９４】
そして、ディスクアダプタ６３は、データサイクル変数Ｉの値を１つインクリメントして（ＳＴＥＰ１７１０）、データサイクル変数Ｉが１データサイクルに達したか否かを判断する（ＳＴＥＰ１７１１）。データサイクル変数Ｉが１データサイクルに達していない場合には（ＳＴＥＰ１７１１のＮｏ）、ディスクアダプタ６３は、ＳＴＥＰ１７０５の処理に戻る。一方、データサイクル変数Ｉが１データサイクルに達した場合には（ＳＴＥＰ１７１１のＹｅｓ）、当該書き込み処理を終了する。
【００９５】
以上のように本実施形態によれば、ＲＡＩＤ１の構成の下、書き込みデータの圧縮データをミラーリングして格納する際に、複製された圧縮データを仮想ボリュームに格納しているので、効率的なデータ格納を実現することができるようになる。
［第３の実施形態］
【００９６】
第３の実施形態は、上記第１の実施形態で示された技術的特徴と上記第２の実施形態で示された技術的特徴との組み合わせである。具体的には、本実施形態では、ストレージ装置４は、データ書き込み処理時に、パリティグループごとにパリティデータブロックを生成し、各データブロックに対して圧縮処理を行う。ストレージ装置４は、圧縮処理の結果に基づいて、パリティを用いたデータ格納方式とミラーリングによるデータ格納方式のどちらが効率的なデータ格納であるかを判断し、効率的であるとされたデータ格納方式に従って、圧縮データブロックをデータボリュームに格納する。この場合、上述したように、圧縮データブロックは、適宜、仮想ボリュームに格納されることになる。
【００９７】
図１８及び図１９は、本発明の一実施形態に係るストレージ装置４におけるデータ書き込みメカニズムを説明するための図である。具体的には、これらの図は、ある書き込みデータが圧縮された後、ＲＡＩＤ５（３Ｄ＋１Ｐ）またはＲＡＩＤ１（４Ｄ）の下で、疑似ディスクデバイスに格納される様子を示している。
【００９８】
今、あるデータボリュームに対するデータＤ１の書き込み要求があり、続いて、データＤ５の書き込み要求があったとする。説明を簡略化するために、書き込みデータは、ブロックサイズが６４ＫＢである単一のデータブロックであるとする。ＲＡＩＤ５制御の下、書き込みデータ（データブロック）をデータボリュームに格納するためには、それぞれ同一のパリティグループ内のデータブロックとともにパリティを算出して、これらを格納する必要がある。つまり、データブロックＤ１については、データブロックＤ２及びＤ３とともにパリティデータブロックＰ１が算出され、また、データブロックＤ５については、データブロックＤ４及びＤ６とともにパリティデータブロックＰ２が算出される。これらは、キャッシュメモリ６２上の６４ＫＢブロックに格納された圧縮前のデータブロックである。
【００９９】
データブロックＤ１〜Ｄ３及びＰ１は、ディスクアダプタ６３により圧縮され、図１８（Ａ）に示すようなデータブロックが得られたとする。これらは、キャッシュメモリ６２上の１６ＫＢブロックに格納された圧縮データブロックである。上述したように、圧縮データブロックＤ１−２、Ｄ２−２、及びＰ１−２〜Ｐ１−４は、データボリュームの実ボリュームにおける実記憶領域に格納しきれないデータブロックである。
【０１００】
一方、データブロックＤ４〜Ｄ６及びＰ２は、ディスクアダプタ６３により圧縮され、図１８（Ｂ）に示すような圧縮データブロックが得られたとする。つまり、データブロックＤ４〜Ｄ６は、データボリュームの汁ボリュームにおける実記憶領域の１つに格納できるまでに圧縮された圧縮データブロックＤ４−１〜Ｄ６−１に変換されている。また、データブロックＰ２は、圧縮効率が低く（圧縮率が高く）、圧縮データブロックＰ２−１〜Ｐ２−４に変換されている。なお、本明細書では、圧縮率は、圧縮後のデータサイズを圧縮前のデータサイズで割った値をいうものとする。従って、圧縮率が低いということは、圧縮後のデータサイズが小さいことを意味し、圧縮効率が高いことになる。
【０１０１】
従って、データブロックＤ４〜Ｄ６及びＰ２からは、７つの圧縮データブロックが生成される。これに対して、データブロックＤ４−１〜Ｄ６−１が二重化されてデータボリュームに格納される場合、６個の圧縮データブロックが格納されれば足りる。このため、本実施形態のストレージ装置４は、書き込みデータを圧縮後、パリティを含めた圧縮データブロックの数をチェックし、より少ない数の圧縮データブロックを格納すれば足りる方式を選択する。
【０１０２】
従って、図１９に示すように、圧縮データブロックＤ１−１、Ｄ２−１、Ｄ３−１、及びＰ−１は、ＲＡＩＤ５制御の下、データボリュームを構成するＲＡＩＤグループにおける疑似ディスクデバイス（０）〜疑似ディスクデバイス（３）の実ボリュームにそれぞれ格納される。また、圧縮データブロックＤ１−２、Ｄ２−２、及びＰ−２〜Ｐ−４は、当該ＲＡＩＤグループにおける対応する疑似ディスクデバイス（０）〜疑似ディスクデバイス（４）の仮想ボリュームにそれぞれ格納される。
【０１０３】
また、圧縮後データブロックＤ４−１〜Ｄ６−１は、ＲＡＩＤ１制御の下、ミラーリングされ、拡張記憶領域を利用しながら、疑似ディスクデバイス（０）〜疑似ディスクデバイス（３）に格納される。
【０１０４】
図２０は、本発明の一実施形態に係るストレージ装置４における共有メモリ６４に格納されたディスクデバイス管理テーブルの一例を示す図である。具体的には、同図は、上述の例に従って、パリティを用いたデータ格納方式により書き込みデータが格納されたときのディスクデバイス管理テーブルを示している。ミラーリングによるデータ格納方式により書き込みデータが格納されたときのディスクデバイス管理テーブルは、図１６に示したものと同じである。
【０１０５】
図２１〜図２３は、本発明の一実施形態に係るストレージ装置４におけるデータ書き込み処理を説明するためのフローチャートである。具体的には、同図は、データ書き込み処理時におけるディスクアダプタ６３の動作を説明している。
【０１０６】
すなわち、ディスクアダプタ６３は、共有メモリ６４を参照し、未処理の書き込みコマンドを見つけると、キャッシュメモリ６２上のそれに対応する書き込みデータを特定する。ディスクアダプタ６３は、当該書き込みデータに基づいて、ＲＡＩＤ構成に従ったパリティデータを生成する（ＳＴＥＰ２１０１）。つまり、本例では、ディスクアダプタ６３は、ＲＡＩＤ５（３Ｄ＋１Ｐ）の構成に従い、３つのデータブロックごとに１つのパリティデータブロックからなるパリティグループを形成する。このフェースでは、各データブロックは、６４ＫＢのブロックサイズである。
【０１０７】
続いて、ディスクアダプタ６３は、形成したパリティグループ内の各データブロックに対して圧縮処理を行って、圧縮データ列をそれぞれ生成する（ＳＴＥＰ２１０２）。ディスクアダプタ６３は、各圧縮データ列を構成する圧縮データブロックのそれぞれをキャッシュメモリ６２における圧縮データ用ブロックに書き込み、キャッシュ管理テーブルを更新する。圧縮データ用ブロックは、例えば、１６ＫＢのブロックサイズである。
【０１０８】
ディスクアダプタ６３は、次に、パリティグループ内の圧縮データブロック（圧縮パリティデータブロックを含まない。）数が圧縮パリティデータブロック数よりも少ないか否かを判断する（ＳＴＥＰ２１０３）。つまり、ディスクアダプタ６３は、パリティを用いたデータ格納方式とミラーリングによるデータ格納方式のどちらが書き込みデータを効率的に格納できるか否かを判断する。
【０１０９】
ディスクアダプタ６３は、パリティグループ内の圧縮データブロック数の方が圧縮パリティデータブロック数よりも少ないと判断する場合には、図２２に示す処理を行う。図２２に示す処理は、パリティを用いたデータ格納処理であり、図１２に示したＳＴＥＰ１２０３以降の処理と同じであるため、説明を省略する。
【０１１０】
これに対して、ディスクアダプタ６３は、パリティグループ内の圧縮後データブロック数の方が圧縮後パリティデータブロック数よりも多いと判断する場合には、図２３に示す処理を行う。図２３に示す処理は、ミラーリングによるデータ格納処理であり、図１７に示したＳＴＥＰ１７０２以降の処理と同じであるため、説明を省略する。
【０１１１】
以上のように、本実施形態によれば、書き込みデータを圧縮して格納するに際して、パリティを含む圧縮データのサイズとパリティを用いずに二重化した圧縮データのサイズとに基づいて最適なＲＡＩＤ構成を選択するので、圧縮データの効率的な格納ができるようになる。
［第４の実施形態］
【０１１２】
第４の実施形態は、第３の実施形態の変形であり、データの書き込み要求に対する前回のデータ格納方式を記憶しておき、当該データに対する別の書き込み要求があった場合に、当該記憶されたデータ格納方式を利用することを特徴としている。
【０１１３】
図２４（Ａ）及び（Ｂ）は、本発明の一実施形態に係るストレージ装置４における共有メモリ６４に格納されたディスクデバイス管理テーブルの一例を示す図である。同図に示すように、本実施形態のディスクデバイス管理テーブルは、上述したディスクデバイス管理テーブルのほぼ同じであるが、前回のデータ格納方式を記憶する学習情報を保持する点が異なっている。すなわち、同図（Ａ）は、ＲＡＩＤ５を学習情報として保持した状態を示し、同図（Ｂ）は、学習情報がない状態を示している。
【０１１４】
図２５は、本発明の一実施形態に係るストレージ装置４におけるデータ書き込み処理を説明するためのフローチャートである。
【０１１５】
同図に示すように、ディスクアダプタ６３は、共有メモリ６４を参照し、未処理の書き込みコマンドを見つけると、キャッシュメモリ６２上のそれに対応する書き込みデータを特定する。ディスクアダプタ６３は、当該書き込みデータに対するデータブロック管理テーブルを参照して、現在の学習情報を取得し（ＳＴＥＰ２５０１）、現在の学習情報が“ＲＡＩＤ１”であるか否かを判断する（ＳＴＥＰ２５０２）。
【０１１６】
ディスクアダプタ６３は、現在の学習情報が“ＲＡＩＤ１”でないと判断する場合（ＳＴＥＰ２５０２のＮｏ）、ＲＡＩＤ５の制御の下で、圧縮データの格納処理を行う。
【０１１７】
すなわち、ディスクアダプタ６３は、すでに述べたように、ＲＡＩＤ構成に従ったパリティデータブロックを生成し（ＳＴＥＰ２５０３）、続いて、パリティグループ内の各データブロックを圧縮する（ＳＴＥＰ２５０４）。
【０１１８】
ディスクアダプタ６３は、次に、パリティグループ内の圧縮データブロック（圧縮パリティデータブロックを含まない。）数が圧縮パリティデータブロック数よりも少ないか否かを判断する（ＳＴＥＰ２５０５）。つまり、ディスクアダプタ６３は、パリティを用いたデータ格納方式とミラーリングを用いたデータ格納方式のどちらが書き込みデータを効率的に格納できるか否かを判断する。
【０１１９】
ディスクアダプタ６３は、パリティグループ内の圧縮データブロック数の方が圧縮パリティデータブロック数よりも多いと判断する場合には、ミラーリングによるデータ格納処理を行う（ＳＴＥＰ２５０９）。ミラーリングによるデータ格納処理は、図２３に示した処理と同じである。
【０１２０】
これに対して、ディスクアダプタ６３は、パリティグループ内の圧縮データブロック数の方が圧縮パリティデータブロック数よりも少ないと判断する場合には、パリティを用いたデータ格納処理を行う（ＳＴＥＰ２５０６）。パリティを用いたデータ格納処理は、図２２に示した処理と同じである。
【０１２１】
そして、ディスクアダプタ６３は、次回のデータ書き込み処理のため、データブロック管理テーブルの学習情報を“ＲＡＩＤ５”に設定する（ＳＴＥＰ２５０７）。
【０１２２】
ＳＴＥＰ２５０２において、現在の学習情報が“ＲＡＩＤ１”であると判断する場合（ＳＴＥＰ２５０２のＹｅｓ）、ＲＡＩＤ１の制御の下で、圧縮データの格納処理を行う。
【０１２３】
すなわち、ディスクアダプタ６３は、まず、データブロックを圧縮し（ＳＴＥＰ２５０８）、続いて、ミラーリングによるデータ格納処理を行う（ＳＴＥＰ２５０９）。
【０１２４】
ミラーリングによるデータ格納処理を終えた後、ディスクアダプタ６３は、学習情報を更新するか否かを判断すべく、ＲＡＩＤ構成に従ったパリティデータブロックを生成し（ＳＴＥＰ２５１０）、続いて、パリティグループ内の各データブロックを圧縮する（ＳＴＥＰ２５１１）。ディスクアダプタ５３は、パリティグループ内の圧縮データブロック（圧縮後パリティデータブロックを含まない。）数が圧縮パリティデータブロック数よりも少ないか否かを判断する（ＳＴＥＰ２５１２）。
【０１２５】
ディスクアダプタ６３は、パリティグループ内の圧縮データブロック数の方が圧縮パリティデータブロック数よりも少ないと判断する場合には（ＳＴＥＰ２５１２のＹｅｓ）、データブロック管理テーブルの学習情報を“ＲＡＩＤ５”に設定する（ＳＴＥＰ２５０７）。
【０１２６】
これに対して、ディスクアダプタ６３は、パリティグループ内の圧縮後データブロック数の方が圧縮後パリティデータブロック数よりも多いと判断する場合には（ＳＴＥＰ２５１２のＮｏ）、データブロック管理テーブルの学習情報を“ＲＡＩＤ１”に設定する（ＳＴＥＰ２５１３）。
【０１２７】
以上により、本実施形態によれば、前回のデータ格納方式を記憶しているため、さらに効率的なＲＡＩＤ構成の選択を行うことができるようになる。
【０１２８】
上記実施形態は、本発明を説明するための例示であり、本発明は上記実施形態に限定されるものでない。本発明は、その要旨を逸脱しない範囲でさまざまに形態で実施することができる。
【０１２９】
例えば、上記実施形態では、ディスクアダプタの動作をフローチャートの中でシーケンシャルに構成したが、動作果に矛盾が生じない限り、処理の順序を入れ替え、又は、並列に処理するように構成してもよい。
【０１３０】
また、上記実施形態では、ＲＡＩＤ５を採用したが、パリティを用いる他のＲＡＩＤ構成として知られるＲＡＩＤ３、４、又は６であってもよい。
【産業上の利用可能性】
【０１３１】
本発明は、ＲＡＩＤ構成を採用するストレージ装置に広く適用することができる。
【図面の簡単な説明】
【０１３２】
【図１】本発明の一実施形態に係るストレージシステムの構成を説明するための図である。
【図２】本発明の一実施形態に係るストレージ装置におけるディスクコントローラのディスクアダプタを機能的に説明するための図である。
【図３】本発明の一実施形態に係るストレージ装置における共有メモリの内容を示す図である。
【図４】本発明の一実施形態に係るストレージ装置におけるセグメント管理テーブルの一例を示す図である。
【図５】本発明の一実施形態に係るストレージ装置の共有メモリに格納されたアドレス管理テーブルの一例を示す図である。
【図６】本発明の一実施形態に係るストレージ装置の共有メモリに格納されたデータボリュームを説明するための図である。
【図７】本発明の一実施形態に係るストレージ装置における記憶領域の動的割り当てを概念的に説明するための図である。
【図８】本発明の一実施形態に係るストレージ装置における共有メモリに格納されたデータブロック管理テーブルの一例を示す図である。
【図９】本発明の一実施形態に係るストレージ装置における共有メモリに格納されたディスクデバイス管理テーブルの一例を示す図である。
【図１０】本発明の一実施形態に係るストレージ装置におけるデータ書き込みメカニズムを説明するための図である。
【図１１】本発明の一実施形態に係るストレージ装置におけるデータ書き込みメカニズムを説明するための図である。
【図１２】本発明の一実施形態に係るストレージ装置におけるデータ書き込み処理を説明するためのフローチャートである。
【図１３】本発明の一実施形態に係るストレージ装置における仮想ボリュームに対するデータ書き込み処理を説明するためのフローチャートである。
【図１４】本発明の一実施形態に係るストレージ装置におけるデータ書き込みメカニズムを説明するための図である。
【図１５】本発明の一実施形態に係るストレージ装置におけるデータ書き込みメカニズムを説明するための図である。
【図１６】本発明の一実施形態に係るストレージ装置における共有メモリに格納されたディスクデバイス管理テーブルの一例を示す図である。
【図１７】本発明の一実施形態に係るストレージ装置におけるデータ書き込み処理を説明するためのフローチャートである。
【図１８】本発明の一実施形態に係るストレージ装置におけるデータ書き込みメカニズムを説明するための図である。
【図１９】本発明の一実施形態に係るストレージ装置におけるデータ書き込みメカニズムを説明するための図である。
【図２０】本発明の一実施形態に係るストレージ装置における共有メモリに格納されたディスクデバイス管理テーブルの一例を示す図である。
【図２１】本発明の一実施形態に係るストレージ装置におけるデータ書き込み処理を説明するためのフローチャートである。
【図２２】本発明の一実施形態に係るストレージ装置におけるデータ書き込み処理を説明するためのフローチャートである。
【図２３】本発明の一実施形態に係るストレージ装置におけるデータ書き込み処理を説明するためのフローチャートである。
【図２４】、本発明の一実施形態に係るストレージ装置における共有メモリに格納されたディスクデバイス管理テーブルの一例を示す図である。
【図２５】本発明の一実施形態に係るストレージ装置におけるデータ書き込み処理を説明するためのフローチャートである。
【符号の説明】
【０１３３】
１…コンピュータシステム
２…ネットワーク
３…ホスト装置
４…ストレージ装置
５…ディスクデバイス
６…ディスクコントローラ
６１…チャネルアダプタ
６２…キャッシュメモリ
６３…ディスクアダプタ
６４…共有メモリ
６５…内部スイッチ
【図１】
0005112003.tif 000002
【図２】
0005112003.tif 000003
【図３】
0005112003.tif 000004
【図４】
0005112003.tif 000005
【図５】
0005112003.tif 000006
【図６】
0005112003.tif 000007
【図７】
0005112003.tif 000008
【図８】
0005112003.tif 000009
【図９】
0005112003.tif 000010
【図１０】
0005112003.tif 000011
【図１１】
0005112003.tif 000012
【図１２】
0005112003.tif 000013
【図１３】
0005112003.tif 000014
【図１４】
0005112003.tif 000015
【図１５】
0005112003.tif 000016
【図１６】
0005112003.tif 000017
【図１７】
0005112003.tif 000018
【図１８】
0005112003.tif 000019
【図１９】
0005112003.tif 000020
【図２０】
0005112003.tif 000021
【図２１】
0005112003.tif 000022
【図２２】
0005112003.tif 000023
【図２３】
0005112003.tif 000024
【図２４】
0005112003.tif 000025
【図２５】
0005112003.tif 000026