(57)【特許請求の範囲】
【請求項１】
階層化された複数の論理ディスクを有し、アクセス頻度に応じてデータを何れかの階層の論理ディスクに格納するブロックストレージであって、
最下位階層の１つ上の階層の論理ディスクに格納されているデータのアクセス頻度が閾値より低下したときに、前記データのハッシュをコンテントアドレスに有するデータを、最下位階層の論理ディスクに相当する、複数のブロックストレージで共用するオブジェクトストレージから検索する重複排除手段と、
検索対象のデータと同一のデータが格納されていないため前記検索に失敗したときに前記データを前記オブジェクトストレージに格納するために前記オブジェクトストレージに送信し且つ前記データを格納する階層を最下位階層の１つ上の階層から最下位階層に変更し、検索対象のデータと同一のデータが格納されているため前記検索に成功したときに前記送信を省略して前記データを格納する階層を最下位階層の１つ上の階層から最下位階層に変更する階層入れ替え手段と、
を備え、且つ、
前記重複排除手段は、前記コンテントアドレスを有するデータを、前記オブジェクトストレージのバックアップ領域に相当する、他ブロックストレージに存在するバックアップ領域から検索し、
前記階層入れ替え手段は、検索対象のデータと同一のデータが格納されていないため前記バックアップ領域に対する前記検索に失敗したときに前記データを前記他ブロックストレージに送信する、
ブロックストレージ。
【請求項２】
外部ストレージバックアップ領域と、
前記他ブロックストレージから受信したデータをオブジェクト化して前記データのハッシュをコンテントアドレスとして前記外部ストレージバックアップ領域に格納するバックアップ制御手段と、
を有する、
請求項１に記載のブロックストレージ。
【請求項３】
前記バックアップ制御手段は、前記他ブロックストレージからコンテントアドレスを指定した検索要求を受信すると、前記コンテントアドレスを有するデータを前記外部ストレージバックアップ領域から検索し、検索対象のデータと同一のデータが格納されていないため該検索に失敗したときに、最下位階層の１つ上の階層の論理ディスクに格納されているデータであって、そのハッシュが前記コンテントアドレスに一致するデータを検索し、発見した前記データの論理アドレスと対応付けて記録されているアクセス頻度を低下させる、
請求項２に記載のブロックストレージ。
【請求項４】
請求項１乃至３の何れかに記載のブロックストレージと、
前記ブロックストレージから受信したデータをオブジェクト化して格納するオブジェクトストレージと、
を備える、
ストレージシステム。
【請求項５】
請求項４に記載のストレージシステムと、
前記ストレージシステムにアクセス可能なホストコンピュータと、
を備える、
コンピュータシステム。
【請求項６】
階層化された複数の論理ディスクを有し、アクセス頻度に応じてデータを何れかの階層の論理ディスクに格納するブロックストレージが実行する方法であって、
最下位階層の１つ上の階層の論理ディスクに格納されているデータのアクセス頻度が閾値より低下したときに、前記データのハッシュをコンテントアドレスに有するデータを、最下位階層の論理ディスクに相当する、複数のブロックストレージで共用するオブジェクトストレージから検索し、
検索対象のデータと同一のデータが格納されていないため前記検索に失敗したときに前記データを前記オブジェクトストレージに格納するために前記オブジェクトストレージに送信し且つ前記データを格納する階層を最下位階層の１つ上の階層から最下位階層に変更し、
検索対象のデータと同一のデータが格納されているため前記検索に成功したときに前記送信を省略して前記データを格納する階層を最下位階層の１つ上の階層から最下位階層に変更し、
前記コンテントアドレスを有するデータを、前記オブジェクトストレージのバックアップ領域に相当する、他ブロックストレージに存在するバックアップ領域から検索し、
検索対象のデータと同一のデータが格納されていないため前記バックアップ領域に対する前記検索に失敗したときに前記データを前記他ブロックストレージに送信する、
ブロックストレージ制御方法。
【請求項７】
階層化された複数の論理ディスクを有し、アクセス頻度に応じてデータを何れかの階層の論理ディスクに格納するコンピュータを、
最下位階層の１つ上の階層の論理ディスクに格納されているデータのアクセス頻度が閾値より低下したときに、前記データのハッシュをコンテントアドレスに有するデータを、最下位階層の論理ディスクに相当する、複数のブロックストレージで共用するオブジェクトストレージから検索する重複排除手段と、
検索対象のデータと同一のデータが格納されていないため前記検索に失敗したときに前記データを前記オブジェクトストレージに格納するために前記オブジェクトストレージに送信し且つ前記データを格納する階層を最下位階層の１つ上の階層から最下位階層に変更し、検索対象のデータと同一のデータが格納されているため前記検索に成功したときに前記送信を省略して前記データを格納する階層を最下位階層の１つ上の階層から最下位階層に変更する階層入れ替え手段と、
して機能させるためのプログラムであって、
前記重複排除手段は、前記コンテントアドレスを有するデータを、前記オブジェクトストレージのバックアップ領域に相当する、他ブロックストレージに存在するバックアップ領域から検索し、
前記階層入れ替え手段は、検索対象のデータと同一のデータが格納されていないため前記バックアップ領域に対する前記検索に失敗したときに前記データを前記他ブロックストレージに送信する、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロックストレージ、ストレージシステム、コンピュータシステム、ブロックストレージ制御方法、およびプログラムに関する。
【背景技術】
【０００２】
データ容量は日々増大しており、大量の情報をストレージ装置に格納している。また、ブロックストレージでは、論理ディスクを、性能の異なる物理ディスクを階層的に構成することで、頻繁にアクセスされるデータは不揮発メモリに配置し、アクセス頻度が低いデータは低速のディスクに配置することで、コストを抑えつつ不揮発メモリの性能に近い応答を行うストレージが登場している。また、重複排除技術を用いて複数のユーザが保有している同一データやバックアップデータを圧縮する技術が存在する。また、クラウドストレージサービスとしてＣＡＳの機能を備えたサービスが一般的に普及している。
【０００３】
また、ブロックストレージとオブジェクトストレージを組み合わせることにより、ブロックストレージが備えるストレージ・デバイスの諸元を超える容量のデータを格納できるストレージシステムが提案されている。このようなブロックストレージ、ストレージシステムの一例が特許文献１に記載されている。
【０００４】
特許文献１記載のブロックストレージは、アクセス頻度が閾値より低いブロックを所定数集約してオブジェクトストレージに送信し、この送信したブロックをブロックストレージから削除する。
【０００５】
また本発明に関連して以下のような技術が提案されている。
【０００６】
特許文献２には、サーバと複数のストレージより構成され、データの重複排除を行うシステムが記載されている。また特許文献２には、データのアクセス頻度を算出し、アクセス頻度の低いデータを定期的に下位の階層に移動し、アクセス頻度の低いデータを他のストレージへ移動することが記載されている。
【０００７】
特許文献３には、情報処理装置の補助記憶装置に記憶されているデータのバックアップイメージを、情報処理装置に接続されている外部装置に記憶することが記載されている。
【０００８】
特許文献４には、一つのストレージサブシステムとそのストレージサブシステムに接続される複数の重複排除ストレージ装置を含む環境において、同じデータが異なる重複排除ストレージ装置に格納されないようにする技術が記載されている。
【０００９】
特許文献５には、サーバとオンラインストレージサービスより構成され、サーバ側で重複排除したデータをオンラインストレージサービスに格納する技術が記載されている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１５−１７９４２２号公報
【特許文献２】特開２０１３−２２２２３０号公報
【特許文献３】特開２０１３−１３７６３０号公報
【特許文献４】特開２０１３−４７９３３号公報
【特許文献５】特開２０１２−１４１７３９号公報
【特許文献６】特開２０１２−６３９０２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上述した特許文献１に記載される技術によれば、ブロックストレージとオブジェクトストレージを組み合わせることにより、ブロックストレージが備えるストレージ・デバイスの諸元を超える容量のデータを格納できるストレージシステムが実現できる。しかしながら、複数のブロックストレージで同じオブジェクトストレージを共用する場合、オブジェクトストレージが重複排除機能を有していなければ、複数のブロックストレージの同じデータがオブジェクトストレージに重複して格納される、という課題がある。
【００１２】
本発明の目的は、上述した課題、即ち、複数のブロックストレージで重複排除機能を有さないオブジェクトストレージを共用する場合、複数のブロックストレージの同じデータがオブジェクトストレージに重複して格納される、という課題を解決するブロックストレージを提供することにある。
【課題を解決するための手段】
【００１３】
本発明の一実施形態に係るブロックストレージは、
階層化された複数の論理ディスクを有し、アクセス頻度に応じてデータを何れかの階層の論理ディスクに格納するブロックストレージであって、
最下位階層の１つ上の階層の論理ディスクに格納されているデータのアクセス頻度が閾値より低下したときに、前記データのハッシュをコンテントアドレスに有するデータを、最下位階層の論理ディスクに相当する、複数のブロックストレージで共用するオブジェクトストレージから検索する重複排除手段と、
前記検索に失敗したときに前記データを前記オブジェクトストレージに送信して前記データを格納する階層を最下位階層に変更し、前記検索に成功したときに前記送信を省略して前記データを格納する階層を最下位階層に変更する階層入れ替え手段と、
を備える。
【００１４】
また本発明の他の実施形態に係るストレージシステムは、
上述のブロックストレージと、
前記ブロックストレージから受信したデータをオブジェクト化して格納するオブジェクトストレージと、
を備える。
【００１５】
また本発明の他の実施形態に係るコンピュータシステムは、
上述したストレージシステムと、
前記ストレージシステムにアクセス可能なホストコンピュータと、
を備える。
【００１６】
また本発明の他の実施形態に係るブロックストレージ制御方法は、
階層化された複数の論理ディスクを有し、アクセス頻度に応じてデータを何れかの階層の論理ディスクに格納するブロックストレージが実行する方法であって、
最下位階層の１つ上の階層の論理ディスクに格納されているデータのアクセス頻度が閾値より低下したときに、前記データのハッシュをコンテントアドレスに有するデータを、最下位階層の論理ディスクに相当する、複数のブロックストレージで共用するオブジェクトストレージから検索し、
前記検索に失敗したときに前記データを前記オブジェクトストレージに送信して前記データを格納する階層を最下位階層に変更し、
前記検索に成功したときに前記送信を省略して前記データを格納する階層を最下位階層に変更する。
【００１７】
また本発明の他の実施形態に係るプログラムは、
階層化された複数の論理ディスクを有し、アクセス頻度に応じてデータを何れかの階層の論理ディスクに格納するコンピュータを、
最下位階層の１つ上の階層の論理ディスクに格納されているデータのアクセス頻度が閾値より低下したときに、前記データのハッシュをコンテントアドレスに有するデータを、最下位階層の論理ディスクに相当する、複数のブロックストレージで共用するオブジェクトストレージから検索する重複排除手段と、
前記検索に失敗したときに前記データを前記オブジェクトストレージに送信して前記データを格納する階層を最下位階層に変更し、前記検索に成功したときに前記送信を省略して前記データを格納する階層を最下位階層に変更する階層入れ替え手段と、
して機能させる。
【発明の効果】
【００１８】
本発明は上述した構成を有するため、複数のブロックストレージでオブジェクトストレージを共用する場合、オブジェクトストレージが重複排除機能を有さない場合であっても、複数のブロックストレージの同じデータがオブジェクトストレージに重複して格納されるのを防止できる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態に係るコンピュータシステムのブロック図である。
【図２】本発明の第１の実施形態に係るコンピュータシステムの動作を示すフローチャートである。
【図３】本発明の第１の実施形態に係るコンピュータシステムにおけるデータの配置例を示す概念図である。
【図４】本発明の第１の実施形態に係るコンピュータシステムにおけるデータの配置例を示す概念図である。
【図５】本発明の第１の実施形態に係るコンピュータシステムにおけるデータの配置例を示す概念図である。
【図６】本発明の第２の実施形態に係るコンピュータシステムのブロック図である。
【図７】本発明の第２の実施形態におけるＬＤマッピングテーブルの一例を示す図である。
【図８】本発明の第２の実施形態における階層管理テーブルの一例を示す図である。
【図９】本発明の第２の実施形態における階層０マッピングテーブルの一例を示す図である。
【図１０】本発明の第２の実施形態における階層１マッピングテーブルの一例を示す図である。
【図１１】本発明の第２の実施形態における外部ストレージ階層マッピングテーブルの一例を示す図である。
【図１２】本発明の第２の実施形態における外部ストレージ管理テーブルの一例を示す図である。
【図１３】本発明の第２の実施形態におけるポリシー管理テーブルの一例を示す図である。
【図１４】本発明の第２の実施形態におけるアクセス頻度更新手段の動作を示すフローチャートである。
【図１５】本発明の第２の実施形態における重複排除手段の動作を示すフローチャートである。
【図１６】本発明の第２の実施形態における階層入れ替え手段の動作を示すフローチャートである。
【図１７】本発明の第２の実施形態における重複排除手段の動作を示すフローチャートである。
【図１８】本発明の第２の実施形態におけるデータ送受信手段の動作を示すフローチャートである。
【図１９】本発明の第２の実施形態におけるクラウドストレージ管理手段の動作を示すフローチャートである。
【図２０】本発明の第２の実施形態におけるデータ送受信手段の動作を示すフローチャートである。
【図２１】本発明の第２の実施形態におけるＣＡＳ制御手段の動作を示すフローチャートである。
【図２２】本発明の第２の実施形態におけるクラウドストレージ管理手段の動作を示すフローチャートである。
【図２３】本発明の第２の実施形態におけるデータ送受信手段の動作を示すフローチャートである。
【図２４】本発明の第２の実施形態におけるＣＡＳ制御手段の動作を示すフローチャートである。
【図２５】本発明の第３の実施形態に係るブロックストレージのブロック図である。
【発明を実施するための形態】
【００２０】
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第１の実施形態]
図１を参照すると、本発明の第１の実施形態に係るコンピュータシステムは、２台のホストコンピュータ１１００、１２００と、２台のブロックストレージ２１００、２２００と、１台のオブジェクトストレージ３１００とから構成されている。本実施形態では、オブジェクトストレージ３１００は１台であるが、２台以上あってもよい。またブロックストレージは２台であるが、３台以上あってもよい。
【００２１】
ブロックストレージ２１００は、階層論理ディスク２１１０と重複排除手段２１２０と階層入れ替え手段２１３０とバックアップ制御手段２１４０と外部ストレージバックアップ手段２１５０とを有する。
【００２２】
階層論理ディスク２１１０は、階層化された論理ディスク２１１１〜２１１３を有し、アクセス頻度に応じてデータを何れかの階層の論理ディスクに格納する。論理ディスク２１１１は、アクセス頻度を高頻度、中頻度、低頻度の三つに区分した場合、高頻度のデータをブロック単位で格納する階層０の論理ディスクであり、例えばＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）で構成される。論理ディスク２１１２は、アクセス頻度が中頻度のデータをブロック単位で格納する階層１の論理ディスクであり、例えばＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）ストレージで構成される。論理ディスク２１１３は、アクセス頻度が低頻度のデータをブロック単位で格納する階層２の論理ディスクであり、クラウドストレージ３１００で構成される。本実施形態では、階層論理ディスク２１１０は３階層であるが、２階層以上であれば階層数は任意である。
【００２３】
外部ストレージバックアップ領域２１５０は、他のブロックストレージ２２００の階層２の論理ディスクに対応するバックアップ領域であり、ＣＡＳ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｓｔｏｒａｇｅ）で構成される。即ち、論理ディスク２１１３は、クラウドストレージ３１００と他のブロックストレージ２２００の外部ストレージバックアップ領域２２５０との２つのストレージを使って冗長化されている。
【００２４】
オブジェクトストレージ３１００は、ブロックストレージ２１００とブロックストレージ２２００とで共用されるストレージであり、例えばクラウドストレージで構成される。このオブジェクトストレージ３１００は重複排除機能を有していてもよいし、有していなくてもよい。
【００２５】
ホストコンピュータ１１００は、ブロックストレージ２１００にアクセス可能なコンピュータであり、例えば業務サーバで構成される。
【００２６】
重複排除手段２１２０は、最下位階層の一つ上の階層にある論理ディスク２１１２に格納されているデータのアクセス頻度が閾値より低下したときに、当該データのハッシュをコンテントアドレスに有するデータをオブジェクトストレージ３１００から検索する機能を有する。データのハッシュを算出する方法は、予め定められている方法であれば任意でよい。また重複排除手段２１２０は、上記コンテントアドレスを有するデータを、他のブロックストレージ２２００の外部ストレージバックアップ領域２２５０から検索する機能を有する。
【００２７】
階層入れ替え手段２１３０は、重複排除手段２１２０によるオブジェクトストレージ３１００に対する上記検索が失敗したとき、即ち上記コンテントアドレスを有するデータがオブジェクトストレージ３１００に格納されていないとき、上記データをオブジェクトストレージ３１００に送信し、上記データを格納する階層を階層１の論理ディスク２１１２から階層２の論理ディスク２１１３に変更する機能を有する。他方、階層入れ替え手段２１３０は、上記検索に成功したとき、即ち上記コンテントアドレスを有するデータがオブジェクトストレージ３１００に格納されているとき、上記データをオブジェクトストレージ３１００に送信する動作を省略し、上記データを格納する階層を階層１の論理ディスク２１１２から階層２の論理ディスク２１１３に変更する機能を有する。上記の変更に伴い、階層入れ替え手段２１３０は、階層１の論理ディスク２１１２に格納されていた、階層２に移動した上記データを削除する。
【００２８】
また階層入れ替え手段２１３０は、重複排除手段２１２０による外部ストレージバックアップ領域２２５０に対する上記検索が失敗したおき、即ち上記コンテントアドレスを有するデータが他のブロックストレージ２２００の外部ストレージバックアップ領域２２５０に格納されていないとき、上記データを外部ストレージバックアップ領域２２５０に格納するためにブロックストレージ２２００に送信する機能を有する。
【００２９】
バックアップ制御手段２１４０は、ブロックストレージ２２００から受信したデータをオブジェクト化して当該データのハッシュをコンテントアドレスとして外部ストレージバックアップ領域２１５０に格納する機能を有する。またバックアップ制御手段２１４０は、他のブロックストレージ２２００からコンテントアドレスを指定した検索要求を受信すると、当該コンテントアドレスを有するデータを外部ストレージバックアップ領域２１５０から検索し、その検索結果を要求元に返却する機能を有する。さらにバックアップ制御手段２１４０は、上記検索に失敗したときに、階層１の論理ディスク２１１２に格納されているデータであって、そのハッシュが上記検索要求で指定されたコンテントアドレスに一致するデータを検索し、発見したデータのアクセス頻度を低下させる機能を有する。
【００３０】
ホストコンピュータ１２００は、ブロックストレージ２２００にアクセス可能なコンピュータであり、例えば業務サーバで構成される。またブロックストレージ２２００は、ブロックストレージ２１００と同様の機能を有する。また階層論理ディスク２２１０と重複排除手段２２２０と階層入れ替え手段２２３０とバックアップ制御手段２２４０と外部ストレージバックアップ手段２２５０は、階層論理ディスク１２１０と重複排除手段１２２０と階層入れ替え手段１２３０とバックアップ制御手段１２４０と外部ストレージバックアップ手段１２５０と同様の機能を有する。また論理ディスク２２１１〜２２１３は、論理ディスク２１１１〜２１１３と同様の機能を有する。
【００３１】
なお、ブロックストレージ２１００、２２００は、ホストコンピュータ１１００、１２００から読み出し要求のあったデータを、階層論理ディスク２１１０、２２１０の該当する階層の論理ディスクから読み出して要求元のホストコンピュータ１１００、１２００に出力する機能を有する。また、ブロックストレージ２１００、２２００は、ホストコンピュータ１１００、１２００から書き込み要求のあったデータを、階層論理ディスク２１１０、２２１０の該当する階層の論理ディスクに書き込む機能を有する。これらの機能は良く知られており、本発明と直接関係しないので、その詳細な説明は省略する。
【００３２】
図２は、本実施形態に係るコンピュータシステムの動作の概要を示すフローチャートである。また図３乃至図５は、本実施形態に係るコンピュータシステムにおけるデータの配置例を示す概念図である。以下、図１乃至図５を参照して、本実施形態に係るコンピュータシステムの動作を説明する。
【００３３】
今、図３に示すように、ブロックストレージ２１００の論理ディスク２１１１にデータＸ、論理ディスク２１１２にデータＹ１が格納されており、ブロックストレージ２２００の論理ディスク２２１１にデータＺ、論理ディスク２２１２にデータＹ２が格納されているものとする。ここで、データＹ１とデータＹ２とは例えば１ブロックの同じ内容のデータ、即ち同一のデータである。そして、この状況において、ホストコンピュータ１１００からデータＹ１に対するアクセスがしばらく途絶えたために、データＹ１のアクセス頻度が閾値より低くなったとする。このとき、本実施形態では、図２に示すような処理が実行される。
【００３４】
まず、ブロックストレージ２１００の重複排除手段２１２０は、データＹ１のアクセス頻度が閾値より低下したことを検出すると（ステップＳ１００１）、所定の方法によりデータＹ１のハッシュ（ｙとする）を算出し、このハッシュｙをコンテントアドレスに有するデータをオブジェクトストレージ３１００から検索する（ステップＳ１００２、図３の符号１１０１）。図３に示す状態では、オブジェクトストレージ３１００には、データＹ１と同一のデータは格納されていないため、上記検索は失敗する（ステップＳ１００２でＮＯ）。そこで、ブロックストレージ２１００の階層入れ替え手段２１３０は、データＹ１をオブジェクトストレージ３１００に送信してデータＹ１を格納する階層を階層１から階層２へ変更し、オブジェクトストレージ３１００は、データＹ１をオブジェクト化しコンテントアドレスｙに対応付けて格納する（ステップＳ１００３。図３の符号１１０２）。
【００３５】
また重複排除手段２１２０は、コンテントアドレスｙを有するデータを、ブロックストレージ２２００の外部ストレージバックアップ領域２２５０から検索する（ステップＳ１００５）。具体的には、重複排除手段２１２０は、コンテントアドレスｙを指定した検索要求をブロックストレージ２２００のバックアップ制御手段２２４０に送信する（図３の符号１１０３）。バックアップ制御手段２２４０は、コンテントアドレスｙを有するデータを外部ストレージバックアップ領域２２５０から検索し（図３の符号１１０４）、その検索結果を要求元に返却する。図３に示す状態では、外部ストレージバックアップ領域２２５０には、データＹ１と同一のデータは格納されていないため、上記検索は失敗する（ステップＳ１００５でＮＯ）。そこで、ブロックストレージ２１００の階層入れ替え手段２１３０は、データＹ１を外部ストレージバックアップ領域２２５０に格納するためにブロックストレージ２２００へ送信し、バックアップ制御手段２２４０は受信したデータＹ１をオブジェクト化し、コンテントアドレスｙに対応付けて外部ストレージバックアップ領域２２５０に格納する（ステップＳ１００６。図３の符号１１０５、１１０６）。さらにバックアップ制御手段２２４０は、コンテントアドレスｙを有するデータを階層１の論理ディスク２２１２から検索する（ステップＳ１００７。図３の符号１１０７）。図３に示す状態では、階層１の論理ディスク２２１２にデータＹ１と同じデータＹ２が格納されているため、上記検索は成功する（ステップＳ１００７でＹＥＳ）。そのため、バックアップ制御手段２２４０は、データＹ２のアクセス頻度を所定量だけ低下させる（ステップＳ１００８）。
【００３６】
上記のような動作が行われることにより、図４に示すように、論理ディスク２１１２に格納されていたデータＹ１は、一つ下の階層の論理ディスク２１１３に移動し、論理ディスク２１１３を構成するオブジェクトストレージ３１００に格納される。また、そのバックアップデータが外部ストレージバックアップ領域２２５０に格納される。さらに、論理ディスク２２１２に格納されているデータＹ２のアクセス頻度が低下する。
【００３７】
次に、図４に示す状況において、ホストコンピュータ１２００からデータＹ２に対するアクセスがしばらく途絶えたために、データＹ２のアクセス頻度が閾値より低くなったとする。或いは、図３を参照して説明したようにバックアップ制御手段２２４０がデータＹ２のアクセス頻度を低下させたことにより、データＹ２のアクセス頻度が閾値より低くなったとする。このとき、再び図２に示すような処理が実行される。
【００３８】
まず、ブロックストレージ２２００の重複排除手段２２２０は、データＹ２のアクセス頻度が閾値より低下したことを検出すると（ステップＳ１００１）、所定の方法によりデータＹ２のハッシュ（データＹ１と同じｙになる）を算出し、このハッシュｙをコンテントアドレスに有するデータをオブジェクトストレージ３１００から検索する（ステップＳ１００２、図３の符号１２０１）。図４に示す状態では、オブジェクトストレージ３１００には、データＹ２と同一のデータＹ１が格納されているため、上記検索は成功する（ステップＳ１００２でＹＥＳ）。そこで、ブロックストレージ２２００の階層入れ替え手段２２３０は、データＹ２をオブジェクトストレージ３１００に送信する処理を省略し、データＹ２を格納する階層を階層１から階層２へ変更する（ステップＳ１００４）。
【００３９】
また重複排除手段２２２０は、コンテントアドレスｙを有するデータを、ブロックストレージ２１００の外部ストレージバックアップ領域２１５０から検索する（ステップＳ１００５）。具体的には、重複排除手段２２２０は、コンテントアドレスｙを指定した検索要求をブロックストレージ２１００のバックアップ制御手段２１４０に送信する（図４の符号１２０３）。バックアップ制御手段２１４０は、コンテントアドレスｙを有するデータを外部ストレージバックアップ領域２１５０から検索し（図４の符号１２０４）、その検索結果を要求元に返却する。図４に示す状態では、外部ストレージバックアップ領域２１５０には、データＹ２と同一のデータは格納されていないため、上記検索は失敗する（ステップＳ１００５でＮＯ）。そこで、ブロックストレージ２２００の階層入れ替え手段２２３０は、データＹ２を外部ストレージバックアップ領域２１５０に格納するためにブロックストレージ２１００へ送信し、バックアップ制御手段２１４０は受信したデータＹ２をオブジェクト化し、コンテントアドレスｙに対応付けて外部ストレージバックアップ領域２１５０に格納する（ステップＳ１００６。図４の符号１２０５、１２０６）。さらにバックアップ制御手段２１４０は、コンテントアドレスｙを有するデータを階層１の論理ディスク２１１２から検索する（ステップＳ１００７。図４の符号１２０７）。図４に示す状態では、階層１の論理ディスク２１１２にデータＹ２と同じデータは格納されていないため、図２に示す処理を終了する。
【００４０】
上記のような動作が行われることにより、図５に示すように、論理ディスク２２１２に格納されていたデータＹ２は、一つ下の階層の論理ディスク２２１３に移動し、論理ディスク２２１３を構成するオブジェクトストレージ３１００に格納されているデータＹ１と紐付けされる。また、そのバックアップデータが外部ストレージバックアップ領域２１５０に格納される。
【００４１】
このように本実施形態によれば、ブロックストレージ２１００とブロックストレージ２２００でオブジェクトストレージ３１００を共用する場合、オブジェクトストレージ３１００が重複排除機能を有さない場合であっても、複数のブロックストレージ２１００、２２００の同じデータがオブジェクトストレージ３１００に重複して格納されるのを防止することができる。
【００４２】
その理由は、重複排除手段２１２０が、最下位階層の１つ上の階層の論理ディスク２１１２に格納されているデータのアクセス頻度が閾値より低下したときに、当該データのハッシュをコンテントアドレスに有するデータを、最下位階層の論理ディスク２１１３に相当する、複数のブロックストレージで共用するオブジェクトストレージ３１００から検索し、階層入れ替え手段２１３０が、上記検索に失敗したときには当該データをオブジェクトストレージ３１００に送信して当該データを格納する階層を最下位階層に変更するが、上記検索に成功したときには上記送信を省略して当該データを格納する階層を最下位階層に変更するためである。
【００４３】
また本実施形態によれば、オブジェクトストレージ３１００が重複排除機能を有する場合、その機能を利用して重複排除する構成に比較して、ブロックストレージとオブジェクトストレージ間のデータ転送量を削減することができる。その理由は、既にオブジェクトストレージに格納されているデータと重複するデータは、ブロックストレージからオブジェクトストレージへ送信しないためである。
【００４４】
また本実施形態によれば、オブジェクトストレージ３１００に格納したデータのバックアップデータが、外部ストレージバックアップ領域２１５０、２２５０に格納されているため、何らかの障害によってオブジェクトストレージ３１００からのデータの読み込みが行えない場合、外部ストレージバックアップ領域２１５０、２２５０からデータを読み込むことができる。
【００４５】
また本実施形態によれば、ブロックストレージ２１００がオブジェクトストレージ３１００に追い出したデータと同一のデータを、ブロックストレージ２２００がより高い階層のデータとして格納している場合、当該データのオブジェクトストレージ３１００への追い出しを促進することができる。その理由は、バックアップ制御手段２２４０は、ブロックストレージ２１００からコンテントアドレスを指定した検索要求を受信すると、当該コンテントアドレスを有するデータを外部ストレージバックアップ領域２２５０から検索し、検索に失敗したときに、最下位階層の１つ上の階層の論理ディスク２２１２に格納されているデータであって、そのハッシュが上記コンテントアドレスに一致するデータを検索し、発見したデータのアクセス頻度を低下させるためである。
【００４６】
[第２の実施形態]
＜本実施形態の特徴＞
本実施形態は、重複排除機能を持つブロックストレージと、クラウドサービスを提供するＣＡＳ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｓｔｏｒａｇｅ）機能を持ったオブジェクトストレージが相互に接続された構成を有する。そして、本実施形態は、そのような構成において、ホスト計算機が利用する業務データの中でオブジェクトストレージに追い出すデータを、重複排除機能を持つブロックストレージ間で共有する階層制御と同等機能を持つオブジェクトストレージのローカルバックアップデータを格納する構成要素を追加することにより、オブジェクトストレージに対するデータ転送量、格納容量を削減し、データアクセスの可用性を高め、ストレージ格納コストを削減することが可能である、という特徴を有する。
【００４７】
＜本実施形態が解決しようとする課題＞
階層化された論理ディスクを持つブロックストレージとクラウドストレージを組み合わせて利用することで、ブロックストレージの諸元を超えてデータを格納できる技術がある（例えば特許文献１参照）。しかし、この技術は、ブロックストレージから追い出されたデータをクラウドストレージに個別に追い出す機能しか持っていない。このため、同一データであっても各ストレージシステムが独立にクラウドストレージに転送するデータを判断し転送するため、無駄な通信コストとストレージ格納コストが発生する課題がある。また、クラウドストレージからデータを取り出す際、クラウドストレージのサービスが停止している場合、データを読み出すことができない課題がある。
【００４８】
また、複数のファイル格納装置から各ファイル格納装置が保有するファイルの内容に関する情報を含むファイル情報を取得してお互いに同じファイル内容に関する情報を有するファイルを重複ファイルとして抽出し、優先度を付けることで重複排除よりファイルを削除する技術（例えば特許文献６参照）がある。しかし、この技術はすべてのファイルを対象としており、頻繁に利用するファイルの重複排除をリアルタイムに行う場合、性能が低下するという課題がある。
【００４９】
また、ファイルサーバの容量拡張を、クラウドストレージを利用して実現する技術がある（例えば特許文献５参照）。しかし、この技術はオンラインストレージサービス上の記憶領域をマウントするカーネルモジュールにおいて、ファイルをブロックファイルに分割して管理するため、ファイルサーバ間での重複データの通信量・格納容量の削減ができないという課題がある。
【００５０】
本実施形態は以上の課題を解決する、階層化された論理ディスクを持つ重複排除機能付きブロックストレージとクラウドストレージを利用したシステムを提供する。
【００５１】
＜本実施形態による解決手段＞
本実施形態は、物理サーバまたは仮想ＯＳが動作する仮想サーバである業務サーバと、性能の異なる複数の物理デバイスを階層化して１つの論理ディスクとして利用でき、重複排除機能と組み合わせて最下層にＣＡＳ機能を利用できる機能を持つ複数の重複排除機能ありストレージと、クラウドストレージとが相互に接続された構成を有する。
【００５２】
そして、本実施形態は、上記構成において、重複対象のデータのハッシュをコンテントアドレス（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓ（ＣＡ））として利用する重複検出を行うことで、また、データ送受信手段、ＣＡＳ制御手段を組み合わせることで、登録済みの重複排除機能ありストレージをまたがって重複検出を行うことを可能とする。また、階層入れ替え手段とＣＡＳ制御手段を組み合わせることで、登録済みの重複排除機能ありストレージの重複データを利用して、クラウドストレージに追い出すデータを選別することを可能とする。また、ＣＡＳ制御手段が外部ストレージのバックアップの管理を利用可能なディスク容量により制御することで、必要以上となるデータ格納の抑止を可能とする。
【００５３】
また特許文献１に記載される構成で運用した状態では、誰かがすでにクラウドストレージに置いた状態のデータを別の誰かはもっと高い階層のデータとして保持しているという状態が生じることが想定できる。ここで追い出すべきデータが近い優先度で複数あるような状況を考えると、すでに誰かがクラウドにデータを置いているデータを優先して追い出すことが適切であろうと思われるが、特許文献１に記載の構成ではこのような制御を行うことができない。
【００５４】
また、バックアップとして持つデータは完全性を必要としない構成とすることで特許文献６に記載される技術のようにすべてのデータを対象とする必要がなく、性能への影響を軽減する。
【００５５】
また、クラウドストレージからデータを取り出す際には連携する外部ストレージバックアップ領域に格納されたデータであればクラウドストレージとの通信は発生せず、通信量を削減することが可能である。
【００５６】
＜本実施形態の構成＞
次に、本実施形態の構成について図面を参照して詳細に説明する。
【００５７】
図６を参照すると、本実施形態は、重複排除機能を有するストレージ１（以下、単にストレージ１と記す）と、クラウドストレージ２と、重複排除機能を有するストレージ３（以下、単にストレージ３と記す）と、業務サーバ１００とから構成されている。業務サーバ１００とストレージ１とは、ＦＣまたはｉＳＣＳＩまたはＳＡＳで接続されている。ストレージ１およびストレージ３とクラウドストレージ２とは、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）で接続されている。ストレージ１とストレージ３とは、ローカルサイト内でＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）またはＷＡＮで接続されている。
【００５８】
ストレージ１は、階層論理ディスク５０と、外部ストレージバックアップ領域７０と、アクセス頻度更新手段２００と、データ送受信手段２１０と、重複排除手段２２０と、階層入れ替え手段２３０と、ＣＡＳ制御手段２４０と、ポリシー管理テーブル３４０とを有する。アクセス頻度更新手段２００は、業務サーバ１００からのデータアクセスを定期的に更新する機能を有する。データ送受信手段２１０は、クラウドストレージ２やストレージ３と実データや制御情報の送受信を行う機能を有する。重複排除手段２２０は、重複データの重複排除を行う機能を有する。階層入れ替え手段２３０は、実データの入れ替えを行う機能を有する。ＣＡＳ制御手段２４０は、他ストレージ３から受信した実データをオブジェクト化し、外部ストレージバックアップ領域７０に格納する機能を有する。ポリシー管理テーブル３４０は、階層論理ディスク５０の設定を格納する機能を有する。
【００５９】
クラウドストレージ２は、クラウドデータ格納先デバイス８１とクラウドストレージ管理手段２５０とを有する。クラウドストレージ管理手段２５０は、データ送受信手段２１０およびストレージ３の後述するデータ送受信手段２１１から受信した実データをオブジェクト化し、クラウドデータ格納先デバイス８１に格納する機能を有する。
【００６０】
ストレージ３は、ストレージ１と同等の構成を有する。図６では、その一部の構成要素のみ、即ち、階層論理ディスク５１、外部ストレージバックアップ領域７１、データ送受信手段２１１、ＣＡＳ制御手段２４１、外部ストレージ管理テーブル３３１、格納先デバイス８２のみ図示している。
【００６１】
業務サーバ１００は、物理サーバまたは仮想サーバで構成される。仮想サーバの場合、仮想サーバを実現する１以上の仮想ＯＳ１０１、１０２が動作する。
【００６２】
階層論理ディスク５０は、ＬＤマッピングテーブル３００と、階層管理テーブル３１０と、階層０マッピングテーブル３２０と、階層１マッピングテーブル３２１と、外部ストレージ階層マッピングテーブル３２２と、階層デバイス６０とを有する。ＬＤマッピングテーブル３００は、階層論理ディスク５０の一次アドレスを格納する。階層管理テーブル３１０は、階層種別を格納する。各階層のマッピングテーブル３２０、３２１、３２２は、何れも二次アドレスを格納する。階層デバイス６０は、実データを格納する。
【００６３】
外部ストレージバックアップ領域７０は、外部ストレージ管理テーブル３３０と格納先デバイス８０とを有する。外部ストレージ管理テーブル３３０は、ストレージ３からバックアップされた実データのＣＡを格納する。格納先デバイス８０は、実データを格納する。格納先デバイス８０は、連携するストレージ３の階層デバイスの最下位に位置する領域である。
【００６４】
アクセス頻度更新手段２００は、ポリシー管理テーブル３４０を参照して、各階層論理ディスクのアクセス頻度更新間隔、階層入れ替え間隔に従い、定期的に操作指示を行う機能を有する。またアクセス頻度更新手段２００は、アクセス頻度更新間隔でＬＤマッピングテーブル３００のアクセス頻度を更新する機能を有する。
【００６５】
データ送受信手段２１０は、重複排除手段２２０からの送信指示に従い、クラウドストレージ管理手段２５０に対して実データまたは検索指示を送信する機能を有する。また、データ送受信手段２１０は、ストレージ３のＣＡＳ制御手段２４１に対して実データまたは検索指示を送信する機能を有する。さらにデータ送受信手段２１０は、ストレージ３から実データを受信し、ＣＡＳ制御手段２４０に対して実データの検索指示または格納指示を行う機能を有する。このような機能により、連携する外部ストレージ３のバックアップデータを外部ストレージバックアップ領域７０に格納することが可能となる。
【００６６】
重複排除手段２２０は、階層入れ替え手段２３０からのＣＡＳ化指示に従い、階層論理ディスクの指定された領域のＣＡを計算し、ストレージ１に重複データがない場合、クラウドストレージ管理手段２５０に対して同一データが存在するかを調べる検索指示を行い、同一データがない場合、データ送受信手段２１０にＣＡをキーとしたデータ送信を指示する機能を有する。また、重複排除手段２２０は、ストレージ３のＣＡＳ制御手段２４１に対して外部ストレージバックアップ領域７１に同一データが存在するかを調べる検索指示を行い、同一データがない場合、データ送受信手段２１０にＣＡをキーとしたデータ送信を指示することで、連携するローカルストレージ３にバックアップデータを格納する機能を有する。また、重複排除手段２２０は、定期的に階層１マッピングテーブル３２１のＣＡを計算する機能を有する。この計算されたＣＡは、クラウドストレージ２に追い出すデータの候補を増やすために利用される。
【００６７】
階層入れ替え手段２３０は、定期的にＬＤマッピングテーブル３００を参照し、アクセス頻度が低いデータを下位の階層に移動する機能を有する。階層入れ替え手段２３０は、ＣＡＳ階層に移動するデータを決定すると、そのデータに関して重複排除手段２２０にＣＡＳ化指示を行う機能を有する。
【００６８】
ＣＡＳ制御手段２４０は、データ送受信手段２１０経由による他ストレージ３からの検索指示に従って、外部ストレージバックアップ領域７０に格納済みのデータに対象データが存在するか否かを示す検索結果を返却する機能を有する。また、ＣＡＳ制御手段２４０は、データ送受信手段２１０経由による他ストレージ３からのデータ格納指示により、外部ストレージバックアップ領域７０に受信したデータを格納し、外部ストレージ管理テーブル３３０を更新する機能を有する。
【００６９】
クラウドストレージ管理手段２５０は、データ送受信手段２１０およびデータ送受信手段２１１からの検索指示により、格納先デバイス８１に格納済みのデータに対象データが存在するか否かを示す検索結果を返却する機能を有する。また、クラウドストレージ管理手段２５０は、データ送受信手段２１０およびデータ送受信手段２１１からのデータ格納指示により、格納先デバイス８１に受信した実データを格納する機能を有する。
【００７０】
ＬＤマッピングテーブル３００は、業務サーバ１００から階層論理ディスク５０にアクセスするためのアドレステーブルである。図７にＬＤマッピングテーブル３００の一例を示す。同図に示すＬＤマッピングテーブル３００は、論理アドレス、階層アドレス、階層番号、ＣＡＳフラグ、アクセス頻度が対応付けて記録されている。同図に示すＬＤマッピングテーブル３００の例えば３行目は、論理アドレスが００００２０００、階層アドレスが００００２０００、階層番号が０、ＣＡＳフラグが０、アクセス頻度が３であり、階層０のアドレス００００２０００に実データが格納され、アクセス頻度は３（中頻度アクセス）であることを示している。なお、アクセス頻度は、業務サーバ１００から該当する論理アドレスがアクセスする毎にインクリメントされ、アクセス頻度更新手段２００によって定期的にデクリメントされる。
【００７１】
階層管理テーブル３１０は、階層に割り当てられた物理デバイスを対応付けるテーブルである。図８に階層管理テーブル３１０の一例を示す。同図に示す階層管理テーブル３１０は、階層番号と階層デバイスが対応付けて記録されている。同図に示す階層管理テーブル３１０の例えば１行目は、階層番号が０、物理デバイスがＳＳＤであり、階層０にはＳＳＤが割り付けられていることを示している。また階層管理テーブル３１０の例えば２行目は、階層番号が１、物理デバイスがＳＡＳであり、階層１にはＳＡＳが割り付けられていることを示している。また階層管理テーブル３１０の例えば３行目は、階層番号が２、物理デバイスがＣＡＳであり、階層２にはＣＡＳが割り付けられていることを示している。
【００７２】
階層０マッピングテーブル３２０は、ＬＤマッピングテーブル３００から階層デバイス６０にアクセスするためのアドレステーブルである。図９に階層０マッピングテーブル３２０の一例を示す。同図に示す階層０マッピングテーブル３２０は、階層０の階層アドレス、デバイスアドレス、有効ビットが対応付けて記録されている。同図に示す階層０マッピングテーブル３２０の例えば１行目は階層アドレス００００００００、デバイスアドレス００００００００、有効ビット０であり、階層０の００００００００アドレスは空き領域であることを示している。
【００７３】
階層１マッピングテーブル３２１は、ＬＤマッピングテーブル３００から階層デバイス６０にアクセスするためのアドレステーブルである。図１０に階層１マッピングテーブル３２１の一例を示す。同図に示す階層１マッピングテーブル３２１は、階層1の階層アドレス、デバイスアドレス、ＣＡ、有効ビットが対応付けて記録されている。同図に示す階層１マッピングテーブル３２１の例えば１行目は階層アドレス００００００００、デバイスアドレス００００００００、ＣＡ＝ａａｄ００ｅｘｆｄｓｄｄｄｂｅｗ、有効ビット１であり、階層１の００００００００アドレスは階層デバイス００００００００をポイントし、使用中であることを示し、その実データのＣＡはａａｄ００ｅｘｆｄｓｄｄｄｂｅｗであることを示している。
【００７４】
外部ストレージ階層マッピングテーブル３２２は、ＬＤマッピングテーブル３００から階層デバイス６０にアクセスするためのアドレステーブルである。図１１に外部ストレージ階層マッピングテーブル３２２の一例を示す。同図に示す外部ストレージ階層マッピングテーブル３２２は、階層２の階層アドレス、ＣＡ、格納先クラウド、バックアップストレージ、有効ビットが対応付けて記録されている。同図に示すＣＡＳ階層マッピングテーブル３２２の例えば１行目は、階層アドレス００００００００、ＣＡ＝ａａｄ００ｅｘｆｄｓｄｄｄｂｅｗ、格納先クラウド０、バックアップストレージ１、有効ビット１であり、階層２の００００００００アドレスはＣＡがａａｄ００ｅｘｆｄｓｄｄｄｂｅｗの実データを持ち、格納先クラウドは０で識別されるクラウドストレージ、ローカルのバックアップストレージは１で識別されるストレージであることを示している。図１１に示すように、外部ストレージ階層マッピングテーブル３２２が、バックアップストレージの欄を有することにより、連携するローカルストレージにバックアップデータを紐付けることが可能になる。
【００７５】
外部ストレージ管理テーブル３３０、３３１は、格納先デバイス８０、８２に格納されたデータを送信したストレージを管理するためのテーブルである。図２に外部ストレージ管理テーブル３３０の一例を示す。同図に示す外部ストレージ管理テーブル３３０は、ＣＡ、ストレージ名が対応付けて管理されている。同図に示す外部ストレージ管理テーブル３３０の例えば１行目は、ＣＡがｓａｊｆｋｄｓａｉｏｐｐｋｊｋｌ、ストレージ名がＤｉｓｋａｒｒａｙ１であり、Ｄｉｓｋａｒｒａｙ１というストレージ名のストレージのデータであって、ＣＡがｓａｊｆｋｄｓａｉｏｐｐｋｊｋｌであるデータを格納していることを示している。
【００７６】
ポリシー管理テーブル３４０は、階層論理ディスク５０毎にアクセス頻度更新間隔、階層入れ替え間隔を格納するためのテーブルである。図１３にポリシー管理テーブル３４０の一例を示す。同図に示すポリシー管理テーブル３４０は階層論理ディスク番号、アクセス頻度更新間隔、階層入れ替え間隔が対応付けて記録されている。同図に示すポリシー管理テーブル３４０の例えば１行目は、階層論理ディスク番号０、アクセス頻度更新間隔１８００秒、階層入れ替え間隔３６００秒であり、階層論理ディスク番号０の論理ディスクはアクセス頻度の更新を３０分ごとに、階層入れ替えを６０分ごとに、それぞれ実施することを示している。
【００７７】
＜本実施形態の動作＞
次に、本実施形態の動作について詳細に説明する。
【００７８】
図１４はアクセス頻度更新手段２００の動作を示すフローチャートである。以下、図１４を参照して、アクセス頻度更新手段２００が階層論理ディスク５０のアクセス頻度を更新する動作を説明する。
【００７９】
アクセス頻度更新手段２００は、ポリシー管理テーブル３４０のアクセス頻度更新間隔に基づいて定期的に図１４に示す処理を実行する。アクセス頻度更新手段２００は、対象の階層論理ディスクのＬＤマッピングテーブルのアクセス頻度を一括でデクリメントする（Ｓ１０）。そして、今回の処理を終了する。
【００８０】
図１５は重複排除手段２２０の動作を示すフローチャートである。以下、図１５を参照して、重複排除手段２２０が階層１マッピングテーブル３２１にＣＡを追加する動作を説明する。
【００８１】
重複排除手段２２０は、定期的に図１５に示す処理を実行する。重複排除手段２２０は、階層１マッピングテーブル３２１で管理している実データのＣＡを計算する（ステップＳ６０）。次に重複排除手段２２０は、階層１マッピングテーブル３２１のＣＡを更新する（ステップＳ６１）。そして、今回の処理を終了する。このように、階層１マッピングテーブル３２１で管理している実データをＣＡＳ化した際のＣＡを予め計算しておくことにより、階層１マッピングテーブル３２１で管理している実データと既にＣＡＳ化されて外部ストレージに格納されているデータとをＣＡをベースに比較することができるようになる。
【００８２】
図１６は階層入れ替え手段２３０の動作を示すフローチャートである。以下、図１６を参照して、階層入れ替え手段２３０が、定期的にアクセス頻度が低いデータの階層を移動させる動作を説明する。
【００８３】
階層入れ替え手段２３０は、ポリシー管理テーブル３４０の階層入れ替え間隔に基づいて定期的に図１６に示す処理を実行する。まず、階層入れ替え手段２３０は、ＬＤマッピングテーブル３００を参照し、アクセス頻度に基づいて、移動対象のデータを選択する（ステップＳ７０）。
【００８４】
次に階層入れ替え手段２３０は、選択した移動対象のデータの移動先がＣＡＳ階層の場合（ステップＳ７１がＹＥＳ）、この選択した移動対象のデータについて重複排除手段２２０に対してＣＡＳ化指示を行う（ステップＳ７２）。その後、階層入れ替え手段２３０は、上記ＣＡＳ化指示に対する結果に従い、ＬＤマッピングテーブル３００の階層アドレス、階層番号、階層１マッピングテーブル３２１の階層アドレス、有効フラグを更新し、外部ストレージ階層マッピングテーブル３２２に新規エントリを追加する（ステップＳ７３）。また階層入れ替え手段２３０は、階層１マッピングテーブル３２１の実データを削除する（ステップＳ７４）。そして、図１６の処理を終了する。
【００８５】
選択した移動対象のデータの移動先がＣＡＳ階層ではない場合（ステップＳ７１がＮＯ）、階層入れ替え手段２３０は、階層デバイスに対して実データの移動を行う（ステップＳ７５）。そして、階層入れ替え手段２３０は、その移動に応じて階層０マッピングテーブル３２０、階層１マッピングテーブル３２１のテーブルを更新する（ステップＳ７６）。そして、図１６の処理を終了する。
【００８６】
図１７は重複排除手段２２０の動作を示すフローチャートである。以下、図１７を参照して、重複排除手段２２０が階層入れ替え手段２３０からのＣＡＳ化指示（ステップＳ７２）により重複排除処理を行う動作を説明する。
【００８７】
重複排除手段２２０は、まず、階層入れ替え手段２３０からＣＡＳ化指示を受けた対象の実データを、階層１マッピングテーブル３２１を参照して取得し、所定の算出方法で実データからハッシュをＣＡとして計算する（ステップＳ５０）。なお、ＣＡが既に算出されている場合、その計算を省略してよい。次に重複排除手段２２０は、計算したＣＡを用いて重複データがストレージ内に存在するか否かを調べ、存在する場合（ステップＳ５１がＹＥＳ）、重複排除ありストレージ１内部で重複排除を行い、階層１マッピングテーブル３２１および外部ストレージ階層マッピングテーブル３２２を更新する（ステップＳ５２）。そして、図１７の処理を終了する。他方、重複排除手段２２０は、計算したＣＡを用いて重複データがストレージ内に存在するか否かを調べた結果、存在しない場合（ステップＳ５１がＮＯ）、データ送受信手段２１０に対して上記ＣＡをキーに送信指示を行う（ステップＳ５３）。そして、図１７の処理を終了する。
【００８８】
図１８はデータ送受信手段２１０の動作を示すフローチャートである。以下、図１８を参照して、データ送受信手段２１０が重複排除手段２２０から送信指示（ステップＳ５３）を受けた場合の動作を説明する。
【００８９】
データ送受信手段２１０は、重複排除手段２２０から送信指示を受けると、まず、クラウドストレージ管理手段２５０、他ストレージ３のデータ送受信手段２１１に対して、ＣＡをキーとして対象のデータが存在するか否かを検索するためにＲＥＳＴで検索指示を送信する（ステップＳ２０）。次にデータ送受信手段２１０は、その検索結果が同一データなしの場合（ステップＳ２１がＮＯ）、クラウドストレージ管理手段２５０、他ストレージ３のデータ送受信手段２１１に対して、ＣＡをキーとして実データを送信する（ステップＳ２２）。そして、データ送受信手段２１０は、ステップＳ２３へと進む。他方、データ送受信手段２１０は、上記検索結果が同一データ有の場合（ステップＳ２１がＹＥＳ）、ステップＳ２２をスキップしてステップＳ２３へと進む。
【００９０】
データ送受信手段２１０は、ステップＳ２３では、階層入れ替え手段２３０に対して、ＬＤマッピングテーブル３００、階層１マッピングテーブル３２１、外部ストレージ階層マッピングテーブル３２２の更新と対象のデータの削除を指示する（ステップＳ２３）。そして、図１８の処理を終了する。ステップＳ２３による指示を受けた階層入れ替え手段２３０は、前述した図１６のステップＳ７３、Ｓ７４の処理を実行する。
【００９１】
このように、データ送受信手段２１０は、アクセス頻度が低くなったデータを、ＲＥＳＴ（ＲＥｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ）インタフェースを利用してクラウドストレージ２に対して送信する動作を行っている。そして、本実施形態では、この動作は、定期的に実行される階層入れ替え手段２３０のＣＡＳ化指示により実行される重複排除手段２２０が、ストレージ内で重複排除されていないデータの場合に、データ送受信手段２１０に対してデータの送信指示を行うことで行われている。
【００９２】
図１９はクラウドストレージ管理手段２５０の動作を示すフローチャートである。以下、図１９を参照して、クラウドストレージ管理手段２５０がデータ送受信手段２１０から検索指示（図１８のステップＳ２０）を受信した場合の動作を説明する。
【００９３】
クラウドストレージ管理手段２５０は、まず、データ送受信手段２１０から受信した検索指示に含まれるＣＡをキーに同一データが存在するか否かを検索する（ステップＳ１００）。次に、クラウドストレージ管理手段２５０は、同一データが存在する場合（ステップＳ１０１がＹＥＳ）、データ送受信手段２１０に対して、成功を返却し（ステップＳ１０２）、処理を終了する。一方、同一データが存在しない場合（ステップＳ１０１がＮＯ）、クラウドストレージ管理手段２５０は、データ送受信手段２１０に対して、失敗を返却し（ステップＳ１０３）、処理を終了する。
【００９４】
図２０はデータ送受信手段２１１の動作を示すフローチャートである。以下、図２０を参照して、データ送受信手段２１１がストレージ１のデータ送受信手段２１０からの検索指示（図１８のステップＳ２０）を受信した場合の動作を説明する。
【００９５】
ストレージ３のデータ送受信手段２１１は、ストレージ１のデータ送受信手段２１０から検索指示を受信すると、検索指示に含まれるＣＡをキーに対象データが存在するか否かを検索するようＣＡＳ制御手段２４１に指示する（ステップＳ３０）。次にデータ送受信手段２１１は、上記検索の結果、重複データがある場合（ステップＳ３１がＹＥＳ）、上記検索指示に対して、格納済みクラウドストレージとバックアップが格納された重複排除機能ありストレージの情報を返却し（ステップＳ３２）、処理を終了する。他方、データ送受信手段２１１は、上記検索の結果、重複データのない場合（ステップＳ３１がＮＯ）、上記検索指示に対して、外部ストレージバックアップ領域７１の空き容量と重複データが存在しないことを返却し（ステップＳ３３）、処理を終了する。このように外部ストレージバックアップ領域７１の空き容量を返却することで、空き容量を超えるデータのバックアップを防止することができる。
【００９６】
上述したように、ストレージ３のデータ送受信手段２１１は、ストレージ１から重複データの検索指示を、ＲＥＳＴインタフェースを利用して受信する。そして、データ送受信手段２１１は、ストレージ１のデータ送受信手段２１０からのＣＡをキーにした検索指示に対して、ＣＡＳ制御手段２４１に検索指示を行い、その結果を返却する。
【００９７】
図２１はＣＡＳ制御手段２４１の動作を示すフローチャートである。以下、図２１を参照して、ＣＡＳ制御手段２４１がデータ送受信手段２１１からの検索指示（図２０のステップＳ３０）を受けた場合の動作を説明する。
【００９８】
ＣＡＳ制御手段２４１は、データ送受信手段２１１から検索指示を受信すると、まず、検索指示に含まれるＣＡをキーに外部ストレージバックアップ領域７１に同一データがないか否かを検索する（ステップＳ８０）。次に、ＣＡＳ制御手段２４１は、同一データがある場合（ステップＳ８１がＹＥＳ）、データ送受信手段２１１に対して、格納済みクラウドストレージとバックアップ先のストレージの情報を返却し（ステップＳ８２）、処理を終了する。
【００９９】
他方、同一データがない場合（ステップＳ８１がＮＯ）、ＣＡＳ制御手段２４１は、データ送受信手段２１１に対して、外部ストレージバックアップ領域７１の空き容量と重複データなしの情報を返却する（ステップＳ８３）。続いて、ＣＡＳ制御手段２４１は、階層１マッピングテーブル３２１を参照し、検索指示に含まれるＣＡに一致するＣＡを有するデータがないか否かを検索する（ステップＳ８４）。次にＣＡＳ制御手段２４１は、一致するＣＡを有するデータが存在する場合（ステップＳ８５がＹＥＳ）、当該データのＣＡＳ化の優先度を高めるためにＬＤマッピングテーブル３００中の当該データのアクセス頻度をデクリメントし（ステップＳ８６）、処理を終了する。一致するＣＡを有するデータが存在しない場合（ステップＳ８５がＮＯ）、ＣＡＳ制御手段２４１は、ステップＳ８６の処理をスキップして、処理を終了する。
【０１００】
図２２はクラウドストレージ管理手段２５０の動作を示すフローチャートである。以下、図２２を参照して、クラウドストレージ管理手段２５０が、データ送受信手段２１０から送信されたＣＡをキーとする実データ（図１８のステップＳ２２）を受信した場合の動作を説明する。
【０１０１】
クラウドストレージ管理手段２５０は、データ送受信手段２１０から受信したデータをＣＡに対応付けてクラウドデータ格納先デバイス８１に格納し（ステップＳ１１０）、処理を終了する。
【０１０２】
図２３はデータ送受信手段２１１の動作を示すフローチャートである。以下、図２３を参照して、データ送受信手段２１１がデータ送受信手段２１０から送信されたＣＡをキーとする実データ（図１８のステップＳ２２）を受信した場合の動作を説明する。
【０１０３】
データ送受信手段２１１は、データ送受信手段２１０から送信されたＣＡをキーとする実データを受信すると、ＣＡＳ制御手段２４１に対して、受信したデータの格納を指示し（ステップＳ４０）、処理を終了する。
【０１０４】
このようにデータ送受信手段２１１は、ストレージ１から重複データの格納指示を、ＲＥＳＴインタフェースを利用して受信する。そして、データ送受信手段２１１は、ストレージ１のデータ送受信手段２１０からのＣＡをキーにしたデータ格納指示に対して、ＣＡＳ制御手段２４１にデータ格納指示を行い、ＣＡＳ制御手段２４１からの結果を返却する。
【０１０５】
図２４はＣＡＳ制御手段２４１の動作を示すフローチャートである。以下、図２４を参照して、ＣＡＳ制御手段２４１がデータ送受信手段２１１からのデータ格納指示を受信した場合の動作を説明する。
【０１０６】
ＣＡＳ制御手段２４１は、まず、外部ストレージバックアップ領域７１に実データを格納する（ステップＳ９０）。次にＣＡＳ制御手段２４１は、外部ストレージ管理テーブル３３０にＣＡと送信元ディスクアレイの新規エントリを追加し（ステップＳ９１）、処理を終了する。
【０１０７】
＜本実施形態の効果の説明＞
ブロックストレージの最下位階層に重複排除したデータをＣＡＳの構造で保持し、実データはクラウドストレージ２に配置することで、ストレージの諸元を超えたユーザ容量を提供し、重複排除率の向上が期待できる。
【０１０８】
本実施形態によれば、複数の重複排除機能を持ったストレージ１、３間で重複するデータを、クラウドストレージ２に格納する場合にも重複排除することが可能になる。そのため、クラウドストレージ２の格納コストを削減できる。また、クラウドストレージ２に既に格納されているデータと重複するデータは、クラウドストレージ２に対して送信されないため、通信コストを削減できる。
【０１０９】
また本実施形態によれば、ローカルサイトに存在する、同等の機能を持った複数の外部ストレージバックアップ領域７０、７１に対して、１個以上のバックアップデータをいずれかの外部ストレージバックアップ領域７０、７１に保持することができる。そのため、クラウドストレージ２が利用できない場合の代替手段を提供でき、可用性が向上することでサービスレベルを高めることができる。
【０１１０】
また本実施形態によれば、他のストレージ１からクラウドストレージ２に追い出されたデータのバックアップデータを自ストレージ３に保存する際に、階層１マッピングテーブルに同一データが存在すれば、当該同一データを優先的に重複排除の対象とすることで、重複排除率が向上し、ストレージの格納コストを削減できる。
【０１１１】
即ち、本実施形態によれば、ローカルサイトに存在する外部ストレージにバックアップを配置することで、可用性の向上及び重複排除率の向上が期待できる。
【０１１２】
[第３の実施形態]
図２５を参照すると、本発明の第３の実施形態に係るブロックストレージ４０００は、階層論理ディスク４１００と重複排除手段４２００と階層入れ替え手段４３００とを有する。
【０１１３】
階層論理ディスク４１００は、階層化された複数の論理ディスクを有する。
【０１１４】
重複排除手段４２００は、最下位階層の１つ上の階層の論理ディスクに格納されているデータのアクセス頻度が閾値より低下したときに、当該データのハッシュをコンテントアドレスに有するデータを、最下位階層の論理ディスクに相当する、複数のブロックストレージで共用するオブジェクトストレージ（図示せず）から検索する機能を有する。
【０１１５】
階層入れ替え手段４３００は、アクセス頻度に応じてデータを何れかの階層の論理ディスクに格納する機能を有する。また階層入れ替え手段４３００は、重複排除手段４２００による上記検索が失敗したときに、上記データを上記オブジェクトストレージに送信して、上記データを格納する階層を最下位階層に変更する機能を有する。また階層入れ替え手段４３００は、上記検索が成功したときに、上記送信を省略して、上記データを格納する階層を最下位階層に変更する機能を有する。
【０１１６】
上述したような構成を有する本実施形態に係るブロックストレージ４０００は、以下のように動作する。
【０１１７】
階層入れ替え手段４３００は、アクセス頻度に応じてデータを階層論理ディスク４１００の何れかの階層の論理ディスクに格納する。
【０１１８】
重複排除手段４２００は、例えば定期的に、最下位階層の１つ上の階層の論理ディスクに格納されているデータのアクセス頻度が閾値より低下したか否かを検出する。そして、重複排除手段４２００は、アクセス頻度が閾値より低下したデータのハッシュをコンテントアドレスに有するデータを、最下位階層の論理ディスクに相当する、複数のブロックストレージで共用するオブジェクトストレージから検索する。
【０１１９】
階層入れ替え手段４３００は、重複排除手段４２００による上記検索が失敗したとき、上記データを上記オブジェクトストレージに送信して、上記データを格納する階層を最下位階層に変更する。また階層入れ替え手段４３００は、重複排除手段４２００による上記検索が成功したとき、上記送信を省略して、上記データを格納する階層を最下位階層に変更する。
【０１２０】
このように本実施形態によれば、複数のブロックストレージでオブジェクトストレージを共用する場合、複数のブロックストレージの同じデータがオブジェクトストレージに重複して格納されるのを防止できる。
【０１２１】
その理由は、最下位階層の１つ上の階層の論理ディスクに格納されているデータのアクセス頻度が閾値より低下したときに、当該データのハッシュをコンテントアドレスに有するデータを、最下位階層の論理ディスクに相当する、複数のブロックストレージで共用するオブジェクトストレージから検索する重複排除手段４２００と、上記検索に失敗したときに上記データを上記オブジェクトストレージに送信して上記データを格納する階層を最下位階層に変更し、上記検索に成功したときに上記送信を省略して上記データを格納する階層を最下位階層に変更する階層入れ替え手段４３００を有するためである。
【産業上の利用可能性】
【０１２２】
本発明によれば、ディスクアレイ装置の用途に適用できる。
【符号の説明】
【０１２３】
１…重複排除機能を有するストレージ
２…クラウドストレージ
３…重複排除機能を有するストレージ
５０、５１…階層論理ディスク
６０…階層デバイス
７０、７１…外部ストレージバックアップ領域
８０、８２…格納先デバイス
８１…クラウドデータ格納先デバイス
２００…アクセス頻度更新手段
２１０、２１１…データ送受信手段
２２０…重複排除手段
２３０…階層入れ替え手段
２４０、２４１…ＣＡＳ制御手段
２５０…クラウドストレージ管理手段
３００…ＬＤマッピングテーブル
３１０…階層管理テーブル
３２０…階層０マッピングテーブル
３２１…階層１マッピングテーブル
３２２…外部ストレージ階層マッピングテーブル
３３０、３３１…外部ストレージ管理テーブル
【図１】
0006708948.tif 000002
【図２】
0006708948.tif 000003
【図３】
0006708948.tif 000004
【図４】
0006708948.tif 000005
【図５】
0006708948.tif 000006
【図６】
0006708948.tif 000007
【図７】
0006708948.tif 000008
【図８】
0006708948.tif 000009
【図９】
0006708948.tif 000010
【図１０】
0006708948.tif 000011
【図１１】
0006708948.tif 000012
【図１２】
0006708948.tif 000013
【図１３】
0006708948.tif 000014
【図１４】
0006708948.tif 000015
【図１５】
0006708948.tif 000016
【図１６】
0006708948.tif 000017
【図１７】
0006708948.tif 000018
【図１８】
0006708948.tif 000019
【図１９】
0006708948.tif 000020
【図２０】
0006708948.tif 000021
【図２１】
0006708948.tif 000022
【図２２】
0006708948.tif 000023
【図２３】
0006708948.tif 000024
【図２４】
0006708948.tif 000025
【図２５】
0006708948.tif 000026