(57)【要約】【課題】  性能の低下およびコストの上昇を抑えつつ、ストレージの容量を増大する。【解決手段】  ブロックストレージ１は、アクセス頻度が閾値より低いブロックを所定数集約し、集約されたブロックをオブジェクトストレージに送信するオブジェクト化集約手段２１０と、オブジェクトストレージに送信されたブロックをブロックストレージ１から削除する階層入れ替え手段２２０とを備える。【選択図】      図１１
2015179422.tif 000002
【特許請求の範囲】
【請求項１】
アクセス頻度が閾値より低いブロックを所定数集約し、前記集約されたブロックをオブジェクトストレージに送信するオブジェクト化集約手段と、
前記オブジェクトストレージに送信されたブロックを自ブロックストレージから削除する階層入れ替え手段とを備えるブロックストレージ。
【請求項２】
前記オブジェクト化集約手段は、前記オブジェクトストレージに送信されたブロックに対する読み出しに対応して、前記オブジェクトストレージから当該ブロックを取得する請求項１に記載のブロックストレージ。
【請求項３】
前記オブジェクト化集約手段は、前記オブジェクトストレージに送信されたブロックに対する書き込みに対応して、前記オブジェクトストレージから、当該ブロックと、当該ブロックと共に集約されたブロックとを取得する請求項１または２に記載のブロックストレージ。
【請求項４】
請求項１乃至３のいずれかに記載のブロックストレージと、
前記ブロックストレージから受信したデータをオブジェクト化して格納するオブジェクトストレージとを備えるストレージシステム。
【請求項５】
請求項４に記載のストレージシステムと、
前記ストレージシステムにアクセス可能なホストコンピュータとを備えるコンピュータシステム。
【請求項６】
アクセス頻度が閾値より低いブロックストレージのブロックを所定数集約し、
前記集約されたブロックをオブジェクトストレージに送信し、
前記オブジェクトストレージに送信されたブロックを前記ブロックストレージから削除するブロックストレージ制御方法。
【請求項７】
前記オブジェクトストレージに送信されたブロックに対する読み出しに対応して、前記オブジェクトストレージから当該ブロックを取得する請求項６に記載のブロックストレージ制御方法。
【請求項８】
前記オブジェクトストレージに送信されたブロックに対する書き込みに対応して、前記オブジェクトストレージから、当該ブロックと、当該ブロックと共に集約されたブロックとを取得する請求項６または７に記載のブロックストレージ制御方法。
【請求項９】
ブロックストレージが、請求項６乃至８のいずれかに記載の処理を行い、
オブジェクトストレージが、前記ブロックストレージから受信したデータをオブジェクト化して格納するストレージシステム制御方法。
【請求項１０】
アクセス頻度が閾値より低いブロックストレージのブロックを所定数集約する処理と、
前記集約されたブロックをオブジェクトストレージに送信する処理と、
前記オブジェクトストレージに送信されたブロックを前記ブロックストレージから削除する処理とをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージに関し、特に階層化されたストレージに関する。
【背景技術】
【０００２】
性能の異なる複数の物理デバイスを階層化して構成し、アクセス頻度に応じてデータを配置することにより、コストを抑えつつ性能が高いストレージを提供する技術が知られている。このような技術の一例が特許文献１に記載されている。
【０００３】
特許文献１記載のストレージシステムは、複数の性能の異なる記憶装置を備え、論理ボリュームをアクセス頻度に基づいてこれら記憶装置に対応付ける。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開公報  ＷＯ２０１３／１０３００３Ａ１
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述した特許文献１記載のストレージシステムにおいては、当該ストレージシステムが備える記憶装置の諸元を超える容量のデータを格納することはできないという問題がある。
【０００６】
本発明は、上述した課題を解決し、高性能，低コストかつ大容量なストレージを実現するための技術を提供することを主たる目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成する本発明に係るブロックストレージは、
アクセス頻度が閾値より低いブロックを所定数集約し、前記集約されたブロックをオブジェクトストレージに送信するオブジェクト化集約手段と、
前記オブジェクトストレージに送信されたブロックを自ブロックストレージから削除する階層入れ替え手段とを備える。
【０００８】
上記目的を達成する本発明に係るストレージシステムは、
上述のブロックストレージと、
前記ブロックストレージから受信したデータをオブジェクト化して格納するオブジェクトストレージとを備える。
【０００９】
上記目的を達成する本発明に係るコンピュータシステムは、
上述のストレージシステムと、
前記ストレージシステムにアクセス可能なホストコンピュータとを備える。
【００１０】
上記目的を達成する本発明に係るブロックストレージ制御方法は、
アクセス頻度が閾値より低いブロックストレージのブロックを所定数集約し、
前記集約されたブロックをオブジェクトストレージに送信し、
前記オブジェクトストレージに送信されたブロックを前記ブロックストレージから削除する。
【００１１】
上記目的を達成する本発明に係るプログラムは、
アクセス頻度が閾値より低いブロックストレージのブロックを所定数集約する処理と、
前記集約されたブロックをオブジェクトストレージに送信する処理と、
前記オブジェクトストレージに送信されたブロックを前記ブロックストレージから削除する処理とをコンピュータに実行させる。
【発明の効果】
【００１２】
本発明によれば、性能の低下およびコストの上昇を抑えつつ、ストレージの容量を増大することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施形態に係るストレージシステムの構成を表すブロック図である。
【図２】ＬＤマッピングテーブル３００の内容の一例を示す図である。
【図３】階層管理テーブル３１０の内容の一例を示す図である。
【図４】階層０マッピングテーブル３２０の内容の一例を示す図である。
【図５】階層１マッピングテーブル３２１の内容の一例を示す図である。
【図６】階層２マッピングテーブル３２２の内容の一例を示す図である。
【図７】オブジェクト管理テーブル３３０の内容の一例を示す図である。
【図８】オブジェクト集約テーブル３４０の内容の一例を示す図である。
【図９】ポリシー管理テーブル３５０の内容の一例を示す図である。
【図１０】アクセス頻度更新部２００の動作を表すフローチャートである。
【図１１】アクセス頻度の低いデータをオブジェクトストレージ２へ再配置する動作を表すフローチャートである。
【図１２】オブジェクト化されたアドレスに読み出しが行われた場合の動作を表すフローチャートである。
【図１３】オブジェクト化されたアドレスに書き込みが行われた場合の動作を表すフローチャートである。
【図１４】オブジェクト削除部２３０の動作を表すフローチャートである。
【図１５】オブジェクトストレージ管理部２４０がオブジェクトを格納する場合の動作を表すフローチャートである。
【図１６】オブジェクトストレージ管理部２４０が対象のオブジェクトを削除する場合の動作を表すフローチャートである。
【図１７】階層入れ替え部２２０が削除指示を受け取った場合の動作を表すフローチャートである。
【図１８】階層入れ替え部２２０が入れ替え指示を受け取った場合の動作を表すフローチャートである。
【図１９】本発明の第２の実施形態に係るブロックストレージの構成を表すブロック図である。
【図２０】コンピュータを構成する要素の例を表すブロック構成図である。
【発明を実施するための形態】
【００１４】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１５】
［第１の実施形態］
図１は、本発明の第１の実施形態に係るストレージシステムの構成を表すブロック図である。本発明の第１の実施形態に係るストレージシステムＳＳは、ブロックストレージ１と、ブロックストレージ１とＷＡＮ(Wide Area Network)で接続されたオブジェクトストレージ２とを含む。ブロックストレージ１は、ブロック単位に仮想化されたアクセスを提供するストレージ装置である。
ブロックストレージ１は、仮想サーバ１００とＦＣ(Fiber Channel)、ｉＳＣＳＩ(Internet Small Computer System Interface)またはＳＡＳ(Serial Attached SCSI)で接続されている。オブジェクトストレージ２は、Ａｍａｚｏｎ  Ｓ３(Amazon Simple Storage Service)（登録商標）のような、他社ベンダによって提供されるオブジェクトストレージサービスであってもよい。
【００１６】
ブロックストレージ１は、階層論理ディスク５０と、アクセス頻度更新部２００と、オブジェクト化集約部２１０と、階層入れ替え部２２０と、オブジェクト削除部２３０と、ポリシー管理テーブル３５０とを含む。階層論理ディスク５０は、性能の異なる物理デバイスやオブジェクトストレージを組み合わせることにより階層化された論理ディスクである。アクセス頻度更新部２００は、仮想サーバ１００からのデータアクセスを定期的に更新し、各種操作を指示する。オブジェクト化集約部２１０は、アクセス頻度が所定の閾値より低いブロックを集約し、オブジェクトストレージ管理部２４０（後述）に送信する。階層入れ替え部２２０は、実データの入れ替えを行う。オブジェクト削除部２３０は、ダーティとなったオブジェクトの削除指示を行う。ポリシー管理テーブル３５０は、階層論理ディスク５０の設定を格納する。
【００１７】
オブジェクトストレージ２は、オブジェクト格納先デバイス７０と、オブジェクトストレージ管理部２４０とを含む。オブジェクト格納先デバイス７０は、オブジェクトが格納される物理デバイスである。オブジェクトストレージ管理部２４０は、オブジェクト化集約部２１０から受信した実データをオブジェクト化し、オブジェクト化したデータをオブジェクト格納先デバイス７０に格納する。
【００１８】
仮想サーバ１００は、ゲストＯＳ(Operating System)１０１〜１０２を含む。仮想サーバ１００は、ホストコンピュータと呼ばれることもある。仮想サーバとストレージシステムＳＳとを合わせてコンピュータシステムと呼ばれることもある。
【００１９】
階層論理ディスク５０は、ＬＤ(Logical Disk)マッピングテーブル３００と、階層管理テーブル３１０と、階層０マッピングテーブル３２０と、階層１マッピングテーブル３２１と、階層２マッピングテーブル３２２と、オブジェクト管理テーブル３３０と、オブジェクト集約テーブル３４０と、階層デバイス６０とを含む。ＬＤマッピングテーブル３００は、階層論理ディスクの一次アドレスを格納する。階層管理テーブル３１０は、階層種別を格納する。階層０マッピングテーブル３２０、階層１マッピングテーブル３２１、および階層２マッピングテーブル３２２は、二次アドレスを格納する。オブジェクト管理テーブル３３０は、オブジェクト化された管理情報を格納する。オブジェクト集約テーブル３４０は、オブジェクトとして集約したブロックのアドレスを格納する。階層デバイス６０は、階層論理ディスク５０に書き込まれる実データを格納する。第１の実施形態に係るブロックストレージ１において、階層デバイス６０は、ＳＳＤ(Solid State Drive)、ＳＡＳ、およびＯｂｊｅｃｔ（オブジェクトストレージ）である。なお、以降の説明において、「ＳＡＳ」は、ＳＡＳハードディスクドライブを表す。
【００２０】
アクセス頻度更新部２００は、ポリシー管理テーブル３５０を参照して、各階層論理ディスクのアクセス頻度更新間隔、オブジェクト化間隔、階層入れ替え間隔、オブジェクト削除間隔に従い、定期的に操作指示を行う機能を有する。また、アクセス頻度更新部２００は、アクセス頻度更新間隔に基づいたタイミングで、ＬＤマッピングテーブルのアクセス頻度を更新する機能を有する。
【００２１】
オブジェクト化集約部２１０は、アクセス頻度更新部２００からの操作指示に従い、ポリシー管理テーブル３５０を参照することにより集約数を取得する。そして、オブジェクト化集約部２１０は、ＬＤマッピングテーブル３００のアクセス頻度を参照し、ポリシー管理テーブル３５０から取得した集約数に基づいてオブジェクト化するデータを抽出する機能を有する。また、オブジェクト化集約部２１０は、抽出した実データをオブジェクトストレージ管理部２４０に送信する機能を有する。また、オブジェクト化集約部２１０は、オブジェクトストレージ管理部２４０からメタデータを受信する機能を有する。また、オブジェクト化集約部２１０は、集約したデータの管理情報をオブジェクト管理テーブル３３０およびオブジェクト集約テーブル３４０に格納する機能を有する。また、オブジェクト化集約部２１０は、オブジェクト化した実データを削除する際に、階層入れ替え部２２０に入れ替えを指示する機能を有する。
【００２２】
階層入れ替え部２２０は、アクセス頻度更新部２００からの操作指示に従い、階層デバイス６０間において実データを移動し、その後、ＬＤマッピングテーブル３００と階層マッピングテーブルとを更新する機能を有する。また、階層入れ替え部２２０は、オブジェクト化集約部２１０からの入れ替え指示に従い、ＬＤマッピングテーブル３００と階層マッピングテーブルとを更新する機能を有する。なお、階層マッピングテーブルとは、階層０マッピングテーブル３２０、階層１マッピングテーブル３２１、および階層２マッピングテーブル３２２を指す。各階層マッピングテーブルは、各階層の階層アドレスが使用中（有効）か否かを表す。
【００２３】
オブジェクト削除部２３０は、アクセス頻度更新部２００からの操作指示に従い、オブジェクトストレージ管理部２４０にオブジェクト削除指示を行う機能を有する。そして、オブジェクト削除部２３０は、オブジェクト管理テーブル３３０とオブジェクト集約テーブル３４０を更新する機能を有する。
【００２４】
オブジェクトストレージ管理部２４０は、オブジェクト化集約部２１０から受信した実データをオブジェクト化する機能を有する。そして、オブジェクトストレージ管理部２４０は、オブジェクト化したデータをオブジェクト格納先デバイス７０に格納し、メタデータをオブジェクト化集約部２１０に返却する機能を有する。また、オブジェクトストレージ管理部２４０は、オブジェクト削除部２３０からのオブジェクト削除指示により、格納済みオブジェクトを削除する機能を有する。
【００２５】
ＬＤマッピングテーブル３００は、仮想サーバ１００から階層論理ディスク５０にアクセスする際に参照されるアドレステーブルである。図２はＬＤマッピングテーブル３００の内容の一例を示す図である。図２に示すＬＤマッピングテーブル３００は、論理アドレスと、階層アドレスと、階層番号と、ＯＢＪ(Object)フラグと、アクセス頻度とが紐付けて記録されている。アクセス頻度は、当該アドレスへのアクセスの頻度を表す。アクセス頻度は、０が最も低く、数値が大きくなるにつれアクセス頻度が高いことを表す。アクセス頻度は、例えば、アクセス頻度更新部２００が、仮想サーバ１００から当該アドレスへのアクセスの頻度を一定期間ごとに集計することによって求められてもよい。ＯＢＪフラグは、その値が「１」の場合は、データがオブジェクト化されていることを表し、その値が「０」の場合は、データがオブジェクト化されていない（実データ）であることを表す。例えば、図２に示すＬＤマッピングテーブル３００の２行目は、論理アドレスが「００００００１０」、階層アドレスが「００００００１０」、階層番号が「１」、ＯＢＪフラグが「０」、アクセス頻度が「３」である。これは、階層１の００００００１０アドレスに実データが格納され、アクセス頻度は３（中頻度アクセス）であることを表している。
【００２６】
階層管理テーブル３１０は、階層に割り当てられた物理デバイスを表すテーブルである。図３は階層管理テーブル３１０の内容の一例を示す図である。図３に示す階層管理テーブル３１０は、階層番号と、階層デバイスとが紐付けて記録されている。ここで、階層デバイスの値「ＳＳＤ」および「ＳＡＳ」は、この階層にこれら物理デバイスが割り付けられていることを表す。また、階層デバイスの値「ＯＢＪ」は、この階層にオブジェクトストレージが割り付けられていることを表す。例えば、図３に示す階層管理テーブル３１０の１行目は、階層番号が「０」、階層デバイスが「ＳＳＤ」である。これは、階層０にはＳＳＤが割り付けられていることを表している。
【００２７】
階層０マッピングテーブル３２０は、ＬＤマッピングテーブル３００から階層０の階層デバイス６０にアクセスする際に参照されるアドレステーブルである。図４は階層０マッピングテーブル３２０の内容の一例を示す図である。図４に示す階層０マッピングテーブル３２０は、階層０の階層アドレスと、有効フラグとが紐付けて記録されている。例えば、図４に示す階層０マッピングテーブル３２０の１行目は、階層アドレスが「００００００００」、有効フラグが「０」である。これは、階層０の００００００００アドレスは空き領域であることを表している。
【００２８】
階層１マッピングテーブル３２１は、ＬＤマッピングテーブル３００から階層１の階層デバイス６０にアクセスする際に参照されるアドレステーブルである。図５は階層１マッピングテーブル３２１の内容の一例を示す図である。図５に示す階層１マッピングテーブル３２１は、階層1の階層アドレスと、有効フラグとが紐付けて記録されている。例えば、図５に示す階層１マッピングテーブル３２１の１行目は、階層アドレスが「００００００００」、有効フラグが「１」である。これは、階層１の００００００００アドレスは使用中であり、かつ、階層番号１のデバイスのアドレス００００００００をポイントしていることを表している。
【００２９】
階層２マッピングテーブル３２２は、ＬＤマッピングテーブル３００から階層２の階層デバイス６０にアクセスする際に参照されるアドレステーブルである。図６は階層２マッピングテーブル３２２の内容の一例を示す図である。図６に示す階層２マッピングテーブル３２２は、階層２の階層アドレスと、有効フラグとが紐付けて記録されている。例えば、図６に示す階層２マッピングテーブル３２２の１行目は、階層アドレスが「８０００００００」、有効フラグが「１」である。これは、階層２の８０００００００アドレスは使用中であり、かつ、オブジェクト管理テーブルのアドレス８０００００００をポイントしていることを表している。
【００３０】
オブジェクト管理テーブル３３０は、オブジェクト化したアドレスにアクセスする際に参照されるアドレステーブルである。図７はオブジェクト管理テーブル３３０の内容の一例を示す図である。図７に示すオブジェクト管理テーブル３３０は、アドレス（オブジェクトアドレス）と、オブジェクト集約テーブル３４０へのポインタ（オブジェクト集約アドレス）と、集約数とが紐付けて記録されている。例えば、図７に示すオブジェクト管理テーブル３３０の１行目は、オブジェクトアドレスが「８０００００００」、オブジェクト集約アドレスが「９０００００００」、集約数が「１０２４」である。これは、オブジェクト集約アドレス９０００００００に１０２４個のアドレス（ブロック）が集約されていることを表している。
【００３１】
オブジェクト集約テーブル３４０は、オブジェクトとして集約したアドレス（ブロック）と、オブジェクトストレージに対してアクセスする際に参照されるオブジェクトＩＤ(Identification)とを格納するテーブルである。図８はオブジェクト集約テーブル３４０の内容の一例を示す図である。図８に示すオブジェクト集約テーブル３４０は、オブジェクトＩＤと、論理アドレスと、有効フラグとが紐付けて記録されている。例えば、図８に示すオブジェクト集約テーブル３４０の１行目はオブジェクトＩＤが「aad00exfdsdddb」、論理アドレスのリストが「００００１０００」〜「００００１ｆｆ０」、有効フラグが「１」である。これは、オブジェクトＩＤがaad00exfdsdddbであるオブジェクトに、論理アドレス００００１０００〜００００１ｆｆ０の実データが格納されていることを表している。
【００３２】
ポリシー管理テーブル３５０は、階層論理ディスク５０ごとに集約数を格納するテーブルである。図９はポリシー管理テーブル３５０の内容の一例を示す図である。図９に示すポリシー管理テーブル３５０は、階層論理ディスク番号と、集約数と、アクセス頻度更新間隔と、オブジェクト化間隔と、階層入れ替え間隔と、オブジェクト削除間隔とが紐付けて記録されている。例えば、図９に示すポリシー管理テーブル３５０の１行目は、階層論理ディスク番号が「０」、集約数が「１０２４」、アクセス頻度更新間隔が「１８００秒」、オブジェクト化間隔が「７２００秒」、階層入れ替え間隔が「３６００秒」、オブジェクト削除間隔が「１４４００秒」である。これは、階層論理ディスク番号０の論理ディスクは１０２４アドレス（ブロック）を集約してオブジェクト化し、アクセス頻度の更新を３０分ごとに、データのオブジェクト化を２時間ごとに、データの階層入れ替えを１時間ごとに、オブジェクトの削除を４時間ごとに実施することを表している。
【００３３】
次に、本発明の第１の実施形態に係るストレージシステムＳＳの動作について詳細に説明する。
【００３４】
図１０は、アクセス頻度更新部２００の動作を表すフローチャートである。以下、図１０を参照して、アクセス頻度更新部２００が階層論理ディスク５０のアクセス頻度を更新する場合の動作を説明する。
【００３５】
以下の処理は、ポリシー管理テーブル３５０のアクセス頻度更新間隔に基づいて定期的に実行されてもよい。アクセス頻度更新部２００は、対象の階層論理ディスク５０のＬＤマッピングテーブル３００のアクセス頻度を一括でデクリメント（減算）する（ステップＳ１０）。そして、処理は終了する。
【００３６】
次に、オブジェクト化集約部２１０による、オブジェクトストレージ２を用いた、アクセス頻度が低くなったデータに対するデータ再配置動作を説明する。データ再配置動作は、第１のデータ再配置動作、第２のデータ再配置動作、および第３のデータ再配置動作に分けられる。
【００３７】
第１のデータ再配置動作は、定期的に実行され、以下の処理を含む。オブジェクト化集約部２１０は、ポリシー管理テーブル３５０、ＬＤマッピングテーブル３００、およびオブジェクト集約テーブル３４０を参照する。そして、オブジェクト化集約部２１０は、オブジェクト化するデータをオブジェクトストレージ管理部２４０に送信する。そして、オブジェクト化集約部２１０は、オブジェクトストレージ管理部２４０から返却されたオブジェクトＩＤをオブジェクト集約テーブル３４０に追加する。そして、オブジェクト化集約部２１０は、階層入れ替え部２２０に対して、オブジェクトストレージに再配置する実データを削除する指示を行う。
【００３８】
第２のデータ再配置動作は、オブジェクト化された論理アドレスに読み出しが発生した場合に、オブジェクト化集約部２１０が、オブジェクトストレージ２から実データを返却する処理を含む。
【００３９】
第３のデータ再配置動作は、オブジェクト化された論理アドレスに書き込みが発生した場合に、オブジェクト化集約部２１０が、オブジェクトストレージ２のデータを無効なデータとする処理を含む。
【００４０】
図１１は、オブジェクト化集約部２１０が、定期的に、アクセス頻度の低いデータをオブジェクトストレージ２へ再配置する動作（第１のデータ再配置動作）を表すフローチャートである。以下、図１１を参照して、第１のデータ再配置動作を説明する。
【００４１】
第１のデータ再配置動作は、ポリシー管理テーブル３５０のオブジェクト化間隔に基づき、アクセス頻度更新部２００から定期的に呼び出されることによって実行されてもよい。最初に、オブジェクト化集約部２１０は、ポリシー管理テーブル３５０を参照することにより、階層論理ディスク５０の集約数を取得する（ステップＳ２０）。次に、オブジェクト化集約部２１０は、ＬＤマッピングテーブル３００を参照し、アクセス頻度が０で、かつ、ＯＢＪフラグが０であるエントリをすべて取得する（ステップＳ２１）。オブジェクト化集約部２１０は、上記の条件に加え、階層管理テーブル３１０を参照することにより、階層デバイスがＯＢＪ以外であり、かつ最下位である階層番号を持つエントリのみを取得してもよい。
【００４２】
次に、オブジェクト化集約部２１０は、オブジェクト集約テーブル３４０を参照する。そして、オブジェクト化集約部２１０は、ステップＳ２１で取得したＬＤマッピングテーブル３００のエントリの論理アドレスが、オブジェクト集約テーブル３４０の有効フラグが１であるエントリに含まれているか判定する（ステップＳ２２）。含まれている場合（ステップＳ２２において「ＹＥＳ」）、オブジェクト化集約部２１０は、ＬＤマッピングテーブル３００の階層アドレスを更新し、再オブジェクト化の対象から削除する（ステップＳ２７）。そして、処理はステップＳ２６に進む。含まれていない場合（ステップＳ２２において「ＮＯ」）、オブジェクト化集約部２１０は、エントリが集約数を超えたかどうかを判定する（ステップＳ２３）。超えた場合（ステップＳ２３において「ＹＥＳ」）、オブジェクト化集約部２１０は、オブジェクトストレージ管理部２４０に対して、集約した実データ（ブロック）をＲＥＳＴ(Representational State Transfer)で送信する（ステップＳ２４）。エントリが集約数を超えなかった場合（ステップＳ２３において「ＮＯ」）、処理は終了する。
【００４３】
次に、オブジェクト化集約部２１０は、オブジェクトストレージ管理部２４０から返却されたオブジェクトＩＤと集約した論理アドレスとをオブジェクト集約テーブル３４０に追加する（ステップＳ２５）。次に、オブジェクト化集約部２１０は、階層入れ替え部２２０に対して、集約対象の論理アドレスの実データ（ブロック）の削除を指示する（ステップＳ２６）。そして、処理は終了する。
【００４４】
図１２は、オブジェクト化されたアドレスに読み出しが行われた場合の動作（第２のデータ再配置動作）を表すフローチャートである。以下、図１２を参照して、第２のデータ再配置動作を説明する。
【００４５】
オブジェクト化されたアドレス（ブロック）に読み出しが行われると、オブジェクト化集約部２１０は、オブジェクトストレージ管理部２４０に対してオブジェクトＩＤを指定することにより、該当するデータを取り出す（ステップＳ３０）。取り出されるデータは、読み出しが行われるアドレスが表すブロックである。次に、オブジェクト化集約部２１０は、階層管理テーブル３１０を参照し、階層デバイスがＯＢＪ以外であり、かつ最下位である階層番号を取得する（ステップＳ３１）。次に、オブジェクト化集約部２１０は、ステップＳ３１で取得した階層番号に対応する階層マッピングテーブルから、有効フラグが０であるエントリを１つ取得する（ステップＳ３２）。次に、オブジェクト化集約部２１０は、ステップＳ３０で取り出した実データとステップＳ３２で取得したエントリとを指定し、階層入れ替え部２２０に対して入れ替え指示を行う（ステップＳ３３）。そして、処理は終了する。
【００４６】
図１３は、オブジェクト化されたアドレスに書き込みが行われた場合の動作（第３のデータ再配置動作）を表すフローチャートである。以下、図１３を参照して、第３のデータ再配置動作を説明する。
【００４７】
オブジェクト化されたアドレス（ブロック）に書き込みが行われると、オブジェクト化集約部２１０は、オブジェクトストレージ管理部２４０に対してオブジェクトＩＤを指定することにより、該当するデータを取り出す（ステップＳ４０）。取り出されるデータは、書き込みが行われるブロックと、このブロックと共に集約されてオブジェクト化されているブロックである。次に、オブジェクト化集約部２１０は、階層管理テーブル３１０を参照し、階層デバイスがＯＢＪ以外であり、かつ最下位である階層番号を取得する（ステップＳ４１）。次に、オブジェクト化集約部２１０は、ステップＳ４１で取得した階層番号に対応する階層マッピングテーブルから、有効フラグが０であるエントリを集約数分取得する（ステップＳ４２）。次に、オブジェクト化集約部２１０は、ステップＳ４０で取り出した実データとステップＳ４２で取得したエントリとを指定し、階層入れ替え部２２０に対して入れ替え指示を行う（ステップＳ４３）。次に、オブジェクト化集約部２１０は、オブジェクト集約テーブル３４０の当該オブジェクトのエントリの有効フラグを０に更新する（ステップＳ４４）。このことにより、当該オブジェクトは、オブジェクト削除部２３０による削除対象である無効なデータとなる。そして、処理は終了する。
【００４８】
図１４は、オブジェクト削除部２３０の動作を表すフローチャートである。以下、図１４を参照して、オブジェクト削除部２３０が、オブジェクトストレージ２から不要になったデータを削除する場合の動作を説明する。
【００４９】
以下の処理は、ポリシー管理テーブル３５０のオブジェクト削除間隔に基づき、アクセス頻度更新部２００から定期的に呼び出されることによって実行されてもよい。最初に、オブジェクト削除部２３０は、オブジェクト管理テーブル３３０とオブジェクト集約テーブル３４０とを参照し、オブジェクト集約テーブル３４０から有効フラグが０であるエントリを検索する（ステップＳ５０）。対象エントリがない場合（ステップＳ５１において「ＮＯ」）、処理は終了する。対象エントリがある場合（ステップＳ５１において「ＹＥＳ」）、オブジェクト削除部２３０は、オブジェクトストレージ管理部２４０に対して、オブジェクトＩＤを指定して削除を指示する（ステップＳ５２）。次に、オブジェクト削除部２３０は、オブジェクト管理テーブル３３０のオブジェクト集約アドレスを０（無効）に更新する（ステップＳ５３）。そして、処理は終了する。
【００５０】
次に、オブジェクトストレージ管理部２４０の動作を説明する。オブジェクトストレージ管理部２４０の動作は、オブジェクト化集約部２１０から呼び出される第１の動作と、オブジェクト削除部２３０から呼び出される第２の動作に分けられる。
【００５１】
オブジェクトストレージ管理部２４０の第１の動作は、以下の処理を含む。オブジェクト化集約部２１０から呼び出されると、オブジェクトストレージ管理部２４０は、オブジェクト化集約部２１０から受信した実データをオブジェクト化する。そして、オブジェクトストレージ管理部２４０は、オブジェクト化したデータを分散してオブジェクト格納先デバイス７０に格納する。そして、オブジェクトストレージ管理部２４０は、結果をオブジェクト化集約部２１０に返却する。
【００５２】
オブジェクトストレージ管理部２４０の第２の動作は、以下の処理を含む。
オブジェクト削除部２３０から呼び出されると、オブジェクトストレージ管理部２４０は、対象のオブジェクトを削除する。
【００５３】
図１５は、オブジェクトストレージ管理部２４０がオブジェクト化集約部２１０から呼び出され、オブジェクトを格納する場合の動作（第１の動作）を表すフローチャートである。以下、図１５を参照して、オブジェクトストレージ管理部２４０の第１の動作を説明する。
【００５４】
オブジェクト化集約部２１０から呼び出されると、最初に、オブジェクトストレージ管理部２４０は、オブジェクト化集約部２１０から受信したデータをオブジェクト化する。そして、オブジェクトストレージ管理部２４０は、オブジェクト化したデータを分散してオブジェクト格納先デバイス７０に格納する（ステップＳ６０）。次に、オブジェクトストレージ管理部２４０は、オブジェクト化したメタデータをオブジェクト化集約部２１０に返却する（ステップＳ６１）。そして、処理は終了する。
【００５５】
図１６は、オブジェクトストレージ管理部２４０がオブジェクト削除部２３０から呼び出され、対象のオブジェクトを削除する場合の動作（第２の動作）を表すフローチャートである。以下、図１６を参照して、オブジェクトストレージ管理部２４０の第２の動作を説明する。
【００５６】
オブジェクト削除部２３０から呼び出されると、最初に、オブジェクトストレージ管理部２４０は、オブジェクト削除部２３０から受信したオブジェクトＩＤが示すオブジェクトをオブジェクト格納先デバイス７０から削除する（ステップＳ７０）。次に、オブジェクトストレージ管理部２４０は、オブジェクト削除部２３０に削除結果を返却する（ステップＳ７１）。そして、処理は終了する
次に、階層入れ替え部２２０の動作を説明する。階層入れ替え部２２０の動作は、オブジェクト化集約部２１０から削除指示を受け取った場合の第１の動作と、オブジェクト化集約部２１０から入れ替え指示を受け取った場合の第２の動作に分けられる。
【００５７】
図１７は、階層入れ替え部２２０がオブジェクト化集約部２１０から削除指示を受け取った場合の動作（第１の動作）を表すフローチャートである。以下、図１７を参照して、階層入れ替え部２２０の第１の動作を説明する。
【００５８】
オブジェクト化集約部２１０から呼び出されると、最初に、階層入れ替え部２２０は、オブジェクト化集約部２１０から指示されたＬＤマッピングテーブル３００のエントリに含まれる階層アドレスを、オブジェクト管理テーブル３３０を参照するアドレスに更新する（ステップＳ８０）。次に、階層入れ替え部２２０は、更新前の階層アドレスが参照していた階層マッピングテーブルのエントリの有効フラグを０（無効）に更新する（ステップＳ８１）。そして、処理は終了する。
【００５９】
図１８は、階層入れ替え部２２０がオブジェクト化集約部２１０から入れ替え指示を受け取った場合の動作（第２の動作）を表すフローチャートである。以下、図１８を参照して、階層入れ替え部２２０の第２の動作を説明する。
【００６０】
オブジェクト化集約部２１０から呼び出されると、最初に、階層入れ替え部２２０は、オブジェクト化集約部２１０から指示された階層デバイスに実データを書き込む。そして、階層入れ替え部２２０は、対応する階層マッピングテーブルのエントリを更新する（ステップＳ９０）。次に、階層入れ替え部２２０は、対応するＬＤマッピングテーブル３００のエントリに含まれる階層アドレスと、階層番号と、ＯＢＪフラグとを、書き込んだ実データの情報で更新する（ステップＳ９１）。そして、処理は終了する。
【００６１】
以上の様に、本発明の第１の実施形態に係るストレージシステムＳＳは、ブロックストレージ１においてアクセス頻度が低くなったデータを集約して、オブジェクトストレージ２に移動する。このことにより、本発明の第１の実施形態に係るストレージシステムＳＳは、ブロックストレージ２の諸元を超える容量のデータを格納することができる。また、アクセス頻度が低くなったデータを容量単価が低いオブジェクトストレージに移動することにより、性能の低下およびコストの上昇を最小限に抑えることもできる。さらに、データ（ブロック）を集約してオブジェクトストレージ２に移動することにより、データのオブジェクト化の頻度が減少するので、オブジェクト化に関する処理の性能低下を防止することもできる。さらに、外部ベンダ等が提供する安価なオブジェクトストレージサービスを活用することにより、格納可能なデータの容量を柔軟に増加することもできる。
【００６２】
［第２の実施形態］
次に、本発明の第２の実施の形態を説明する。
【００６３】
図１９は、本発明の第２の実施形態に係るブロックストレージの構成を表すブロック図である。本発明の第２の実施形態に係るブロックストレージ２は、オブジェクト化集約部と、階層入れ替え部とを備える。
【００６４】
オブジェクト化集約部は、アクセス頻度が閾値より低いブロックを所定数集約し、集約されたブロックをオブジェクトストレージに送信する。階層入れ替え部は、オブジェクトストレージに送信されたブロックをブロックストレージ２から削除する
以上の様に、本発明の第２の実施形態に係るストレージシステムＳＳは、ブロックストレージ１においてアクセス頻度が低くなったデータを集約して、オブジェクトストレージ２に移動する。このことにより、本発明の第２の実施形態に係るブロックストレージ２は、第１の実施形態に係るストレージシステムＳＳと同様の効果を奏する。
【００６５】
第１の実施形態におけるオブジェクトストレージ２は、他社ベンダによって提供されるオブジェクトストレージサービスであってもよいと記載したが、それ以外でもよい。例えば、ストレージシステムの使用者自らがブロックストレージ１とオブジェクトストレージ２とを設置，運用し、これらをＬＡＮ(Local Area Network)で接続してもよい。
【００６６】
図２０は、コンピュータを構成する要素の例を表すブロック構成図である。図２０のコンピュータ９００は、ＣＰＵ(Central Processing Unit)９１０と、ＲＡＭ(Random Access Memory)９２０と、ＲＯＭ(Read Only Memory)９３０と、ハードディスクドライブ９４０と、通信インタフェース９５０とを備えている。
【００６７】
前述したブロックストレージ１およびオブジェクトストレージ２の構成要素は、プログラムがコンピュータ９００のＣＰＵ９１０において実行されることにより実現されてもよい。具体的には、前述した図１および図１９に記載の構成要素である、アクセス頻度更新部２００，オブジェクト化集約部２１０，階層入れ替え部２２０，オブジェクト削除部２３０，およびオブジェクトストレージ管理部２４０は、ＣＰＵ９１０がＲＯＭ９３０あるいはハードディスクドライブ９４０からプログラムを読み込み、読み込んだプログラムを、例えば図１０〜１８に示したフローチャートの手順の如くＣＰＵ９１０が実行することにより実現されてもよい。そして、このような場合において、上述した実施形態を例に説明した本発明は、係るコンピュータプログラムを表すコードあるいはそのコンピュータプログラムを表すコードが格納されたコンピュータ読み取り可能な記憶媒体（例えばハードディスクドライブ９４０や、不図示の着脱可能な磁気ディスク媒体，光学ディスク媒体やメモリカードなど）によって構成されると捉えることができる。
【００６８】
あるいは、アクセス頻度更新部２００，オブジェクト化集約部２１０，階層入れ替え部２２０，オブジェクト削除部２３０，およびオブジェクトストレージ管理部２４０は、専用のハードウェアで実現されてもよい。また、ブロックストレージ１およびオブジェクトストレージ２は、これら構成要素を備える専用のハードウェアであってもよい。
【産業上の利用可能性】
【００６９】
本発明は、ディスクアレイ装置の用途に適用することができる。
【符号の説明】
【００７０】
ＳＳ    ストレージシステム
１    ブロックストレージ
２    オブジェクトストレージ
５０    階層論理ディスク
６０    階層デバイス
７０    オブジェクト格納先デバイス
１００    仮想サーバ
２００    アクセス頻度更新部
２１０    オブジェクト化集約部
２２０    階層入れ替え部
２３０    オブジェクト削除部
２４０    オブジェクトストレージ管理部
３００    ＬＤマッピングテーブル
３１０    階層管理テーブル
３２０    階層０マッピングテーブル
３２１    階層１マッピングテーブル
３２２    階層２マッピングテーブル
３３０    オブジェクト管理テーブル
３４０    オブジェクト集約テーブル
３５０    ポリシー管理テーブル
９００    コンピュータ
９１０    ＣＰＵ
９２０    ＲＡＭ
９３０    ＲＯＭ
９４０    ハードディスクドライブ
９５０    通信インタフェース
【図１】
2015179422.tif 000003
【図２】
2015179422.tif 000004
【図３】
2015179422.tif 000005
【図４】
2015179422.tif 000006
【図５】
2015179422.tif 000007
【図６】
2015179422.tif 000008
【図７】
2015179422.tif 000009
【図８】
2015179422.tif 000010
【図９】
2015179422.tif 000011
【図１０】
2015179422.tif 000012
【図１１】
2015179422.tif 000013
【図１２】
2015179422.tif 000014
【図１３】
2015179422.tif 000015
【図１４】
2015179422.tif 000016
【図１５】
2015179422.tif 000017
【図１６】
2015179422.tif 000018
【図１７】
2015179422.tif 000019
【図１８】
2015179422.tif 000020
【図１９】
2015179422.tif 000021
【図２０】
2015179422.tif 000022