(57)【要約】【課題】本発明は、高性能かつ効率的にデータを格納する低消費電力のストレージシステムを提供することを目的とする。【解決手段】本発明は、複数のディスクドライブとこれを制御するディスク制御装置とを備えるストレージシステムである。複数のディスクドライブは複数の仮想デバイスにより構成され、そこに論理デバイスが割り当てられる。ディスク制御装置は、ホストコンピュータに接続されるチャネルアダプタと、論理デバイスの所定の記憶領域にアクセスするディスクアダプタと、チャネルアダプタとディスクアダプタとの間に配置されたキャッシュメモリと、データに対する圧縮処理を行う圧縮部と、複数のディスクドライブに対して供給される電力を制御する電力制御部と、を備える。ディスク制御装置は、圧縮処理により圧縮されたデータに基づいて圧縮後の論理デバイスを形成し、圧縮後の論理デバイスを仮想デバイスに割り当てる。【選択図】図１
2008171312.tif 000002
【特許請求の範囲】
【請求項１】
複数のディスクドライブと、前記複数のディスクドライブを制御するディスク制御装置と、を備えるストレージシステムであって、
前記複数のディスクドライブにより構成される複数の仮想デバイスに論理デバイスが割り当てられ、
前記ディスク制御装置は、
チャネルを介してホストコンピュータに接続可能に構成されたチャネルアダプタと、
前記論理デバイスの所定の記憶領域にアクセス可能に構成されたディスクアダプタと、
前記チャネルアダプタと前記ディスクアダプタとの間でデータを送受するために配置されたキャッシュメモリと、
データに対する圧縮処理を行う圧縮部と、
前記複数のディスクドライブに対して供給される電力を制御する電力制御部と、を備え、
前記ディスク制御装置は、
前記圧縮処理により圧縮されたデータに基づいて圧縮後の論理デバイスを形成し、前記圧縮後の論理デバイスを前記複数の仮想デバイスの少なくとも一つに割り当てることを特徴とするストレージシステム。
【請求項２】
請求項１に記載のストレージシステムであって、
前記圧縮後の論理デバイスが割り当てられていない仮想デバイスに対する電力が制御されるように、前記電力制御部を制御することを特徴とするストレージシステム。
【請求項３】
請求項１に記載のストレージシステムであって、
前記複数の仮想デバイスの少なくとも一つは、圧縮されていないデータに基づく論理デバイスと圧縮されたデータに基づく圧縮後の論理デバイスが割り当てられていることを特徴とするストレージシステム。
【請求項４】
請求項１に記載のストレージシステムであって、
前記圧縮部は、前記圧縮されたデータに基づく圧縮率を算出することを特徴とするストレージシステム。
【請求項５】
請求項４に記載のストレージシステムであって、
前記圧縮部は、
前記算出された圧縮率に基づいて、前記キャッシュメモリに格納されたデータを読み出して圧縮し、前記キャッシュメモリに格納することを特徴とするストレージシステム。
【請求項６】
請求項１に記載のストレージシステムであって、
前記ディスク制御装置は、
前記圧縮されたデータを前記圧縮後の論理デバイスの所定の記憶領域に格納することを特徴とするストレージシステム。
【請求項７】
請求項１に記載のストレージシステムであって、
前記圧縮部は、
前記チャネルアダプタにより受信したデータを圧縮することを特徴とするストレージシステム。
【請求項８】
複数のディスクドライブと、前記複数のディスクドライブを制御するディスク制御装置と、を備えるストレージシステムの制御方法であって、
少なくとも１つのディスクドライブを割り当てた仮想デバイスを複数構成するステップと、
ホストコンピュータにデータの記憶領域を提供するための圧縮前論理デバイスを、第１の所定数で構成される第１の仮想デバイスに割り当てるステップと、
前記ホストコンピュータから書き込み要求に従うデータを受信するステップと、
前記受信したデータに対して圧縮処理を行うステップと、
前記圧縮処理により圧縮されたデータに基づいて形成される圧縮後論理デバイスを、前記第１の所定数より少ない第２の所定数で構成される第２の仮想デバイスに割り当てるステップと、
前記第２の所定数で構成される第２の仮想デバイス以外の仮想デバイスに対する電力の供給を制御するステップと、
を含むことを特徴とする制御方法。
【請求項９】
請求項８に記載の制御方法であって、
前記圧縮されたデータを前記圧縮後論理デバイスの所定の記憶領域に格納するステップをさらに含むことを特徴とする制御方法。
【請求項１０】
請求項８に記載の制御方法であって、
前記圧縮処理は、前記圧縮されたデータに基づく圧縮率を算出するステップを含むことを特徴とする制御方法。
【請求項１１】
請求項１０に記載の制御方法であって、
前記算出された圧縮率に基づいて、前記圧縮後論理デバイスを前記第２の所定数で構成される第２の仮想デバイスに割り当てることを特徴とする制御方法。
【請求項１２】
請求項１０に記載の制御方法であって、
前記受信したデータをキャッシュメモリに格納するステップをさらに含み、
前記圧縮処理は、前記算出された圧縮率が所定のしきい値を下回る場合に、前記キャッシュメモリに格納された前記受信したデータを読み出して圧縮するステップをさらに含むことを特徴とする制御方法。
【請求項１３】
請求項１２に記載の制御方法であって、
前記圧縮処理により圧縮されたデータをキャッシュメモリに再格納するステップをさらに含むことを特徴とする制御方法。
【請求項１４】
請求項１２に記載の制御方法であって、
前記算出された圧縮率が所定のしきい値を下回らない場合に、前記キャッシュメモリに格納された前記受信したデータを前記圧縮前論理デバイスに格納するステップと、をさらに含むことを特徴とする制御方法。
【請求項１５】
請求項１０に記載の制御方法であって、
前記受信したデータをキャッシュメモリに格納するステップと、
前記キャッシュメモリに格納された前記受信したデータを前記圧縮前論理デバイスの所定の記憶領域に格納するステップと、をさらに含み、
前記第１の論理デバイスは非圧縮属性が設定されていることを特徴とする制御方法。
【請求項１６】
請求項１５に記載の制御方法であって、
前記圧縮前論理デバイスを圧縮属性に設定するステップと、
前記圧縮前論理デバイスに格納されたデータを読み出すステップと、
前記読み出したデータに対して圧縮処理を行うステップと、
前記圧縮処理により圧縮されたデータに基づいて形成される圧縮後論理デバイスを、前記第１の所定数より少ない第２の所定数で構成される仮想デバイスに割り当てるステップと、
前記圧縮されたデータを前記圧縮後論理デバイスの所定の記憶領域に格納するステップと、
前記第２の所定数で構成される仮想デバイス以外の仮想デバイスに対する電力の供給を制御するステップと、をさらに含むことを特徴とする制御方法。
【請求項１７】
請求項１５に記載の制御方法であって、
前記圧縮前論理デバイスについて前記算出された圧縮率を関連づけた管理情報を保持するステップと、
前記保持された管理情報に基づいて、前記圧縮前論理デバイス上の所定の記憶領域に格納されたデータに対する圧縮処理を行うか否かを判断するステップと、をさらに含むことを特徴とする制御方法。
【請求項１８】
請求項１０に記載の制御方法であって、
前記ホストコンピュータから、前記圧縮前論理デバイスに対する複数の書き込み要求を受信するステップと、
前記複数の書き込み要求に基づいて、前記圧縮前論理デバイスに対するアクセス頻度を算出するステップと、をさらに含み、
前記算出されたアクセス頻度に基づいて、前記圧縮後論理デバイスを前記第２の所定数で構成される仮想デバイスに割り当てることを特徴とする制御方法。
【請求項１９】
請求項１０に記載の制御方法であって、
前記圧縮前論理デバイスの容量と前記圧縮後論理デバイスとの差分値を算出するステップと、
前記第１の所定数で構成される第１の仮想デバイスのうち、その一部のみに前記圧縮前論理デバイスが割り当てられている仮想デバイスを、前記算出された差分値に基づいて、前記第２の所定数で構成される第２の仮想デバイスから除外するために、開放するステップと、を含むことを特徴とする制御方法。
【請求項２０】
複数のディスクドライブと、前記複数のディスクドライブを制御するディスク制御装置と、を備えるストレージシステムの制御方法であって、
少なくとも１つのディスクドライブを割り当てた仮想デバイスを複数構成するステップと、
ホストコンピュータにデータの記憶領域を提供するための圧縮前論理デバイスを、第１の所定数で構成される仮想デバイスに割り当てるステップと、
前記第１の論理デバイスに格納されたデータを読み出すステップと、
前記読み出したデータに対して圧縮処理を行うステップと、
前記圧縮処理により圧縮されたデータに基づいて形成される圧縮後論理デバイスを、前記第１の所定数より少ない第２の所定数で構成される仮想デバイスに割り当てるステップと、
前記第２の所定数で構成される仮想デバイス以外の仮想デバイスに対する電力の供給を制御するステップと、
を含むことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及びストレージシステムの制御方法に関し、特に、ストレージシステムの複数のディスクドライブに対する省電力制御技術に関する。
【背景技術】
【０００２】
データセンタの大規模化に伴い、システムの消費電力の増大やシステムからの発熱が問題となってくる。そのため、消費電力が少なく、かつ、大容量のデータを効率的に格納することができるストレージシステムが要求されている。
【０００３】
下記特許文献１には、ストレージ装置の消費電力を抑制する技術が開示されている。特許文献１におけるストレージ装置は、ホストコンピュータからのアクセス要求に基づいた負荷情報が、閾値以下になると、一部のハードディスクドライブ（ＨＤＤ）に対する給電を停止し、消費電力を抑制している。
【０００４】
また、下記特許文献２には、ストレージ装置にデータを圧縮して格納する技術が開示されている。
【０００５】
ところで、データ圧縮技術においては、データに対する圧縮処理を実際に実行するまで圧縮されたデータのサイズを予測することは難しい。また、データによっては圧縮処理を適用する前よりもデータサイズが大きくなってしまうこともありうる。
【特許文献１】特開２００２―２９７３２０号公報
【特許文献２】特開平５−７３２１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示されるようなハードディスクドライブに対する給電を停止して、消費電力を抑制する技術においては、コントローラが給電の停止によってスピンダウンされたハードディスクドライブにアクセスする場合、そのハードディスクデバイスがスピンアップされるまで待つ必要がある。一般に、ハードディスクのスピンアップには、数秒から十数秒の時間を要する。そのため、スピンダウンしているハードディスクドライブにアクセスする場合、アクセスレイテンシが極端に増大してしまい、システムのダウンを引き起こすおそれがある。
【０００７】
また、特許文献２に開示されたストレージ装置は、データを圧縮して格納する技術を開示するものの、消費電力を抑制する点については何ら言及がない。
【０００８】
一方、同じ消費電力性能のストレージ装置を用いる場合であっても、ストレージ装置１台当たりでより大容量のデータを格納できれば、少ない台数で所望の容量のデータを格納でき、結果として低消費電力化に貢献することになる。
【課題を解決するための手段】
【０００９】
本発明は、上記課題に鑑みてなされたものであって、高信頼、高性能でかつ効率的にデータを格納する低消費電力のストレージシステムを提供することを目的とする。
【００１０】
すなわち、本発明の一形態によれば、本発明は、複数のディスクドライブと、当該複数のディスクドライブを制御するディスク制御装置と、を備えるストレージシステムであって、当該複数のディスクドライブは複数の仮想デバイスにより構成され、さらに当該複数の仮想デバイスには、論理デバイスが割り当てられる。当該ディスク制御装置は、チャネルを介してホストコンピュータに接続可能に構成されたチャネルアダプタと、当該論理デバイスの所定の記憶領域にアクセス可能に構成されたディスクアダプタと、当該チャネルアダプタと当該ディスクアダプタとの間でデータを送受するために配置されたキャッシュメモリと、データに対する圧縮処理を行う圧縮部と、当該複数のディスクドライブに対して供給される電力を制御する電力制御部と、を備える。また、当該ディスク制御装置は、当該圧縮処理により圧縮されたデータに基づいて圧縮後の論理デバイスを形成し、当該圧縮後の論理デバイスを当該複数の仮想デバイスの少なくとも一つに割り当てる。そして、当該ディスク制御装置は、当該圧縮後の論理デバイスが割り当てられていない仮想デバイスに対して電力が制御されるように、当該電力制御部を制御する。
【００１１】
また、本発明の他の形態によれば、本発明は、複数のディスクドライブと、当該複数のディスクドライブを制御するディスク制御装置と、を備えるストレージシステムにおける電力制御方法であって、少なくとも１つのディスクドライブを割り当てた仮想デバイスを複数構成するステップと、ホストコンピュータにデータの記憶領域を提供するための圧縮前論理デバイスを、第１の所定数で構成される第１の仮想デバイスに割り当てるステップと、当該ホストコンピュータから書き込み要求に従うデータを受信するステップと、当該受信したデータに対して圧縮処理を行うステップと、当該圧縮処理により圧縮されたデータに基づいて形成される圧縮後論理デバイスを、当該第１の所定数より少ない第２の所定数で構成される第２の仮想デバイスに割り当てるステップと、当該第２の所定数で構成される第２の仮想デバイス以外の仮想デバイスに対する電力の供給を制御するステップと、を含む電力制御方法である。
【００１２】
さらに、本発明のさらに他の形態によれば、本発明は、複数のディスクドライブと、当該複数のディスクドライブを制御するディスク制御装置と、を備えるストレージシステムにおける電力制御方法であって、少なくとも１つのディスクドライブを割り当てた仮想デバイスを複数構成するステップと、ホストコンピュータにデータの記憶領域を提供するための圧縮前論理デバイスを、第１の所定数で構成される仮想デバイスに割り当てるステップと、
【００１３】
当該第１の論理デバイスに格納されたデータを読み出すステップと、当該読み出したデータに対して圧縮処理を行うステップと、当該圧縮処理により圧縮されたデータに基づいて形成される圧縮後論理デバイスを、当該第１の所定数より少ない第２の所定数で構成される仮想デバイスに割り当てるステップと、当該第２の所定数で構成される仮想デバイス以外の仮想デバイスに対する電力の供給を制御するステップと、を含む電力制御方法である。
【発明の効果】
【００１４】
本発明の代表的な形態によれば、ストレージシステムは、極端な性能劣化を起こさず、消費電力を低減できる。またデータ圧縮を行い効率的なデータ格納ができる。
【発明を実施するための最良の形態】
【００１５】
次に、本発明の実施の形態について、図面を参照しつつ説明する。
【００１６】
図１は、本発明の一実施形態に係る計算機システム１の構成を示す図である。同図に示すように、計算機システム１は、ネットワーク２に接続されたホストコンピュータ３及びストレージシステム４を含み、例えば、銀行の業務システムや航空機の座席予約業務システム等として構成される。
【００１７】
ネットワーク２は、例えばＳＡＮ（Storage Area Network）、ＬＡＮ（Local Area Network）や、インターネットであり、ネットワークスイッチやハブ等を含んで構成される。また、ＳＣＳＩ（Small Computer System Interface）インターフェースで接続する場合のように、１対１接続のものでもよい。本実施形態では、ネットワーク２は、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌプロトコルを用いたＳＡＮ（ＦＣ−ＳＡＮ）で構成されているものとする。
【００１８】
ホストコンピュータ３は、例えば、銀行の業務システムや航空機の座席予約業務システム等の中核をなすコンピュータである。具体的には、ホストコンピュータ３は、プロセッサ、メインメモリ、通信インターフェース及び直接接続入出力（Ｉ／Ｏ）装置等のハードウェア資源（図示せず）を備え、また、デバイスドライバやオペレーティングシステム（ＯＳ）、アプリケーションプログラム等のソフトウェア資源を備えている。これによって、ホストコンピュータ３は、プロセッサの制御の下、各種のプログラムを実行して、ハードウェア資源との協働作用により、所望の処理を実現する。例えば、ホストコンピュータ３は、プロセッサの制御の下、ＯＳ上で業務アプリケーションプログラムを実行することにより、以下に詳述されるストレージシステム４と相まって、上述した業務システムを実現する。
【００１９】
ストレージシステム４は、複数のディスクドライブ５と、ディスクドライブ５に対する書き込み又は読み込みといったＩ／Ｏアクセスを制御するディスク制御装置６とを備える。ディスクドライブ５とディスク制御装置６とは、ディスクチャネル７を介して接続され、データを送受する。ディスクチャネル７は、例えばＳＣＳＩ(Small Computer System Interface)やＦｉｂｒｅ  Ｃｈａｎｎｅｌ等が用いられる。
【００２０】
ディスクドライブ５は、例えばハードディスクドライブや不揮発性メモリ等の記憶媒体を含んで構成されるデバイスである。ディスクドライブ５は、ＲＡＩＤ（Redundant Arrays of Independence Disks）を構成している。いくつかのディスクドライブ５は、ＲＡＩＤ制御により、１つの仮想的なデバイス（ＶＤＥＶ：Virtual Device）としてみなされうる。仮想デバイスＶＤＥＶには、論理的なデバイス（Logical device；以下、「ＬＤＥＶ」ということもある。）が割り当てられ、さらにホストコンピュータ３がアクセスする際の論理的なボリュームである論理ユニット（ＬＵ：Logical Unit）が定義される。各論理ユニットＬＵには、論理ユニット番号（ＬＵＮ：Logical Unit Number）が付与される。また、論理ユニットＬＵは、Ｉ／Ｏアクセスの最小単位である論理ブロックに分割され、各論理ブロックには、論理ブロックアドレス（ＬＢＡ：Logical Block Address。ＬＢＡ）が割り当てられる。これにより、ホストコンピュータ３は、論理ユニット番号ＬＵＮおよび論理ブロックアドレスＬＢＡからなる論理アドレスをストレージ装置４のディスク制御装置６に与えることにより、特定の論理ユニットＬＵ上の任意の記憶領域に記憶されたデータに対してアクセスを行うことができる。
【００２１】
各ディスクドライブ５には、給電部５１が設けられている。給電部５１は、電源ケーブル５２を介して後述する電源制御部６５に接続され、電源制御部６５の制御の下、ディスクドライブ５に電力を供給する。電源ケーブル５２は、例えば、電力供給線及び制御線から構成されている。
【００２２】
ディスク制御装置６は、チャネルアダプタ（ＣＨＡ）６１と、キャッシュメモリ（ＣＭ）６２と、ディスクアダプタ（ＤＫＡ）６３と、共有メモリ（ＳＭ）６４と、電源制御部６５と、サービスプロセッサ（ＳＶＰ）６６と、を備え、これらのモジュール乃至はコンポーネントは、接続部６７により相互に接続されている。なお、同図では、これらモジュールは、各１つのみ示されているが、冗長化によりそれぞれ複数ずつで構成されても良い。
【００２３】
チャネルアダプタ６１は、ネットワーク２を介して接続されたホストコンピュータ３との間でＩ／Ｏアクセス要求に基づく通信を行う通信インターフェースとして機能するモジュール乃至はシステム回路である。
【００２４】
キャッシュメモリ６２は、ホストコンピュータ３に対して高いシステムパフォーマンスを提供するため、ホストコンピュータ３とディスクドライブ５との間でやり取りされるデータを一時的に記憶する。キャッシュメモリ６２は、チャネルアダプタ６１とディスクアダプタ６３との間のデータの受け渡しに利用される。
【００２５】
ディスクアダプタ６３は、ディスクドライブ５に対するＩ／Ｏアクセスの制御を行うインターフェースとして機能するモジュール乃至はシステム回路である。すなわち、ディスクアダプタ６３は、キャッシュメモリ６２からデータを取り出して、ディスクドライブ５に格納し、また、ディスクドライブ５からデータを読み出して、キャッシュメモリ６２に書き込む。ディスクアダプタ６３はまた、ディスクドライブ５に対するＲＡＩＤ制御も行う。
【００２６】
共有メモリ６４は、ストレージシステム４に関わるシステム構成情報及びキャッシュ動作におけるディレクトリ情報、並びにＬＤＥＶ−ＶＤＥＶ割り当てテーブル、ＬＤＥＶ管理テーブル、及びＶＤＥＶ使用テーブル等の各種のテーブルを記憶する。
【００２７】
電源制御部６５は、電源ケーブル５２を介して接続された給電部５１を制御する。すなわち、電源制御部６５は、特定のディスクドライブ５の電源をオフにする場合、対応する給電部５１に対して電力供給を停止するように指示し、これを受けて、給電部５１は、ディスクドライブ５に対する電力供給を停止する。また、特定のディスクドライブ５の電源をオンにする場合、電源制御部６５は、対応する給電部５１に対して電力供給を開始するように指示し、これを受けて、給電部５１は、ディスクドライブ５に対する電力供給を開始する。複数のディスクドライブ５によりＲＡＩＤグループが構成されている場合、電源制御部６５は、ＲＡＩＤグループ単位で給電部５１を制御する。また、電源制御部６５は、ディスクドライブ５の電源をオフする際に、一定の時間だけ指示を遅らせることによって、ディスクドライブ５上のデータが消失・破損することを防止している。本実施形態では、電源制御部６５は、独立のモジュールとして構成されているが、ディスクアダプタ６３にその機能を組み込んで構成されてもよい。
【００２８】
サービスプロセッサ６６は、ストレージシステム４全体を管理するサービスプロセッサ（ＳＶＰ）である。サービスプロセッサ６６は、イーサネット（登録商標）等を用いて構成されるＬＡＮを介して、管理端末８に接続される。サービスプロセッサ６６は、管理端末８を介して、ストレージシステム４に関わる各種の情報をシステム管理者に提供し、システム管理者から与えられた指示をストレージシステム４に反映する。具体的には、サービスプロセッサ６６は、管理端末８からの指示を受けて、共有メモリ６４の参照や内容の変更、チャネルアダプタ６１やディスクアダプタ６３に設けられたプロセッサに対する指示を行う。また、サービスプロセッサ６６は、電源制御部６５に対して指示を行う。
【００２９】
接続部６７は、上述したように、クロスバースイッチ等により構成される。接続部６７は、入力されるデータ信号の競合を調停し、データ信号のパスを切り替えて、送出元のモジュールと送出先のモジュールとのパスを構築する。なお、接続部６７は、パケット交換方式のスイッチング素子であってもよい。
【００３０】
図２は、本発明の一実施形態に係るチャネルアダプタ６１の構成を示す図である。同図に示すように、チャネルアダプタ６１は、プロセッサ６１１と、メモリモジュール６１２と、チャネルプロトコル処理部６１３と、ＤＭＡ制御部６１４と、を備え、これらのモジュール乃至はコンポーネントは、内部バスを介して周辺チップ６１５に接続されている。チャネルアダプタ６１はまた、内部インターフェース部６１６と、圧縮・展開部６１７と、バッファ部６１８及び６１９と、を備える。
【００３１】
プロセッサ６１１は、周辺チップ６１５を介して、メモリモジュール６１２にアクセスし、メモリモジュール６１２に格納された制御プログラム６１２１を実行して、チャネルアダプタ６１を全体的に制御する。メモリモジュール６１２は、各種の制御プログラム及び転送リストを格納し、プロセッサ６１１やチャネルプロトコル制御部６１３、ＤＭＡ制御部６１４の利用に供される。転送リストは、キャッシュメモリ６４上のアドレスを含むリストであり、ＤＭＡ制御部１１９によるデータ転送処理において参照される。
【００３２】
チャネルプロトコル処理部６１３は、ネットワーク２のプロトコル制御を行いホストコンピュータ３からデータを受信し、ストレージシステム４内部のデータに変換するとともに、内部データに対してプロトコル制御を行って、ホストコンピュータ３に送信すべきデータに対してプロトコル制御を行って、通信データに変換する。チャネルプロトコル処理部６１３は、ホストコンピュータ３からＩ／Ｏアクセス要求を受信すると、これを解釈してホストコンピュータ識別情報や論理ブロックアドレスＬＢＡを取り出して、周辺チップ６１５を介してプロセッサ６１１に通知する。プロセッサ６１１は、これを受けて、共有メモリ６４に格納されたディレクトリ情報に基づいて転送リストを作成し、これをメモリモジュール６１２に格納した後、作成した転送リストに基づいて、Ｉ／Ｏアクセス要求に従うデータをＤＭＡ制御部６１４が転送するように制御する。
【００３３】
内部インターフェース部６１６は、チャネルアダプタ６１内とストレージシステム４内部の他のモジュールとの間のインターフェースとして機能する。内部インターフェース部６１６は、例えば、データを論理／物理的に変換する。
【００３４】
圧縮・展開部６１７は、前段バッファ部６１９ａに格納されたデータの圧縮又は展開を行う。後述するように、試行圧縮モードでは、圧縮・展開部６１７は、圧縮したデータを後段バッファ６１９ｂに送出しないが、本圧縮モードでは、圧縮・展開部６１７は、圧縮したデータを後段バッファ６１９ｂに送出する。圧縮・展開部６１７は、データに対する圧縮処理を行った場合には、制御系バスを介して、そのデータについての圧縮率をプロセッサ６１１に通知する。
【００３５】
ＤＭＡ制御部６１４は、転送リストに従って、後段バッファ６１９ｂに格納されたデータをキャッシュメモリ６２に書き込み、又はキャッシュメモリ６２から読み出して、バッファ６１８に書き込む。すなわち、ホストコンピュータ３から受け取ったアクセス要求が書き込み要求である場合、内部インターフェース部６１６を介して、ホストコンピュータ３から受け取ったデータを、転送リストに記述されたアドレスに示されるキャッシュメモリ６２の領域に書き込んでいく。また、ホストコンピュータ３から受け取ったアクセス要求が読み込み要求である場合、転送リストに記述されたアドレスに示されるキャッシュメモリの６２の領域からデータを読み出して、バッファ６１８を介して、チャネルプロトコル制御部６１３に送出する。チャネルプロトコル制御部６１３は、これを受けて、所定のプロトコル制御を行って、ホストコンピュータ３に送出する。
【００３６】
なお、読み込み要求されたデータが、キャッシュメモリ６２上にない場合であって、ディスクドライブ５に格納されている場合、ＤＭＡ制御部６１４は、キャッシュメモリ６２からの読み出し処理に先立って、ディスクアダプタ６３に、ディスクドライブ５に格納されたデータをキャッシュメモリ６２に格納するように指示を与え、キャッシュメモリ６２にデータが書き込まれた段階で、転送リストに従ってデータを読み出し、チャネルプロトコル制御部６１３に送出する。一般に、ディスクドライブに格納されたデータをキャッシュメモリに配置する一連の処理は、ステージングと呼ばれ、また、キャッシュメモリに配置されたデータをディスクドライブに格納する一連の処理は、デステージングと呼ばれる。
【００３７】
また、ＤＭＡ制御部６１４は、制御系バスを介して、プロセッサ６１１による共有メモリ６４に対するアクセス要求を受け付ける。ＤＭＡ制御部１１９は、このアクセス要求を受け付けると、内部インターフェース部６１６を介して、共有メモリ６４にアクセスし、その結果を、制御系バスを介して、プロセッサ６１１に送出する。
【００３８】
チャネルプロトコル制御部１１４から出力されるデータは、以下に示すように、圧縮率を算出するために、前段バッファ６１９ａ及び後段バッファ６１９ｂに格納される。
【００３９】
また、内部インターフェース部６１６から入力し、ＤＭＡ制御部６１４から出力されるデータは、圧縮又は展開処理が行われない場合、バッファ部６１８に格納される。また、圧縮又は展開処理を行う場合、ＤＭＡ制御部６１４から出力されるデータは、前段バッファ６１９ａに格納される。
【００４０】
ここで、チャネルアダプタ６１による圧縮処理について説明する。本実施形態のチャネルアダプタ６１による圧縮処理には、圧縮処理を行って圧縮データを出力する本圧縮処理と、本圧縮処理に先立って、データを圧縮した場合の圧縮率を算出するための試行的な圧縮処理とがある。チャネルアダプタ６１は、ホストコンピュータ３からの書き込み要求ごとに、所定の条件に従って、受信したデータを圧縮するほか、管理端末８を操作するシステム管理者の指示に従って、ディスクドライブ５に格納されたデータを読み出して、読み出したデータを圧縮する。
【００４１】
チャネルプロトコル処理部６１３が、書き込み要求を受信した場合、プロセッサ６１１は、共有メモリ６４にアクセスして、その書き込み要求に従うデータの格納先の論理デバイスＬＤＥＶの圧縮モードが圧縮属性に設定されているか否かをチェックする。圧縮属性に設定された論理デバイスＬＤＥＶに対する書き込み要求である場合、プロセッサ６１１は、制御バスを介して、圧縮・展開部６１７に試行圧縮処理を行うように指示を出す。
【００４２】
試行圧縮処理においては、圧縮・展開部６１７は、データを圧縮して得られる圧縮データを後段バッファ６１９ｂに出力せずに、破棄する。圧縮・展開部６１７は、元のデータのサイズに対する圧縮データのサイズから圧縮率を算出し、プロセッサ６１１に算出した圧縮率を通知する。また、データ受信時の試行圧縮処理においては、チャネルプロトコル処理部６１３は、ホストコンピュータ３から受信したデータを前段バッファ６１９ａ及び後段バッファ６１９ｂの双方に格納する。従って、圧縮・展開部６１７が、圧縮データを破棄した場合であっても、ＤＭＡ制御部６１４が後段バッファ６１９ｂに格納されたデータを読み出すことで、キャッシュメモリ６２には受信したデータが書き込まれることになる。
【００４３】
プロセッサ６１１は、圧縮・展開部６１４から受け取った圧縮率と、所定の基準値（例えば、５０％）とを比較して、その圧縮率が所定の基準値を下回るか否かを判断する。圧縮率が所定の基準値を下回るということは、データを圧縮する方が、しない場合よりも、データ量の観点から、効率が良いということを意味する。圧縮率が所定の基準値を下回る場合、プロセッサ６１１は、転送リストを作成して、キャッシュメモリ６２に書き込んだ受信データを読み出すように、ＤＭＡ制御部６１４に指示を出す。ＤＭＡ制御部６１４は、これを受けて、転送リストに従って、受信したデータをキャッシュメモリ６２から読み出して、前段バッファ６１９ａに書き込む。圧縮・展開部６１７は、前段バッファ６１９ａに格納されたデータを読み出して、所定の圧縮アルゴリズムに従って、読み出したデータを圧縮し、圧縮データを後段バッファ６１９ｂに書き込む。そして、ＤＭＡ制御部６１７は、新たな転送リストに従って、後段バッファ６１９ｂから圧縮データを読み出して、キャッシュメモリ６２の他の領域に書き込む。
【００４４】
図３は、本発明の一実施形態に係るディスクアダプタ６３の構成を示す図である。同図に示すように、ディスクアダプタ６３は、プロセッサ６３１と、メモリモジュール６３２と、バッファ６１８および６１９ｂに相当するバッファ６３７および６３８を介して接続されたチャネルプロトコル処理部６３３とＤＭＡ制御部６３４と、を備え、これらのモジュール乃至はコンポーネントは、内部バスを介して周辺チップ６３５に接続されている。チャネルアダプタ６１はまた、内部インターフェース部６１６を備える。ディスクアダプタ６３は、外部の装置とのインターフェースとして機能するという意味において、チャネルアダプタ６１と同様の構造をしている。また、上述したチャネルアダプタ６１と、実装される制御プログラムが異なる点を除いて、同一の構成を採用することもできる。すなわち、ディスクアダプタ６１は、圧縮・展開部を含んで構成され、チャネルアダプタ６１に代わって、圧縮処理を行ってもよい。
【００４５】
プロセッサ６３１は、周辺チップ６３５を介して、メモリモジュール６３２にアクセスし、メモリモジュール６３２に格納された制御プログラム６３２１を実行して、チャネルアダプタ６１を全体的に制御する。
【００４６】
具体的には、プロセッサ６３１は、共有メモリ６４に格納されたディレクトリ情報を参照し、ホストコンピュータ３により書き込み要求されたデータを格納しているキャッシュメモリ６２の領域のアドレスを取得し、又はホストコンピュータ３より読み出し要求されたデータが格納されたキャッシュメモリ６２の領域のアドレスを取得する。そして、プロセッサ６３１は、チャネルアダプタ６１からの要求に従い、又は予め定められた時間間隔で、キャッシュメモリ６２にアクセスし、キャッシュメモリ６２に書き込まれたデータがディスクドライブ５に格納されるように、制御を行う。また、ホストコンピュータ３により読み出し要求されたデータがキャッシュメモリ６２に存在しない場合には、チャネルアダプタ６１からの指示に基づいて、ディスクドライブ５からデータが読み出され、キャッシュメモリ６２にそのデータが書き込まれるように、プロセッサ６３１は制御を行う。さらに、書き込み要求されたデータを書き込むための空き領域がキャッシュメモリ６２上にない場合、プロセッサ６３１は、キャッシュメモリ６２上にすでに書き込まれているあるデータがディスクドライブ５に格納されるように、制御を行う。
【００４７】
本実施形態のストレージシステム４において、複数のディスクドライブ５は、ディスク制御装置６によるＲＡＩＤ制御の下、一又は複数の仮想デバイスＶＤＥＶとしてみなされる。１つの仮想デバイスＶＤＥＶは、１つのＲＡＩＤグループということができる。図４は、本発明の一実施形態に係るストレージシステム４における仮想デバイスＶＤＥＶを説明するための図である。
【００４８】
すなわち、同図（ａ）に示すように、４台のディスクドライブ５を用いて１つの仮想デバイスＶＤＥＶが構成されている。この場合、仮想デバイスＶＤＥＶには、さまざまなＲＡＩＤ方式（例えば、ＲＡＩＤ１，４，５，又は６）が採用されうる。ディスク制御装置６は、１つの仮想デバイス（すなわちＲＡＩＤグループ）ごとに電源制御を行うことが好ましい。例えば、ＲＡＩＤ５（３Ｄ＋１Ｐ）が採用された場合、その中の２つのディスクドライブ５に対する電源の供給が停止されると、もはや仮想デバイスＶＤＥＶとして機能しなくなってしまうからである。
【００４９】
また、予め定められた台数のディスクドライブ５について、より細かい単位で管理した場合には、例えば、同図（ｂ）に示すように、２台のディスクドライブ５を用いて１つの仮想デバイスＶＤＥＶが構成されてもよいし、同図（ｃ）に示すように、１台のディスクドライブ５を用いて１つの仮想デバイスＶＤＥＶが構成されてもよい。どのような構成の仮想デバイスを選択するかは、ＲＡＩＤ制御による信頼性、可用性、アクセス性能と、消費電力削減効果とのバランスが考慮されることが好ましい。
【００５０】
なお、同図（ｄ）に示すように、複数のＲＡＩＤグループを結合して１つの仮想デバイスＶＤＥＶとすることもできる。
【００５１】
また、１つの論理デバイスＬＤＥＶに対して複数のＶＤＥＶを割り当てた場合、ホストコンピュータ３に対して巨大な論理デバイスＬＤＥＶが提供される。
【００５２】
本実施形態では、論理デバイスＬＤＥＶと仮想デバイスＶＤＥＶとの関係は、共有メモリ６４に格納されたＬＤＥＶ−ＶＤＥＶ割り当てテーブルに定義される。
【００５３】
図５は、本発明の一実施形態に係るストレージシステム４におけるＬＤＥＶ−ＶＤＥＶ割り当てテーブル５００の一例を示す図である。
【００５４】
同図に示すように、ＬＤＥＶ−ＶＤＥＶ割り当てテーブル５００は、ＬＤＥＶ欄５０１、ＬＢＡ欄５０２、圧縮状態欄５０３、ＶＤＥＶ欄５０４、データ長欄５０５、及び圧縮後データ長欄５０６を含む。ＬＤＥＶ欄５０１は、論理デバイスの識別番号を示す。ＬＢＡ欄５０２は、論理ブロックの先頭アドレス及び終了アドレスを示す。圧縮状態欄５０３は、その論理デバイスＬＤＥＶ上のＬＢＡ欄５０２で示される領域に対して圧縮が行われているか否かを示す。圧縮状態欄５０３の値が「０」の場合、その領域に対して圧縮は行われておらず、「１」の場合、圧縮が行われていることを示す。ＶＤＥＶ欄５０４は、仮想デバイスの識別番号及び論理ブロックの先頭アドレスを示す。データ長欄５０４は、その仮想デバイスＶＤＥＶの先頭論理アドレスＬＢＡから始まる領域に格納されるデータの長さを示す。圧縮後データ長は、そのデータに対する圧縮後の予想されるデータ長を示す。一般に、圧縮後データ長は、データの内容等に依存し、不定であるため、（圧縮前の）データ長及び圧縮後データ長という２種類の値を管理している。
【００５５】
図６は、本発明の一実施形態に係るストレージシステム４におけるＬＤＥＶ管理テーブル６００の一例を示す図である。ＬＤＥＶ管理テーブルテーブル６００は、論理デバイスＬＤＥＶのプロパティを示すテーブルである。ＬＤＥＶ管理テーブルテーブル６００もまた、共有メモリ６４に保持される。
【００５６】
同図に示すように、ＬＤＥＶ管理テーブル６００は、ＬＤＥＶ欄６０１、圧縮モード欄６０２、アクセス頻度欄６０３、論理容量欄６０４、及び圧縮後予測容量欄６０５を含む。ＬＤＥＶ欄６０１は、論理デバイスＬＤＥＶの識別番号である。圧縮モード欄６０２は、圧縮モードを示す。本実施形態では、圧縮モードの属性には、「圧縮（自動）」、「圧縮（指示）」、「なし(自動)」、及び「なし(指示)」がある。管理端末８を操作するシステム管理者は、後述するように、圧縮モードを「自動」、「圧縮」及び「なし」を選択することができる。「自動」が選択された場合、構成最適化処理により、「圧縮（自動）」又は「なし（自動）」の属性が与えられることになる。
【００５７】
アクセス頻度欄６０３は、所定の単位時間（例えば、１秒間、１時間等）当たりのアクセス回数を示す。例えば、プロセッサ６３１が所定の計測時間のホストコンピュータ３からのアクセス数をカウントしておき、その計測時間終了後に単位時間あたりのアクセス数を算出し、これを共有メモリ６４のＬＤＥＶ管理テーブルに書き込む。例えば、計測時間を１０分として、その間に３千万アクセスあったとすると、１秒当たり５０万アクセスあったことになる。後述するように、アクセス頻度値は、論理デバイスＬＤＥＶに対する圧縮の要否の判断基準のひとつにしてもよい。また、このアクセス頻度値に基づいて、圧縮率を決定してもよい。つまり、アクセス頻度値が高い論理デバイスＬＤＥＶに対しては、圧縮率は小さく設定され、これによって圧縮処理に伴うシステムパフォーマンスの低下を最小限に抑えることができる。
【００５８】
論理容量欄１２０４は、その論理デバイスＬＤＥＶの容量を示す。つまり、ホストコンピュータ３は、論理容量欄６０４に示される容量値をその論理デバイスＬＤＥＶの容量として認識することになる。圧縮後予測容量欄６０５は圧縮後の論理デバイスＬＤＥＶの容量を示す。なお、圧縮後の論理デバイスＬＤＥＶの容量は、上述したＬＤＥＶ−ＶＤＥＶ割り当てテーブル５００を参照することにより求められるが、テーブル参照の利便性を考慮して、圧縮後予測容量欄６０５はＬＤＥＶ管理テーブルに設けられている。
【００５９】
図７は、本発明の一実施形態に係るストレージシステム４におけるＬＵ−ＬＤＥＶ管理テーブル７００の一例を示す図である。ＬＵ−ＬＤＥＶ管理テーブル７００は、論理ユニットＬＵと論理デバイスＬＤＥＶとの関係を示すテーブルである。ＬＵ−ＬＤＥＶ管理テーブル７００もまた、共有メモリ６４に保持される。
【００６０】
同図に示すように、ＬＵ−ＬＤＥＶ管理テーブル７００は、ホストＩＤ欄７０１、ＬＵ欄７０２、及びＬＤＥＶ欄７０３を含む。ホストＩＤ欄７０１は、ホストコンピュータ３のＩＤを示す。ＩＤは、例えばＦｉｂｒｅ  Ｃｈａｎｎｅｌプロトコルにおいては、ホストコンピュータ３に実装されるＨＢＡ（Host Bus Adapter）のポートＩＤである。ＬＵ欄７０２は、ホストコンピュータ３がＩ／Ｏアクセスする際に指定する論理ユニットＬＵの番号を示す。ＬＤＥＶ欄７０３は、ホストコンピュータ３と論理ボリュームＬＵとに対応した論理デバイスＬＤＥＶの番号を示す。
【００６１】
ＬＵ−ＬＤＥＶ管理テーブルの内容により、複数のホストコンピュータ３に１つの論理デバイスＬＤＥＶを共有させるようにすることも、また、共有させないようにすることもできる。このように、ホストコンピュータ３に提供する論理デバイスＬＤＥＶと、そのホストコンピュータ３が認識する論理ユニットＬＵとを関連付けることによって、ホストコンピュータ３は、論理デバイスＬＤＥＶに対するアクセスが可能となる。つまり、ホストコンピュータ３は、論理ユニットＬＵの番号に基づいて、論理デバイスＬＤＥＶに対してアクセスを行う。したがって、アクセス要求しているデータが、いかなる仮想デバイスＶＤＥＶに格納されているかについて、ホストコンピュータ３は関知しない。これにより、後述するように、仮想デバイスＶＤＥＶ上のデータに対して圧縮処理を行い、また、仮想デバイスＶＤＥＶ間でデータの移行をしたとしても、ホストコンピュータ３における設定をなんら変更する必要はない。
【００６２】
図８は、本発明の一実施形態に係るストレージシステム４における論理デバイスＬＤＥＶと仮想デバイスＶＤＥＶとの関係を説明するための図である。
【００６３】
同図に示すように、論理デバイスＬＤＥＶ０は、複数の仮想デバイスＶＤＥＶ０〜３上に横断的に割り当てられている。このとき、仮想デバイスＶＤＥＶ０〜３は、その全体が論理デバイスＬＤＥＶ０を割り当てた仮想デバイスＶＤＥＶ０〜２（これを「全体仮想デバイス」と呼ぶことにする。）と、その一部のみに論理デバイスＬＤＥＶ０を割り当てた仮想デバイスＶＤＥＶ３（これを「部分仮想デバイス」と呼ぶことにする。）と、に分けられる。部分仮想デバイスは、複数の論理デバイスＬＤＥＶに共有されうる。本例では、仮想デバイスＶＤＥＶ３には、論理デバイスＬＤＥＶ１及びＬＤＥＶ２がさらに割り当てられ、論理デバイスＬＤＥＶ０〜２に記憶領域を提供している。
【００６４】
また、図示はされていないが、論理デバイスＬＤＥＶの記憶容量が仮想デバイスＶＤＥＶの記憶容量よりも小さい場合には、仮想デバイスＶＤＥＶの一部のみに論理デバイスＬＤＥＶが割り当てられる。
【００６５】
図９は、本発明の一実施形態に係るストレージシステム４における省電力制御を説明するための概念図である。
【００６６】
同図に示すように、ストレージシステム４には、４つの仮想デバイスＶＤＥＶ０〜ＶＤＥＶ３が定義され、さらに、その仮想デバイスＶＤＥＶ０〜ＶＤＥＶ３上に４つの論理デバイスＬＤＥＶ０〜ＬＤＥＶ３が定義されているものとする。これらの論理デバイスＬＤＥＶ０〜ＬＤＥＶ３上に対して圧縮が行われ、そのサイズが小さくなった論理デバイスＬＤＥＶ０’〜ＬＤＥＶ３’が得られたとする。この場合に、これらの論理デバイスＬＤＥＶ０’〜ＬＤＥＶ３’が仮想デバイスＶＤＥＶ０及びＶＤＥＶ１上にのみ割り当てられれば、残りの仮想デバイスＶＤＥＶ２及びＶＤＥＶ３を構成するディスクドライブ５に対する電源の供給が停止されても、ホストコンピュータ３にはストレージサービス、つまり、論理デバイスＬＤＥＶ０〜３に対するアクセスが提供され続ける。
【００６７】
一般に、圧縮・展開処理に要する時間は、ディスクドライブ５のスピンアップ処理に要する時間よりも格段に短いので、ホストコンピュータ３に対するストレージサービスを提供し続けたまま、ディスクドライブ５のスピンオフによって、消費電力を低減させることができるようになる。
【００６８】
本実施形態では、説明の簡略化のため、論理デバイスＬＤＥＶは、仮想デバイスＶＤＥＶ上の連続した領域に割り当てられるものとする。また、１つの論理デバイスＬＤＥＶは、部分仮想デバイスを１つのみ含みうるものとする。１つの論理デバイスＬＤＥＶに含まれる部分仮想デバイスができる限り少ない方が、他の論理デバイスＬＤＥＶの使用状況を考慮することなく、電力の供給を停止でき、消費電力の低減に寄与するからである。ただし、１つの論理デバイスＬＤＥＶが複数の部分仮想デバイスを含む場合でも、後述する構成最適化プランの作成する際には、それぞれの部分仮想デバイスに対して処理を行えばよい。
【００６９】
図１０は、本発明の一実施形態に係るストレージシステム４におけるＶＤＥＶ使用テーブル１０００の一例を示す図である。ＶＤＥＶ使用テーブル１０００は、共有メモリ６４に保持される。
【００７０】
ディスクドライブ５に格納されているあるデータを圧縮する場合、圧縮データのサイズは不定であるため、どれぐらいの大きさの領域が必要であるかわからない。このため、本実施形態のストレージシステム４は、そのデータに対して試行圧縮処理を行い、圧縮率が所定の基準値を下回る場合に、そのデータに対して本圧縮を行っている。このとき、圧縮前に格納されていたデータのサイズは、圧縮データのサイズとは異なるため、元のデータが格納されていた記憶領域が空き領域となったり、あるいは、すでに圧縮されたデータに新たに上書きする際には、新たな記憶領域が必要となる場合がある。
【００７１】
そこで、ストレージシステム４は、将来書き込まれうるデータのサイズを予測しながら、ＶＤＥＶ使用テーブルを用いて、空き記憶領域を管理する。具体的には、ＶＤＥＶ使用テーブル１０００は、ビットマップ領域１００１及び空きセグメント数欄１００２を含む。ビットマップ領域１００１は、各仮想デバイスＶＤＥＶについて、記憶領域の管理単位であるセグメントごとに使用中か否かを示す。空きセグメント数欄は、その仮想デバイスＶＤＥＶにおける空き状態のセグメントの数を示す。ある仮想デバイスＶＤＥＶにおけるすべてのセグメントが空き状態になれば、その仮想デバイスＶＤＥＶに対する電源の供給を停止することができる。
【００７２】
図１１は、本発明の一実施形態に係るストレージシステム４における書き込み要求時の処理の流れを説明するための図である。本例は、ホストコンピュータ３からのアクセス要求が、非圧縮の属性が与えられた論理デバイスＬＤＥＶに対するデータの書き込み要求であって、キャッシュメモリ６２上にそのデータが存在せず、さらに、キャッシュメモリ６２上に十分な空き領域が確保されていない場合の処理の流れを示している。
【００７３】
すなわち、同図に示すように、チャネルアダプタ６１が、ネットワーク２を介して、ホストコンピュータ３からアクセス要求を受信する（Ｓ１１０１）と、受信したアクセス要求を解析して、要求されたオペレーション（すなわち、書き込みオペレーション）、論理アドレス（論理ユニット番号ＬＵＮ及び論理ブロックアドレスＬＢＡ）を取得する（Ｓ１１０２）。
【００７４】
次に、チャネルアダプタ６１は、共有メモリ６４に格納されたディレクトリ情報を参照し（Ｓ１１０３）、キャッシュメモリ６２に書き込み要求に従うデータが格納されているか否かをチェックする（Ｓ１１０４）。同図において、チャネルアダプタ６１は、共有メモリ６４に対して１回のみ参照しているが、実際には、複数回、参照する場合もある。本例では、この結果、チャネルアダプタ６１は、そのデータがキャッシュメモリ６２に格納されておらず、十分な空き領域がないことを認識する。従って、チャネルアダプタ６１は、キャッシュメモリ６２上にすでに存在する他のデータがデステージされるように制御して、キャッシュメモリ６２上に現在の書き込み要求に従うデータを格納すべき領域を確保する。
【００７５】
具体的には、チャネルアダプタ６１は、例えば、ＬＲＵ（Least Recently Used）アルゴリズムに従って、デステージされるべきデータを決定し（Ｓ１１０５）、共有メモリ６２を介して、ディスクアダプタ６３にデステージ要求を通知する（Ｓ１１０６）。ディスクアダプタ６３は、共有メモリ６４を定期的に監視しており（Ｓ１１０７）、共有メモリ６４に書き込まれたデステージ要求を取得すると（Ｓ１１０８）、転送リストを作成して、キャッシュメモリ６２から当該データを読み出し、ＲＡＩＤ制御をしながら、ディスクドライブ５上の所定の領域に当該データを格納する（Ｓ１１０９〜Ｓ１１１１）。
【００７６】
ディスクアダプタ６３は、一連のデステージ処理が終了すると、共有メモリ６４を介して、デステージが完了した旨をチャネルアダプタ６１に通知する（Ｓ１１１２〜Ｓ１１１４）。チャネルアダプタ６１は、共有メモリ６４のディレクトリ情報を更新した後（Ｓ１１１５及びＳ１１１６）、ホストコンピュータ３に、書き込み要求に従うデータの送信要求を送信する（Ｓ１１１７）。チャネルアダプタ６１は、この送信要求に応答してホストコンピュータ３から送信されるデータを受信し（Ｓ１１１８）、新たに作成した転送リストに基づいて、デステージされたデータが格納されていたキャッシュメモリ６２の領域に、そのデータに格納する（Ｓ１１１９）。
【００７７】
このとき、チャネルアダプタ６１の圧縮展開部６１７は、受信したデータに対して試行圧縮処理を行って、求められた圧縮率をプロセッサ６１１に通知する（Ｓ１１２０）。チャネルアダプタ６１は、圧縮後データサイズ及び圧縮後予測容量を算出し（Ｓ１１２１）、共有メモリ６４のＬＤＥＶ−ＶＤＥＶ管理テーブル及びＬＤＥＶ管理テーブルを更新する（Ｓ１１２２）。
【００７８】
図１２は、本発明の一実施形態に係るストレージシステム４における書き込み要求時のＬＤＥＶーＶＤＥＶ管理テーブル及びＬＤＥＶ管理テーブルの更新処理を説明するための図である。チャネルアダプタ６１は、プロセッサ６１１の制御の下、制御プログラムを実行することにより、当該更新処理を実現する。
【００７９】
すなわち、同図に示すように、チャネルアダプタ６１は、受信した書き込み要求を解析して、当該書き込み要求に従うデータの格納先の論理デバイスＬＤＥＶを特定する（Ｓ１２０１）。格納先の論理デバイスＬＤＥＶは、書き込み要求が指定する論理アドレスに基づいて、ＬＵーＬＤＥＶ管理テーブルを参照することにより、特定される。本例では、格納先の論理デバイスＬＤＥＶは、非圧縮状態であるとする。
【００８０】
チャネルアダプタ６１は、続いて、共有メモリ６４に格納されたＬＤＥＶ−ＶＤＥＶ割り当てテーブル５００を参照し、当該論理デバイスＬＤＥＶにおける指定された論理ブロックアドレスＬＢＡで特定される圧縮後データ長欄５０６に示される現在格納されているデータの圧縮後データ長を取得する（Ｓ１２０２）。次に、チャネルアダプタ６１は、ＬＤＥＶ管理テーブル６００を参照して、対応する圧縮後予測容量欄６０５に示される圧縮後予測容量から取得した圧縮後データ長を減算する（Ｓ１２０３）。
【００８１】
次に、チャネルアダプタ６１は、書き込み要求を送信したホストコンピュータ３にデータ送信要求を送信し、これに応答して送信されてくるデータを受信する（Ｓ１２０４）。チャネルアダプタは、受信したデータに対して試行圧縮を行いながら、受信したデータをキャッシュメモリ６２に格納する（Ｓ１２０５）。なお、上述したように、キャッシュメモリ６２にデータを格納する十分な領域がない場合には、データ送信要求に先立って、デステージ処理が行われる。
【００８２】
チャネルアダプタ６１は、試行圧縮処理により得られた圧縮データ長を、ＬＤＥＶ管理テーブル６００の対応する圧縮後予測容量欄６０５に示される圧縮後予測容量に加算するとともに（Ｓ１２０６）、圧縮後データ長欄５０６に示される圧縮後データ長に代入する（Ｓ１２０７）。チャネルアダプタ６１は、このようにして得られた新たな圧縮後予測容量及び圧縮後データ長に基づいて、ＬＤＥＶ−ＶＤＥＶ割り当てテーブル５００及びＬＤＥＶ管理テーブル６００をそれぞれ更新する。
【００８３】
これにより、ＬＤＥＶ−ＶＤＥＶ割り当てテーブル５００における圧縮後データ長欄５０６の圧縮後データ長と、ＬＤＥＶ管理テーブル６００における圧縮後予測容量欄６０５の圧縮後予測容量とは、その整合性が維持されることになる。
【００８４】
図１３は、本発明の一実施形態に係るストレージシステム４における書き込み要求時の処理の流れを説明するための図である。本例は、ホストコンピュータ３からのアクセス要求が、圧縮属性が与えられた論理デバイスＬＤＥＶに対するデータの書き込み要求であって、キャッシュメモリ６２上にそのデータが存在しないが、キャッシュメモリ６２上に十分な空き領域が確保されている場合の処理の流れを示している。
【００８５】
すなわち、同図に示すように、チャネルアダプタ６１が、ネットワーク２を介して、ホストコンピュータ３からアクセス要求を受信すると（Ｓ１３０１）、受信したアクセス要求を解析して、要求されたオペレーション（すなわち、書き込みオペレーション）、論理アドレス（論理ユニット番号ＬＵＮ及び論理ブロックアドレスＬＢＡ）を取得する（Ｓ１３０２）。
【００８６】
次に、チャネルアダプタ６１は、共有メモリ６４に格納されたディレクトリ情報を参照し（Ｓ１３０３）、書き込み要求に従うデータがキャッシュメモリ６２に格納されているか否かをチェックする（Ｓ１３０４）。本例では、この結果、チャネルアダプタ６１は、そのデータがキャッシュメモリ６２に格納されていないが、十分な空き領域があることを認識する。なお、キャッシュメモリ上に当該データが存在しない場合は、上述したデステージ処理が行われ、キャッシュメモリ６２上に必要な領域が確保される。また、チャネルアダプタ６１は、共有メモリ６４に格納されたＬＵ−ＬＤＥＶ管理テーブル７００を参照して、論理ユニット番号ＬＵＮに対応する論理デバイスＬＤＥＶを特定するとともに、ＬＤＥＶ管理テーブル６００を参照して、当該論理デバイスＬＤＥＶの圧縮モードの属性を取得する。本例では、この結果、チャネルアダプタ６１は、圧縮モードの属性が「圧縮（自動）」に設定された論理デバイスＬＤＥＶであることを認識する。
【００８７】
チャネルアダプタ６１は、次に、ホストコンピュータ３にデータ送信要求を送信し（Ｓ１３０５）、送信されてくるデータをキャッシュメモリ６２上の指定した領域に格納するように転送リストを作成する。チャネルアダプタ６１は、送信要求を受けたホストコンピュータ３からのデータを受信し（Ｓ１３０６）、その受信データを転送リストに従って、キャッシュメモリ６２に格納する（Ｓ１３０７）。このとき、上述したように、受信データは、チャネルアダプタ６１内の圧縮・展開部６１７によって試行圧縮が行われ、圧縮後のデータ長がプロセッサ６１１に通知される（Ｓ１３０８）。なお、この段階では、圧縮されたデータは廃棄される。
【００８８】
チャネルアダプタ６１は、試行圧縮によるデータ長と元のデータ長とを比較し、圧縮する方が効率的であるか否かを判断する（Ｓ１３０９）。圧縮を行う方が効率的であるか否かを判断は、例えば、元のデータ長に対する圧縮後データ長から求められる圧縮率が所定の基準値（例えば５０％）を下回るか否かに基づいて行われる。
【００８９】
チャネルアダプタ６１は、圧縮する方が効率的であると判断する場合、転送リストを作成して、キャッシュメモリ６２に格納したデータを読み出しながら、当該読み出したデータを圧縮して、圧縮したデータをキャッシュメモリ６２の他の領域に書き込む（Ｓ１３１０〜Ｓ１３１２）。
【００９０】
そして、チャネルアダプタ６１は、整合性を保つために、共有メモリ６４に格納されたＬＤＥＶ−ＶＤＥＶ割り当てテーブル及びＬＤＥＶ管理テーブルを更新する（Ｓ１３１３）。
【００９１】
なお、キャッシュメモリ６２上の圧縮されたデータは、他の書き込み要求に基づいて、又は所定の時間が経過したことにより、ディスクドライブ５にデステージされる。
【００９２】
一般に、一回の圧縮処理の対象となるデータのサイズが大きいほど圧縮の効率性は高まる。従って、ホストコンピュータ３からの書き込み要求ごとではなく、ある程度、データがディスクドライブ５に格納されてから、まとまったサイズを持つデータに対して圧縮処理を行うと、圧縮の効率性を高めることができる。このように一括して圧縮処理をした後は、その論理デバイスＬＤＥＶに対して書き込み要求があるごとに、上述したような圧縮処理を行うことになる。なお、一回の圧縮処理の対象となるデータのサイズを大きくした場合、その後の書き込み要求があるごとにキャッシュメモリ６２上にそのサイズの領域が必要となり、また、圧縮及び展開のための時間も必要となるので、ストレージシステム４のパフォーマンスが低下するおそれがある。また、データがある程度大きなサイズまでなると、圧縮の効率性は飽和状態になる。従って、これらの要素を考慮した上で、適切なデータのサイズが選択されることが好ましい。
【００９３】
図１４及び図１５は、本発明の一実施形態に係るストレージシステム４における書き込み要求時の各種テーブルの更新処理を説明するための図である。チャネルアダプタ６１は、プロセッサ６１１の制御の下、制御プログラムを実行することにより、当該更新処理を実現する。
【００９４】
すなわち、同図に示すように、チャネルアダプタ６１は、受信した書き込み要求を解析して、当該書き込み要求に従うデータの格納先の論理デバイスＬＤＥＶを特定する（Ｓ１４０１）。格納先の論理デバイスＬＤＥＶは、書き込み要求が指定する論理アドレスに基づいて、ＬＵーＬＤＥＶ管理テーブルを参照することにより、特定される。本例では、ターゲットの論理デバイスＬＤＥＶには圧縮属性が与えられているものとする。
【００９５】
チャネルアダプタ６１は、続いて、共有メモリ６４に格納されたＬＤＥＶ−ＶＤＥＶ割り当てテーブル５００を参照し、当該論理デバイスＬＤＥＶにおける指定された論理ブロックアドレスＬＢＡで特定される圧縮後データ長欄５０６に示される現在格納されているデータの圧縮後データ長を取得する（Ｓ１４０２）。次に、チャネルアダプタ６１は、ＬＤＥＶ管理テーブル６００を参照して、対応する圧縮後予測容量欄６０５に示される圧縮後予測容量から取得した圧縮後データ長を減算する（Ｓ１４０３）。
【００９６】
次に、チャネルアダプタ６１は、書き込み要求を送信したホストコンピュータ３にデータ送信要求を送信し、これに応答して送信されてくるデータを受信する（Ｓ１４０４）。チャネルアダプタは、受信したデータに対して試行圧縮を行いながら、受信したデータをキャッシュメモリ６２に格納する（Ｓ１４０５）。なお、上述したように、キャッシュメモリ６２にデータを格納する十分な領域がない場合には、データ送信要求に先立って、デステージ処理が行われる。
【００９７】
チャネルアダプタ６１は、試行圧縮処理により得られた圧縮率が所定の基準値を下回るか否かを判断する（Ｓ１４０６）。試行圧縮処理により得られた圧縮率が所定の基準値を下回ると判断する場合、チャネルアダプタ６１は、ＶＤＥＶ使用テーブル１０００を参照して、受信したデータの圧縮後データを格納できるサイズを持つ記憶領域を決定する（Ｓ１４０７）。そして、チャネルアダプタ６１は、キャッシュメモリ６２に格納されている受信データを読み出して圧縮し、圧縮後データをキャッシュメモリ６２に書き込む。これによって、ディスクアダプタ６３は、所定のタイミングで、キャッシュメモリ６２から圧縮データを読み出して、指定された論理デバイスＬＤＥＶの記憶領域に格納することになる（Ｓ１４０８）。
【００９８】
さらに、チャネルアダプタ６１は、試行圧縮処理により得られた圧縮データ長を、ＬＤＥＶ管理テーブル６００の対応する圧縮後予測容量欄６０５に示される圧縮後予測容量に加算するとともに（Ｓ１４０９）、圧縮後データ長欄５０６に示される圧縮後データ長に代入する（Ｓ１４１０）。チャネルアダプタ６１は、このようにして得られた新たな圧縮後予測容量及び圧縮後データ長に基づいて、ＬＤＥＶ−ＶＤＥＶ割り当てテーブル５００及びＬＤＥＶ管理テーブル６００をそれぞれ更新する。
【００９９】
これにより、ＬＤＥＶ−ＶＤＥＶ割り当てテーブル５００における圧縮後データ長欄５０６の圧縮後データ長と、ＬＤＥＶ管理テーブル６００における圧縮後予測容量欄６０５の圧縮後予測容量とは、その整合性が維持されることになる。
【０１００】
一方、試行圧縮処理により得られた圧縮率が所定の基準値を下回らないと判断する場合（Ｓ１４０６の‘Ｎｏ’）、チャネルアダプタ６１は、ＶＤＥＶ使用テーブル１０００を参照して、受信データをそのままのサイズで格納できる記憶領域を決定する（図１５のＳ１５０１）。
【０１０１】
さらに、チャネルアダプタ６１は、試行圧縮処理により得られた圧縮データ長を、ＬＤＥＶ管理テーブル６００の対応する圧縮後予測容量欄６０５に示される圧縮後予測容量に加算するとともに（Ｓ１５０２）、圧縮後データ長欄５０６に示される圧縮後データ長に加算する（Ｓ１５０３）。そして、チャネルアダプタ６１は、受信データが当該特定した記憶領域に格納されるように、制御を行う（Ｓ１５０４）。これによって、ディスクアダプタ６３は、所定のタイミングで、キャッシュメモリ６２から受信データを読み出して、論理デバイスＬＤＥＶの当該記憶領域に格納することになる。
【０１０２】
受信データが圧縮されずに格納される場合、その論理デバイスＬＤＥＶの圧縮モードの属性にかかわらず、ＬＤＥＶ−ＶＤＥＶ割り当てテーブル５００における当該論理デバイスＬＤＥＶの当該論理ブロックアドレスＬＢＡで示される記憶領域の圧縮状態欄５０３は、「なし」に設定される。チャネルアダプタ６１は、読み出し要求時に、ＬＤＥＶ−ＶＤＥＶ割り当てテーブル５００の圧縮状態欄５０３を参照することにより、読み出したデータに対する展開処理が必要であるか否かを判断することができる。
【０１０３】
Ｓ１４１０又はＳ１５０４の処理の後、チャネルアダプタ６１は、ＬＤＥＶ−ＶＤＥＶ割り当てテーブル５００を更新する（Ｓ１５０５）。さらに、チャネルアダプタ６１は、前のデータを格納していた仮想デバイスＶＤＥＶの論理ブロックアドレスＬＢＡで示される記憶領域が空き領域を示すように、ＶＤＥＶ使用テーブル１０００を更新する（Ｓ１５０６）。
【０１０４】
そして、チャネルアダプタ６１は、ＶＤＥＶ使用テーブル１０００の空きセグメント数欄を参照して、全セグメント数に対する空きセグメント数の割合が所定のしきい値（例えば１０％）を下回ったか否かをチェックする（Ｓ１５０７）。所定のしきい値を下回ったと判断する場合、チャネルアダプタ６１は、その論理ＬＤＥＶの圧縮モードを非圧縮属性に変更し、新たな仮想デバイスＶＤＥＶを割り当て、圧縮データが元のデータの状態で格納されるように、展開を開始する（Ｓ１５０８）。
【０１０５】
以上のようにして、圧縮属性が与えられた論理デバイスＬＤＥＶに対する書き込み要求時に、予想圧縮率が小さくならない場合には、受信データは圧縮がされずに格納されるとともに、論理デバイスＬＤＥＶの圧縮属性は変更される。
【０１０６】
図１６は、本発明の一実施形態に係るストレージシステム４における一括圧縮時の処理の流れを説明するための図である。当該処理は、典型的には、ストレージシステム４の運用中に、論理デバイスＬＤＥＶの圧縮モードの属性が「非圧縮」から「圧縮」に変更される場合に行われる。
【０１０７】
管理端末８を操作するシステム管理者の圧縮指示を受けた場合、又は圧縮後予測容量が所定のしきい値を下回ったことをサービスプロセッサ６６が検出した場合、サービスプロセッサ６６は、チャネルアダプタ６１に圧縮指示を出し、チャネルアダプタ６１は、これを受けて、論理デバイスＬＤＥＶ上のデータに対する圧縮を開始する（Ｓ１６０１）。
【０１０８】
チャネルアダプタ６１は、共有メモリ６４に格納されたＬＤＥＶ−ＶＤＥＶ割り当てテーブル５００及びＬＤＥＶ管理テーブルを参照し（Ｓ１６０２）、その論理デバイスＬＤＥＶのうち、未だ圧縮されていない領域をチェックする（Ｓ１６０３）。所定のデータサイズを単位として未圧縮データをキャッシュメモリ６２にステージするため、チャネルアダプタ６１は、共有メモリ６２を介して、ディスクアダプタ６３に指示を出す（Ｓ１６０４〜Ｓ１６０６）。
【０１０９】
ディスクアダプタ６３は、圧縮を指示されたデータを格納する論理デバイスＬＤＥＶから読み出して（Ｓ１６０７）、当該読み出したデータをキャッシュメモリ６２の領域に書き込む（Ｓ１６０８）。その後、ステージング処理が完了した旨を、共有メモリ６４を介して、チャネルアダプタ６１に通知する（Ｓ１６０９〜Ｓ１６１１）。
【０１１０】
ステージ処理が完了したことを認識したチャネルアダプタ６１は、キャッシュメモリ６２に格納されたデータを読み出しながら（Ｓ１６１２〜Ｓ１６１３）、読み出したデータを圧縮して、圧縮したデータをキャッシュメモリ６２の他の領域に書き込む（Ｓ１６１４）。
【０１１１】
その後、チャネルアダプタ６１は、共有メモリ６４に格納されたＬＤＥＶ−ＶＤＥＶ割り当てテーブル５００及びＬＤＥＶ管理テーブル６００を更新する（Ｓ１６１５）。Ｓ１６１２〜Ｓ１６１５の処理は、上述した図１３のＳ１３１０〜Ｓ１３１３の処理と同様であるる。
【０１１２】
なお、チャネルアダプタ６１は、共有メモリ６４に格納されたＬＤＥＶ−ＶＤＥＶ割り当てテーブル５００を参照することにより、論理デバイスＬＤＥＶに圧縮されずに格納されたデータについての圧縮後のサイズを即座に取得することができる。これは、上述したように、ホストコンピュータ３からの書き込み要求時にそのデータに対する試行圧縮処理が行われ、その結果がＬＤＥＶ−ＶＤＥＶ割り当てテーブル５００に書き込まれているからである。
【０１１３】
また、キャッシュメモリ６２上の圧縮されたデータは、他の書き込み要求に基づいて、又は所定の時間が経過したことにより、ディスクドライブ５にデステージされる。本例では、チャネルアダプタ６１は、テーブルの更新処理と同時にデステージング要求を行っている（Ｓ１６１６）。従って、共有メモリ６４を参照することによりデステージ要求を受け取ったディスクアダプタ６３は、圧縮データをキャッシュメモリ６２から読み出して（Ｓ１６１７〜Ｓ１６２０）、読み出したデータを論理デバイスＬＤＥＶに格納する（Ｓ１６２１）。
【０１１４】
上記Ｓ１６０２〜Ｓ１６２１の処理は、圧縮指示を受けた論理デバイスＬＤＥＶ全体が圧縮されるまで繰り返される。
【０１１５】
図１７は、本発明の一実施形態に係るストレージシステム４における省電力制御処理を概略的に説明するための図である。
【０１１６】
同図に示すように、サービスプロセッサ６６は、ストレージシステム４の稼働中、各論理デバイスＬＤＥＶについての予想圧縮率及びアクセス頻度等の統計情報を計測、収集する（Ｓ１７０１）。管理端末８は、予め定められたプラン作成時刻（例えば１週間ごと）になると（Ｓ１７０２の‘Ｙｅｓ’）、サービスプロセッサ６６により収集された統計情報を含む論理デバイスＬＤＥＶの管理情報をシステム管理者に提示する（Ｓ１７０３）。あるいは、管理端末８を操作するシステム管理者は、サービスプロセッサ６６により収集された統計情報を含む論理デバイスＬＤＥＶの管理情報を、適宜のタイミングで、管理端末８の画面上で確認するようにしてもよい。
【０１１７】
システム管理者は、管理端末８の画面を介して、各論理デバイスＬＤＥＶに対する設定を行い、構成最適化プランの作成をサービスプロセッサ６６に指示をする。サービスプロセッサ６６は、これを受けて、構成最適化プラン作成プログラムを実行して、設定された内容に従って、構成最適化プランを作成する（Ｓ１７０４）。管理端末８は、サービスプロセッサ６６により作成された構成最適化プランをその画面上に表示して、システム管理者に構成最適化処理を実行するか否かの承認を促す（Ｓ１７０５）。
【０１１８】
管理端末８を操作するシステム管理者により構成最適化処理の実行指示を与えられると、サービスプロセッサ６６は、作成された構成最適化プランに従って、構成最適化処理、すなわち、指定された論理デバイスＬＤＥＶを圧縮し、仮想デバイスＶＤＥＶに圧縮された論理デバイスＬＤＥＶを再割り当てする（Ｓ１７０６）。その後、サービスプロセッサ６６は、論理デバイスＬＤＥＶが割り当てられずに、余剰となった仮想デバイスＶＤＥＶに対する電源の供給を停止する（Ｓ１７０７）。これにより、ストレージシステム４の消費電力を削減することができるようになる。
【０１１９】
図１８は、本発明の一実施形態に係る管理端末８上の画面の一例を説明するための図である。具体的には、同図は、管理端末８の画面上に表示されたＬＤＥＶ管理ウィンドウを示している。システム管理者は、ＬＤＥＶ管理ウィンドウを介して、ストレージシステム４の状態を確認し、消費電力削減のための設定を行うことができる。管理端末８は、ディスク制御装置６のサービスプロセッサ６６を介して、共有メモリ６４に格納されたＬＤＥＶ管理テーブルを取得し、ＬＤＥＶ管理ウィンドウを構成する。
【０１２０】
ＬＤＥＶ管理ウィンドウ１８００は、ＬＤＥＶ番号欄１８０１、圧縮モード欄１８０２、状態欄１８０３、論理容量欄１８０４、圧縮後予測容量欄１８０５、及びアクセス頻度欄１８０６を有し、さらに、構成最適化実行ボタン１８０７を備える。
【０１２１】
ＬＤＥＶ欄１８０１は、論理デバイスＬＤＥＶの識別番号である。圧縮モード欄１８０２は、その論理デバイスＬＤＥＶに対して設定されている現在の圧縮モードを示す。システム管理者は、プルダウンメニューを操作して、現在の圧縮モードを変更することができる。例えば、システム管理者は、「自動」、「圧縮」、及び「圧縮なし」のいずれかの圧縮モードを選択できる。「自動」では、ストレージシステム４は、構成最適化処理により、その論理デバイスＬＤＥＶのデータを所定の条件に従って圧縮し、消費電力の削減に寄与するように圧縮データを所定の仮想デバイスＶＤＥＶ上に配置する。「圧縮」では、設定された論理デバイスＬＤＥＶのデータを一律に圧縮する。「圧縮なし」は、例えばホストコンピュータ３のアプリケーションにより圧縮されたデータを格納する論理デバイスＬＤＥＶのように、ストレージシステム４による圧縮処理では圧縮の効果が期待できない場合や、システム性能を最優先にしたい場合等に選択するモードである。「圧縮なし」が選択された論理デバイスＬＤＥＶは、構成最適化の圧縮対象の候補から除外される。
【０１２２】
状態欄１８０３は、その論理デバイスＬＤＥＶの状態を示す。「圧縮」又は「圧縮なし」が選択された論理デバイスＬＤＥＶの状態は、圧縮モードにそのまま対応するが、「自動圧縮」が選択された論理デバイスＬＤＥＶの状態は、構成最適化の結果に依存する。
【０１２３】
論理容量欄１８０４は、割り当てられている仮想デバイスＶＤＥＶの容量の合計、すなわち、格納できる非圧縮データの容量を示す。
【０１２４】
圧縮後予測容量欄１８０５は、その論理デバイスＬＤＥＶに圧縮を適用した場合の論理デバイスＬＤＥＶの容量を示す。圧縮されている論理デバイスＬＤＥＶでは、実際の容量と一致する。なお、圧縮後予測容量は、（フォーマット時以外で）すでに書き込まれたデータと同等の情報エントロピーを持つデータによって論理デバイスＬＤＥＶの記憶領域全体が書き込まれたとした場合に必要とされるであろう容量に、書き込み用のマージン領域の容量をプラスしたものであっても良い。本実施形態では、書き込み用のマージン領域を考慮するものとする。後述するＶＤＥＶ使用テーブルにおいて、論理デバイスＬＤＥＶに割り当てられている仮想デバイスＶＤＥＶの領域のうちの未使用領域は、この書き込み用マージン領域に相当する。また、より簡易に圧縮後予測容量を求める方法としては、例えば、すでに書き込まれているデータの非圧縮時の容量をｘ、論理容量をｗ、すでに書き込まれたデータの圧縮後の容量をｙとすると、圧縮後予測容量ｚは、ｚ＝ｗｙ／ｘで求めることができる。
【０１２５】
アクセス頻度欄１８０６は、その論理デバイスＬＤＥＶに対するアクセス頻度を示す。本例では、１秒当たりのアクセス回数（ＩＯＰＳ）が示されている。その論理デバイスの圧縮モードは、アクセス頻度を考慮しながら、選択される。
【０１２６】
構成最適化実行ボタン１８０７は、ＬＤＥＶ管理ウィンドウの設定内容に基づく構成最適化の実行を指示するためのボタンである。構成最適化実行ボタン１８０７が押下されると、管理端末８は、後述する最適化見積もり処理を実行した後、図１９に示すような確認ダイアログボックス１９００を表示して、システム管理者に構成最適化実行の可否の承認を求める。
【０１２７】
具体的には、確認ダイアログ１９００は、予想圧縮率表示領域１９０１、ＶＤＥＶ表示領域１９０２、承認ボタン１９０３、及び拒否ボタン１９０４を含む。予想圧縮率表示領域１９０１には、圧縮を推奨する論理デバイスＬＤＥＶの番号と予想圧縮率が表示される。これにより、システム管理者は、予想圧縮率が高い論理デバイスＬＤＥＶを事前に把握することができ、圧縮／展開処理のオーバヘッドによりシステムパフォーマンスに影響を与えるような論理デバイスＬＤＥＶが圧縮されることを防止することができる。
【０１２８】
ＶＤＥＶ表示領域１９０２は、圧縮処理が行われた後に使用される仮想ＶＤＥＶと、使用されずに電源オフが可能となるディスクドライブ５の数を示す。
【０１２９】
システム管理者は、これらの表示内容を考慮して、構成最適化の実行を承認する場合には承認ボタン１９０３を、承認しない場合には拒否ボタン１９０４を押下する。
【０１３０】
また、図１９に示した確認ダイアログボックス１９００に変えて、図２０に示すような再配置プランダイアログボックス２０００を表示しても良い。再配置プランダイアログボックス２０００では、圧縮対象論理デバイス表示領域２００１を含む。圧縮対象論理デバイス表示領域２００１は、圧縮対象となる論理デバイスＬＤＥＶに対して使用される仮想デバイスＶＤＥＶが対応づけられて表示する。また、新規給電オフディスクドライブ数表示領域２００２は、構成最適化プランによって、新たに給電が停止されるディスクドライブ５の数が表示される。システム管理者は、同様に、これらの表示内容を考慮して、構成最適化の実行を承認する場合には承認ボタン２００３を、承認しない場合には拒否ボタン２００４を押下する。
【０１３１】
図２１及び図２２は、本発明の一実施形態に係るストレージシステム４における構成最適化処理を説明するための図である。この構成最適化プラン作成処理は、例えば、管理端末８から指示を受けたサービスプロセッサ６６により実行される。
【０１３２】
構成最適化プラン作成処理は、概略的には、圧縮処理によるデータサイズの縮小に伴う仮想デバイスＶＤＥＶを開放するプランを作成する処理（図２１）と、部分仮想デバイスを最小限の数の仮想デバイスに集約するプランを作成する処理（図２２）と、からなる。
【０１３３】
管理端末８から構成最適化処理の実行の指示を受けたサービスプロセッサ６６は、まず、現在稼動している仮想デバイスＶＤＥＶの数をカウントする（Ｓ２１０１）。次に、サービスプロセッサ６６は、各論理デバイスＬＤＥＶを順番に参照していくため、インデックスとなる変数ｉに０をセットする。サービスプロセッサ６６は、すべての論理デバイスＬＤＥＶについて、仮想デバイスＶＤＥＶの開放をプランニングするまで、処理を繰り返す（Ｓ２１０２）。
【０１３４】
続いて、サービスプロセッサ６６は、論理デバイスＬＤＥＶ（i）について、ＬＤＥＶ管理テーブルの論理容量欄６０４及び圧縮後予測容量欄６０５を参照して、圧縮前容量（論理容量）と圧縮後予測容量との差分値を変数ｔｍｐに代入する（Ｓ２１０３）。
【０１３５】
次に、サービスプロセッサ６６は、論理デバイスＬＤＥＶ（i）について圧縮を実行するか否かを判断する（Ｓ２１０４）。サービスプロセッサ６６は、当該論理デバイスＬＤＥＶについて圧縮属性が与えられ、かつ、予想圧縮率が所定の基準値を下回る場合に、圧縮を実行すると判断する。これは、圧縮対象となっているデータの内容や圧縮アルゴリズムによっては、圧縮後データのサイズの方が元のデータのサイズよりも大きくなることがあるからである。一方、サービスプロセッサ６６は、論理デバイスＬＤＥＶ（i）がすでに圧縮されている場合、及び論理デバイスＬＤＥＶ（i）に非圧縮の属性が与えられている場合、当該論理デバイスＬＤＥＶ(i)について圧縮を実行せず、次の論理デバイスＬＤＥＶ（i+1）に対して処理することになる。
【０１３６】
なお、サービスプロセッサ６６は、予想圧縮率に加え、アクセス頻度６０３を用いて、圧縮を実行するか否かの判断を行っても良い。
【０１３７】
具体的には、アクセス要求されたデータの格納範囲が広範に亘っており、キャッシュメモリ６２上のデータが再利用できない場合について考える。この場合、論理デバイスＬＤＥＶに割り当てられるディスクドライブ５の数が、最大性能について大きな要因となる。例えば、最大性能が１５０ＩＯＰＳである１台のディスクドライブ５を６４台用いて構成する論理デバイスＬＤＥＶの最大性能は、１５０×６４＝９６００ＩＯＰＳとなる。この論理デイバスＬＤＥＶに対する予測圧縮率が２５％（つまり、データ長が４分の１になる）とし、圧縮処理のオーバヘッドにより性能が非圧縮時の７５％に低下する場合は、圧縮後の最大性能は１５０×（６４×０．２５）×０．７５＝１８００ＩＯＰＳとなる。ここで、“６４×０．２５”は、圧縮後に使用するディスクドライブ５の数を示している。これは、この論理デバイスＬＤＥＶは、毎秒１８００回以下のアクセスまでは処理できることを示している。サービスプロセッサ６６は、このように求められる値を所定のしきい値に用いて、圧縮を行うか否かを判断することができる。
【０１３８】
圧縮を実行するか否かの判断は、単に、圧縮率のみを用いても良いし、アクセス頻度を用いてもよい。また、アクセス頻度を用いる場合、ほとんどアクセスがないという意味において、例えば、１０ＩＯＰＳといった小さな値をしきい値に設定してもよい。
【０１３９】
圧縮を実行すると判断する場合、サービスプロセッサ６６は、変数ｔｍｐが論理デバイスＬＤＥＶ（i）の部分仮想デバイスの容量（断片容量）よりも大きいか否かを判断する（Ｓ２１０５）。変数ｔｍｐが当該断片容量よりも大きいと判断する場合、サービスプロセッサ６６は、変数ｔｍｐから当該断片容量を減算し、さらに論理デバイスＬＤＥＶ（i）の部分仮想デバイスを開放するプランを作成する（Ｓ２１０６）。なお、変数ｔｍｐが断片容量よりも大きくない場合、サービスプロセッサ６６は、当該部分仮想デバイスを開放せずに、Ｓ２１０７の処理に進む。
【０１４０】
サービスプロセッサ６６は、論理デバイスＬＤＥＶ（i）に割り当てられている仮想デバイスＶＤＥＶを順番に参照するため、変数ｊにセットし（Ｓ２１０７）、変数ｔｍｐが仮想デバイスＶＤＥＶ（j）の容量よりも大きいか否かを判断する（Ｓ２１０８）。変数ｔｍｐが仮想デバイスＶＤＥＶ（j）の容量よりも大きいと判断する場合、サービスプロセッサ６６は、変数ｔｍｐから仮想デバイスＶＤＥＶ（j）の容量分を減算し、さらに仮想デバイスＶＤＥＶ（j）を開放するプランを作成する（Ｓ２１０９）。サービスプロセッサ６６は、論理デバイスＬＤＥＶ（i）に割り当てられている他の仮想デバイスＶＤＥＶすべてについて処理を行ったか否かを判断し、まだであれば、同様に、処理を行う（Ｓ２１１０及びＳ２１１１）。このようにして、サービスプロセッサ６６は、圧縮処理を行うことによりデータサイズが小さくなると見積もられ、使用する必要がなくなる仮想デバイスＶＤＥＶを順次開放していく。
【０１４１】
一方、Ｓ２１０８において、変数ｔｍｐが仮想デバイスＶＤＥＶ（j）の容量よりも大きくないと判断する場合、サービスプロセッサ６６は論理デバイスＬＤＥＶ（i）の部分仮想デバイスとして仮想デバイスＶＤＥＶ（j）を割り当てて、変数ｔｍｐの値を仮想デバイスＶＤＥＶ（i）の断片容量にセットし、さらに、仮想デバイスＶＤＥＶ（j）の部分仮想デバイス以外の部分については開放する（Ｓ２１１２）。
【０１４２】
サービスプロセッサ６６は、変数ｉの値を１つインクリメントして、変数ｉがすべての論理デバイスＬＤＥＶの数よりも大きくない場合には、Ｓ２１０３の処理に戻る（Ｓ２１１２）。すべての論理デバイスについて処理した場合には、サービスプロセッサ６６は、次の処理に進む。
【０１４３】
以下の処理では、サービスプロセッサ６６は、複数の論理デバイスＬＤＥＶにおける部分仮想デバイスを１つの仮想デバイスＶＤＥＶに割り当てることで、できる限り、稼動しなければならない仮想デバイスＶＤＥＶを少なくするプランを作成する。
【０１４４】
サービスプロセッサ６６は、参照する論理デバイスＬＤＥＶの順番を示す配列変数ｓＬ［ｘ］（ただし、ｘは、１から論理デバイスＬＤＥＶの数までの自然数である。）に対して、端数容量が降順になるようにＬＤＥＶ番号を代入していく（Ｓ２２０１）。これは、作成された構成最適化プランの実行時に、移動対象となるデータを少なくするためである。
【０１４５】
次に、サービスプロセッサ６６は、配列変数ｍｏｖｅｄ［ｘ］のすべての要素にｆａｌｓｅをセットする（Ｓ２２０２）。配列変数ｍｏｖｅｄ［ｘ］は、すでに処理をしたか否かを示すフラグ変数である。サービスプロセッサは、論理デバイスＬＤＥＶを順番に参照していくため、現在参照している配列変数ｓＬのインデックスを示す変数ｉに０をセットする（Ｓ２２０３）。
【０１４６】
続いて、サービスプロセッサ６６は、配列変数ｍｏｖｅｄ［ｓＬ［ｉ］］をチェックし、現在参照している論理デバイスＬＤＥＶがすでに処理されたか否かを判断する（Ｓ２２０４）。従って、配列変数ｍｏｖｅｄ［ｓＬ［ｉ］］がＦａｌｓｅでない場合には、Ｓ２２０５の処理に移行する。一方、配列変数ｍｏｖｅｄ［ｓＬ［ｉ］］がＦａｌｓｅである場合、その論理デバイスＬＤＥＶの部分仮想デバイスを、どの論理デバイスＬＤＥＶの部分仮想デバイスと共に割り当てるかを調べるためのインデックスｊにＬＤＥＶ数をセットする（Ｓ２２０５）。上述したように、配列変数ｓＬ［ｘ］には、端数容量に従って論理デバイスＬＤＥＶが降順に並べられている。従って、最も小さな断片容量の論理デバイスＬＤＥＶから処理されていき、データの移動を最小化することができる。
【０１４７】
サービスプロセッサ６６は、配列変数ｍｏｖｅｄ［ｓＬ［ｉ］］がｆａｌｓｅで、かつ、論理デバイスＬＤＥＶ（ｓＬ［ｉ］）の部分仮想デバイスの未割り当て容量が論理デバイスＬＤＥＶ（ｓＬ［ｊ］）の断片容量よりも大きいか否かを判断する（Ｓ２２０６）。すでに処理を行った場合、又は容量が大きくない場合には、部分仮想デバイスを割り当てることはできないので、次の大きさの断片容量を持つ論理デバイスＬＤＥＶ（ｓＬ［ｊ−１］）について処理を行う。これに対して、配列変数ｍｏｖｅｄ［ｓＬ［ｉ］］がｆａｌｓｅで、かつ、論理デバイスＬＤＥＶ（ｓＬ［ｉ］）の部分仮想デバイスの未割り当て容量が論理デバイスＬＤＥＶ（ｓＬ［ｊ］）の断片容量よりも大きい場合には、サービスプロセッサ６６は、論理デバイスＬＤＥＶ（ｓＬ［ｊ］）の部分仮想デバイスを開放し、当該部分仮想デバイスを論理デバイスＬＤＥＶ（ｓＬ［ｉ］）の部分仮想デバイスと同一の仮想デバイスＶＤＥＶに割り当てるプランを作成する（Ｓ２２０７）。続いて、サービスプロセッサ６６は、論理デバイスＬＤＥＶ（ｓＬ［ｉ］）がすでに処理されたことを示すため、配列変数ｍｏｖｅｄ［ｓＬ［ｊ］］の値をｔｒｕｅにする（Ｓ２２０８）。このようにして、サービスプロセッサは、論理デバイスＬＤＥＶの部分仮想デバイスの断片容量の大きい順に処理を行う。
【０１４８】
すべての論理デバイスＬＤＥＶについて処理をした場合、サービスプロセッサ６６は、作成したプランを実行した場合に稼動する仮想デバイスＶＤＥＶの数をカウントし（Ｓ２１２４）、処理を終了する。
【０１４９】
サービスプロセッサ６６は、最初にカウントした稼働中の仮想デバイスＶＤＥＶの数と、構成最適化プランにより得られた稼働されるべき仮想デバイスの数とに基づいて、給電を停止可能な仮想デバイスＶＤＥＶの数を算出する。また、サービスプロセッサ６６は、システム構成情報から得られる仮想デバイスＶＤＥＶを構成するディスクドライブ５の数に基づき、新たに給電を停止するディスクドライブ５の数を算出する。
【０１５０】
サービスプロセッサ６６は、上述した最適化構成プランの作成処理を終えると、管理端末８に通知し、管理端末８は、図１９や図２０に示すようなダイアログボックスをシステム管理者に提示して、最適化構成プランの実行可否を確認する。システム管理者が、最適化構成プランの実行を承認すると、ディスク制御装置６は、サービスプロセッサ６６の制御の下、作成された最適化構成プランに従って、仮想デバイスＶＤＥＶ等の開放やデータの移動、圧縮処理等を開始する。
【０１５１】
上記実施形態は、本発明を説明するための例示であって、本発明の要旨は、これらの実施形態に限定されるものではない。本発明は、その要旨の範囲内で、さまざまな形態で実施できる。
【０１５２】
例えば、上記実施形態では、圧縮・展開部は、チャネルアダプタの内部に設けられているが、特にこれにこだわるものではない。圧縮・展開部は、ディスク制御装置内に独立したモジュールとして設けられてもよい。
【０１５３】
また、ストレージシステム４は、受信したデータを暗号化してディスクドライブ５にデータを格納してもよい。この場合、効果的な圧縮率の観点から、データの暗号化に先立ち、そのデータを圧縮することが好ましい。これに対処するため、例えば、暗号化（および暗号解除）エンジンは、ディスク制御部のチャネルプロトコル処理部６１３に搭載する。
【産業上の利用可能性】
【０１５４】
本発明は、複数のディスクドライブを備えたストレージシステム１に広く適用することができる。
【図面の簡単な説明】
【０１５５】
【図１】本発明の一実施形態に係る計算機システム１の構成を示す図である。
【図２】本発明の一実施形態に係るチャネルアダプタ６１の構成を示す図である。
【図３】本発明の一実施形態に係るディスクアダプタ６３の構成を示す図である。
【図４】本発明の一実施形態に係るストレージシステム４における仮想デバイスを説明するための図である。
【図５】本発明の一実施形態に係るストレージシステム４におけるＬＤＥＶ−ＶＤＥＶ割り当てテーブル５００の一例を示す図である。
【図６】本発明の一実施形態に係るストレージシステム４におけるＬＤＥＶ管理テーブル６００の一例を示す図である。
【図７】本発明の一実施形態に係るストレージシステム４におけるＬＵ−ＬＤＥＶ管理テーブル７００の一例を示す図である。
【図８】本発明の一実施形態に係るストレージシステム４における論理デバイスＬＤＥＶと仮想デバイスＶＤＥＶとの関係を説明するための図である。
【図９】本発明の一実施形態に係るストレージシステム４における省電力制御を説明するための図である。
【図１０】本発明の一実施形態に係るストレージシステム４におけるＶＤＥＶ使用テーブルの一例を示す図である。
【図１１】本発明の一実施形態に係るストレージシステム４における書き込み要求時の処理の流れを説明するための図である。
【図１２】本発明の一実施形態に係るストレージシステム４における書き込み要求時のＬＤＥＶーＶＤＥＶ管理テーブル及びＬＤＥＶ管理テーブルの更新処理を説明するための図である。
【図１３】本発明の一実施形態に係るストレージシステム４における書き込み要求時の処理の流れを説明するための図である。
【図１４】本発明の一実施形態に係るストレージシステム４における一括圧縮時の処理の流れを説明するための図である。
【図１５】本発明の一実施形態に係るストレージシステム４における省電力制御処理を概略的に説明するための図である。
【図１６】本発明の一実施形態に係る管理端末８上の画面の一例を説明するための図である。
【図１７】本発明の一実施形態に係る管理端末８上の画面の一例を説明するための図である。
【図１８】本発明の一実施形態に係る管理端末８上の画面の一例を説明するための図である。
【図１９】本発明の一実施形態に係るストレージシステム４における構成最適化処理を説明するための図である。
【図２０】本発明の一実施形態に係るストレージシステム４における構成最適化処理を説明するための図である。
【図２１】本発明の一実施形態に係るストレージシステム４における書き込み要求時の各種テーブルの更新処理を説明するための図である。
【図２２】本発明の一実施形態に係るストレージシステム４における書き込み要求時の各種テーブルの更新処理を説明するための図である。
【符号の説明】
【０１５６】
１…計算機システム
２…ネットワーク
３…ホストコンピュータ
４…ストレージシステム
５…ディスクドライブ
５１…給電部
５２…電力ケーブル
６…ディスク制御装置
６１…チャネルアダプタ
６２…キャッシュメモリ
６３…ディスクアダプタ
６４…共有メモリ
６５…電源制御部
６６…ＳＶＰ
６７…接続部
７…ディスクチャネル
８…管理端末
【図１】
2008171312.tif 000003
【図２】
2008171312.tif 000004
【図３】
2008171312.tif 000005
【図４】
2008171312.tif 000006
【図５】
2008171312.tif 000007
【図６】
2008171312.tif 000008
【図７】
2008171312.tif 000009
【図１０】
2008171312.tif 000010
【図１１】
2008171312.tif 000011
【図１２】
2008171312.tif 000012
【図１３】
2008171312.tif 000013
【図１４】
2008171312.tif 000014
【図１５】
2008171312.tif 000015
【図１６】
2008171312.tif 000016
【図１７】
2008171312.tif 000017
【図１８】
2008171312.tif 000018
【図１９】
2008171312.tif 000019
【図２０】
2008171312.tif 000020
【図２１】
2008171312.tif 000021
【図２２】
2008171312.tif 000022
【図８】
2008171312.tif 000023
【図９】
2008171312.tif 000024