JP6708948B2 - ブロックストレージ - Google Patents

ブロックストレージ Download PDF

Info

Publication number
JP6708948B2
JP6708948B2 JP2016009904A JP2016009904A JP6708948B2 JP 6708948 B2 JP6708948 B2 JP 6708948B2 JP 2016009904 A JP2016009904 A JP 2016009904A JP 2016009904 A JP2016009904 A JP 2016009904A JP 6708948 B2 JP6708948 B2 JP 6708948B2
Authority
JP
Japan
Prior art keywords
data
storage
layer
search
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016009904A
Other languages
English (en)
Other versions
JP2017130103A (ja
Inventor
嚴之 勝木
嚴之 勝木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2016009904A priority Critical patent/JP6708948B2/ja
Priority to US15/409,052 priority patent/US10185495B2/en
Publication of JP2017130103A publication Critical patent/JP2017130103A/ja
Application granted granted Critical
Publication of JP6708948B2 publication Critical patent/JP6708948B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0667Virtualisation aspects at data level, e.g. file, record or object virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ブロックストレージ、ストレージシステム、コンピュータシステム、ブロックストレージ制御方法、およびプログラムに関する。
データ容量は日々増大しており、大量の情報をストレージ装置に格納している。また、ブロックストレージでは、論理ディスクを、性能の異なる物理ディスクを階層的に構成することで、頻繁にアクセスされるデータは不揮発メモリに配置し、アクセス頻度が低いデータは低速のディスクに配置することで、コストを抑えつつ不揮発メモリの性能に近い応答を行うストレージが登場している。また、重複排除技術を用いて複数のユーザが保有している同一データやバックアップデータを圧縮する技術が存在する。また、クラウドストレージサービスとしてCASの機能を備えたサービスが一般的に普及している。
また、ブロックストレージとオブジェクトストレージを組み合わせることにより、ブロックストレージが備えるストレージ・デバイスの諸元を超える容量のデータを格納できるストレージシステムが提案されている。このようなブロックストレージ、ストレージシステムの一例が特許文献1に記載されている。
特許文献1記載のブロックストレージは、アクセス頻度が閾値より低いブロックを所定数集約してオブジェクトストレージに送信し、この送信したブロックをブロックストレージから削除する。
また本発明に関連して以下のような技術が提案されている。
特許文献2には、サーバと複数のストレージより構成され、データの重複排除を行うシステムが記載されている。また特許文献2には、データのアクセス頻度を算出し、アクセス頻度の低いデータを定期的に下位の階層に移動し、アクセス頻度の低いデータを他のストレージへ移動することが記載されている。
特許文献3には、情報処理装置の補助記憶装置に記憶されているデータのバックアップイメージを、情報処理装置に接続されている外部装置に記憶することが記載されている。
特許文献4には、一つのストレージサブシステムとそのストレージサブシステムに接続される複数の重複排除ストレージ装置を含む環境において、同じデータが異なる重複排除ストレージ装置に格納されないようにする技術が記載されている。
特許文献5には、サーバとオンラインストレージサービスより構成され、サーバ側で重複排除したデータをオンラインストレージサービスに格納する技術が記載されている。
特開2015−179422号公報 特開2013−222230号公報 特開2013−137630号公報 特開2013−47933号公報 特開2012−141739号公報 特開2012−63902号公報
上述した特許文献1に記載される技術によれば、ブロックストレージとオブジェクトストレージを組み合わせることにより、ブロックストレージが備えるストレージ・デバイスの諸元を超える容量のデータを格納できるストレージシステムが実現できる。しかしながら、複数のブロックストレージで同じオブジェクトストレージを共用する場合、オブジェクトストレージが重複排除機能を有していなければ、複数のブロックストレージの同じデータがオブジェクトストレージに重複して格納される、という課題がある。
本発明の目的は、上述した課題、即ち、複数のブロックストレージで重複排除機能を有さないオブジェクトストレージを共用する場合、複数のブロックストレージの同じデータがオブジェクトストレージに重複して格納される、という課題を解決するブロックストレージを提供することにある。
本発明の一実施形態に係るブロックストレージは、
階層化された複数の論理ディスクを有し、アクセス頻度に応じてデータを何れかの階層の論理ディスクに格納するブロックストレージであって、
最下位階層の1つ上の階層の論理ディスクに格納されているデータのアクセス頻度が閾値より低下したときに、前記データのハッシュをコンテントアドレスに有するデータを、最下位階層の論理ディスクに相当する、複数のブロックストレージで共用するオブジェクトストレージから検索する重複排除手段と、
前記検索に失敗したときに前記データを前記オブジェクトストレージに送信して前記データを格納する階層を最下位階層に変更し、前記検索に成功したときに前記送信を省略して前記データを格納する階層を最下位階層に変更する階層入れ替え手段と、
を備える。
また本発明の他の実施形態に係るストレージシステムは、
上述のブロックストレージと、
前記ブロックストレージから受信したデータをオブジェクト化して格納するオブジェクトストレージと、
を備える。
また本発明の他の実施形態に係るコンピュータシステムは、
上述したストレージシステムと、
前記ストレージシステムにアクセス可能なホストコンピュータと、
を備える。
また本発明の他の実施形態に係るブロックストレージ制御方法は、
階層化された複数の論理ディスクを有し、アクセス頻度に応じてデータを何れかの階層の論理ディスクに格納するブロックストレージが実行する方法であって、
最下位階層の1つ上の階層の論理ディスクに格納されているデータのアクセス頻度が閾値より低下したときに、前記データのハッシュをコンテントアドレスに有するデータを、最下位階層の論理ディスクに相当する、複数のブロックストレージで共用するオブジェクトストレージから検索し、
前記検索に失敗したときに前記データを前記オブジェクトストレージに送信して前記データを格納する階層を最下位階層に変更し、
前記検索に成功したときに前記送信を省略して前記データを格納する階層を最下位階層に変更する。
また本発明の他の実施形態に係るプログラムは、
階層化された複数の論理ディスクを有し、アクセス頻度に応じてデータを何れかの階層の論理ディスクに格納するコンピュータを、
最下位階層の1つ上の階層の論理ディスクに格納されているデータのアクセス頻度が閾値より低下したときに、前記データのハッシュをコンテントアドレスに有するデータを、最下位階層の論理ディスクに相当する、複数のブロックストレージで共用するオブジェクトストレージから検索する重複排除手段と、
前記検索に失敗したときに前記データを前記オブジェクトストレージに送信して前記データを格納する階層を最下位階層に変更し、前記検索に成功したときに前記送信を省略して前記データを格納する階層を最下位階層に変更する階層入れ替え手段と、
して機能させる。
本発明は上述した構成を有するため、複数のブロックストレージでオブジェクトストレージを共用する場合、オブジェクトストレージが重複排除機能を有さない場合であっても、複数のブロックストレージの同じデータがオブジェクトストレージに重複して格納されるのを防止できる。
本発明の第1の実施形態に係るコンピュータシステムのブロック図である。 本発明の第1の実施形態に係るコンピュータシステムの動作を示すフローチャートである。 本発明の第1の実施形態に係るコンピュータシステムにおけるデータの配置例を示す概念図である。 本発明の第1の実施形態に係るコンピュータシステムにおけるデータの配置例を示す概念図である。 本発明の第1の実施形態に係るコンピュータシステムにおけるデータの配置例を示す概念図である。 本発明の第2の実施形態に係るコンピュータシステムのブロック図である。 本発明の第2の実施形態におけるLDマッピングテーブルの一例を示す図である。 本発明の第2の実施形態における階層管理テーブルの一例を示す図である。 本発明の第2の実施形態における階層0マッピングテーブルの一例を示す図である。 本発明の第2の実施形態における階層1マッピングテーブルの一例を示す図である。 本発明の第2の実施形態における外部ストレージ階層マッピングテーブルの一例を示す図である。 本発明の第2の実施形態における外部ストレージ管理テーブルの一例を示す図である。 本発明の第2の実施形態におけるポリシー管理テーブルの一例を示す図である。 本発明の第2の実施形態におけるアクセス頻度更新手段の動作を示すフローチャートである。 本発明の第2の実施形態における重複排除手段の動作を示すフローチャートである。 本発明の第2の実施形態における階層入れ替え手段の動作を示すフローチャートである。 本発明の第2の実施形態における重複排除手段の動作を示すフローチャートである。 本発明の第2の実施形態におけるデータ送受信手段の動作を示すフローチャートである。 本発明の第2の実施形態におけるクラウドストレージ管理手段の動作を示すフローチャートである。 本発明の第2の実施形態におけるデータ送受信手段の動作を示すフローチャートである。 本発明の第2の実施形態におけるCAS制御手段の動作を示すフローチャートである。 本発明の第2の実施形態におけるクラウドストレージ管理手段の動作を示すフローチャートである。 本発明の第2の実施形態におけるデータ送受信手段の動作を示すフローチャートである。 本発明の第2の実施形態におけるCAS制御手段の動作を示すフローチャートである。 本発明の第3の実施形態に係るブロックストレージのブロック図である。
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第1の実施形態]
図1を参照すると、本発明の第1の実施形態に係るコンピュータシステムは、2台のホストコンピュータ1100、1200と、2台のブロックストレージ2100、2200と、1台のオブジェクトストレージ3100とから構成されている。本実施形態では、オブジェクトストレージ3100は1台であるが、2台以上あってもよい。またブロックストレージは2台であるが、3台以上あってもよい。
ブロックストレージ2100は、階層論理ディスク2110と重複排除手段2120と階層入れ替え手段2130とバックアップ制御手段2140と外部ストレージバックアップ手段2150とを有する。
階層論理ディスク2110は、階層化された論理ディスク2111〜2113を有し、アクセス頻度に応じてデータを何れかの階層の論理ディスクに格納する。論理ディスク2111は、アクセス頻度を高頻度、中頻度、低頻度の三つに区分した場合、高頻度のデータをブロック単位で格納する階層0の論理ディスクであり、例えばSSD(Solid State Drive)で構成される。論理ディスク2112は、アクセス頻度が中頻度のデータをブロック単位で格納する階層1の論理ディスクであり、例えばSAS(Serial Attached SCSI)ストレージで構成される。論理ディスク2113は、アクセス頻度が低頻度のデータをブロック単位で格納する階層2の論理ディスクであり、クラウドストレージ3100で構成される。本実施形態では、階層論理ディスク2110は3階層であるが、2階層以上であれば階層数は任意である。
外部ストレージバックアップ領域2150は、他のブロックストレージ2200の階層2の論理ディスクに対応するバックアップ領域であり、CAS(Content Addressable Storage)で構成される。即ち、論理ディスク2113は、クラウドストレージ3100と他のブロックストレージ2200の外部ストレージバックアップ領域2250との2つのストレージを使って冗長化されている。
オブジェクトストレージ3100は、ブロックストレージ2100とブロックストレージ2200とで共用されるストレージであり、例えばクラウドストレージで構成される。このオブジェクトストレージ3100は重複排除機能を有していてもよいし、有していなくてもよい。
ホストコンピュータ1100は、ブロックストレージ2100にアクセス可能なコンピュータであり、例えば業務サーバで構成される。
重複排除手段2120は、最下位階層の一つ上の階層にある論理ディスク2112に格納されているデータのアクセス頻度が閾値より低下したときに、当該データのハッシュをコンテントアドレスに有するデータをオブジェクトストレージ3100から検索する機能を有する。データのハッシュを算出する方法は、予め定められている方法であれば任意でよい。また重複排除手段2120は、上記コンテントアドレスを有するデータを、他のブロックストレージ2200の外部ストレージバックアップ領域2250から検索する機能を有する。
階層入れ替え手段2130は、重複排除手段2120によるオブジェクトストレージ3100に対する上記検索が失敗したとき、即ち上記コンテントアドレスを有するデータがオブジェクトストレージ3100に格納されていないとき、上記データをオブジェクトストレージ3100に送信し、上記データを格納する階層を階層1の論理ディスク2112から階層2の論理ディスク2113に変更する機能を有する。他方、階層入れ替え手段2130は、上記検索に成功したとき、即ち上記コンテントアドレスを有するデータがオブジェクトストレージ3100に格納されているとき、上記データをオブジェクトストレージ3100に送信する動作を省略し、上記データを格納する階層を階層1の論理ディスク2112から階層2の論理ディスク2113に変更する機能を有する。上記の変更に伴い、階層入れ替え手段2130は、階層1の論理ディスク2112に格納されていた、階層2に移動した上記データを削除する。
また階層入れ替え手段2130は、重複排除手段2120による外部ストレージバックアップ領域2250に対する上記検索が失敗したおき、即ち上記コンテントアドレスを有するデータが他のブロックストレージ2200の外部ストレージバックアップ領域2250に格納されていないとき、上記データを外部ストレージバックアップ領域2250に格納するためにブロックストレージ2200に送信する機能を有する。
バックアップ制御手段2140は、ブロックストレージ2200から受信したデータをオブジェクト化して当該データのハッシュをコンテントアドレスとして外部ストレージバックアップ領域2150に格納する機能を有する。またバックアップ制御手段2140は、他のブロックストレージ2200からコンテントアドレスを指定した検索要求を受信すると、当該コンテントアドレスを有するデータを外部ストレージバックアップ領域2150から検索し、その検索結果を要求元に返却する機能を有する。さらにバックアップ制御手段2140は、上記検索に失敗したときに、階層1の論理ディスク2112に格納されているデータであって、そのハッシュが上記検索要求で指定されたコンテントアドレスに一致するデータを検索し、発見したデータのアクセス頻度を低下させる機能を有する。
ホストコンピュータ1200は、ブロックストレージ2200にアクセス可能なコンピュータであり、例えば業務サーバで構成される。またブロックストレージ2200は、ブロックストレージ2100と同様の機能を有する。また階層論理ディスク2210と重複排除手段2220と階層入れ替え手段2230とバックアップ制御手段2240と外部ストレージバックアップ手段2250は、階層論理ディスク1210と重複排除手段1220と階層入れ替え手段1230とバックアップ制御手段1240と外部ストレージバックアップ手段1250と同様の機能を有する。また論理ディスク2211〜2213は、論理ディスク2111〜2113と同様の機能を有する。
なお、ブロックストレージ2100、2200は、ホストコンピュータ1100、1200から読み出し要求のあったデータを、階層論理ディスク2110、2210の該当する階層の論理ディスクから読み出して要求元のホストコンピュータ1100、1200に出力する機能を有する。また、ブロックストレージ2100、2200は、ホストコンピュータ1100、1200から書き込み要求のあったデータを、階層論理ディスク2110、2210の該当する階層の論理ディスクに書き込む機能を有する。これらの機能は良く知られており、本発明と直接関係しないので、その詳細な説明は省略する。
図2は、本実施形態に係るコンピュータシステムの動作の概要を示すフローチャートである。また図3乃至図5は、本実施形態に係るコンピュータシステムにおけるデータの配置例を示す概念図である。以下、図1乃至図5を参照して、本実施形態に係るコンピュータシステムの動作を説明する。
今、図3に示すように、ブロックストレージ2100の論理ディスク2111にデータX、論理ディスク2112にデータY1が格納されており、ブロックストレージ2200の論理ディスク2211にデータZ、論理ディスク2212にデータY2が格納されているものとする。ここで、データY1とデータY2とは例えば1ブロックの同じ内容のデータ、即ち同一のデータである。そして、この状況において、ホストコンピュータ1100からデータY1に対するアクセスがしばらく途絶えたために、データY1のアクセス頻度が閾値より低くなったとする。このとき、本実施形態では、図2に示すような処理が実行される。
まず、ブロックストレージ2100の重複排除手段2120は、データY1のアクセス頻度が閾値より低下したことを検出すると(ステップS1001)、所定の方法によりデータY1のハッシュ(yとする)を算出し、このハッシュyをコンテントアドレスに有するデータをオブジェクトストレージ3100から検索する(ステップS1002、図3の符号1101)。図3に示す状態では、オブジェクトストレージ3100には、データY1と同一のデータは格納されていないため、上記検索は失敗する(ステップS1002でNO)。そこで、ブロックストレージ2100の階層入れ替え手段2130は、データY1をオブジェクトストレージ3100に送信してデータY1を格納する階層を階層1から階層2へ変更し、オブジェクトストレージ3100は、データY1をオブジェクト化しコンテントアドレスyに対応付けて格納する(ステップS1003。図3の符号1102)。
また重複排除手段2120は、コンテントアドレスyを有するデータを、ブロックストレージ2200の外部ストレージバックアップ領域2250から検索する(ステップS1005)。具体的には、重複排除手段2120は、コンテントアドレスyを指定した検索要求をブロックストレージ2200のバックアップ制御手段2240に送信する(図3の符号1103)。バックアップ制御手段2240は、コンテントアドレスyを有するデータを外部ストレージバックアップ領域2250から検索し(図3の符号1104)、その検索結果を要求元に返却する。図3に示す状態では、外部ストレージバックアップ領域2250には、データY1と同一のデータは格納されていないため、上記検索は失敗する(ステップS1005でNO)。そこで、ブロックストレージ2100の階層入れ替え手段2130は、データY1を外部ストレージバックアップ領域2250に格納するためにブロックストレージ2200へ送信し、バックアップ制御手段2240は受信したデータY1をオブジェクト化し、コンテントアドレスyに対応付けて外部ストレージバックアップ領域2250に格納する(ステップS1006。図3の符号1105、1106)。さらにバックアップ制御手段2240は、コンテントアドレスyを有するデータを階層1の論理ディスク2212から検索する(ステップS1007。図3の符号1107)。図3に示す状態では、階層1の論理ディスク2212にデータY1と同じデータY2が格納されているため、上記検索は成功する(ステップS1007でYES)。そのため、バックアップ制御手段2240は、データY2のアクセス頻度を所定量だけ低下させる(ステップS1008)。
上記のような動作が行われることにより、図4に示すように、論理ディスク2112に格納されていたデータY1は、一つ下の階層の論理ディスク2113に移動し、論理ディスク2113を構成するオブジェクトストレージ3100に格納される。また、そのバックアップデータが外部ストレージバックアップ領域2250に格納される。さらに、論理ディスク2212に格納されているデータY2のアクセス頻度が低下する。
次に、図4に示す状況において、ホストコンピュータ1200からデータY2に対するアクセスがしばらく途絶えたために、データY2のアクセス頻度が閾値より低くなったとする。或いは、図3を参照して説明したようにバックアップ制御手段2240がデータY2のアクセス頻度を低下させたことにより、データY2のアクセス頻度が閾値より低くなったとする。このとき、再び図2に示すような処理が実行される。
まず、ブロックストレージ2200の重複排除手段2220は、データY2のアクセス頻度が閾値より低下したことを検出すると(ステップS1001)、所定の方法によりデータY2のハッシュ(データY1と同じyになる)を算出し、このハッシュyをコンテントアドレスに有するデータをオブジェクトストレージ3100から検索する(ステップS1002、図3の符号1201)。図4に示す状態では、オブジェクトストレージ3100には、データY2と同一のデータY1が格納されているため、上記検索は成功する(ステップS1002でYES)。そこで、ブロックストレージ2200の階層入れ替え手段2230は、データY2をオブジェクトストレージ3100に送信する処理を省略し、データY2を格納する階層を階層1から階層2へ変更する(ステップS1004)。
また重複排除手段2220は、コンテントアドレスyを有するデータを、ブロックストレージ2100の外部ストレージバックアップ領域2150から検索する(ステップS1005)。具体的には、重複排除手段2220は、コンテントアドレスyを指定した検索要求をブロックストレージ2100のバックアップ制御手段2140に送信する(図4の符号1203)。バックアップ制御手段2140は、コンテントアドレスyを有するデータを外部ストレージバックアップ領域2150から検索し(図4の符号1204)、その検索結果を要求元に返却する。図4に示す状態では、外部ストレージバックアップ領域2150には、データY2と同一のデータは格納されていないため、上記検索は失敗する(ステップS1005でNO)。そこで、ブロックストレージ2200の階層入れ替え手段2230は、データY2を外部ストレージバックアップ領域2150に格納するためにブロックストレージ2100へ送信し、バックアップ制御手段2140は受信したデータY2をオブジェクト化し、コンテントアドレスyに対応付けて外部ストレージバックアップ領域2150に格納する(ステップS1006。図4の符号1205、1206)。さらにバックアップ制御手段2140は、コンテントアドレスyを有するデータを階層1の論理ディスク2112から検索する(ステップS1007。図4の符号1207)。図4に示す状態では、階層1の論理ディスク2112にデータY2と同じデータは格納されていないため、図2に示す処理を終了する。
上記のような動作が行われることにより、図5に示すように、論理ディスク2212に格納されていたデータY2は、一つ下の階層の論理ディスク2213に移動し、論理ディスク2213を構成するオブジェクトストレージ3100に格納されているデータY1と紐付けされる。また、そのバックアップデータが外部ストレージバックアップ領域2150に格納される。
このように本実施形態によれば、ブロックストレージ2100とブロックストレージ2200でオブジェクトストレージ3100を共用する場合、オブジェクトストレージ3100が重複排除機能を有さない場合であっても、複数のブロックストレージ2100、2200の同じデータがオブジェクトストレージ3100に重複して格納されるのを防止することができる。
その理由は、重複排除手段2120が、最下位階層の1つ上の階層の論理ディスク2112に格納されているデータのアクセス頻度が閾値より低下したときに、当該データのハッシュをコンテントアドレスに有するデータを、最下位階層の論理ディスク2113に相当する、複数のブロックストレージで共用するオブジェクトストレージ3100から検索し、階層入れ替え手段2130が、上記検索に失敗したときには当該データをオブジェクトストレージ3100に送信して当該データを格納する階層を最下位階層に変更するが、上記検索に成功したときには上記送信を省略して当該データを格納する階層を最下位階層に変更するためである。
また本実施形態によれば、オブジェクトストレージ3100が重複排除機能を有する場合、その機能を利用して重複排除する構成に比較して、ブロックストレージとオブジェクトストレージ間のデータ転送量を削減することができる。その理由は、既にオブジェクトストレージに格納されているデータと重複するデータは、ブロックストレージからオブジェクトストレージへ送信しないためである。
また本実施形態によれば、オブジェクトストレージ3100に格納したデータのバックアップデータが、外部ストレージバックアップ領域2150、2250に格納されているため、何らかの障害によってオブジェクトストレージ3100からのデータの読み込みが行えない場合、外部ストレージバックアップ領域2150、2250からデータを読み込むことができる。
また本実施形態によれば、ブロックストレージ2100がオブジェクトストレージ3100に追い出したデータと同一のデータを、ブロックストレージ2200がより高い階層のデータとして格納している場合、当該データのオブジェクトストレージ3100への追い出しを促進することができる。その理由は、バックアップ制御手段2240は、ブロックストレージ2100からコンテントアドレスを指定した検索要求を受信すると、当該コンテントアドレスを有するデータを外部ストレージバックアップ領域2250から検索し、検索に失敗したときに、最下位階層の1つ上の階層の論理ディスク2212に格納されているデータであって、そのハッシュが上記コンテントアドレスに一致するデータを検索し、発見したデータのアクセス頻度を低下させるためである。
[第2の実施形態]
<本実施形態の特徴>
本実施形態は、重複排除機能を持つブロックストレージと、クラウドサービスを提供するCAS(Content Addressable Storage)機能を持ったオブジェクトストレージが相互に接続された構成を有する。そして、本実施形態は、そのような構成において、ホスト計算機が利用する業務データの中でオブジェクトストレージに追い出すデータを、重複排除機能を持つブロックストレージ間で共有する階層制御と同等機能を持つオブジェクトストレージのローカルバックアップデータを格納する構成要素を追加することにより、オブジェクトストレージに対するデータ転送量、格納容量を削減し、データアクセスの可用性を高め、ストレージ格納コストを削減することが可能である、という特徴を有する。
<本実施形態が解決しようとする課題>
階層化された論理ディスクを持つブロックストレージとクラウドストレージを組み合わせて利用することで、ブロックストレージの諸元を超えてデータを格納できる技術がある(例えば特許文献1参照)。しかし、この技術は、ブロックストレージから追い出されたデータをクラウドストレージに個別に追い出す機能しか持っていない。このため、同一データであっても各ストレージシステムが独立にクラウドストレージに転送するデータを判断し転送するため、無駄な通信コストとストレージ格納コストが発生する課題がある。また、クラウドストレージからデータを取り出す際、クラウドストレージのサービスが停止している場合、データを読み出すことができない課題がある。
また、複数のファイル格納装置から各ファイル格納装置が保有するファイルの内容に関する情報を含むファイル情報を取得してお互いに同じファイル内容に関する情報を有するファイルを重複ファイルとして抽出し、優先度を付けることで重複排除よりファイルを削除する技術(例えば特許文献6参照)がある。しかし、この技術はすべてのファイルを対象としており、頻繁に利用するファイルの重複排除をリアルタイムに行う場合、性能が低下するという課題がある。
また、ファイルサーバの容量拡張を、クラウドストレージを利用して実現する技術がある(例えば特許文献5参照)。しかし、この技術はオンラインストレージサービス上の記憶領域をマウントするカーネルモジュールにおいて、ファイルをブロックファイルに分割して管理するため、ファイルサーバ間での重複データの通信量・格納容量の削減ができないという課題がある。
本実施形態は以上の課題を解決する、階層化された論理ディスクを持つ重複排除機能付きブロックストレージとクラウドストレージを利用したシステムを提供する。
<本実施形態による解決手段>
本実施形態は、物理サーバまたは仮想OSが動作する仮想サーバである業務サーバと、性能の異なる複数の物理デバイスを階層化して1つの論理ディスクとして利用でき、重複排除機能と組み合わせて最下層にCAS機能を利用できる機能を持つ複数の重複排除機能ありストレージと、クラウドストレージとが相互に接続された構成を有する。
そして、本実施形態は、上記構成において、重複対象のデータのハッシュをコンテントアドレス(Content Address(CA))として利用する重複検出を行うことで、また、データ送受信手段、CAS制御手段を組み合わせることで、登録済みの重複排除機能ありストレージをまたがって重複検出を行うことを可能とする。また、階層入れ替え手段とCAS制御手段を組み合わせることで、登録済みの重複排除機能ありストレージの重複データを利用して、クラウドストレージに追い出すデータを選別することを可能とする。また、CAS制御手段が外部ストレージのバックアップの管理を利用可能なディスク容量により制御することで、必要以上となるデータ格納の抑止を可能とする。
また特許文献1に記載される構成で運用した状態では、誰かがすでにクラウドストレージに置いた状態のデータを別の誰かはもっと高い階層のデータとして保持しているという状態が生じることが想定できる。ここで追い出すべきデータが近い優先度で複数あるような状況を考えると、すでに誰かがクラウドにデータを置いているデータを優先して追い出すことが適切であろうと思われるが、特許文献1に記載の構成ではこのような制御を行うことができない。
また、バックアップとして持つデータは完全性を必要としない構成とすることで特許文献6に記載される技術のようにすべてのデータを対象とする必要がなく、性能への影響を軽減する。
また、クラウドストレージからデータを取り出す際には連携する外部ストレージバックアップ領域に格納されたデータであればクラウドストレージとの通信は発生せず、通信量を削減することが可能である。
<本実施形態の構成>
次に、本実施形態の構成について図面を参照して詳細に説明する。
図6を参照すると、本実施形態は、重複排除機能を有するストレージ1(以下、単にストレージ1と記す)と、クラウドストレージ2と、重複排除機能を有するストレージ3(以下、単にストレージ3と記す)と、業務サーバ100とから構成されている。業務サーバ100とストレージ1とは、FCまたはiSCSIまたはSASで接続されている。ストレージ1およびストレージ3とクラウドストレージ2とは、WAN(Wide Area Network)で接続されている。ストレージ1とストレージ3とは、ローカルサイト内でLAN(Local Area Network)またはWANで接続されている。
ストレージ1は、階層論理ディスク50と、外部ストレージバックアップ領域70と、アクセス頻度更新手段200と、データ送受信手段210と、重複排除手段220と、階層入れ替え手段230と、CAS制御手段240と、ポリシー管理テーブル340とを有する。アクセス頻度更新手段200は、業務サーバ100からのデータアクセスを定期的に更新する機能を有する。データ送受信手段210は、クラウドストレージ2やストレージ3と実データや制御情報の送受信を行う機能を有する。重複排除手段220は、重複データの重複排除を行う機能を有する。階層入れ替え手段230は、実データの入れ替えを行う機能を有する。CAS制御手段240は、他ストレージ3から受信した実データをオブジェクト化し、外部ストレージバックアップ領域70に格納する機能を有する。ポリシー管理テーブル340は、階層論理ディスク50の設定を格納する機能を有する。
クラウドストレージ2は、クラウドデータ格納先デバイス81とクラウドストレージ管理手段250とを有する。クラウドストレージ管理手段250は、データ送受信手段210およびストレージ3の後述するデータ送受信手段211から受信した実データをオブジェクト化し、クラウドデータ格納先デバイス81に格納する機能を有する。
ストレージ3は、ストレージ1と同等の構成を有する。図6では、その一部の構成要素のみ、即ち、階層論理ディスク51、外部ストレージバックアップ領域71、データ送受信手段211、CAS制御手段241、外部ストレージ管理テーブル331、格納先デバイス82のみ図示している。
業務サーバ100は、物理サーバまたは仮想サーバで構成される。仮想サーバの場合、仮想サーバを実現する1以上の仮想OS101、102が動作する。
階層論理ディスク50は、LDマッピングテーブル300と、階層管理テーブル310と、階層0マッピングテーブル320と、階層1マッピングテーブル321と、外部ストレージ階層マッピングテーブル322と、階層デバイス60とを有する。LDマッピングテーブル300は、階層論理ディスク50の一次アドレスを格納する。階層管理テーブル310は、階層種別を格納する。各階層のマッピングテーブル320、321、322は、何れも二次アドレスを格納する。階層デバイス60は、実データを格納する。
外部ストレージバックアップ領域70は、外部ストレージ管理テーブル330と格納先デバイス80とを有する。外部ストレージ管理テーブル330は、ストレージ3からバックアップされた実データのCAを格納する。格納先デバイス80は、実データを格納する。格納先デバイス80は、連携するストレージ3の階層デバイスの最下位に位置する領域である。
アクセス頻度更新手段200は、ポリシー管理テーブル340を参照して、各階層論理ディスクのアクセス頻度更新間隔、階層入れ替え間隔に従い、定期的に操作指示を行う機能を有する。またアクセス頻度更新手段200は、アクセス頻度更新間隔でLDマッピングテーブル300のアクセス頻度を更新する機能を有する。
データ送受信手段210は、重複排除手段220からの送信指示に従い、クラウドストレージ管理手段250に対して実データまたは検索指示を送信する機能を有する。また、データ送受信手段210は、ストレージ3のCAS制御手段241に対して実データまたは検索指示を送信する機能を有する。さらにデータ送受信手段210は、ストレージ3から実データを受信し、CAS制御手段240に対して実データの検索指示または格納指示を行う機能を有する。このような機能により、連携する外部ストレージ3のバックアップデータを外部ストレージバックアップ領域70に格納することが可能となる。
重複排除手段220は、階層入れ替え手段230からのCAS化指示に従い、階層論理ディスクの指定された領域のCAを計算し、ストレージ1に重複データがない場合、クラウドストレージ管理手段250に対して同一データが存在するかを調べる検索指示を行い、同一データがない場合、データ送受信手段210にCAをキーとしたデータ送信を指示する機能を有する。また、重複排除手段220は、ストレージ3のCAS制御手段241に対して外部ストレージバックアップ領域71に同一データが存在するかを調べる検索指示を行い、同一データがない場合、データ送受信手段210にCAをキーとしたデータ送信を指示することで、連携するローカルストレージ3にバックアップデータを格納する機能を有する。また、重複排除手段220は、定期的に階層1マッピングテーブル321のCAを計算する機能を有する。この計算されたCAは、クラウドストレージ2に追い出すデータの候補を増やすために利用される。
階層入れ替え手段230は、定期的にLDマッピングテーブル300を参照し、アクセス頻度が低いデータを下位の階層に移動する機能を有する。階層入れ替え手段230は、CAS階層に移動するデータを決定すると、そのデータに関して重複排除手段220にCAS化指示を行う機能を有する。
CAS制御手段240は、データ送受信手段210経由による他ストレージ3からの検索指示に従って、外部ストレージバックアップ領域70に格納済みのデータに対象データが存在するか否かを示す検索結果を返却する機能を有する。また、CAS制御手段240は、データ送受信手段210経由による他ストレージ3からのデータ格納指示により、外部ストレージバックアップ領域70に受信したデータを格納し、外部ストレージ管理テーブル330を更新する機能を有する。
クラウドストレージ管理手段250は、データ送受信手段210およびデータ送受信手段211からの検索指示により、格納先デバイス81に格納済みのデータに対象データが存在するか否かを示す検索結果を返却する機能を有する。また、クラウドストレージ管理手段250は、データ送受信手段210およびデータ送受信手段211からのデータ格納指示により、格納先デバイス81に受信した実データを格納する機能を有する。
LDマッピングテーブル300は、業務サーバ100から階層論理ディスク50にアクセスするためのアドレステーブルである。図7にLDマッピングテーブル300の一例を示す。同図に示すLDマッピングテーブル300は、論理アドレス、階層アドレス、階層番号、CASフラグ、アクセス頻度が対応付けて記録されている。同図に示すLDマッピングテーブル300の例えば3行目は、論理アドレスが00002000、階層アドレスが00002000、階層番号が0、CASフラグが0、アクセス頻度が3であり、階層0のアドレス00002000に実データが格納され、アクセス頻度は3(中頻度アクセス)であることを示している。なお、アクセス頻度は、業務サーバ100から該当する論理アドレスがアクセスする毎にインクリメントされ、アクセス頻度更新手段200によって定期的にデクリメントされる。
階層管理テーブル310は、階層に割り当てられた物理デバイスを対応付けるテーブルである。図8に階層管理テーブル310の一例を示す。同図に示す階層管理テーブル310は、階層番号と階層デバイスが対応付けて記録されている。同図に示す階層管理テーブル310の例えば1行目は、階層番号が0、物理デバイスがSSDであり、階層0にはSSDが割り付けられていることを示している。また階層管理テーブル310の例えば2行目は、階層番号が1、物理デバイスがSASであり、階層1にはSASが割り付けられていることを示している。また階層管理テーブル310の例えば3行目は、階層番号が2、物理デバイスがCASであり、階層2にはCASが割り付けられていることを示している。
階層0マッピングテーブル320は、LDマッピングテーブル300から階層デバイス60にアクセスするためのアドレステーブルである。図9に階層0マッピングテーブル320の一例を示す。同図に示す階層0マッピングテーブル320は、階層0の階層アドレス、デバイスアドレス、有効ビットが対応付けて記録されている。同図に示す階層0マッピングテーブル320の例えば1行目は階層アドレス00000000、デバイスアドレス00000000、有効ビット0であり、階層0の00000000アドレスは空き領域であることを示している。
階層1マッピングテーブル321は、LDマッピングテーブル300から階層デバイス60にアクセスするためのアドレステーブルである。図10に階層1マッピングテーブル321の一例を示す。同図に示す階層1マッピングテーブル321は、階層1の階層アドレス、デバイスアドレス、CA、有効ビットが対応付けて記録されている。同図に示す階層1マッピングテーブル321の例えば1行目は階層アドレス00000000、デバイスアドレス00000000、CA=aad00exfdsdddbew、有効ビット1であり、階層1の00000000アドレスは階層デバイス00000000をポイントし、使用中であることを示し、その実データのCAはaad00exfdsdddbewであることを示している。
外部ストレージ階層マッピングテーブル322は、LDマッピングテーブル300から階層デバイス60にアクセスするためのアドレステーブルである。図11に外部ストレージ階層マッピングテーブル322の一例を示す。同図に示す外部ストレージ階層マッピングテーブル322は、階層2の階層アドレス、CA、格納先クラウド、バックアップストレージ、有効ビットが対応付けて記録されている。同図に示すCAS階層マッピングテーブル322の例えば1行目は、階層アドレス00000000、CA=aad00exfdsdddbew、格納先クラウド0、バックアップストレージ1、有効ビット1であり、階層2の00000000アドレスはCAがaad00exfdsdddbewの実データを持ち、格納先クラウドは0で識別されるクラウドストレージ、ローカルのバックアップストレージは1で識別されるストレージであることを示している。図11に示すように、外部ストレージ階層マッピングテーブル322が、バックアップストレージの欄を有することにより、連携するローカルストレージにバックアップデータを紐付けることが可能になる。
外部ストレージ管理テーブル330、331は、格納先デバイス80、82に格納されたデータを送信したストレージを管理するためのテーブルである。図2に外部ストレージ管理テーブル330の一例を示す。同図に示す外部ストレージ管理テーブル330は、CA、ストレージ名が対応付けて管理されている。同図に示す外部ストレージ管理テーブル330の例えば1行目は、CAがsajfkdsaioppkjkl、ストレージ名がDiskarray1であり、Diskarray1というストレージ名のストレージのデータであって、CAがsajfkdsaioppkjklであるデータを格納していることを示している。
ポリシー管理テーブル340は、階層論理ディスク50毎にアクセス頻度更新間隔、階層入れ替え間隔を格納するためのテーブルである。図13にポリシー管理テーブル340の一例を示す。同図に示すポリシー管理テーブル340は階層論理ディスク番号、アクセス頻度更新間隔、階層入れ替え間隔が対応付けて記録されている。同図に示すポリシー管理テーブル340の例えば1行目は、階層論理ディスク番号0、アクセス頻度更新間隔1800秒、階層入れ替え間隔3600秒であり、階層論理ディスク番号0の論理ディスクはアクセス頻度の更新を30分ごとに、階層入れ替えを60分ごとに、それぞれ実施することを示している。
<本実施形態の動作>
次に、本実施形態の動作について詳細に説明する。
図14はアクセス頻度更新手段200の動作を示すフローチャートである。以下、図14を参照して、アクセス頻度更新手段200が階層論理ディスク50のアクセス頻度を更新する動作を説明する。
アクセス頻度更新手段200は、ポリシー管理テーブル340のアクセス頻度更新間隔に基づいて定期的に図14に示す処理を実行する。アクセス頻度更新手段200は、対象の階層論理ディスクのLDマッピングテーブルのアクセス頻度を一括でデクリメントする(S10)。そして、今回の処理を終了する。
図15は重複排除手段220の動作を示すフローチャートである。以下、図15を参照して、重複排除手段220が階層1マッピングテーブル321にCAを追加する動作を説明する。
重複排除手段220は、定期的に図15に示す処理を実行する。重複排除手段220は、階層1マッピングテーブル321で管理している実データのCAを計算する(ステップS60)。次に重複排除手段220は、階層1マッピングテーブル321のCAを更新する(ステップS61)。そして、今回の処理を終了する。このように、階層1マッピングテーブル321で管理している実データをCAS化した際のCAを予め計算しておくことにより、階層1マッピングテーブル321で管理している実データと既にCAS化されて外部ストレージに格納されているデータとをCAをベースに比較することができるようになる。
図16は階層入れ替え手段230の動作を示すフローチャートである。以下、図16を参照して、階層入れ替え手段230が、定期的にアクセス頻度が低いデータの階層を移動させる動作を説明する。
階層入れ替え手段230は、ポリシー管理テーブル340の階層入れ替え間隔に基づいて定期的に図16に示す処理を実行する。まず、階層入れ替え手段230は、LDマッピングテーブル300を参照し、アクセス頻度に基づいて、移動対象のデータを選択する(ステップS70)。
次に階層入れ替え手段230は、選択した移動対象のデータの移動先がCAS階層の場合(ステップS71がYES)、この選択した移動対象のデータについて重複排除手段220に対してCAS化指示を行う(ステップS72)。その後、階層入れ替え手段230は、上記CAS化指示に対する結果に従い、LDマッピングテーブル300の階層アドレス、階層番号、階層1マッピングテーブル321の階層アドレス、有効フラグを更新し、外部ストレージ階層マッピングテーブル322に新規エントリを追加する(ステップS73)。また階層入れ替え手段230は、階層1マッピングテーブル321の実データを削除する(ステップS74)。そして、図16の処理を終了する。
選択した移動対象のデータの移動先がCAS階層ではない場合(ステップS71がNO)、階層入れ替え手段230は、階層デバイスに対して実データの移動を行う(ステップS75)。そして、階層入れ替え手段230は、その移動に応じて階層0マッピングテーブル320、階層1マッピングテーブル321のテーブルを更新する(ステップS76)。そして、図16の処理を終了する。
図17は重複排除手段220の動作を示すフローチャートである。以下、図17を参照して、重複排除手段220が階層入れ替え手段230からのCAS化指示(ステップS72)により重複排除処理を行う動作を説明する。
重複排除手段220は、まず、階層入れ替え手段230からCAS化指示を受けた対象の実データを、階層1マッピングテーブル321を参照して取得し、所定の算出方法で実データからハッシュをCAとして計算する(ステップS50)。なお、CAが既に算出されている場合、その計算を省略してよい。次に重複排除手段220は、計算したCAを用いて重複データがストレージ内に存在するか否かを調べ、存在する場合(ステップS51がYES)、重複排除ありストレージ1内部で重複排除を行い、階層1マッピングテーブル321および外部ストレージ階層マッピングテーブル322を更新する(ステップS52)。そして、図17の処理を終了する。他方、重複排除手段220は、計算したCAを用いて重複データがストレージ内に存在するか否かを調べた結果、存在しない場合(ステップS51がNO)、データ送受信手段210に対して上記CAをキーに送信指示を行う(ステップS53)。そして、図17の処理を終了する。
図18はデータ送受信手段210の動作を示すフローチャートである。以下、図18を参照して、データ送受信手段210が重複排除手段220から送信指示(ステップS53)を受けた場合の動作を説明する。
データ送受信手段210は、重複排除手段220から送信指示を受けると、まず、クラウドストレージ管理手段250、他ストレージ3のデータ送受信手段211に対して、CAをキーとして対象のデータが存在するか否かを検索するためにRESTで検索指示を送信する(ステップS20)。次にデータ送受信手段210は、その検索結果が同一データなしの場合(ステップS21がNO)、クラウドストレージ管理手段250、他ストレージ3のデータ送受信手段211に対して、CAをキーとして実データを送信する(ステップS22)。そして、データ送受信手段210は、ステップS23へと進む。他方、データ送受信手段210は、上記検索結果が同一データ有の場合(ステップS21がYES)、ステップS22をスキップしてステップS23へと進む。
データ送受信手段210は、ステップS23では、階層入れ替え手段230に対して、LDマッピングテーブル300、階層1マッピングテーブル321、外部ストレージ階層マッピングテーブル322の更新と対象のデータの削除を指示する(ステップS23)。そして、図18の処理を終了する。ステップS23による指示を受けた階層入れ替え手段230は、前述した図16のステップS73、S74の処理を実行する。
このように、データ送受信手段210は、アクセス頻度が低くなったデータを、REST(REpresentational State Transfer)インタフェースを利用してクラウドストレージ2に対して送信する動作を行っている。そして、本実施形態では、この動作は、定期的に実行される階層入れ替え手段230のCAS化指示により実行される重複排除手段220が、ストレージ内で重複排除されていないデータの場合に、データ送受信手段210に対してデータの送信指示を行うことで行われている。
図19はクラウドストレージ管理手段250の動作を示すフローチャートである。以下、図19を参照して、クラウドストレージ管理手段250がデータ送受信手段210から検索指示(図18のステップS20)を受信した場合の動作を説明する。
クラウドストレージ管理手段250は、まず、データ送受信手段210から受信した検索指示に含まれるCAをキーに同一データが存在するか否かを検索する(ステップS100)。次に、クラウドストレージ管理手段250は、同一データが存在する場合(ステップS101がYES)、データ送受信手段210に対して、成功を返却し(ステップS102)、処理を終了する。一方、同一データが存在しない場合(ステップS101がNO)、クラウドストレージ管理手段250は、データ送受信手段210に対して、失敗を返却し(ステップS103)、処理を終了する。
図20はデータ送受信手段211の動作を示すフローチャートである。以下、図20を参照して、データ送受信手段211がストレージ1のデータ送受信手段210からの検索指示(図18のステップS20)を受信した場合の動作を説明する。
ストレージ3のデータ送受信手段211は、ストレージ1のデータ送受信手段210から検索指示を受信すると、検索指示に含まれるCAをキーに対象データが存在するか否かを検索するようCAS制御手段241に指示する(ステップS30)。次にデータ送受信手段211は、上記検索の結果、重複データがある場合(ステップS31がYES)、上記検索指示に対して、格納済みクラウドストレージとバックアップが格納された重複排除機能ありストレージの情報を返却し(ステップS32)、処理を終了する。他方、データ送受信手段211は、上記検索の結果、重複データのない場合(ステップS31がNO)、上記検索指示に対して、外部ストレージバックアップ領域71の空き容量と重複データが存在しないことを返却し(ステップS33)、処理を終了する。このように外部ストレージバックアップ領域71の空き容量を返却することで、空き容量を超えるデータのバックアップを防止することができる。
上述したように、ストレージ3のデータ送受信手段211は、ストレージ1から重複データの検索指示を、RESTインタフェースを利用して受信する。そして、データ送受信手段211は、ストレージ1のデータ送受信手段210からのCAをキーにした検索指示に対して、CAS制御手段241に検索指示を行い、その結果を返却する。
図21はCAS制御手段241の動作を示すフローチャートである。以下、図21を参照して、CAS制御手段241がデータ送受信手段211からの検索指示(図20のステップS30)を受けた場合の動作を説明する。
CAS制御手段241は、データ送受信手段211から検索指示を受信すると、まず、検索指示に含まれるCAをキーに外部ストレージバックアップ領域71に同一データがないか否かを検索する(ステップS80)。次に、CAS制御手段241は、同一データがある場合(ステップS81がYES)、データ送受信手段211に対して、格納済みクラウドストレージとバックアップ先のストレージの情報を返却し(ステップS82)、処理を終了する。
他方、同一データがない場合(ステップS81がNO)、CAS制御手段241は、データ送受信手段211に対して、外部ストレージバックアップ領域71の空き容量と重複データなしの情報を返却する(ステップS83)。続いて、CAS制御手段241は、階層1マッピングテーブル321を参照し、検索指示に含まれるCAに一致するCAを有するデータがないか否かを検索する(ステップS84)。次にCAS制御手段241は、一致するCAを有するデータが存在する場合(ステップS85がYES)、当該データのCAS化の優先度を高めるためにLDマッピングテーブル300中の当該データのアクセス頻度をデクリメントし(ステップS86)、処理を終了する。一致するCAを有するデータが存在しない場合(ステップS85がNO)、CAS制御手段241は、ステップS86の処理をスキップして、処理を終了する。
図22はクラウドストレージ管理手段250の動作を示すフローチャートである。以下、図22を参照して、クラウドストレージ管理手段250が、データ送受信手段210から送信されたCAをキーとする実データ(図18のステップS22)を受信した場合の動作を説明する。
クラウドストレージ管理手段250は、データ送受信手段210から受信したデータをCAに対応付けてクラウドデータ格納先デバイス81に格納し(ステップS110)、処理を終了する。
図23はデータ送受信手段211の動作を示すフローチャートである。以下、図23を参照して、データ送受信手段211がデータ送受信手段210から送信されたCAをキーとする実データ(図18のステップS22)を受信した場合の動作を説明する。
データ送受信手段211は、データ送受信手段210から送信されたCAをキーとする実データを受信すると、CAS制御手段241に対して、受信したデータの格納を指示し(ステップS40)、処理を終了する。
このようにデータ送受信手段211は、ストレージ1から重複データの格納指示を、RESTインタフェースを利用して受信する。そして、データ送受信手段211は、ストレージ1のデータ送受信手段210からのCAをキーにしたデータ格納指示に対して、CAS制御手段241にデータ格納指示を行い、CAS制御手段241からの結果を返却する。
図24はCAS制御手段241の動作を示すフローチャートである。以下、図24を参照して、CAS制御手段241がデータ送受信手段211からのデータ格納指示を受信した場合の動作を説明する。
CAS制御手段241は、まず、外部ストレージバックアップ領域71に実データを格納する(ステップS90)。次にCAS制御手段241は、外部ストレージ管理テーブル330にCAと送信元ディスクアレイの新規エントリを追加し(ステップS91)、処理を終了する。
<本実施形態の効果の説明>
ブロックストレージの最下位階層に重複排除したデータをCASの構造で保持し、実データはクラウドストレージ2に配置することで、ストレージの諸元を超えたユーザ容量を提供し、重複排除率の向上が期待できる。
本実施形態によれば、複数の重複排除機能を持ったストレージ1、3間で重複するデータを、クラウドストレージ2に格納する場合にも重複排除することが可能になる。そのため、クラウドストレージ2の格納コストを削減できる。また、クラウドストレージ2に既に格納されているデータと重複するデータは、クラウドストレージ2に対して送信されないため、通信コストを削減できる。
また本実施形態によれば、ローカルサイトに存在する、同等の機能を持った複数の外部ストレージバックアップ領域70、71に対して、1個以上のバックアップデータをいずれかの外部ストレージバックアップ領域70、71に保持することができる。そのため、クラウドストレージ2が利用できない場合の代替手段を提供でき、可用性が向上することでサービスレベルを高めることができる。
また本実施形態によれば、他のストレージ1からクラウドストレージ2に追い出されたデータのバックアップデータを自ストレージ3に保存する際に、階層1マッピングテーブルに同一データが存在すれば、当該同一データを優先的に重複排除の対象とすることで、重複排除率が向上し、ストレージの格納コストを削減できる。
即ち、本実施形態によれば、ローカルサイトに存在する外部ストレージにバックアップを配置することで、可用性の向上及び重複排除率の向上が期待できる。
[第3の実施形態]
図25を参照すると、本発明の第3の実施形態に係るブロックストレージ4000は、階層論理ディスク4100と重複排除手段4200と階層入れ替え手段4300とを有する。
階層論理ディスク4100は、階層化された複数の論理ディスクを有する。
重複排除手段4200は、最下位階層の1つ上の階層の論理ディスクに格納されているデータのアクセス頻度が閾値より低下したときに、当該データのハッシュをコンテントアドレスに有するデータを、最下位階層の論理ディスクに相当する、複数のブロックストレージで共用するオブジェクトストレージ(図示せず)から検索する機能を有する。
階層入れ替え手段4300は、アクセス頻度に応じてデータを何れかの階層の論理ディスクに格納する機能を有する。また階層入れ替え手段4300は、重複排除手段4200による上記検索が失敗したときに、上記データを上記オブジェクトストレージに送信して、上記データを格納する階層を最下位階層に変更する機能を有する。また階層入れ替え手段4300は、上記検索が成功したときに、上記送信を省略して、上記データを格納する階層を最下位階層に変更する機能を有する。
上述したような構成を有する本実施形態に係るブロックストレージ4000は、以下のように動作する。
階層入れ替え手段4300は、アクセス頻度に応じてデータを階層論理ディスク4100の何れかの階層の論理ディスクに格納する。
重複排除手段4200は、例えば定期的に、最下位階層の1つ上の階層の論理ディスクに格納されているデータのアクセス頻度が閾値より低下したか否かを検出する。そして、重複排除手段4200は、アクセス頻度が閾値より低下したデータのハッシュをコンテントアドレスに有するデータを、最下位階層の論理ディスクに相当する、複数のブロックストレージで共用するオブジェクトストレージから検索する。
階層入れ替え手段4300は、重複排除手段4200による上記検索が失敗したとき、上記データを上記オブジェクトストレージに送信して、上記データを格納する階層を最下位階層に変更する。また階層入れ替え手段4300は、重複排除手段4200による上記検索が成功したとき、上記送信を省略して、上記データを格納する階層を最下位階層に変更する。
このように本実施形態によれば、複数のブロックストレージでオブジェクトストレージを共用する場合、複数のブロックストレージの同じデータがオブジェクトストレージに重複して格納されるのを防止できる。
その理由は、最下位階層の1つ上の階層の論理ディスクに格納されているデータのアクセス頻度が閾値より低下したときに、当該データのハッシュをコンテントアドレスに有するデータを、最下位階層の論理ディスクに相当する、複数のブロックストレージで共用するオブジェクトストレージから検索する重複排除手段4200と、上記検索に失敗したときに上記データを上記オブジェクトストレージに送信して上記データを格納する階層を最下位階層に変更し、上記検索に成功したときに上記送信を省略して上記データを格納する階層を最下位階層に変更する階層入れ替え手段4300を有するためである。
本発明によれば、ディスクアレイ装置の用途に適用できる。
1…重複排除機能を有するストレージ
2…クラウドストレージ
3…重複排除機能を有するストレージ
50、51…階層論理ディスク
60…階層デバイス
70、71…外部ストレージバックアップ領域
80、82…格納先デバイス
81…クラウドデータ格納先デバイス
200…アクセス頻度更新手段
210、211…データ送受信手段
220…重複排除手段
230…階層入れ替え手段
240、241…CAS制御手段
250…クラウドストレージ管理手段
300…LDマッピングテーブル
310…階層管理テーブル
320…階層0マッピングテーブル
321…階層1マッピングテーブル
322…外部ストレージ階層マッピングテーブル
330、331…外部ストレージ管理テーブル

Claims (7)

  1. 階層化された複数の論理ディスクを有し、アクセス頻度に応じてデータを何れかの階層の論理ディスクに格納するブロックストレージであって、
    最下位階層の1つ上の階層の論理ディスクに格納されているデータのアクセス頻度が閾値より低下したときに、前記データのハッシュをコンテントアドレスに有するデータを、最下位階層の論理ディスクに相当する、複数のブロックストレージで共用するオブジェクトストレージから検索する重複排除手段と、
    検索対象のデータと同一のデータが格納されていないため前記検索に失敗したときに前記データを前記オブジェクトストレージに格納するために前記オブジェクトストレージに送信し且つ前記データを格納する階層を最下位階層の1つ上の階層から最下位階層に変更し、検索対象のデータと同一のデータが格納されているため前記検索に成功したときに前記送信を省略して前記データを格納する階層を最下位階層の1つ上の階層から最下位階層に変更する階層入れ替え手段と、
    を備え、且つ、
    前記重複排除手段は、前記コンテントアドレスを有するデータを、前記オブジェクトストレージのバックアップ領域に相当する、他ブロックストレージに存在するバックアップ領域から検索し、
    前記階層入れ替え手段は、検索対象のデータと同一のデータが格納されていないため前記バックアップ領域に対する前記検索に失敗したときに前記データを前記他ブロックストレージに送信する、
    ブロックストレージ。
  2. 外部ストレージバックアップ領域と、
    前記他ブロックストレージから受信したデータをオブジェクト化して前記データのハッシュをコンテントアドレスとして前記外部ストレージバックアップ領域に格納するバックアップ制御手段と、
    を有する、
    請求項に記載のブロックストレージ。
  3. 前記バックアップ制御手段は、前記他ブロックストレージからコンテントアドレスを指定した検索要求を受信すると、前記コンテントアドレスを有するデータを前記外部ストレージバックアップ領域から検索し、検索対象のデータと同一のデータが格納されていないため該検索に失敗したときに、最下位階層の1つ上の階層の論理ディスクに格納されているデータであって、そのハッシュが前記コンテントアドレスに一致するデータを検索し、発見した前記データの論理アドレスと対応付けて記録されているアクセス頻度を低下させる、
    請求項に記載のブロックストレージ。
  4. 請求項1乃至の何れかに記載のブロックストレージと、
    前記ブロックストレージから受信したデータをオブジェクト化して格納するオブジェクトストレージと、
    を備える、
    ストレージシステム。
  5. 請求項に記載のストレージシステムと、
    前記ストレージシステムにアクセス可能なホストコンピュータと、
    を備える、
    コンピュータシステム。
  6. 階層化された複数の論理ディスクを有し、アクセス頻度に応じてデータを何れかの階層の論理ディスクに格納するブロックストレージが実行する方法であって、
    最下位階層の1つ上の階層の論理ディスクに格納されているデータのアクセス頻度が閾値より低下したときに、前記データのハッシュをコンテントアドレスに有するデータを、最下位階層の論理ディスクに相当する、複数のブロックストレージで共用するオブジェクトストレージから検索し、
    検索対象のデータと同一のデータが格納されていないため前記検索に失敗したときに前記データを前記オブジェクトストレージに格納するために前記オブジェクトストレージに送信し且つ前記データを格納する階層を最下位階層の1つ上の階層から最下位階層に変更し、
    検索対象のデータと同一のデータが格納されているため前記検索に成功したときに前記送信を省略して前記データを格納する階層を最下位階層の1つ上の階層から最下位階層に変更し、
    前記コンテントアドレスを有するデータを、前記オブジェクトストレージのバックアップ領域に相当する、他ブロックストレージに存在するバックアップ領域から検索し、
    検索対象のデータと同一のデータが格納されていないため前記バックアップ領域に対する前記検索に失敗したときに前記データを前記他ブロックストレージに送信する
    ブロックストレージ制御方法。
  7. 階層化された複数の論理ディスクを有し、アクセス頻度に応じてデータを何れかの階層の論理ディスクに格納するコンピュータを、
    最下位階層の1つ上の階層の論理ディスクに格納されているデータのアクセス頻度が閾値より低下したときに、前記データのハッシュをコンテントアドレスに有するデータを、最下位階層の論理ディスクに相当する、複数のブロックストレージで共用するオブジェクトストレージから検索する重複排除手段と、
    検索対象のデータと同一のデータが格納されていないため前記検索に失敗したときに前記データを前記オブジェクトストレージに格納するために前記オブジェクトストレージに送信し且つ前記データを格納する階層を最下位階層の1つ上の階層から最下位階層に変更し、検索対象のデータと同一のデータが格納されているため前記検索に成功したときに前記送信を省略して前記データを格納する階層を最下位階層の1つ上の階層から最下位階層に変更する階層入れ替え手段と、
    して機能させるためのプログラムであって、
    前記重複排除手段は、前記コンテントアドレスを有するデータを、前記オブジェクトストレージのバックアップ領域に相当する、他ブロックストレージに存在するバックアップ領域から検索し、
    前記階層入れ替え手段は、検索対象のデータと同一のデータが格納されていないため前記バックアップ領域に対する前記検索に失敗したときに前記データを前記他ブロックストレージに送信する、
    プログラム。
JP2016009904A 2016-01-21 2016-01-21 ブロックストレージ Active JP6708948B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016009904A JP6708948B2 (ja) 2016-01-21 2016-01-21 ブロックストレージ
US15/409,052 US10185495B2 (en) 2016-01-21 2017-01-18 Block storage device having hierarchical disks with different access frequencies

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016009904A JP6708948B2 (ja) 2016-01-21 2016-01-21 ブロックストレージ

Publications (2)

Publication Number Publication Date
JP2017130103A JP2017130103A (ja) 2017-07-27
JP6708948B2 true JP6708948B2 (ja) 2020-06-10

Family

ID=59359098

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016009904A Active JP6708948B2 (ja) 2016-01-21 2016-01-21 ブロックストレージ

Country Status (2)

Country Link
US (1) US10185495B2 (ja)
JP (1) JP6708948B2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE533007C2 (sv) 2008-10-24 2010-06-08 Ilt Productions Ab Distribuerad datalagring
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10942907B2 (en) 2016-11-04 2021-03-09 Oracle International Corporation Safe release of database sessions for planned maintenance operations
US10776324B2 (en) * 2016-12-09 2020-09-15 Nhn Entertainment Corporation Method and system for managing cloud storage
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US10684786B2 (en) * 2017-04-28 2020-06-16 Netapp, Inc. Methods for performing global deduplication on data blocks and devices thereof
US10372371B2 (en) * 2017-09-14 2019-08-06 International Business Machines Corporation Dynamic data relocation using cloud based ranks
US12007941B2 (en) * 2017-09-29 2024-06-11 Oracle International Corporation Session state tracking
US10834190B2 (en) 2018-01-18 2020-11-10 Portworx, Inc. Provisioning of clustered containerized applications
US11210009B1 (en) * 2018-03-15 2021-12-28 Pure Storage, Inc. Staging data in a cloud-based storage system
US10917471B1 (en) 2018-03-15 2021-02-09 Pure Storage, Inc. Active membership in a cloud-based storage system
US10990532B2 (en) * 2018-03-29 2021-04-27 Intel Corporation Object storage system with multi-level hashing function for storage address determination
US10625649B2 (en) * 2018-04-10 2020-04-21 B/E Aerospace, Inc. Mechanism to achieve expandable tray table
US11263087B2 (en) * 2018-07-05 2022-03-01 EMC IP Holding Company LLC Methods and systems for serverless data deduplication
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11550514B2 (en) * 2019-07-18 2023-01-10 Pure Storage, Inc. Efficient transfers between tiers of a virtual storage system
US11526408B2 (en) * 2019-07-18 2022-12-13 Pure Storage, Inc. Data recovery in a virtual storage system
US11093139B1 (en) * 2019-07-18 2021-08-17 Pure Storage, Inc. Durably storing data within a virtual storage system
US11941116B2 (en) 2019-11-22 2024-03-26 Pure Storage, Inc. Ransomware-based data protection parameter modification
US11494128B1 (en) 2020-01-28 2022-11-08 Pure Storage, Inc. Access control of resources in a cloud-native storage system
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11593017B1 (en) 2020-08-26 2023-02-28 Pure Storage, Inc. Protection of objects in an object store from deletion or overwriting
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11520516B1 (en) 2021-02-25 2022-12-06 Pure Storage, Inc. Optimizing performance for synchronous workloads

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5387535B2 (ja) 2010-09-15 2014-01-15 日本電気株式会社 ファイル管理装置、プログラム並びに方法
WO2012066671A1 (ja) * 2010-11-18 2012-05-24 株式会社日立製作所 計算機システムの管理装置及び管理方法
JP4908626B1 (ja) 2010-12-28 2012-04-04 株式会社東芝 表示制御装置および表示制御方法
US8965856B2 (en) 2011-08-29 2015-02-24 Hitachi, Ltd. Increase in deduplication efficiency for hierarchical storage system
JP5895523B2 (ja) 2011-12-28 2016-03-30 富士通株式会社 情報処理装置及びデータ管理方法
JP2013222230A (ja) 2012-04-13 2013-10-28 Hitachi-Lg Data Storage Inc 情報処理システム
WO2014101117A1 (zh) * 2012-12-28 2014-07-03 华为技术有限公司 数据存储方法和存储设备
JP6291937B2 (ja) 2014-03-19 2018-03-14 日本電気株式会社 ブロックストレージ、ストレージシステム、コンピュータシステム、ブロックストレージ制御方法、ストレージシステム制御方法およびプログラム
JP6511795B2 (ja) * 2014-12-18 2019-05-15 富士通株式会社 ストレージ管理装置、ストレージ管理方法、ストレージ管理プログラムおよびストレージシステム

Also Published As

Publication number Publication date
JP2017130103A (ja) 2017-07-27
US20170212691A1 (en) 2017-07-27
US10185495B2 (en) 2019-01-22

Similar Documents

Publication Publication Date Title
JP6708948B2 (ja) ブロックストレージ
US11775392B2 (en) Indirect replication of a dataset
US11461015B2 (en) Available storage space in a system with varying data redundancy schemes
US7716183B2 (en) Snapshot preserved data cloning
WO2018040591A1 (zh) 一种远程数据复制方法及系统
US7975115B2 (en) Method and apparatus for separating snapshot preserved and write data
US8204858B2 (en) Snapshot reset method and apparatus
US8510508B2 (en) Storage subsystem and storage system architecture performing storage virtualization and method thereof
US9116913B2 (en) File storage system and file cloning method
CN105027070A (zh) 卷操作的安全性
US20210334241A1 (en) Non-disrputive transitioning between replication schemes
CN109407975B (zh) 写数据方法与计算节点以及分布式存储系统
US10394484B2 (en) Storage system
JP6291937B2 (ja) ブロックストレージ、ストレージシステム、コンピュータシステム、ブロックストレージ制御方法、ストレージシステム制御方法およびプログラム
JP6343952B2 (ja) ストレージシステム
CN114415980A (zh) 多云集群数据管理系统、方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191023

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191217

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200422

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200505

R150 Certificate of patent or registration of utility model

Ref document number: 6708948

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150