(57)【特許請求の範囲】
【請求項１】
少なくとも１つの記憶装置と、
制御装置と、
を備え、
前記制御装置は、
少なくとも１つの前記記憶装置の記憶領域で構成され、複数のボリュームを提供するプールを管理し、
前記プールから前記複数のボリュームのうちの１つのボリュームに大サイズページのサイズで第１の大サイズページを割当てて、前記割り当てられた第１の大サイズページに前記大サイズページ単位で第１のデータを格納し、
前記プールから前記複数のボリュームのうちの１つのボリュームに大サイズページのサイズで第２の大サイズページを割当てて、前記割り当てられた第２の大サイズページに含まれる小サイズページに第２のデータを格納し、
前記小サイズページは前記第２の大サイズページを前記小サイズ単位に分割して管理されるものである
ことを特徴とする、ストレージ装置。
【請求項２】
前記制御装置は、
前記複数のボリュームのうちの１つの第１のボリュームのスナップショットを取得し、
前記第１の大サイズページに、前記第１のボリュームに書き込まれたデータを格納し、
前記小サイズページに、前記第１のボリュームと前記第１のボリュームの前記スナップショットのボリュームとの差分データを格納する
ことを特徴とする、請求項１に記載のストレージ装置。
【請求項３】
前記第２の大サイズページは複数の前記小サイズページを含み、前記複数の小サイズページの１つには前記複数のボリュームのうち一のボリュームのデータが格納され、前記複数の小サイズページの１つには前記複数のボリュームのうち他のボリュームのデータが格納される
ことを特徴とする、請求項１に記載のストレージ装置。
【請求項４】
少なくとも１つの記憶装置と、
制御装置と、
を備え、
前記制御装置は、
少なくとも１つの前記記憶装置の記憶領域で構成され、第１のボリュームと複数の第２のボリュームを提供するプールを管理し、
第１の大サイズページを前記第１のボリュームを提供する前記プールから割り当てて、前記割り当てられた第１の大サイズページに前記大サイズページ単位で前記第１のボリュームに書き込まれたデータを格納し、
第２の大サイズページを前記複数の第２のボリュームを提供する前記プールから割り当てて、前記第２の大サイズページに含まれる小サイズページに前記第２のボリュームのうち１つのボリュームのデータを格納し、
前記小サイズページは前記大サイズページを前記小サイズ単位に分割して管理されるものである
ことを特徴とする、ストレージ装置。
【請求項５】
前記複数の第２のボリュームは、前記第１のボリュームのスナップショットボリュームである
ことを特徴とする、請求項４に記載のストレージ装置。
【請求項６】
前記第２の大サイズページは複数の前記小サイズページを含み、前記複数の小サイズページの１つには前記複数の第２のボリュームのうちの第１の第２のボリュームのデータが格納され、他の前記複数の小サイズページの１つには複数の第２のボリュームのうちの第２の第２のボリュームのデータが格納される
ことを特徴とする、請求項５に記載のストレージ装置。
【請求項７】
前記制御装置は、
前記第１のボリュームへの書き込みアクセスに応じて前記第１のボリュームに前記第１の大サイズページを割り当てて、前記第１のボリュームに提供する前記第１の大サイズページを管理する、
ことを特徴とする、請求項４に記載のストレージ装置。
【請求項８】
前記制御装置は、
スナップショットボリュームの取得要求に応じて、前記第１のボリュームのスナップショットボリュームとして前記第２のボリュームの一つを提供する
ことを特徴とする、請求項４に記載のストレージ装置。
【請求項９】
前記制御装置は、
前記第１の大サイズページを割り当てられた前記第１のボリュームの記憶領域への書き込み要求に応じて、前記第２の大サイズページ単位で割り当てられた前記第２のボリュームのうちの１つのボリュームに前記第１の大サイズページに格納されているデータをコピーし、
前記第２のボリュームに提供される前記第２の大サイズページに含まれる前記小サイズページに前記コピーされたデータを格納する
ことを特徴とする、請求項４に記載のストレージ装置。
【請求項１０】
少なくとも１つの記憶装置と、制御装置と、前記制御装置に管理され、少なくとも１つの前記記憶装置の記憶領域で構成され、複数のボリュームを提供するプールと、を備えたストレージ装置におけるボリューム管理方法であって、
前記制御装置が、前記プールから前記複数のボリュームのうちの１つのボリュームに大サイズページのサイズで第１の大サイズページを割当てて、前記割り当てられた第１の大サイズページに前記大サイズページ単位で第１のデータを格納するステップと、
前記制御装置が、前記プールから前記複数のボリュームのうちの１つのボリュームに大サイズページのサイズで第２の大サイズページを割当てて、前記割り当てられた第２の大サイズページに含まれる小サイズページに第２のデータを格納するステップと、
を含み、
前記小サイズページは、前記第２の大サイズページを前記小サイズ単位に分割して前記制御装置に管理される、
ことを特徴とする、ボリューム管理方法。
【請求項１１】
前記制御装置が、前記複数のボリュームのうちの１つの第１のボリュームのスナップショットを取得するステップと、
前記制御装置が、前記第１の大サイズページに、前記第１のボリュームに書き込まれたデータを格納するステップと、
前記制御装置が、前記小サイズページに、前記第１のボリュームと前記第１のボリュームの前記スナップショットボリュームとの差分データを格納するステップと、
を含むことを特徴とする、請求項１０に記載のボリューム管理方法。
【請求項１２】
前記第２の大サイズページは複数の前記小サイズページを含み、前記複数の小サイズページの１つには前記複数のボリュームのうち一のボリュームのデータが格納され、前記複数の小サイズページの１つには前記複数のボリュームのうち他のボリュームのデータが格納される
ことを特徴とする、請求項１０に記載のボリューム管理方法。
【請求項１３】
少なくとも１つの記憶装置と、制御装置と、前記制御装置に管理され、少なくとも１つの前記記憶装置の記憶領域で構成され、第１のボリュームと複数の第２のボリュームを提供するプールと、を備えたストレージ装置におけるボリューム管理方法であって、
前記制御装置が、第１の大サイズページを前記第１のボリュームを提供する前記プールから割り当てて、前記割り当てられた第１の大サイズページに前記大サイズページ単位で前記第１のボリュームに書き込まれたデータを格納するステップと、
前記制御装置が、第２の大サイズページを前記複数の第２のボリュームを提供する前記プールから割り当てて、前記第２の大サイズページに含まれる小サイズページに前記第２のボリュームのうち１つのボリュームのデータを格納するステップと、
を含み、
前記小サイズページは、前記第２の大サイズページを前記小サイズ単位に分割して前記制御装置に管理される
ことを特徴とする、ボリューム管理方法。
【請求項１４】
前記複数の第２のボリュームは、前記第１のボリュームのスナップショットボリュームである
ことを特徴とする、請求項１３に記載のボリューム管理方法。
【請求項１５】
前記第２の大サイズページは複数の前記小サイズページを含み、前記複数の小サイズページの１つには前記複数の第２のボリュームのうちの第１の第２のボリュームのデータが格納され、他の前記複数の小サイズページの１つには複数の第２のボリュームのうちの第２の第２のボリュームのデータが格納される
ことを特徴とする、請求項１４に記載のボリューム管理方法。
【請求項１６】
前記制御装置が、前記第１のボリュームへの書き込みアクセスに応じて前記第１のボリュームに前記第１の大サイズページを割り当てて、前記第１のボリュームに提供する前記第１の大サイズページを管理するステップを、
含むことを特徴とする、請求項１３に記載のボリューム管理方法。
【請求項１７】
前記制御装置が、スナップショットボリュームの取得要求に応じて、前記第１のボリュームのスナップショットボリュームとして前記第２のボリュームの一つを提供するステップを
含むことを特徴とする、請求項１３に記載のボリューム管理方法。
【請求項１８】
前記制御装置が、前記第１の大サイズページを割り当てられた前記第１のボリュームの記憶領域への書き込み要求に応じて、前記第２の大サイズページ単位で割り当てられた前記第２のボリュームのうちの１つのボリュームに前記第１の大サイズページに格納されているデータをコピーするステップと、
前記制御装置が、前記第２のボリュームに提供される前記第２の大サイズページに含まれる前記小サイズページに前記コピーされたデータを格納するステップと、
を含むことを特徴とする、請求項１３に記載のボリューム管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置及びボリューム管理方法に関し、シンプロビジョニング機能とスナップショット機能を用いてデータを管理するストレージ装置及びボリューム管理方法に適用して好適なるものである。
【背景技術】
【０００２】
ストレージシステムにおいて、シンプロビジョニング機能とスナップショット機能とは、それぞれの機能の特徴を生かすために、異なるページサイズで管理される場合がある。
【０００３】
上記したシンプロビジョニング機能は、仮想ボリュームをホスト装置に提示し、ホスト装置から仮想ボリュームにライトアクセスがあった場合に、実際にデータを格納するための物理的な記憶領域を仮想ボリュームに割り当てる機能である。ここで、データが格納される物理的な記憶領域は、１または複数のハードディスク装置（ＨＤＤ：Hard Disk Drive）により提供される記憶領域であり、当該記憶領域上に１または複数の論理ボリュームが定義される。そして、１または複数の論理ボリュームにより１つのプールが構成され、各プールにそれぞれ１または複数の仮想ボリュームが対応づけられる。そして、ホスト装置から仮想ボリュームにライトアクセスがあった場合には、ライトアクセスされた仮想ボリュームの該当セグメントに対して、当該仮想ボリュームに対応付けられたストレージプール内のいずれかの論理ボリュームから記憶領域が所定の大きさ単位（以下、この大きさの記憶領域をページと称する）で割り当てられる。
【０００４】
このようなシンプロビジョニング機能を用いてデータの書き込みを行う際には、シーケンシャル性能を重視するため、大きいページサイズの記憶領域を割り当てることが好ましい。例えば特許文献１では、複数の同じ大きさのページを備えるチャンク単位で、仮想ボリュームにＲＡＩＤ（Redundant Arrays of Independent Disks）グループ内の実記憶領域を割り当てる技術が開示されている。
【０００５】
一方、スナップショット機能は、ある時点（例えば、ホスト装置からスナップショット取得要求を受けた時点）のある論理ボリュームのイメージを保持する機能である。ストレージシステムでは、定期的にスナップショット機能を実行することにより、論理ボリューム内のデータのレプリケーション（バックアップ）を間欠的に取得しておくことが可能となる。また、スナップショット機能では、通常、データのレプリケーション取得する際に、論理ボリューム全体のコピーを行わず、論理ボリュームへのライトアクセス時に、ライトアクセス前のデータをプールへ退避した後にライト処理を行う。このようなスナップショット機能を用いて差分データを格納する際には、容量効率を重視するため、小さいページサイズの記憶領域を割り当てることが好ましい。
【０００６】
したがって、各機能において適切なサイズのページを割り当てるために、それぞれ独立したプールを作成することが考えられる。しかし、独立したプールを作成した場合には、プール容量の設計作業や管理作業に時間やコストが掛かり、ユーザ負担が大きいため、シンプロビジョニング機能とスナップショット機能とにより利用される、異なるページサイズの記憶領域を単一のプール内で管理したいという要望があった。さらに、シンプロビジョニング機能とスナップショット機能との間で、同一プール内の空きページを融通しあえるようにしたいという要望があった。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２０１０／１０６５７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
そこで、単一プール内に順次に異なるサイズのページを格納することが考えられる。しかし、スナップショット機能によりプールに退避したデータを削除した場合に、解放された小さいページサイズの記憶領域を、そのまま大きいページサイズで管理しているシンプロビジョニング機能において利用することができるとは限らず、プール内で断片化が発生してしまうという問題があった。また、スナップショット機能のために小さいページサイズで管理されるプールを予め確保して、当該プールをシンプロビジョニング機能でも利用することが考えられる。しかし、この場合、管理単位が小さいため、膨大な管理情報を持たなければならず、メモリ容量が逼迫し、プール容量に制限が出来てしまう可能性があるという問題があった。
本発明は以上の点を考慮してなされたもので、同一プール内で管理サイズが異なるページを効率よく格納することが可能なストレージ装置及びボリューム管理方法を提案しようとするものである。
【課題を解決するための手段】
【０００９】
かかる課題を解決するために本発明においては、データの書き込みを要求するホスト装置とネットワークを介して接続されたストレージ装置が提供される。前記ストレージ装置は、前記ホスト装置により読み書きされるデータを格納する記憶部と、前記記憶部への前記データの書き込みを制御する制御部と、を備え、前記制御部は、前記記憶部を１または２以上のプールとし、前記プールの１つを第１の大きさの領域を有する第１のページに分割し、前記第１のページを前記第２の領域を有する第２のページに分割して管理し、前記データを格納する第１のボリュームのデータ格納領域を前記第１の大きさの領域で管理し、前記データを格納する第２のボリュームのデータ格納領域を前記第２の大きさの領域で管理し、前記第１のボリュームのデータ格納領域に前記第１のページを割り当て、前記第２のボリューム単位で前記第１のページを割り当てて、前記第２のボリュームのデータ格納領域に当該第１のページを分割した前記第２のページを割り当てる。
【００１０】
かかる構成によれば、ストレージ装置の共通プールを第１のページに分割し、さらに、第１のページを第２のページに分割して管理し、第１のボリュームを第１の大きさの領域で管理し、第２のボリュームを第２の大きさの領域で管理する。そして、第１のボリュームのデータ格納領域に第１のページを割り当て、第２のボリューム単位で第１のページを割り当てて、第２のボリュームのデータ格納領域に当該第１のページを分割した第２のページを割り当てる。これにより、単一のプール内で異なるページサイズの記憶領域を管理することが可能となり、同一プール内で空き容量を効率よく使用することができる。また、削除対象となるボリューム毎に大サイズページが割り当てられるため、ボリュームが削除される際にプール内の断片化を防止することが可能となる。
【発明の効果】
【００１１】
本発明によれば、異なる機能を併用して利用するストレージシステムにおいて、同一プール内で管理サイズが異なるページを効率よく格納し、プール容量の管理を容易にすることができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施の形態にかかる概要を説明する概念図である。
【図２】同実施の形態にかかる概要を説明する概念図である。
【図３】同実施の形態にかかる計算機システムのハードウェア構成を示すブロック図である。
【図４】同実施の形態にかかる異なるページサイズの管理方法を説明する概念図である。
【図５】同実施の形態にかかる共通プール管理テーブルの一例を示す図表である。
【図６】同実施の形態にかかる分割管理情報の一例を示す図表である。
【図７】同実施の形態にかかる論理ページ管理テーブルの一例を示す図表である。
【図８】同実施の形態にかかるクローンボリューム用のボリューム管理テーブルの一例を示す図表である。
【図９】同実施の形態にかかるシンプロビジョニングボリューム用のボリューム管理テーブルの一例を示す図表である。
【図１０】同実施の形態にかかるプライマリボリューム管理情報の一例を示す図表である。
【図１１】同実施の形態にかかる大サイズページ割り当て管理テーブルの一例を示す図表である。
【図１２】同実施の形態にかかるＬＵＮ管理テーブルの一例を示す図表である。
【図１３】同実施の形態にかかる大サイズページフリー管理キューを説明する概念図である。
【図１４】同実施の形態にかかる小サイズページフリー管理キューを説明する概念図である。
【図１５】同実施の形態にかかるスナップショット機能によるデータ格納方法を説明する概念図である。
【図１６】同実施の形態にかかるスナップショット機能によるデータ格納方法を説明する概念図である。
【図１７】同実施の形態にかかるスナップショット機能によるデータ格納方法を説明する概念図である。
【図１８】同実施の形態にかかるボリュームリード処理の処理手順を示すフローチャートである。
【図１９】同実施の形態にかかるボリュームライト処理の処理手順を示すフローチャートである。
【図２０】同実施の形態にかかるデータ格納先ボリューム選択処理の処理手順を示すフローチャートである。
【図２１】同実施の形態にかかる小サイズページ割り当て処理の処理手順を示すフローチャートである。
【図２２】同実施の形態にかかるシンプロビジョニングボリュームライト処理の処理手順を示すフローチャートである。
【図２３】同実施の形態にかかるボリューム削除処理の処理手順を示すフローチャートである。
【図２４】同実施の形態にかかる使用済みページ削除処理の処理手順を示すフローチャートである。
【図２５】同実施の形態にかかる使用済みページ削除処理の処理手順を示すフローチャートである。
【図２６】第２の実施の形態にかかる概要を説明する概念図である。
【図２７】第３の実施の形態にかかる概要を説明する概念図である。
【図２８】第４の実施の形態にかかる共有プールの容量枯渇対応処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下図面について、本発明の一実施の形態を詳述する。
【００１４】
（１）第１の実施の形態
（１−１）本実施の形態の概要
まず、本実施の形態の概要について説明する。以下では、シンプロビジョニング機能とスナップショット機能とを利用するストレージシステムについて説明する。シンプロビジョニング機能とスナップショット機能を利用するストレージシステムでは、それぞれの機能の特徴を生かすために、異なるページサイズで管理される場合がある。
【００１５】
上記したシンプロビジョニング機能は、仮想ボリュームをホスト装置に提示し、ホスト装置から仮想ボリュームにライトアクセスがあった場合に、実際にデータを格納するための物理的な記憶領域を仮想ボリュームに割り当てる機能である。ここで、データが格納される物理的な記憶領域は、１または複数のハードディスク装置（ＨＤＤ）により提供される記憶領域であり、当該記憶領域上に１または複数の論理ボリュームが定義される。そして、１または複数の論理ボリュームにより１つのプールが構成され、各プールにそれぞれ１または複数の仮想ボリュームが対応づけられる。そして、ホスト装置から仮想ボリュームにライトアクセスがあった場合には、ライトアクセスされた仮想ボリュームの該当セグメントに対して、当該仮想ボリュームに対応付けられたストレージプール内のいずれかの論理ボリュームから記憶領域が所定の大きさ単位（以下、この大きさの記憶領域をページと称する）で割り当てられる。このようなシンプロビジョニング機能を用いてデータの書き込みを行う際には、シーケンシャル性能を重視するため、大きいページサイズの記憶領域を割り当てることが好ましい。
【００１６】
一方、スナップショット機能は、ある時点（例えば、ホスト装置からスナップショット取得要求を受けた時点）のある論理ボリュームのイメージを保持する機能である。ストレージシステムでは、定期的にスナップショット機能を実行することにより、論理ボリューム内のデータのレプリケーション（バックアップ）を間欠的に取得しておくことが可能となる。また、スナップショット機能では、通常、データのレプリケーションを取得する際に、論理ボリューム全体のコピーを行わず、論理ボリュームへのライトアクセス時に、ライトアクセス前のデータをプールへ退避した後にライト処理を行う。このようなスナップショット機能を用いて差分データを格納する際には、容量効率を重視するため、小さいページサイズの記憶領域を割り当てることが好ましい。
【００１７】
したがって、各機能において適切なサイズのページを割り当てるために、それぞれ独立したプールを作成することが考えられる。しかし、独立したプールを作成した場合には、プール容量の設計作業や管理作業に時間やコストが掛かり、ユーザ負担が大きいため、シンプロビジョニング機能とスナップショット機能とにより利用される、異なるページサイズの記憶領域を単一のプール内で管理したいという要望があった。さらに、シンプロビジョニング機能とスナップショット機能との間で、同一プール内の空きページを融通しあえるようにしたいという要望があった。
【００１８】
そこで、単一プール内に順次に異なるサイズのページを格納することが考えられる。しかし、スナップショット機能によりプールに退避したデータを削除した場合に、解放された小さいページサイズの記憶領域を、そのまま大きいページサイズで管理しているシンプロビジョニング機能において利用することができるとは限らず、プール内で断片化が発生してしまうという問題があった。また、スナップショット機能のために小さいページサイズで管理されるプールを予め確保して、当該プールをシンプロビジョニング機能でも利用することが考えられる。しかし、この場合、管理単位が小さいため、膨大な管理情報を持たなければならず、メモリ容量が逼迫し、プール容量に制限が出来てしまう可能性があるという問題があった。
【００１９】
そこで、本実施の形態では、単一プール内を大きいサイズのページ（以下、大サイズページと称する場合もある。）に分割し、さらに、大サイズページを小さいサイズのページ（以下、小サイズページと称する場合もある。）に分割して、プール管理を階層化している。具体的に、本実施形態では、図１に示すように、シンプロビジョニング機能とスナップショット機能とで、単一の共通プール２０１にデータを格納するようにしている。共通プール２０１内では大サイズページで管理され、各機能において管理されるページサイズが大サイズページよりも小さい場合は、当該機能毎に利用される大サイズページを分割して小サイズページで管理される。例えば、シンプロビジョニング機能では、各ボリュームに大サイズページが割り当てられて、当該大サイズページにデータが格納される。一方、スナップショット機能では、各ボリュームに大サイズページが割り当てられて、大サイズページを分割した小サイズページに差分データが格納される。
【００２０】
また、共通プール２０１内の大サイズページの空きページを管理するキューと、小サイズページの空きページを管理するキューをそれぞれ設け、さらに、大サイズページのうちのいずれのページに小サイズページが割り当てられているかを管理する。具体的に、スナップショット機能が利用する小サイズページについては、小サイズページの空きページがなくなったときに、大サイズページの空きページを確保する。そして、確保した大サイズページを小サイズページに分割して小サイズページの空きページとして管理する。また、小サイズページの解放については、分割されていた大サイズページのすべての小サイズページがフリーとなった場合に、大サイズページが解放されて共通プール２０１に戻される。
【００２１】
このように、本実施形態では、共通プール２０１内においては大サイズページを管理するためのメタデータを生成し、必要に応じて小サイズページ管理用のメタデータを生成すればよいため、プール管理情報を削減して、メモリ容量を効率よく使用することができる。
【００２２】
また、スナップショット機能において小サイズページに分割される大サイズページを割り当てる際に、削除単位毎に大サイズページを割り当てることにより、プール内のデータ断片化を防止している。具体的に、図２に示すように、まず、ホスト装置等からのスナップショット取得要求に応じて、スナップショットボリューム（Ｖ−ＶＯＬ０）が生成される（ＳＴＥＰ０１）。ＳＴＥＰ０１においてＶ−ＶＯＬ０が生成されると、当該ボリュームに対応付けられた大サイズページが確保され、当該大サイズページが小サイズページに分割される（ＳＴＥＰ０２）。
【００２３】
続いて、データ「Ａ」が格納されている領域に、データ「Ｅ」の書き込みが要求されると（ＳＴＥＰ０３）、ＳＴＥＰ０２において確保された大サイズページに旧データ「Ａ」が退避される（ＳＴＥＰ０４）。そして、ＳＴＥＰ０４において退避されたデータ「Ａ」に代えてデータ「Ｅ」が書き込まれたスナップショットボリューム（Ｖ−ＶＯｌ１）が生成される（ＳＴＥＰ０５）。ＳＴＥＰ０５においてＶ−ＶＯＬ１が生成されると、当該ボリュームに対応付けられた大サイズページが確保され、当該大サイズページが小サイズページに分割される（ＳＴＥＰ０６）。
【００２４】
さらに、データ「Ｂ」が格納されている領域に、データ「Ｆ」の書き込みが要求されると（ＳＴＥＰ０７）、ＳＴＥＰ０６において確保された大サイズページに旧データ「Ｂ」が退避される（ＳＴＥＰ０８）。そして、ＳＴＥＰ０７において退避されたデータ「Ｂ」に代えてデータ「Ｆ」が書き込まれたスナップショットボリューム（Ｖ−ＶＯＬ２）が生成される（ＳＴＥＰ０９）。ＳＴＥＰ０９においてＶ−ＶＯＬ２が生成されると、当該ボリュームに対応付けられた大サイズページが確保され、当該大サイズページが小サイズページに分割される（ＳＴＥＰ１０）。
【００２５】
さらに、データ「Ｃ」及び「Ｄ」が格納されている領域にデータ「Ｇ」及び「Ｈ」の書き込みが要求されると、ＳＴＥＰ１０において確保された大サイズページに旧データ「Ｃ」及び「Ｄ」が退避される（ＳＴＥＰ１１）。
【００２６】
このように、小サイズページでプール領域を管理するスナップショット機能において、スナップショットボリューム毎に小サイズページに分割された大サイズページを割り当てて、同時に削除され得るデータを同一の大サイズページに格納している。これにより、スナップショットボリュームが削除された場合に、当該ボリュームのデータが格納されている小サイズページが削除されて、分割されていた大サイズページのデータがすべて削除されることとなり、当該大サイズページを解放することができる。解放された大サイズページは、大サイズページの空きページを管理するキューに追加されて、大サイズページで管理するシンプロビジョニング機能でも利用可能となる。このように、プール内のデータ断片化を防止しつつ、異なるページサイズを利用する機能間で容量を融通し合って、同一プール内で管理サイズが異なるページを効率よく格納することを可能とした。
【００２７】
（１−２）計算機システムのハードウェア構成
次に、計算機システム１のハードウェア構成について説明する。図３に示すように、計算機システム１は、ホスト装置１０と、ストレージ装置２０と、管理端末３０と、ネットワーク４０とから構成される。
【００２８】
ＣＰＵ（Central Processing Unit）及びメモリ等の情報処理資源を備えたコンピュータ装置であって、例えば、パーソナルコンピュータや、ワークステーション、メインフレームなどから構成される。ＣＰＵは、演算処理装置として機能し、メモリに記憶されているプログラムや演算パラメータ等にしたがって、ホスト装置１０の動作を制御する。また、ホスト装置１０は、キーボード、スイッチやポインティングデバイス、マイクロフォン等の情報入力装置と、モニタディスプレイやスピーカ等の情報出力装置とを備えている。
【００２９】
また、ホスト装置１０は、ネットワーク４０を介してストレージ装置２０と接続されている。ネットワーク４０は、例えば、ＳＡＮ（Storage Area Network）などから構成され、装置間の通信は、例えばファイバチャネルプロトコルに従って行われる。また、ネットワーク４０は、例えば、ＬＡＮ（Local Area Network）、インターネット、公衆回線または専用回線などであってもよい。ネットワーク４０がＬＡＮの場合には、装置間の通信は、例えばＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）プロトコルに従って行われる。
【００３０】
ホスト装置１０は、ネットワーク４０を介して接続されたストレージ装置２０にデータのリード／ライト要求を送信する。
【００３１】
ストレージ装置２０は、ネットワーク４０を介して接続されたホスト装置１０から送信されたリード／ライトコマンドを解釈して、ストレージ装置２０内の記憶媒体へのリード／ライトを実行する。また、ストレージ装置２０は、ストレージコントローラ２１とドライブ部２００とから構成されている。
【００３２】
ストレージコントローラ２１は、ＭＰＵ（Micro Processing Unit）２２、メモリ２３、管理端末インタフェース部（図中管理端末Ｉ／Ｆ部と表記）２７、ホストインタフェース部（図中ホストインタフェースＩ／Ｆ部と表記）２８及びドライブインタフェース部（図中ドライブＩ／Ｆ部）２９を備えている。
【００３３】
ＭＰＵ２２は、演算処理装置として機能し、メモリ２３に記憶されているプログラムや演算パラメータ等にしたがって、ストレージ装置２０全体を制御する。メモリ２３は、ＭＰＵ２２からの高速なアクセスを可能とする記憶領域であって、構成情報２４、キャッシュ領域２５や、ストレージ制御プログラム２６などが格納されている。構成情報２４には、各種パラメータが含まれる。キャッシュ領域２５は、データのリード／ライトを高速化するためにデータを一時的に格納する記憶領域である。ストレージ制御プログラム２６は、ＭＰＵ２２により利用されるプログラムであって、構成情報２４に含まれる各種パラメータを用いてデータの入出力等を制御する。
【００３４】
管理端末インタフェース部２７は、管理ネットワークを介して管理端末３０と接続するためのインタフェースである。また、ホストインタフェース部２８は、ネットワーク４０を介してホスト装置１０と接続するためのインタフェースである。また、ドライブインタフェース部２９は、記憶装置とデータの送受信を行うためのインタフェースである。
【００３５】
ドライブインタフェース部２９は、複数の記憶媒体から構成されている。記憶媒体は、は、ＳＣＳＩ（Small Computer System Interface）ディスク等の高価なハードディスクドライブ、または、ＳＡＴＡ（Serial AT Attachment）ディスク等の安価なハードディスクドライブからなる複数のハードディスクドライブ（ＨＤＤ：Hard Disk Drive）や、ＳＳＤ（Solid State Drive）などから構成される。
【００３６】
また、１または複数の記憶媒体により１または複数の物理ディスクのグループが形成される。この物理ディスクのグループの一例としては、ＲＡＩＤが挙げられる。そして、物理ディスクのグループが提供する記憶領域上に１または複数の論理ボリュームが定義される。そして、１または複数のグループが提供する論理ボリュームが１つのプールとして管理される。本実施形態では、シンプロビジョニング機能とスナップショット機能とで１つのプールを利用するため、当該プールを共通プール２０１と称して以下説明する。
【００３７】
ここで、共通プール２０１において、異なるページサイズを管理する方法について説明する。図４に示すように、共通プール２０１の各ページは大サイズページ１６６で管理され、シンプロビジョニング機能及びスナップショット機能にそれぞれ大サイズページ１６６が提供される。シンプロビジョニング機能においては、シンプロビジョニングボリューム２５１のページサイズは、大サイズページ１６６と同サイズのページサイズで管理される。
【００３８】
また、スナップショット機能においては、スナップショットの差分データを格納するボリューム２５２のページサイズは、大サイズページを分割した小サイズページで管理される。具体的に、スナップショット機能において差分データを格納する際には、共通プール２０１の大サイズページ１６６が小サイズページ２５３に分割されて、当該小サイズページに差分データが格納される。また、スナップショットの差分データの格納場所として、新たな領域が必要となった場合に、共通プール２０１から大サイズページ１６６が提供される。したがって、スナップショットの差分データを格納する領域は、動的に変化することとなる。
【００３９】
（１−３）ストレージ装置のソフトウェア構成
次に、ストレージ装置２０のソフトウェア構成について説明する。以下では、ストレージ制御プログラム２６により利用される構成情報２４に含まれる各種パラメータについて特に詳細に説明する。
【００４０】
図３に示すように、構成情報２４には、共通プール２０１の構成を管理する、共通プール管理テーブル２６１、大サイズページ割り当て管理テーブル２６２、ＬＵＮ（Logical Unit Number）管理テーブル２６３及び大サイズページフリー管理キュー２６４と、スナップショット機能に利用されるボリュームを管理する、ページ分割管理情報２６５、論理ページ管理テーブル２６６、ボリューム管理テーブル（クローンボリューム用）２６７、プライマリボリューム管理情報２６８及び小サイズページフリー管理キュー２６９と、シンプロビジョニング機能に利用されるボリュームを管理するボリューム管理テーブル（シンプロビジョニング用）２７０と、が含まれる。
【００４１】
共通プール管理テーブル２６１は、ドライブ部２００内の共通プール２０１の構成を管理するテーブルであって、図５に示すように、大サイズページＩＤ欄２６１０、ページ属性欄２６１１及びポインタＩＤ欄２０１２から構成される。共通プール管理テーブル２６１は、１つの共通プールに対応付けられて作成される。
【００４２】
大サイズページＩＤ欄２６１０には、共通プール２０１内に設定された大サイズページを識別する情報が格納される。ページ属性欄２６１１には、各大サイズページの属性を示す情報が格納される。例えば、大サイズページが使用されていない空き領域の場合は「０」が格納される。また、大サイズページがスナップショットのバックアップデータ用のボリューム（以降、当該ボリュームをクローンボリュームと称する。）に割り当てられている場合には「１」が格納される。また、シンプロビジョニングボリュームに割り当てられている場合には「２」が格納される。
【００４３】
ポインタＩＤ欄２０１２には、後述するページ分割管理情報２６５の格納場所を示すポインタＩＤが格納される。ポインタＩＤ欄２０１２には、大サイズページのページ属性が「１」の場合、すなわち、大サイズページがクローンボリューム用のページである場合に、大サイズページを分割した小サイズページを管理するページ分割管理情報２６５の格納場所を示すポインタＩＤが格納される。
【００４４】
次に、ページ分割管理情報２６５について説明する。ページ分割管理情報２６５は、スナップショット機能により利用される管理情報であり、大サイズページを分割して生成された小サイズページを管理する情報であって、図６に示すように、各小サイズページを管理するページ分割管理テーブル２６５Ａと、小サイズページの属性を管理する属性カウンタテーブル２６５Ｂとから構成される。また、ページ分割管理情報２６５は、１つの大サイズページ毎に生成され、具体的に、共通プール管理テーブル２６１のポインタＩＤ毎に生成される。例えば、図６に示したページ分割管理情報２６５は、ポンインタＩＤ「０」に対応付けられている。
【００４５】
ページ分割管理テーブル２６５Ａは、小サイズページの構成を管理するテーブルであって、図６に示すように、小サイズページＩＤ欄２６５０、ページ属性欄２６５１及び論理ページＩＤ欄２６５２から構成される。小サイズページＩＤ欄２６５０には、１つの大サイズページ内で、大サイズページを分割した小サイズページを識別する情報が格納される。ページ属性欄２６５１には、小サイズページにデータが格納されているかを示す情報が格納されている。例えば、小サイズページにデータが格納されていない場合には、ページ属性欄２６５１に「０」が格納され、小サイズページにデータが格納されている場合には、ページ属性欄２６５１に「１」が格納される。論理ページＩＤ欄２６５２には、小サイズページにデータが格納されている場合に、当該小サイズページに割り振られる論理的な識別情報が格納される。論理ページＩＤは、小サイズページに分割された複数の大サイズページにまたがって、データが格納されている小サイズページに対して付与される識別情報である。
【００４６】
また、属性カウンタテーブル２６５Ｂは、データが格納されている小サイズページのカウント値を管理するテーブルであって、図６に示すように、属性カウンタ欄２５６３から構成される。属性カウンタ欄２５６３には、データが格納されている小サイズページの合計数が格納され、具体的には、ページ分割管理テーブル２６５Ａのページ属性欄２６５１に格納されている値の合計値が格納される。
【００４７】
次に、論理ページ管理テーブル２６６について説明する。論理ページ管理テーブル２６６は、スナップショット機能により利用される管理テーブルであって、スナップショット機能により生成されるクローンボリュームのデータの格納場所を管理するテーブルである。論理ページ管理テーブル２６６は、図７に示すように、論理ページＩＤ欄２６６０、大サイズページＩＤ欄２６６１、小サイズページＩＤ欄２６６２及び共有数カウンタ欄２６６３から構成される。
【００４８】
論理ページＩＤ欄２６６０は、ページ分割管理テーブル２６５Ａの論理ページＩＤ欄２６５２と対応づけられており、データが格納されている小サイズページに割り振られる論理的な識別情報が格納される。大サイズページＩＤ欄２６６１には、論理ページＩＤに示されるページの属する大サイズページを識別する情報が格納される。小サイズページＩＤ欄２６６２には、論理ページＩＤに示されるページの属する小サイズページを識別する情報が格納される。共有数カウンタ欄２６６３には、論理ページＩＤに示されるページを共有しているクローンボリュームの数を示す情報が格納される。
【００４９】
例えば、共有数カウンタ欄２６６３に２以上の数が格納されている場合には、複数のクローンボリュームが、当該ページのデータを共有していることを表している。各クローンボリュームには、データの格納場所として、論理ページＩＤ２６６０の情報が対応付けられる。このように、各クローンボリュームのデータ格納場所として、直接、小サイズページＩＤ欄２６６２の情報を対応付けるのではなく、論理ページＩＤ２６６０の情報を対応付けている。これにより、データの退避が起こる等により複数ボリュームに共有されているデータの格納場所が変わった場合に、複数のクローンボリュームの管理情報を書き換える必要はなく、論理ページＩＤ２６５２の情報を書き換えればよいため、データの書き換え回数を減らすことが可能となる。
【００５０】
また、図７に示すように、論理ページＩＤ２５６に格納された論理ページＩＤがクローンボリュームの元となるプライマリボリュームのデータを示す場合には、大サイズページＩＤ欄２６６１及び小サイズページＩＤ欄２６６２にプライマリボリュームを示す「Ｐ」が格納され、共有数カウンタ欄２６６３に「ｎｕｌｌ」が格納される。
【００５１】
次に、クローンボリューム用のボリューム管理テーブル２６７について説明する。ボリューム管理テーブル２６７は、スナップショット機能により生成されるクローンボリュームの構成情報を管理するテーブルであって、図８に示すように、ホストページＮｏ欄２６７０及び論理ページＩＤ欄２６７１から構成される。また、ボリューム管理テーブル２６７は、１つのクローンボリューム毎に生成される。図８は、論理ボリューム番号（ＬＵＮ）「０」のクローンボリュームのボリューム管理テーブル２６７を示す。
【００５２】
ホストページＮｏ欄２６７０には、ホスト装置１０において管理されるデータが格納されたページの識別情報が格納される。論理ページＩＤ欄２６７１には、クローンボリュームの論理ページＩＤが格納される。これにより、ホスト装置１０が管理しているページ（ホストページ）が、クローンボリュームのいずれのページに対応するかという情報を管理することができる。
【００５３】
次に、シンプロビジョニングボリューム用のボリューム管理テーブル２７０について説明する。ボリューム管理テーブル２７０は、シンプロビジョニング機能により生成されるシンプロビジョニングボリュームの構成情報を管理するテーブルであって、図９に示すように、ホストページＮｏ欄２７００及び大サイズページＩＤ欄２７０１から構成される。また、ボリューム管理テーブル２７０は、１つのシンプロビジョニングボリューム毎に生成される。図９は、論理ボリューム番号（ＬＵＮ）「１」のシンプロビジョニングボリュームのボリューム管理テーブル２７０を示す。
【００５４】
ホストページＮｏ欄２７００には、ホスト装置１０において管理されるデータが格納されたページの識別情報が格納される。大サイズページ欄２７０１には、シンプロビジョニングボリュームに割り当てられた大サイズページのページＩＤが格納される。これにより、ホスト装置１０が管理しているページ（ホストページ）が、シンプロビジョニングボリュームのいずれのページに対応するかという情報を管理することができる。
【００５５】
次に、プライマリボリューム管理情報２６８について説明する。プライマリボリューム管理情報２６８は、クローンボリュームの元となるプライマリボリュームの構成情報を管理するテーブルであって、退避領域ビットマップ２６８１と、プライマリボリューム管理テーブルとから構成される。また、プライマリボリューム管理情報２６８は、１つのプライマリボリューム毎に生成され、図１０に示したプライマリボリューム管理情報２６８は、プライマリボリューム「０」に対応付けられている。
【００５６】
図１０に示すように、プライマリボリューム管理情報２６８に含まれる退避領域ビットマップ２６８１は、プライマリボリュームの小サイズページに対して、スナップショット機能による「コピーオンライト（Copy on Write）」動作が既に発生しているかという情報を管理している。すなわち、プライマリボリュームの小サイズページに対して、「コピーオンライト」動作が発生し、図４に示すスナップショット差分データの格納領域２５３に元データが退避されているか否かを管理している。具体的に、退避領域ビットマップ２６８１には、各ホストページに対して、当該ページのデータがスナップショット差分データの格納領域２５３に退避されている場合には「１」が格納され、退避されていない場合には「０」が格納される。
【００５７】
ここで、スナップショット機能による「コピーオンライト」動作とは、クローンボリュームがプライマリボリュームと同じデータを共有している場合に、データのライト処理の前に共有しているデータを退避する動作である。具体的に、プライマリボリュームに新規のライト処理が発生し、クローンボリュームと共有しているデータが別のデータに書き換わる場合に、クローンボリュームの小サイズページＩＤ２６６２をスナップショット差分データの格納領域２５３に退避する。また、ある小サイズページＩＤ２６６２において、一度退避動作が発生した後は、プライマリボリュームはクローンボリュームとデータを共有していない。このため、一度退避動作が発生した後にデータの書き換えが行われた場合は、コピーオンライト動作は発生しない。
【００５８】
また、プライマリボリューム管理情報２６８に含まれるプライマリボリューム管理テーブル２６８２は、プライマリボリュームに対してスナップショット機能を利用して作成されたクローンボリュームの情報を管理するテーブルである。図１０に示すように、プライマリボリューム管理テーブル２６８２は、作成時間欄２６８３、削除時間欄２６８４クローンボリュームＬＵＮ欄２６８５から構成される。
【００５９】
作成時間欄２６８３には、クローンボリュームが作成された日時が格納される。削除時間欄２６８４には、クローンが削除される予定の日時が格納される。また、クローンボリュームＬＵＮ欄２６８５には、クローンボリュームを識別する情報である論理ボリューム番号（ＬＵＮ）が格納される。
【００６０】
上記したクローンボリュームは、クローンボリューム毎に、保管期間が異なる。例えば、プライマリボリュームのバックアップボリュームとして一定期間保管した後に削除せずに、長期間保存しておくクローンボリュームがある。また、プライマリボリュームのバックアップボリュームとして一定期間保管した後に削除するクローンボリュームもある。
【００６１】
次に、大サイズページ割り当て管理テーブル２６２について説明する。大サイズページ割り当て管理テーブル２６２は、共通プール２０１内の大サイズページの情報を管理するテーブルである。大サイズページ割り当て管理テーブル２６２は、図１１に示すように、ＬＵＮ欄２６２０及び大サイズページＩＤ欄２６２１から構成される。ＬＵＮ欄２６２０には、スナップショット機能やシンプロビジョニング機能などの機能の種類に関わらず、共通プール２０１内に作成されたボリュームを識別する論理的な番号の情報が格納される。そして、大サイズページＩＤ欄２６２１には、各ボリュームが占有する大サイズページを識別する情報が格納される。なお、１つのボリュームが複数の大サイズページを占有している場合もあるが、占有している複数の大サイズページのうち、最も新しく割り当てられた大サイズページのＩＤが、大サイズページＩＤ欄２６２１に格納される。
【００６２】
次に、ＬＵＮ管理テーブル２６３について説明する。ＬＵＮ管理テーブル２６３は、共通プール２０１内の格納領域を利用する論理ボリュームを管理するテーブルであって、図１２に示すように、ＨＬＵＮ欄２６３１、サイズ欄２６３２、クローンボリューム判定欄２６３３、プライマリボリューム判定欄２６３４及びプライマリボリュームＬＵＮ欄２６３５から構成される。
【００６３】
ＨＬＵＮ欄２６３１には、ホスト装置１０により管理されている論理ボリュームの番号の情報が格納される。サイズ欄２６３２には、各論理ボリュームのサイズの情報が格納される。クローンボリューム判定欄２６３３には、各論理ボリュームがクローンボリュームかを判定する情報が格納される。例えば、論理ボリュームがクローンボリュームである場合には「１」が格納され、クローンボリュームではない場合には「０」が格納される。また、プライマリボリューム判定欄２６３４には、各論理ボリュームがプライマリボリュームかを判定する情報が格納される。例えば、論理ボリュームがプライマリボリュームである場合には「１」が格納され、プライマリボリュームではない場合には「０」が格納される。また、論理ボリュームがクローンボリュームでもプライマリボリュームでもない場合、すなわち、シンプロビジョニング機能により利用される論理ボリュームの場合には、クローンボリューム判定欄２６３３及びプライマリボリューム判定欄２６３４に「０」が格納される。プライマリボリュームＬＵＮ欄２６３５には、論理ボリュームがクローンボリュームである場合に、クローンボリュームに対応するプライマリボリュームのボリューム番号の情報が格納される。
【００６４】
次に、大サイズページフリー管理キュー２６４について説明する。大サイズページフリー管理キュー２６４は、１つの共通プール２０１に対して１セットのキューが用意される。大サイズページフリー管理キュー２６４は、共通プール２０１の管理単位である大サイズページのうち、データが格納されていない空きページを管理している。図１３に示すように、大サイズページフリー管理キュー２６４は、大サイズページの空きページのリストであって、共通プール２０１からスナップショット機能またはシンプロビジョニング機能に大サイズページが提供される際には、大サイズページフリー管理キュー２６４の先頭のキュー２６４ｂが提供される。
【００６５】
次に、小サイズページフリー管理キュー２６９について説明する。小サイズページフリー管理キュー２６９は、ページ分割管理情報２６５のポインタＩＤ１つに対して１セットのキューが用意される。すなわち、１つのクローンボリュームに対して１セットのキューが作成される。図１４に示すように、小サイズページフリー管理キュー２６９は、小サイズページの空きページのリストであって、例えば、図６に示すポインタＩＤ「０」に対して、１セットの小サイズページフリー管理キュー２６９が作成される。
【００６６】
具体的に、ページ分割管理テーブル２６５Ａのページ属性欄２６５１に「０」が格納されている小サイズページＩＤに対応する小サイズページが、小サイズページフリー管理キュー２６９にエントリされる。したがって、ページ属性欄２６５１にすべて「０」が格納され、属性カウンタテーブル２６５Ｂに「０」が格納されている場合には、ページ分割管理情報２６５のポインタＩＤ「０」に属する小サイズページのすべてが小サイズページフリー管理キュー２６９にエントリされたこととなる。これは、１つの大サイズページを分割した複数の小サイズページのすべてが空きページになったことを示す。このように、小サイズページのすべてが空きページになった場合に、小サイズページフリー管理キュー２６９は、削除される。したがって、小サイズページフリー管理キュー２６９は、小サイズページの空き状態に応じて動的に作成されたり削除されたりする。
【００６７】
なお、クローンボリュームが削除された場合には、クローンボリュームに割り当てられた大サイズページの大サイズページフリー管理キュー２６４はそのままスナップショット機能により利用され、小サイズページフリー管理キュー２６９は削除されていないクローンボリュームの小サイズページフリー管理キューに追加される。
【００６８】
次に、プライマリボリュームにデータの書き込み処理が発生した場合のデータ格納方法について説明する。図１５に示すように、第１のクローンボリューム２５２ａ（以下、クローンボリューム「０」として説明する。）はプライマリボリューム２５１ａ（以下プライマリボリューム「０」として説明する。）のバックアップであり、ステータスは、コピーされた状態のイメージを固定する「Ｓｐｌｉｔ」となっている。また、第２のクローンボリューム２５２ｂ（以下、クローンボリューム「１」として説明する）は、ステータス「Ｐａｉｒ」となっており、プライマリボリューム「０」と同期している状態となっている。また、プライマリボリューム「０」のデータは共通プール２０１の第１の大サイズページ（以下、大サイズページ「２」として説明する。）に格納されている。
【００６９】
例えば、プライマリボリューム「０」の小サイズページのＩＤ「ｃ」のデータに、小サイズページのＩＤ「ｅ」のデータが書き込まれるとする。プライマリボリューム「０」の小サイズページＩＤ「ｃ」のデータに小サイズページＩＤ「ｅ」のデータが上書きされると、小サイズページＩＤ「ｃ」のデータを共有しているクローンボリューム「０」のデータも書き換わってしまう。そこで、小サイズページＩＤ「ｃ」のデータを残すために、新たに第２の大サイズページ２６１（以下、大サイズページ「０」として説明する。）をクローンボリューム「０」に割り当てて、退避データとして小サイズページＩＤ「ｃ」のデータを大サイズページ「０」に格納する。その後、大サイズページ「２」に格納されているプライマリボリューム「０」の小サイズページＩＤ「ｃ」のデータを上書きする。これにより、バックアップデータとして生成されたクローンボリューム「０」のデータを保持したまま、プライマリボリューム「０」に新たなデータを書き込みすることができる。
【００７０】
次に、図１５に示したデータ書き込みの後に、さらに、プライマリボリューム「０」にデータの書き込み処理が発生した場合のデータ格納方法について説明する。図１６では、クローンボリューム「０」とクローンボリューム「１」とは、それぞれ異なる時間帯にプライマリボリューム「０」のバックアップが取られた状態であり、いずれもステータスは、コピーされた状態のイメージを固定する「Ｓｐｌｉｔ」となっている。また、クローンボリューム「１」とプライマリボリューム「０」とは同じデータが格納されている状態である。
【００７１】
例えば、プライマリボリューム「０」の小サイズページＩＤ「ａ」のデータに、小サイズページのＩＤ「ｆ」のデータが書き込まれるとする。プライマリボリューム「０」の小サイズページＩＤ「ａ」のデータに小サイズページＩＤ「ｆ」のデータが上書きされると、小サイズページＩＤ「ａ」のデータを共有しているクローンボリューム「０」とクローンボリューム「１」の両方のデータも書き換わってしまう。そこで、小サイズページＩＤ「ａ」のデータを残すために、共有しているクローンボリュームのうち、削除時間が最も遅いクローンボリュームに割り当てる大サイズページに、「ａ」のデータを格納する。例えば、図１６において、クローンボリューム「０」よりもクローンボリューム「１」のほうが、削除時間が遅いとする。この場合、クローンボリューム「１」に割り当ててある大サイズページに「ａ」を格納する。ただし、クローンボリューム「１」に大サイズページが割り当てられていない場合、新たに第３の大サイズページ２６４（以下、大サイズページ「１」）として説明する。）をクローンボリューム「１」に割り当てる。
その後、大サイズページ「２」に格納されているプライマリボリューム「０」の小サイズページＩＤ「ａ」のデータを上書きする。これにより、クローンボリューム「０」とクローンボリューム「１」とに共有されている小サイズページＩＤ「ａ」のデータが、新たに割り当てられた大サイズページ「１」に格納されることとなる。
【００７２】
ここで、スナップショット機能により生成されたクローンボリュームの削除処理について説明する。一般的に、スナップショット機能のユースケースとしては、生成時期の古いクローンボリュームから削除される。ただし、クローンボリュームにより、保管期間が異なる場合がある。例えば、図１６に示すクローンボリュームのうち、先に生成されたクローンボリューム「０」が削除されるとする。クローンボリューム「０」が削除される際に、小サイズページに退避されたデータも不要なため削除される。ここで、小サイズページに退避した小サイズページＩＤ「ａ」のデータを、小サイズページＩＤ「ｃ」のデータを退避した大サイズページ「０」に格納したとする。この場合、小サイズページＩＤ「ｃ」のデータは削除することができるが、クローンボリューム「１」と共有している小サイズページＩＤ「ａ」のデータは削除することができないこととなる。結果として、大サイズページ「０」を解放することができず、共通プール２０１内でデータの断片化が起こってしまう。よって、削除単位となるクローンボリューム毎に大サイズページを割り当て、クローンボリューム間の共有ページは、共有するクローンボリュームのうち最後に削除されるものの大サイズページに格納することにより、クローンボリュームを削除する際に共通プール２０１内の断片化を防ぐことが可能となる。
【００７３】
次に、クローンボリュームにデータの書き込み処理が発生した場合のデータ格納方法について説明する。図１５又は図１６と同様に、削除単位であるクローンボリューム毎に大サイズページが割り当てられる。各クローンボリュームにデータのライト処理が発生した場合、クローンボリューム毎に割り当てられた大サイズページにライトされたデータを格納する。
【００７４】
図１７に示すように、クローンボリューム「０」には大サイズページ「０」が割り当てられ、クローンボリューム「１」には大サイズページ「１」が割り当てられ、クローンボリューム「２」には大サイズページ「２」が割り当てられていたとする。各クローンボリュームにデータのライト処理が発生すると、ライトされたデータが割り当てられた大サイズページにそれぞれ格納される。したがって、例えば、クローンボリューム「０」に割り当てられている大サイズページ「０」には、クローンボリューム「０」に関連するデータのみが格納されることとなる。これにより、大サイズページ「０」には、クローンボリューム「０」以外のクローンボリュームと共有するデータは格納されていないため、クローンボリューム「０」が削除された場合には、クローンボリューム「０」に対応付けられた大サイズページ「０」も削除することが可能となる。
【００７５】
（１−４）ストレージ装置の動作の詳細
次に、ストレージ装置２０の動作の詳細について説明する。以下では、ストレージ装置２０のストレージ制御プログラム２６によって実行されるボリューム管理処理について説明する。以下では、各種処理の処理主体をプログラムまたは、プログラムを構成する各部として説明するが、実際は、そのプログラム等に基づいてＭＰＵ２２がその処理を実行することは言うまでもない。
【００７６】
まず、ホスト装置１０からボリュームに対してリード処理が発生した場合の処理の処理手順について説明する。図１８に示すように、まず、ストレージ制御プログラム２６は、ＬＵＮ管理テーブル２６３を参照して、リード処理の対象となるボリュームがクローンボリュームか否かを判定する（Ｓ１０１）。具体的に、ストレージ制御プログラム２６は、ＬＵＮ管理テーブル２６３のクローンボリューム判定欄２６３３を参照して、リード処理の対象となるボリューム（ＨＬＵＮ）に対応するクローンボリューム判定欄２６３３に格納されている値をもとにクローンボリュームか否かを判定する。すなわち、クローンボリューム判定欄２６３３に「１」が格納されている場合にはクローンボリュームであると判定され、クローンボリューム判定欄２６３３に「０」が格納されている場合にはクローンボリュームでないと判定される。
【００７７】
ステップＳ１０１において、リード処理の対象となるボリュームがクローンボリュームであると判定された場合には、ストレージ制御プログラム２６は、論理ページ管理テーブル２６６を参照して、リード処理の対象となる論理ページＩＤに対応する小サイズページＩＤと大サイズページＩＤを取得する（Ｓ１０２）。一方、ステップＳ１０１において、リード処理の対象となるボリュームがクローンボリュームではないと判定された場合には、ストレージ制御プログラム２６は、シンプロビジョニングボリューム用のボリューム管理テーブル２７０を参照して、リード処理の対象となるホストページＮｏに対応する大サイズページＩＤを取得する（Ｓ１０３）。そして、ストレージ制御プログラム２６は、ステップＳ１０２またはステップＳ１０３において取得したページに格納されているデータをリードし（Ｓ１０４）、その後ボリュームリード処理を終了する。
【００７８】
続いて、ホスト装置１０からボリュームに対してライト処理が発生した場合の処理の処理手順について説明する。図１９に示すように、まず、ストレージ制御プログラム２６は、ＬＵＮ管理テーブル２６３を参照して、ライト処理の対象となるボリュームがクローンボリュームか否かを判定する（Ｓ１１１）。
【００７９】
ステップＳ１１１において、ライト処理の対象となるボリュームがクローンボリュームであると判定された場合には、ストレージ制御プログラム２６は、論理ページ管理テーブル２６６を参照して、ライト処理の対象となる論理ページＩＤに対応する共有数カウンタが「１」か否かを判定する（Ｓ１１２）。
【００８０】
ステップＳ１１２において、共有数カウンタが「１」であると判定された場合には、ステップＳ１２４の処理を実行する。一方、ステップＳ１１２において、共有数カウンタが「１」ではないと判定された場合には、ストレージ制御プログラム２６は、論理ページ管理テーブル２２６の共有数カウンタを「１」減算する（Ｓ１１３）。そして、ストレージ制御プログラム２６は、小サイズページを確保する（Ｓ１１４）。具体的に、ストレージ制御プログラム２６は、該当するクローンボリュームに割り当てられている大サイズページに含まれる小サイズページの空きページをデータの格納領域として割り当てる。ステップＳ１１４における小サイズページ割り当て処理については後で詳細に説明する。
【００８１】
そして、ストレージ制御プログラム２６は、該当するクローンボリュームのページ分割管理情報２６５を更新する（Ｓ１１５）。具体的に、ストレージ制御プログラム２６は、ステップＳ１１４において割り当てた小サイズページに対応するページ属性欄２６５１に「１」を格納し、対応する論理ページＩＤを論理ページＩＤ欄２６５２に格納する。そして、ストレージ制御プログラム２６は、属性カウンタ欄２６５３の値を「１」加算する。
【００８２】
一方、ステップＳ１１１において、ライト処理の対象となるボリュームがクローンボリュームでないと判定された場合には、ストレージ制御プログラム２６は、ＬＵＮ管理テーブル２６３のプライマリボリューム判定欄２６３４を参照して、ライト処理の対象となる大サイズページがプライマリボリュームか否かを判定する（Ｓ１１６）。そして、ストレージ制御プログラム２６は、ＬＵＮ管理テーブル該当するプライマリボリュームのプライマリボリューム管理情報２６８に含まれる退避領域ビットマップ２６８１を参照してライト先の小サイズページのビットが「Ｏｎ」であるか「Ｏｆｆ」であるかを判定する（Ｓ１１７）。ここで、小サイズページのビットが「Ｏｎ」である場合とは、データが既に退避されている状態を示す。一方、小サイズページのビットが「Ｏｆｆ」である場合とは、データが退避されていない状態である。
【００８３】
そして、ステップＳ１１７において、ビットマップが「Ｏｎ」であり、データが既に退避されていると判定された場合には、ストレージ制御プログラム２６は、ステップＳ１２３の処理を実行する。一方、ステップＳ１１７において、ビットマップが「Ｏｆｆ」でありデータが退避されていないと判定された場合には、ストレージ制御プログラム２６は、データが退避されているデータ格納先クローンボリュームを選択する（Ｓ１１８）。ステップ１１８におけるデータ格納先クローンボリュームの選択処理については後で詳細に説明する。
【００８４】
続いて、ストレージ制御プログラム２６は、ステップＳ１１８において選択したクローンボリュームに小サイズページを確保する（Ｓ１１９）。具体的に、ストレージ制御プログラム２６は、選択したクローンボリュームに対応付けられた大サイズページに含まれる小サイズページを割り当てる。ステップＳ１１９における小サイズページ割り当て処理については後で詳細に説明する。
【００８５】
次に、ストレージ制御プログラム２６は、ステップＳ１１９において確保した小サイズページに関する情報を更新する（Ｓ１２０）。具体的に、ストレージ制御プログラム２６は、論理ページ管理テーブル２６６の論理ページＩＤに対応する小サイズページＩＤと、小サイズページＩＤが属する大サイズページＩＤと共有数カウンタを更新する。そして、ストレージ制御プログラム２６は、退避するデータを共有しているクローンボリュームのページ分割管理情報２６５を更新する（Ｓ１２１）。そして、ストレージ制御プログラム２６は、ステップＳ１１９において確保した小サイズページに旧データを退避する（Ｓ１２２）。
【００８６】
続いて、ストレージ制御プログラム２６は、データのライト処理の対象となるシンプロビジョニングボリュームに対してデータライトの準備処理を実行する（Ｓ１２３）。ステップＳ１２３におけるデータライトの準備処理については後で詳細に説明する。
【００８７】
そして、ストレージ制御プログラム２６は、データのライト処理を実行する（Ｓ１２４）。そして、ストレージ制御プログラム２６は、ステップＳ１２４においてデータのライト処理を実行した後に、当該ボリュームに対するライトデータが残っているか確認する（Ｓ１２５）。
【００８８】
ステップＳ１２５において、ライトデータが残っていると判定された場合には、ストレージ制御プログラム２６は、ステップＳ１１１以降の処理を繰り返す。一方、ステップＳ１２５において、ライトデータが残っていないと判定された場合には、ボリュームのライト処理を終了する。
【００８９】
次に、図１９に示すステップＳ１１８のデータ格納先クローンボリュームの選択処理の処理手順について説明する。図２０に示すように、
プライマリボリューム管理テーブル２６８２の削除時間欄２６８４を参照して、共有している保管対象クローンボリュームのうち、削除時間が最も遅いクローンボリュームを選択し（Ｓ１３３）、その後、データ格納先クローンボリュームの選択処理を終了する。
【００９０】
次に、図１９に示すステップＳ１１４及びステップＳ１１９における小サイズページ割り当て処理について説明する。図２１に示すように、まず、ストレージ制御プログラム２６は、大サイズページ割り当て管理テーブル２６２を参照して、図１９のステップＳ１１８において選択されたクローンボリュームのＬＵＮに対応する大サイズページＩＤ欄２６２１に大サイズページＩＤが格納されているか否かを判定する（Ｓ１４１）。
【００９１】
ステップＳ１４１において、大サイズページＩＤがあると判定された場合には、ストレージ制御プログラム２６は、ステップＳ１４５の処理を実行する。一方、ステップＳ１４１において、大サイズページＩＤがないと判定された場合には、ストレージ制御プログラム２６は、大サイズページフリー管理キューの先頭エントリの大サイズページＩＤを取得する（Ｓ１４２）。そして、ストレージ制御プログラム２６は、共通プール管理テーブル２６１の該当する大サイズページＩＤに対応するページ属性とページ分割管理情報２６５へのポインタＩＤを更新する（Ｓ１４３）。
【００９２】
そして、ストレージ制御プログラム２６は、ステップＳ１４３において設定したポインタＩＤに対応するページ分割管理情報２６５と小サイズページフリー管理キュー２６９を新規に作成する（Ｓ１４４）。そして、ストレージ制御プログラム２６は、該当する大サイズページＩＤの小サイズページフリー管理キューの先頭エントリを取得する（Ｓ１４５）。
【００９３】
次に、図１９のステップＳ１２３におけるデータのライト処理の対象となるシンプロビジョニングボリュームに対するデータライトの準備処理について説明する。図２２に示すように、ストレージ制御プログラム２６は、大サイズページ割り当て管理テーブル２６２を参照して、図１９のステップＳ１１８において選択されたクローンボリュームのＬＵＮに対応する大サイズページＩＤ欄２６２１に大サイズページＩＤが格納されているか否かを判定する（Ｓ１５１）。
【００９４】
ステップＳ１５１において、大サイズページＩＤがあると判定された場合には、処理を終了する。一方、ステップＳ１５１において、大サイズページＩＤがないと判定された場合には、ストレージ制御プログラム２６は、大サイズページフリー管理キューの先頭エントリの大サイズページＩＤを取得する（Ｓ１５２）。そして、ストレージ制御プログラム２６は、共通プール管理テーブル２６１の該当する大サイズページＩＤに対応するページ属性とページ分割管理情報２６５へのポインタＩＤを更新し（Ｓ１５３）、その後、シンプロビジョニングボリュームに対するデータライトの準備処理を終了する。
【００９５】
次に、ボリュームの削除処理について説明する。図２３に示すように、まず、ストレージ制御プログラム２６は、ＬＵＮ管理テーブル２６３を参照して、削除対象として指定されたボリューム（ＨＬＵＮ欄２６３１に格納されている論理ボリューム番号）がプライマリボリュームかを判定する（Ｓ２０１）。
【００９６】
ステップＳ２０１において、削除対象として指定されたボリュームがプライマリボリュームでないと判定された場合には、ストレージ制御プログラム２６は、ＬＵＮ管理テーブル２６３を参照して、当該ボリュームがクローンボリュームか否かを判定する（Ｓ２０２）。一方、ステップＳ２０１において、削除対象として指定されたボリュームがプライマリボリュームであると判定された場合には、ストレージ制御プログラム２６は、削除不可（Ｓ２０７）であるとして、処理を終了する。ステップＳ２０７において、プライマリボリュームである場合に、当該ボリュームを削除不可あるとするかは、スナップショット機能のポリシーに応じて削除するか否かを判断してもよい。
【００９７】
そして、ステップＳ２０２において、当該ボリュームがクローンボリュームであると判定された場合には、ストレージ制御プログラム２６は、削除対象のクローンボリュームのボリューム管理テーブル２６７に何らかの情報が格納されているか否かを判定する（Ｓ２０３）。一方、ステップＳ２０２において、当該ボリュームがクローンボリュームでないと判定された場合には、使用済み大サイズページを削除する処理を実行する（２０８）。ステップＳ２０８における使用済み大サイズページの削除処理については後で詳細に説明する。
【００９８】
そして、ステップＳ２０３において、削除対象のクローンボリュームのボリューム管理テーブル２６７に何らかの情報が格納されていると判定された場合には、ストレージ制御プログラム２６は、ボリューム管理テーブル２６７の論理ページＩＤ欄１６７１に格納されている論理ページＩＤを、論理ページ管理テーブル２６６から探索して、論理ページＩＤに対応する共有数カウンタを「１」減算する（Ｓ２０４）。そして、ストレージ制御プログラム２６は、ステップＳ２０４において、共有数カウンタを「１」減算した結果、当該共有数カウンタが「０」となっているかを判定する（Ｓ２０５）。一方、ステップＳ２０３において、削除対象のクローンボリュームのボリューム管理テーブル２６７に何も情報が格納されていないと判定された場合には、ステップＳ２０９の処理を実行する。
【００９９】
そして、ステップＳ２０５において、共有数カウンタが「０」となっていると判定された場合には、使用済み大サイズページ・小サイズページを削除する処理を実行する（Ｓ２０６）。ステップＳ２０６における使用済み大サイズページ・小サイズページの削除処理については後で詳細に説明する。その後、ストレージ制御プログラム２６は、削除対象として指定されたボリュームのボリューム管理テーブルを削除して（Ｓ２０９）、ボリュームの削除処理を終了する。具体的に、ストレージ制御プログラム２６は、削除対象として指定されたボリュームがクローンボリュームの場合には、クローンボリューム用のボリューム管理テーブル２６７を削除し、削除対象として指定されたボリュームがシンプロビジョニングボリュームの場合には、シンプロビジョニング用のボリューム管理テーブル２７０を削除する。
【０１００】
次に、図２３のステップＳ２０６における使用済み大・小サイズページの削除処理について説明する。図２４に示すように、まず、ストレージ制御プログラム２６は、論理ページ管理テーブル２６６において共有数が「０」となった論理ページＩＤを削除する（Ｓ２１０）。そして、ステップＳ２１０において論理ページＩＤを削除した大サイズページＩＤと小サイズページＩＤを取得する（Ｓ２１１）。そして、ストレージ制御プログラム２６は、共通プール管理テーブル２６１を参照して、ステップＳ２１１において取得した大サイズページＩＤに対応するページ分割管理情報２６５へのポインタＩＤを取得する（Ｓ２１２）。
【０１０１】
そして、ストレージ制御プログラム２６は、ステップＳ２１２において取得したポインタＩＤに対応するページ分割管理情報２６５に含まれるページ分割管理テーブル２６５Ａを参照して、ステップＳ２１１において取得した小サイズページＩＤに対応するページ属性欄２６５１に「０」を格納し、論理ページＩＤ欄２６５２に「ｎｕｌｌ」を格納し、さらに、当該小サイズページを小サイズページフリー管理キュー２６９に追加する（Ｓ２１３）。そして、ストレージ制御プログラム２６は、ページ分割管理情報２６５の属性カウンタテーブル２６５Ｂの属性カウンタを更新する（Ｓ２１４）。具体的に、ストレージ制御プログラム２６は、ステップＳ２１３において、ページ分割管理テーブル２６５Ａにおいて更新した小サイズページのページ数を属性カウンタから減算する。
【０１０２】
そして、ストレージ制御プログラム２６は、ステップＳ２１４において更新した後の属性カウンタテーブル２６５Ｂに格納されている属性カウンタが「０」かを判定する（Ｓ２１５）。ステップＳ２１５において、属性カウンタが「０」であると判定された場合には、ストレージ制御プログラム２６は、当該ページ分割管理情報２６５に対応する小サイズページフリー管理キュー２６９のメモリを解放する（Ｓ２１６）。そして、ページ分割管理情報２６５のポインタを解放する（Ｓ２１７）。さらに、ストレージ制御プログラム２６は、ステップＳ２１１において取得した大サイズページＩＤを大サイズページフリー管理キュー２６４のエントリに追加する（Ｓ２１８）。そして、ストレージ制御プログラム２６は、共通プール管理テーブル２６１を更新して（Ｓ２１９）、使用済み大・小サイズページの削除処理を終了する。具体的に、ストレージ制御プログラム２６は、共通プール管理テーブル２６１の削除対象である大サイズページＩＤに対応するページ属性欄２６１１に「０」を格納し、ポインタＩＤ欄２６１２に「ｎｕｌｌ」を格納する。
【０１０３】
また、ステップＳ２１５において、属性カウンタが「０」ではないと判定された場合には、大サイズページを解放することができないため、使用済み大・小サイズページの削除処理を終了する。
【０１０４】
次に、図２３のステップＳ２０８におけるシンプロビジョニングボリューム用の使用済み大サイズページ削除処理について説明する。図２５に示すように、まず、ストレージ制御プログラム２６は、削除対象であるボリュームの管理情報が削除済みかを判断するため、シンプロビジョニング用のボリューム管理テーブル２７０に該当するホストページ番号（Ｈｏｓｔ  ＬＢＡ）がボリューム管理テーブル２６７に格納されているかを判定する（Ｓ２２０）。ステップＳ２２０において、該当するホストページ番号がボリューム管理テーブル２６７に格納されていると判定された場合には、当該ボリュームの大サイズページＩＤを大サイズページフリー管理キュー２６４のエントリに追加する（Ｓ２２１）。
【０１０５】
そして、ストレージ制御プログラム２６は、共通プール管理テーブル２６１の削除対象である大サイズページＩＤを探索し、当該大サイズページＩＤに対応するページ属性欄２６１１に「０」を格納し、ポインタＩＤ欄２６１２に「ｎｕｌｌ」を格納して、共通プール管理テーブル２６１を更新する（Ｓ２２２）。続いて、ストレージ制御プログラム２６は、シンプロビジョニングボリューム用のボリューム管理テーブル２７０から、削除対象であるボリュームのホストページ番号（Ｈｏｓｔ  ＬＢＡ）と大サイズページＩＤとを削除する（Ｓ２２３）。
【０１０６】
そして、ストレージ制御プログラム２６は、ステップＳ２２０に戻り、該当するホストページ番号がボリューム管理テーブル２６７に格納されていないと判定された場合には、使用済み大サイズページ削除処理を終了する。
【０１０７】
（１−５）本実施の形態の効果
以上のように、本実施の形態による計算機システム１では、ストレージ装置１０の共通プール２０１を本発明の第１のページに相当する大サイズページに分割し、さらに、大サイズページを本発明の第２のページに相当する小サイズページに分割して管理し、本発明の第１のボリュームに相当するシンプロビジョニングボリュームを大サイズページで管理し、本発明の第２のボリュームに相当するクローンボリュームを小サイズページで管理する。そして、ホスト装置１０からデータの書き込みがあった場合に、シンプロビジョニングボリュームのデータ格納領域には大サイズページを割り当てる。また、スナップショット機能によりボリュームコピーが行われた場合には、コピー先のボリュームに大サイズページを割り当てて、さらに、コピー元のデータとコピー先のデータとの差分データを、当該大サイズページを分割した小サイズページに格納する。これにより、単一のプール内で異なるページサイズの記憶領域を管理することが可能となり、同一プール内で空き容量を効率よく使用することができる。また、削除対象となるボリューム毎に大サイズページが割り当てられるため、ボリュームが削除される際にプール内の断片化を防止することが可能となる。
【０１０８】
（２）第２の実施の形態
第２の実施の形態にかかる計算機システム２は、計算機システムのハードウェア構成及び各装置のハードウェア構成は第１の実施の形態にかかる計算機システム１と同様に構成されている。以下では、第１の実施の形態と異なる点について特に詳細に説明する。
【０１０９】
本実施の形態では、大サイズページを複数のボリュームが共有する点で第１の実施の形態と異なっている。本実施の形態では、図２６に示すように、例えば、クローンボリューム「０」、クローンボリューム「１」、クローンボリューム「２」に対して、３つのクローンボリュームに共有される大サイズページ「１」が割り振られている。具体的に、複数のクローンボリュームに対して共通の大サイズページが割り振られる場合には、図１１に示す大サイズページ割り当て管理テーブル２６２において、複数のＬＵＮに対して同一の大サイズページＩＤが設定されることとなる。
【０１１０】
このように、複数のクローンボリュームに共有される大サイズページを割り振ることにより、容量効率を向上させることが可能となる。特に、同時に削除するボリュームが複数存在する場合には、共通プール２０１内のデータの断片化を防止しつつ、容量効率を向上させることが可能となる。
【０１１１】
（３）第３の実施の形態
第３の実施の形態にかかる計算機システム３は、計算機システムのハードウェア構成及び各装置のハードウェア構成は第１の実施の形態にかかる計算機システム１と同様に構成されている。以下では、第１の実施の形態と異なる点について特に詳細に説明する。
【０１１２】
本実施の形態では、複数ボリュームにおいて、各ボリュームに割り当てられている大サイズページをＲＡＩＤグループ間で分散させる点で第１の実施の形態と異なっている。本実施形態では、図２７に示すように、例えば、クローンボリューム「０」について、差分データの格納場所としてＲＡＩＤグループ「０」とＲＡＩＤグループ「１」を利用することができるとする。この場合、クローンボリューム「０」に新規に大サイズページを割り当てる際には、大サイズページＩＤ「３」の大サイズページと大サイズページＩＤ「４」の大サイズページを同時に割り当てる。具体的に、１つのクローンボリュームに対して複数の大サイズページが割り振られる場合には、図１１に示す大サイズページ割り当て管理テーブル２６２において、１つのＬＵＮに対して複数の大サイズページＩＤが設定されることとなる。また、小サイズページＩＤを選択する場合は、複数の大サイズページＩＤから交互に選択する。
【０１１３】
このように、１つのボリュームに複数の大サイズページを割り当てることにより、１つのＲＡＩＤグループに１つのボリュームのデータが集中的に格納されることを避けることができる。これにより、ボリューム管理における性能向上を実現させることが可能となる。
【０１１４】
（４）第４の実施の形態
第４の実施の形態にかかる計算機システム４は、計算機システムのハードウェア構成及び各装置のハードウェア構成は第１の実施の形態にかかる計算機システム１と同様に構成されている。以下では、第１の実施の形態と異なる点について特に詳細に説明する。
【０１１５】
本実施の形態では、共通プール２０１の容量が枯渇した場合に以下の処理を実行する。図２８に示すように、まず、ストレージ制御プログラム２６は、共通プール２０１の容量が枯渇したことをユーザに知らせるために、ストレージ管理ツール上でアラートを出力する（Ｓ３０１）。そして、ストレージ制御プログラム２６は、共通プール２０１の容量枯渇に対するユーザ指示の入力を受け付ける（Ｓ３０２）。
【０１１６】
そして、ストレージ制御プログラム２６は、ステップＳ３０２において入力されたユーザ指示が、ディスク追加の指示か、クローンボリュームの削除指示かを判定する（Ｓ３０３）。ステップＳ３０３において、ユーザ指示がディスク追加の指示であると判定された場合には、ユーザの操作等により、ディスクが追加される（Ｓ３０４）。一方、ステップＳ３０３において、クローンボリュームの削除指示であると判定された場合には、ストレージ制御プログラム２６は、削除対象となるクローンボリュームをユーザ入力に応じて選択する（Ｓ３０５）。ステップＳ３０５において、ストレージ制御プログラム２６が、所定のポリシーに基づいて削除対象となるクローンボリュームを選択するようにしてもよい。そして、ストレージ制御プログラム２６は、ステップＳ３０５において選択したクローンボリュームを削除する（Ｓ３０６）。
【０１１７】
最後に、ストレージ制御プログラム２６は、共通プール２０１の容量枯渇が解消されたかを判定する（Ｓ３０７）。ステップＳ３０７において、共通プール２０１の容量枯渇が解消されていないと判定された場合には、ストレージ制御プログラム２６は、ステップＳ３０１以降の処理を繰り返す。一方、ステップＳ３０７において、共通プール２０１の容量枯渇が解消されたと判定された場合には処理を終了する。
【０１１８】
上記した共通プール２０１の容量枯渇対応処理を実行することにより、共通プール２０１の容量が枯渇した場合に、ユーザに何らかの警告を通知して、ユーザの指示に応じてディスクを追加したり、クローンボリュームを削除したりすることにより、共通プール２０１の容量が枯渇した場合に適切な処理を行うことが可能となる。
【０１１９】
（５）他の実施の形態
上述の実施形態においては、ストレージ装置２０に格納されている各種プログラムに基づいて、ストレージ装置２０のＭＰＵ２２が本発明の各種機能を実現しているが、かかる例に限定されない。例えば、ＭＰＵ２２をストレージ装置２０とは別体の他の装置に設けて、当該ＭＰＵと協同して各種機能を実現するようにしてもよい。また、ストレージ装置２０に格納されている各種プログラムをストレージ装置２０とは別体の他の装置に設けて、当該プログラムがＭＰＵ２２に呼び出されることにより各種機能を実現するようにしてもよい。
【０１２０】
また、例えば、本明細書のストレージ装置２０等の処理における各ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はない。すなわち、ストレージ装置２０等の処理における各ステップは、異なる処理であっても並列的に実行されてもよい。
【０１２１】
また、ストレージ装置２０等に内蔵されるＣＰＵ、ＲＯＭ及びＲＡＭなどのハードウェアを、上述したストレージ装置２０等の各構成と同等の機能を発揮させるためのコンピュータプログラムも作成可能である。また、該コンピュータプログラムを記憶させた記憶媒体も提供される。
【産業上の利用可能性】
【０１２２】
本発明は、シンプロビジョニング機能及びスナップショット機能を利用するストレージ装置に適用することができる。
【符号の説明】
【０１２３】
１        計算機システム
１０      ホスト装置
２０      ストレージ装置
２１      ストレージコントローラ
２３      メモリ
２４      構成情報
２５      キャッシュ領域
２６      ストレージ制御プログラム
２７      管理端末インタフェース部
２８      ホストインタフェース部
２９      ドライブインタフェース部
３０      管理端末
４０      ネットワーク
【図１】
0005666710.tif 000002
【図２】
0005666710.tif 000003
【図３】
0005666710.tif 000004
【図４】
0005666710.tif 000005
【図５】
0005666710.tif 000006
【図６】
0005666710.tif 000007
【図７】
0005666710.tif 000008
【図８】
0005666710.tif 000009
【図９】
0005666710.tif 000010
【図１０】
0005666710.tif 000011
【図１１】
0005666710.tif 000012
【図１２】
0005666710.tif 000013
【図１３】
0005666710.tif 000014
【図１４】
0005666710.tif 000015
【図１５】
0005666710.tif 000016
【図１６】
0005666710.tif 000017
【図１７】
0005666710.tif 000018
【図１８】
0005666710.tif 000019
【図１９】
0005666710.tif 000020
【図２０】
0005666710.tif 000021
【図２１】
0005666710.tif 000022
【図２２】
0005666710.tif 000023
【図２３】
0005666710.tif 000024
【図２４】
0005666710.tif 000025
【図２５】
0005666710.tif 000026
【図２６】
0005666710.tif 000027
【図２７】
0005666710.tif 000028
【図２８】
0005666710.tif 000029