(57)【特許請求の範囲】
【請求項１】
仮想ディスクを用いてデータを管理するストレージ装置であって、
データを無圧縮で格納する第１データ格納領域と、データを圧縮して格納する第２データ格納領域とを含む格納領域と、
前記データの前記仮想ディスク上の領域と前記データに基づいて算出される特定値とを関連付けて管理する第１の管理部と、
前記格納領域に格納されるデータの領域と前記特定値とを関連付けて管理する第２の管理部と、
上位装置から前記仮想ディスク上の領域を指定したライトデータを受信した場合、当該ライトデータに基づいて前記第１の管理部で管理される特定値を算出し、当該算出した特定値と一致する特定値が前記第２の管理部で管理されているか否かを判断し、管理されていると判断した場合、前記一致する特定値を用いて前記第１の管理部で管理される仮想ディスクの領域と前記第２の管理部で管理されるデータの領域とを関連付け、前記格納領域への前記ライトデータの格納処理を回避する処理部と、
前記第１データ格納領域及び前記第２データ格納領域に格納されたデータへのアクセス回数を示すアクセス回数情報を監視し、前記第１データ格納領域に対するアクセス回数情報が所定回数以下を示す場合、当該第１データ格納領域に格納されるデータを圧縮し、当該圧縮データを前記第２データ格納領域に格納すると共に前記データを格納している第１データ格納領域を開放し、前記第２データ格納領域に対するアクセス回数情報が所定回数以上を示す場合、当該第２データ格納領域に格納している圧縮データに対応する無圧縮データを前記第１データ格納領域に格納すると共に前記圧縮データを格納している第２データ格納領域を開放するデータ圧縮部と、を備え、
前記データ圧縮部は、前記アクセス回数情報を監視してストレージ装置の負荷が軽くなった時にバックグラウンドで前記第１データ格納領域に格納されるデータの圧縮を行う、ことを特徴とするストレージ装置。
【請求項２】
前記処理部は、前記上位装置から前記ライトデータの削除指示を受信した場合、前記一致する特定値を用いた前記第１の管理部と前記第２の管理部との関連づけを解消する、ことを特徴とする請求項１記載のストレージ装置。
【請求項３】
前記仮想ディスクは、当該仮想ディスクのデータを複製する他の仮想ディスクとペアとなるよう構成され、
前記仮想ディスクと前記他の仮想ディスクとのペア構成中に、前記上位装置から前記仮想ディスクを介してライトデータを受信した場合、前記処理部は、前記第１の管理部で管理されるデータを前記他の仮想ディスクに対応づけられた第１の管理部に複製し、前記ペアが解除された場合、前記格納領域に格納されるデータを前記他の仮想ディスクに対応づけられた格納領域に複製する、ことを特徴とする請求項１又は２記載のストレージ装置。
【請求項４】
前記仮想ディスクの１以上のスナップショットを管理する第３の管理部を備え、
前記第１の管理部は、前記１以上のスナップショット毎に前記特定値を管理し、
前記処理部は、前記上位装置から所定の世代のスナップショットの出力を指示された場合、前記第１の管理部に管理される特定値、前記第２の管理部に管理される特定値、及び前記第３の管理部に管理される管理情報に基づいて、前記所定の世代のスナップショットを出力する、ことを特徴とする請求項１又は２記載のストレージ装置。
【請求項５】
仮想ディスクを用いてデータを管理するストレージ装置の記憶資源の使用効率向上方法であって、
前記ストレージ装置は、
データを無圧縮で格納する第１データ格納領域と、データを圧縮して格納する第２データ格納領域とを含む格納領域と、
前記データの前記仮想ディスク上の領域と前記データに基づいて算出される特定値とを関連付けて管理する第１の管理部と、
前記格納領域に格納されるデータの領域と前記特定値とを関連付けて管理する第２の管理部とを備えるものであり、
上位装置から前記仮想ディスク上の領域を指定したライトデータを受信した場合、当該ライトデータに基づいて前記第１の管理部で管理される特定値を算出するステップと、
当該算出した特定値と一致する特定値が前記第２の管理部で管理されているか否かを判断するステップと、
前記ステップで管理されていると判断した場合、前記一致する特定値を用いて前記第１の管理部で管理される仮想ディスクの領域と前記第２の管理部で管理されるデータの領域とを関連付け、前記格納領域への前記ライトデータの格納処理を回避するステップと、
前記第１データ格納領域及び前記第２データ格納領域に格納されたデータへのアクセス回数を示すアクセス回数情報を監視するステップと、
前記監視される前記第１データ格納領域に対するアクセス回数情報が所定回数以下を示す場合、前記ストレージ装置の負荷が軽くなった時にバックグラウンドで、前記当該第１データ格納領域に格納されるデータを圧縮し、当該圧縮データを前記第２データ格納領域に格納すると共に前記データを格納している第１データ格納領域を開放するステップと、
前記監視される前記第２データ格納領域に対するアクセス回数情報が所定回数以上を示す場合、当該第２データ格納領域に格納している圧縮データに対応する無圧縮データを前記第１データ格納領域に格納すると共に前記圧縮データを格納している第２データ格納領域を開放するステップと、
を有することを特徴とするストレージ装置の記憶資源の使用効率向上方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置及びストレージ装置の記憶資源の使用効率向上方法に関する。
【背景技術】
【０００２】
ストレージ装置において、シン・プロビジョニング機能を用いて記憶資源を有効に活用する技術が知られている。シン・プロビジョニング機能は、アプリケーションやサーバに割り当てられている記憶容量を、実際に割り当てられている物理ストレージのディスク容量よりも多く使えるように見せる技術である。
【０００３】
また、複数のネットワークストレージを仮想的に一元化する方法で、アクセスする対象のオブジェクトの論理的な識別子から生成されるハッシュ値に基づきオブジェクトを格納するネットワークストレージを決定し、オブジェクトのアクセス時にオブジェクトの論理的な識別子のハッシュ値を計算することで、アクセス要求を処理すべきネットワークストレージを決定する方法が知られている。この方法によると、オブジェクトの格納位置の情報を管理サーバに問い合わせることなく取得することができる（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２１６４７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
シン・プロビジョニング機能を使用することによって、ストレージ装置は、実際の記憶容量より多くの容量をアプリケーションやサーバに使えるように見せることができる。しかしながら、シン・プロビジョニング機能では、未割当てのブロックへデータの書き込みがあった場合、データを当該ブロックに常に割り付けるように構成されている。よって、ストレージ装置は、書き込みがあったデータと同じデータがいずれかの領域に存在していても必ずデータをブロックに割り付ける処理を行う。従って、シン・プロビジョニング機能を有するストレージ装置であっても、使用効率という点においては、まだ改善の余地がある。
【０００６】
また、上記特許文献１に記載の技術は、ストレージ装置の記憶資源の使用効率を向上させるものではない。
【０００７】
本発明は、上記事情に鑑みてなされたものであり、その目的は、記憶資源の使用効率を向上させることができるストレージ装置及びストレージ装置の記憶資源の使用効率向上方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、仮想ディスクを用いてデータを管理するストレージ装置であって、データを格納する格納領域と、データの仮想ディスク上の領域とデータに基づいて算出される特定値とを関連付けて管理する第１の管理部と、格納領域に格納されるデータの領域と特定値とを関連付けて管理する第２の管理部と、上位装置から仮想ディスク上の領域を指定したライトデータを受信した場合、当該ライトデータに基づいて第１の管理部で管理される特定値を算出し、当該算出した特定値と一致する特定値が第２の管理部で管理されているか否かを判断し、管理されていると判断した場合、一致する特定値を用いて第１の管理部で管理される仮想ディスクの領域と第２の管理部で管理されるデータの領域とを関連付け、格納領域へのライトデータの格納処理を回避する処理部と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によると、記憶資源の使用効率を向上させることができるストレージ装置及びストレージ装置の記憶資源の使用効率向上方法を提供できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１の実施の形態に係るストレージ装置の全体構成を示す図である。
【図２】同第１の実施の形態に係るストレージ装置のコントローラ部の構成を示す図である。
【図３】同第１の実施の形態に係るストレージ装置の実データ格納領域を示す図である。
【図４】同第１の実施の形態に係るストレージ装置の処理を示すフローチャートである。
【図５】本発明の第２の実施の形態に係るレプリケーション処理を説明するための図である。
【図６】本発明の第３の実施の形態に係るスナップショット処理を説明するための図である。
【発明を実施するための形態】
【００１１】
以下、本発明の各実施の形態について図面を参照しながら説明する。
【００１２】
（第１の実施の形態）
図１は、ストレージ装置１０の構成を示す図である。同図に示すように、ストレージ装置１０は、コントローラ部１００と、実データ格納領域２００とを有している。コントローラ部１００は、実データ格納領域２００へのデータの格納を制御する。実データ格納領域２００は、実データを格納する領域である。なお、ストレージ装置１０の他の構成については従来よりあるものと同様であるため詳細な説明は省略する。
【００１３】
また、ストレージ装置１０は、上位装置２０と通信可能に接続されている。上位装置２０は、ストレージ装置１０に対してライトコマンドを送信し、又は、ストレージ装置へリードコマンドを送信する。
【００１４】
次に、図２を参照してコントローラ部１００について説明する。図２は、コントローラ部１００の機能を説明するための図である。
【００１５】
コントローラ部１００は、処理部１１０、仮想ディスクである論理ディスク１２０，１４０、第１の管理部であるインデックステーブル１３０，１５０、及びハッシュ算出部１６０を有している。なお、図２においては、説明の簡略化のため論理ディスク，インデックステーブルはそれぞれ２つしか図示していない。
【００１６】
処理部１１０は、上位装置２０からライト命令を受信した場合、より詳細には、論理ディスク１２０（又は１４０）上の領域を指定したライトデータを受信した場合、当該ライトデータを実データ格納領域２００に格納する処理を行う。
【００１７】
論理ディスク１２０は、仮想的に構成されたディスクである。上位装置２０は論理ディスクの所定の領域に対してデータを書き込む。このように論理ディスクに対してデータが書き込まれた場合、当該ライトデータが処理部１１０によって処理され、当該ライトデータは、当該所定の領域と対応する実データ格納領域２００の所定の領域に格納される。なお、論理ディスク１４０も同様な説明となるため詳細な説明は省略する。
【００１８】
インデックステーブル１３０は、論理ディスク１２０と対応して設けられるテーブルであり、論理ブロックアドレス（ＬＢＡ）を保持するフィールド１３１と、ハッシュ算出部１６０で算出されるハッシュ値を保持するフィールド１３２とを有している。処理部１１０は、フィールド１３１に保持される論理ブロックアドレスとフィールド１３２に保持されるハッシュ値とを関連付けて管理する。なお、インデックステーブル１５０の説明は、実質的にインデックステーブル１３０の説明と同様になるため詳細な説明は省略する。
【００１９】
ハッシュ算出部１６０は、論理ディスク１２０（又は１４０）に対して上位装置２０からデータ書き込まれた場合、キャッシュ（図示を省略する。）に保持された当該ライトデータに基づいて特定値であるハッシュ値を算出する。所定のデータに基づいてハッシュ値を算出する技術については、従来よりあるものと同様であるため説明は省略する。
【００２０】
次に、図３を参照して実データ格納領域２００について説明する。図３は、実データ格納領域２００の機能を説明するための図である。
【００２１】
実データ格納領域２００は、既述のようにデータ及び各種情報を格納する領域である。実データ格納領域２００は、第２の管理部であるデータブロック情報ノード領域２１０と、無圧縮データ領域２３０と、圧縮データ領域２４０と、データ圧縮部２５０とを有している。無圧縮データ領域２３０及び圧縮データ領域２４０は、データを格納する記憶資源になっている。
【００２２】
データブロック情報ノード領域２１０は、実データ格納領域２００に格納されるデータブロック毎の情報ノードを保持する領域である。情報ノード２２０は、ハッシュ値毎に種々の情報を含むものであり、本実施の形態においては、情報ノード２２０は、リンク数２２１、アクセス情報２２２、ロケーション２２３、及びロケーション２２４を有して構成される。
【００２３】
リンク数２２１は、リンクするインデックステーブルの数を示す。したがって、リンク数が“１”なら当該ハッシュ値は、１つのインデックステーブルとリンク付けられていることを示し、リンク数が“２”なら当該ハッシュ値は、２つのインデックステーブルとリンク付けられていることを示している。
【００２４】
アクセス情報２２２は、実データ格納領域２００に格納されているデータブロックへアクセスした回数（例えば、所定期間内のアクセス回数、つまり、アクセス頻度）を示している。
【００２５】
ロケーション２２３は、実データを格納する無圧縮データ領域２３０の所定の領域を示すポインタである。また、ロケーション２２４は、圧縮されたデータを格納する圧縮データ領域２４０の所定の領域を示すポインタである。
【００２６】
無圧縮データ領域２３０は、実データを格納する領域である。圧縮データ領域２４０は、無圧縮データ領域２３０に記憶されるデータを圧縮した実データを格納する領域である。
【００２７】
データ圧縮部２５０は、各情報ノード２２０のアクセス情報２２２を参照し、アクセス頻度の低い情報ノード２２０について、ロケーション２２３に格納されているデータの圧縮を行い、圧縮データを生成し、この生成した圧縮データを圧縮データ領域２４０に格納する。この圧縮データを格納した領域を示すポインタがロケーション２２４に格納される。なお、データ圧縮部２５０は、圧縮データ領域２４０に圧縮データを格納した場合、当該無圧縮データが格納されていたロケーションの領域を開放する処理を行う。
【００２８】
次に、上位装置２０から論理ディスク１２０上の領域を指定してデータが書き込まれる場合のストレージ装置１０の処理について、図４を参照して説明する。
【００２９】
先ず、処理部１１０は、ライトデータの論理ブロックアドレスが、既に情報ノード２２０とリンク済みのアドレスであるか否かを判定する（Ｓ１１）。
【００３０】
論理ブロックアドレスがリンク済みでないと判定した場合（Ｓ１１：ＮＯ）、ハッシュ算出部１６０は、キャッシュ（図示を省略する。）に保持されたライトデータに基づいて、ハッシュ値を算出する（Ｓ１２）。
【００３１】
次に、処理部１１０は、ハッシュ算出部１６０が算出したハッシュ値を当該論理ブロックアドレスと関連付けて、インデックステーブル１３０に保持する（Ｓ１３）。
【００３２】
次に、処理部１１０は、当該ハッシュ値と同値のハッシュ値を有する情報ノード２２０がデータブロック情報ノード領域２１０にあるか否かを判定する（Ｓ１４）。
【００３３】
同値のハッシュ値があると判定した場合（Ｓ１４：ＹＥＳ）、処理部１１０は、当該情報ノード２２０とインデックステーブル１３０の当該論理ブロックアドレスとをリンクし、当該情報ノード２２０のリンク数をインクリメントする（Ｓ１５）。
【００３４】
同値のハッシュ値がないと判定した場合（Ｓ１４：ＮＯ）、処理部１１０は、データブロック情報ノード領域２１０に新たな情報ノード２２０を追加し、無圧縮データ領域２３０にデータブロックの内容を書き込んだ後、当該書き込んだロケーションを示すポインタをロケーション２２３に格納する（Ｓ１６）。
【００３５】
また、処理部１１０は、ステップＳ１６のデータブロックの書き込み終了時に、情報ノード２２０とインデックステーブル１３０の当該論理ブロックアドレスとをリンクし、リンク数２２１を“１”にインクリメントする（Ｓ１７）。
【００３６】
一方、ステップＳ１１において、論理ブロックアドレスがリンク済みであると判定した場合、つまりデータの上書きである場合（Ｓ１１：ＹＥＳ）、ハッシュ算出部１６０は、上書きするデータに基づいて、ハッシュ値を算出する（Ｓ１８）。
【００３７】
次に、処理部１１０は、ハッシュ算出部１６０が算出したハッシュ値を当該論理ブロックアドレスに関連付けて、インデックステーブル１３０に保持する（Ｓ１９）。
【００３８】
次に、処理部１１０は、当該ハッシュ値と同値のハッシュ値を有する情報ノード２２０がデータブロック情報ノード領域２１０にあるか否かを判定する（Ｓ２０）。
【００３９】
同値のハッシュ値があると判定した場合（Ｓ２０：ＹＥＳ）、処理部１１０は、リンク済みの情報ノード、つまり、上書きされるデータに対応する情報ノード２２０とインデックステーブル１３０の当該論理ブロックアドレスとのリンクを解除し、当該情報ノード２２０のリンク数２２１をデクリメントする（Ｓ２１）。
【００４０】
次に、処理部１１０は、ステップＳ１８で算出したハッシュ値を有する情報ノード２２０とインデックステーブル１３０の当該論理ブロックアドレスとをリンクし、当該情報ノード２２０のリンク数２２１をインクリメントする（Ｓ２２）。
【００４１】
一方、処理部１１０は、同値のハッシュ値がないと判定した場合（Ｓ２０：ＮＯ）、処理部１１０は、データブロック情報ノード領域２１０に新たな情報ノード２２０を追加し、無圧縮データ領域２３０にデータブロックの内容を書き込んだ後、当該書き込んだロケーションを示すポインタをロケーション２２３に格納する（Ｓ２３）。
【００４２】
また、処理部１１０は、ステップＳ１６のデータブロックの書き込み終了時に、情報ノード２２０とインデックステーブル１３０の当該論理ブロックアドレスとをリンクし、リンク数２２１を“１”にインクリメントする（Ｓ２４）。
【００４３】
次に、ストレージ装置１０がデータを消去する指示を受信した場合について説明する。処理部１１０は、上位装置２０から例えば論理ディスク１２０の所定のデータを消去する指示を受信した場合、当該消去の対象となるインデックステーブル１３０の論理ブロックアドレスと、当該論理ブロックアドレスとリンクされている情報ノード２２０とのリンクを解除し、当該情報ノード２２０のリンク数２２１をデクリメントする。
【００４４】
なお、実データ格納領域２００においては、情報ノード２２０のリンク数２２１がデクリメントされた結果、リンク数が“０”になった場合、当該情報ノード２２０のデータ領域（ロケーション２２３、又はロケーション２２４）は、開放される。
【００４５】
以上のように、処理部１１０は、上位装置２０からの指示に基づいて、論理ディスク１２０を介して実データ格納領域２００へのデータの書き込み、又はデータの消去を行う。
【００４６】
次に、実データ格納領域２００に格納されたデータを圧縮する処理ついて説明する。
【００４７】
データ圧縮部２５０は、データブロック情報ノード領域２１０内の各情報ノード２２０のアクセス情報２２２を監視し、ストレージ装置１０の負荷が軽くなった時にバックグラウンドでアクセス頻度の低いデータを圧縮する処理を行う。
【００４８】
この圧縮する処理は、より詳細には、データ圧縮部２５０がロケーション２２３に格納されているアクセス頻度の低いデータブロックを圧縮して圧縮データを生成し、この生成したデータを圧縮データ領域２４０に格納し、この圧縮データを格納したロケーションをロケーション２２４に格納するとともに、当該データブロックを格納していた無圧縮データ領域２３０を開放することにより行われる。
【００４９】
このようにアクセス頻度の低いデータブロックが無圧縮データ領域２３０から圧縮データ領域２４０へ移動されるため、無圧縮データ領域２３０は、データブロックのアクセス頻度に応じてリサイクルされ、有効活用される。
【００５０】
また、圧縮データ領域２４０に圧縮データを格納した後、当該圧縮データにアクセスがあった場合、処理部１１０は、キャッシュ（図示を省略する。）に展開したデータを保持し、その後のアクセス頻度が所定の頻度を超えた場合に、当該キャッシュに保持したデータを無圧縮データ領域２３０に格納する処理を行う。これにより、一時的にアクセス頻度が低く圧縮した状態で格納されることになったデータが、アクセス頻度が所定の頻度を超えた場合には、無圧縮の状態で無圧縮データ領域２３０に格納されるようになる。
【００５１】
この第１の実施の形態によると、ストレージ装置１０は、論理ディスク１２０上の領域を指定してデータが書き込まれた場合、当該データから算出されるハッシュ値と、同じハッシュ値がデータブロック情報ノード領域２１０の情報ノード２２０に記憶されている場合には、情報ノード２２０で管理されるデータのロケーションとインデックステーブル１３０の論理ブロックアドレスとを関連づけ、実データ格納領域２００にデータを記憶する処理を回避することができる。このため、ストレージ装置１０は、実データ格納領域２００の使用効率を向上させることができる。
【００５２】
また、データ圧縮部２５０は、アクセス情報２２２に基づいて、アクセス頻度が所定の頻度より低いデータを、無圧縮データ領域２３０から圧縮データへ移動させる。このため、実データ格納領域２００に格納されるデータの容量が少なくなり、ストレージ装置１０は、実データ格納領域２００の使用効率を更に向上させることができる。
【００５３】
さらに、データ圧縮部２５０の圧縮処理はストレージ装置１０の負荷が軽いときに行われるため、ストレージ装置１０の処理能力を効率的に使用することができ、当該処理能力が低下しない。
【００５４】
（第２の実施の形態）
次に、第２の実施の形態について説明する。この第２の実施の形態は、論理ディスクと他の論理ディスクとでペアが構成され、論理ディスクから他の論理ディスクへレプリケーションを行うように構成されている点が既述の第１の実施の形態と異なっている。したがって、以下では、上記異なる点について詳細に説明する。なお、第１の実施の形態と同一の構成には同一の符号を付して詳細な説明は省略する。
【００５５】
図５は、レプリケーション処理を説明するための図である。同図に示すように、論理ディスク（以下、この第２の実施の形態では、マスターボリュームと称する。）１２０から論理ディスクの内容を複製する論理ディスク（以下、この第２の実施の形態では、リモートボリュームと称する。）３２０を有するストレージシステムを示している。つまり、マスターボリューム１２０とリモートボリューム３２０とでペアが構成され、マスターボリューム１２０からリモートボリューム３２０へレプリケーションを行うように構成されている。したがって、ストレージシステムにおいて、インデックステーブル１３０からインデックステーブル３３０へ、実データ格納領域２００から実データ格納領域４００へデータの複製がなされるように構成されている。
【００５６】
なお、マスターボリューム１２０とリモートボリューム３２０は同一のストレージ装置内に設けられていても良いが、本第２の実施の形態においては、地理的に離れた異なるストレージ装置内に設けられている場合について説明する。
【００５７】
また、ストレージシステムにおいて、マスターボリューム１２０に対してデータが書き込まれた場合、マスターボリューム１２０のインデックステーブル１３０からリモートボリューム３２０のインデックステーブル３３０へは高速に同期コピーがなされるが、マスターボリューム１２０の実データ格納領域２００からリモートボリューム３２０の実データ格納領域４００へは非同期コピーがなされるように構成されている。
【００５８】
次に、レプリケーション処理について説明する。
【００５９】
先ず、例えば、マスターボリューム１２０を有するストレージ装置１０がリモートボリューム３２０とペアを構成する指示を上位装置２０から受信した場合、マスターボリューム１２０とリモートボリューム３２０とがペア状態になり、インデックステーブル１３０からインデックステーブル３３０にデータ内容がコピーされる。
【００６０】
このようにペア状態になった後、上位装置２０からマスターボリューム１２０に対してデータの書き込みがあった場合、インデックステーブル１３０の更新内容が同期してインデックステーブル３３０にコピーされる。
【００６１】
次に、上位装置２０からペア解除の指示をストレージ装置１０が受信し、マスターボリューム１２０とリモートボリューム３２０とがセパレート状態になった場合、リモートボリューム３２０のインデックステーブル３３０は、セパレート時の実データ格納領域２００の内容と対応する内容を保持したままとなる。一方、当該インデックステーブル３３０の内容は、セパレート時の実データ格納領域４００の内容と異なっている。しかしながら、マスターボリューム１２０を含むストレージ装置１０の負荷の軽い時に、実データ格納領域２００から実データ格納領域４００へデータのコピーが行われ、インデックステーブル３３０の内容と実データ格納領域４００との内容が一致する。
【００６２】
したがって、リモートボリューム３２０を含むストレージ装置は、セパレート状態になった後、実データ格納領域２００から実データ格納領域４００のコピーが完了する前は、インデックステーブル３３０を介して実データ格納領域２００に格納されているデータを参照する。一方、リモートボリューム３２０を含むストレージ装置は、セパレート状態になった後、実データ格納領域２００から実データ格納領域４００のコピーが完了した後は、インデックステーブル３３０を介して実データ格納領域４００に格納されているデータを参照する。
【００６３】
この第２の実施の形態によると、ペア状態時にマスターボリューム１２０にデータが書き込まれた場合、インデックステーブル１３０の内容のみを同期コピーすることにより、レプリケーション応答時の応答遅延を短縮し、ストレージ装置１０の処理性能を向上させることができる。
【００６４】
また、マスターボリューム１２０とリモートボリューム３２０とがセパレート状態になった場合、マスターボリューム１２０を含むストレージ装置１０の負荷が軽い時にバックグラウンドで実データ格納領域２００から実データ格納領域４００へのコピーを実行するため、マスターボリューム１２０を有するストレージ装置１０のパフォーマンスを維持したまま遠隔地にデータのレプリケーションを実行することができる。
【００６５】
（第３の実施の形態）
次に、第３の実施の形態について説明する。この第３の実施の形態は、論理ディスク１２０のスナップショットを作成するように構成されている点が既述の第１の実施の形態と異なっている。したがって、以下では、上記異なる点について詳細に説明する。なお、第１の実施の形態と同一の構成には同一の符号を付して詳細な説明は省略する。
【００６６】
図６は、論理ディスクのスナップショット処理を説明するための図である。同図に示すように、ストレージシステムは、論理ディスク（以下、この第３の実施の形態ではベースボリュームと称する。）１２０、一世代前の論理ディスク（以下、この第３の実施の形態では、スナップショットボリュームと称する。）１２１、二世代前の論理ディスク（以下、この第３の実施の形態では、スナップショットボリュームと称する。）１２２、インデックステーブル１７０、及び第３の管理部である世代管理テーブル１８０を有している。
【００６７】
インデックステーブル１７０は、論理ブロックアドレスを保持するフィールド１７１、スナップショットの世代を保持するフィールド１７２、ハッシュ値を保持するフィールド１７３を有している。また、インデックステーブル１７０は、フィールド１７１に保持される論理ブロックアドレスに、フィールド１７２に保持するスナップショットの世代、及びフィールド１７３に保持されるハッシュ値を対応させて、論理ブロックアドレス、スナップショットの世代、及びハッシュ値を管理するように構成されている。
【００６８】
世代管理テーブル１８０は、スナップショットの世代を保持するフィールド１８１、スナップショットの作成日時を保持するフィールド１８２、及びインデックステーブル１７０のスナップショットの世代と関連付けるための管理情報（ポインタ）を保持するフィールド１８３を有している。また、世代管理テーブル１８０は、フィールド１８１に保持されるスナップショットの世代に、フィールド１８２に保持される日時及びフィールド１８３に保持される管理情報を対応させて、スナップショットの世代、日時、及び管理情報を管理するように構成されている。
【００６９】
この第３の実施の形態によると、上位装置１０から所定のスナップショットを出力する指示を受信した場合、ストレージ装置１０は、世代管理テーブル１８０の当該所定の世代と対応する管理情報を用いて、インデックステーブル１７０のフィールド１７２にアクセスし、当該所定の世代に対応するハッシュ値に基づいて、実データ格納領域２００に格納されている論理ディスク１２０のスナップショットのデータを上位装置に出力することができる。よって、ストレージ装置１０は、世代管理テーブル１８０及びインデックステーブル１７０を用いて、ユーザに指定された世代のスナップショットボリュームを瞬時に上位装置２０へ出力することができる。
【００７０】
また、ストレージ装置１０は、既述のように、世代管理テーブル１８０及びインデックステーブル１７０を用いて、各世代のスナップショットボリュームに出力を切り替えることができる。よって、従来よりあるナップショットの技術に用いられる世代間の差分を管理する管理テーブルを設けなくても良い。
【００７１】
なお、本発明は上述の実施の形態に限定されるものではなく、その実施に際して様々な変形が可能である。
【００７２】
上記実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００７３】
（付記１）
仮想ディスクを用いてデータを管理するストレージ装置であって、
データを格納する格納領域と、
前記データの前記仮想ディスク上の領域と前記データに基づいて算出される特定値とを関連付けて管理する第１の管理部と、
前記格納領域に格納されるデータの領域と前記特定値とを関連付けて管理する第２の管理部と、
上位装置から前記仮想ディスク上の領域を指定したライトデータを受信した場合、当該ライトデータに基づいて前記第１の管理部で管理される特定値を算出し、当該算出した特定値と一致する特定値が前記第２の管理部で管理されているか否かを判断し、管理されていると判断した場合、前記一致する特定値を用いて前記第１の管理部で管理される仮想ディスクの領域と前記第２の管理部で管理されるデータの領域とを関連付け、前記格納領域への前記ライトデータの格納処理を回避する処理部と、
を備えることを特徴とするストレージ装置。
【００７４】
（付記２）
前記処理部は、前記上位装置から前記ライトデータの削除指示を受信した場合、前記一致する特定値を用いた前記第１の管理部と前記第２の管理部との関連づけを解消する、ことを特徴とする付記１記載のストレージ装置。
【００７５】
（付記３）
前記仮想ディスクは、当該仮想ディスクのデータを複製する他の仮想ディスクとペアとなるよう構成され、
前記仮想ディスクと前記他の仮想ディスクとのペア構成中に、前記上位装置から前記仮想ディスクを介してライトデータを受信した場合、前記処理部は、前記第１の管理部で管理されるデータを前記他の仮想ディスクに対応づけられた第１の管理部に複製し、前記ペアが解除された場合、前記格納領域に格納されるデータを前記第２の仮想ディスクに対応づけられた格納領域に複製する、ことを特徴とする付記１又は２記載のストレージ装置。
【００７６】
（付記４）
前記仮想ディスクの１以上のスナップショットを管理する第３の管理部を備え、
前記第１の管理部は、前記１以上のスナップショット毎に前記特定値を管理し、
前記処理部は、前記上位装置から所定の世代のスナップショットの出力を指示された場合、前記第１の管理部に管理される特定値、前記第２の管理部に管理される特定値、及び前記第３の管理部に管理される特定値に基づいて、前記所定の世代のスナップショットを出力する、ことを特徴とする付記１又は２記載のストレージ装置。
【００７７】
（付記５）
仮想ディスクを用いてデータを管理するストレージ装置の記憶資源の使用効率向上方法であって、
前記ストレージ装置は、
前記データの前記仮想ディスク上の領域と前記データに基づいて算出される特定値とを関連付けて管理する第１の管理部と、
格納領域に格納されるデータの領域と前記特定値とを関連付けて管理する第２の管理部ととを備えるものであり、
上位装置から前記仮想ディスクを介してライトデータを受信した場合、当該ライトデータに基づいて前記第１の管理部で管理される特定値を算出するステップと、
当該算出した特定値と一致する特定値が前記第２の管理部で管理されているか否かを判断するステップと、
前記ステップで管理されていると判断した場合、前記一致する特定値を用いて前記第１の管理部と前記第２の管理部とを関連付け、前記格納領域への前記ライトデータの格納処理を回避するステップと、
を有することを特徴とするストレージ装置の記憶資源の使用効率向上方法。
【産業上の利用可能性】
【００７８】
論理ディスクを利用してデータの記憶処理を実行するストレージ装置に広く適用可能である。
【符号の説明】
【００７９】
１０・・・・上位装置
２０・・・・ストレージ装置
１００・・・コントローラ部
１１０・・・処理部
１２０，１２１，１２２，１４０，３２０・・・論理ディスク
１３０，１５０，１７０，３３０・・・インデックステーブル
１８０・・・世代管理テーブル
１６０・・・ハッシュ算出部
２００，４００・・・実データ格納領域
２１０・・・データブロック情報ノード領域
２２０・・・情報ノード
２３０・・・無圧縮データ領域
２４０・・・圧縮データ領域
２５０・・・データ圧縮部
【図１】
0005688676.tif 000002
【図２】
0005688676.tif 000003
【図３】
0005688676.tif 000004
【図４】
0005688676.tif 000005
【図５】
0005688676.tif 000006
【図６】
0005688676.tif 000007