JP2014199574A - ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム - Google Patents
ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム Download PDFInfo
- Publication number
- JP2014199574A JP2014199574A JP2013074643A JP2013074643A JP2014199574A JP 2014199574 A JP2014199574 A JP 2014199574A JP 2013074643 A JP2013074643 A JP 2013074643A JP 2013074643 A JP2013074643 A JP 2013074643A JP 2014199574 A JP2014199574 A JP 2014199574A
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage
- management information
- mbf
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
- G06F12/1018—Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6032—Way prediction in set-associative cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】ストレージ制御装置10は、ストレージ30に記憶されたデータを記憶領域別に管理する複数のMBF31を備え、一部のMBF31をRAM12上にキャッシュし、データの書込時には、RAM12上のMBF31のみに基づき重複の有無を判定する。また、ストレージ制御装置10は、各MBFの利用状況に基づき、MBFの利用頻度が高い方のハッシュログの内容が維持される形で、ストレージ30内に格納済みのデータの重複除去を行う。
【選択図】図2
Description
ストレージを、複数のデータ領域に分けられた複数のデータ記憶領域を備えた装置として取り扱って、前記ストレージ内の各データのストレージ内アドレスとハッシュ値との対応関係を複数のハッシュログによりデータ記憶領域別に管理すると共に、前記ストレージ内の各データの論理アドレス及びハッシュ値と、各データが格納されているデータ領域内のデータが登録されており且つ当該データ領域内の各データがいずれのデータ記憶領域に格納されているかを特定するために使用できるデータ管理情報の識別情報との対応関係を
ブロックマップにより管理する制御部と、
前記複数のハッシュログと、各データ領域に関するデータ管理情報とを記憶する第1記憶部と、
前記第1記憶部よりも高速にデータを読み書きできる第2記憶部と、
を備え、
前記制御部は、
読込対象データの前記ストレージからの読み込み時に、前記ブロックマップ内の当該読込対象データの論理アドレスに対応づけられた識別情報にて識別されるデータ管理情報が前記第2記憶部上に記憶されていなかった場合には、前記第1記憶部に記憶されている当該データ管理情報を前記第2記憶部上のいずれかのデータ管理情報の代わりに前記第2記憶部上に読み出し、読み出したデータ管理情報に基づき、前記読込対象データが格納されているデータ記憶領域に関する前記ハッシュログを特定し、特定したハッシュログ上の情報を用いて前記読込対象データを前記ストレージから読み込み、
格納対象データの書き込み時に前記格納対象データが登録されているデータ管理情報が前記第2記憶部に記憶されていなかった場合には、他のデータ管理情報に前記格納対象データが登録されているか否かを判定することなく、前記格納対象データを前記ストレージ内に格納し、
所定の条件が満たされた場合に、各データ管理情報の利用状況を基にした優先度にしたがい、少なくとも1つのデータ管理情報を選択し、選択した少なくとも1つのデータ管理情報が関連づけられているデータ領域上のデータについての,他のデータ領域上の重複データを前記ストレージから除去する。
8等をインストールした装置である。換言すれば、CPU(Central Processing Unit)
11が、ストレージ制御プログラム18(及びOS)をRAM(Random Access Memory)12上にロードして実行しているコンピュータ50が、ストレージ制御装置10である。
、ユーザ端末100(ユーザ端末100内のストレージ制御装置10用のドライバ)が使用するアドレスのことである。
A−256等のアルゴリズムにより算出されるセキュアハッシュ値が使用される。
この図2に示してあるように、ストレージ制御装置10は、格納処理部41、読込処理部42及び重畳除去処理部43を備える。また、ストレージ制御装置10は、ヒット頻度管理情報20、ブロックマップ21、MBFキャッシュテーブル24、ハッシュログキャッシュテーブル28、書込対象MBF31w、MBFテーブル22及びハッシュログテーブル23をRAM12上/HDD13内に保持した状態で動作する。尚、ストレージ制御装置10の停止時には、RAM12上のヒット頻度管理情報20、ブロックマップ21、書込対象MBF31w等が、HDD13内に保存される。そして、ストレージ制御装置10の再起動時には、HDD13内に保存した情報に基づき、RAM12上に停止前と同じ情報が用意される。
(機能ブロック)である。処理部41〜43の詳細については後述するが、各処理部は、ストレージ30を、全記憶領域(又は大部分の記憶領域)が同一サイズの複数の記憶領域(以下、データ記憶領域と表記する)に分割されている装置として取り扱う。また、各処理部は、ストレージ30を、当該複数のデータ記憶領域が複数のグループ(データ領域)に分けられている装置として取り扱う。
記憶される。
格納対象データと同一内容のデータがストレージ30に格納されているか否かを判定できるデータ構造である。ただし、MBF31は、所望のデータが書き込まれているデータ記憶領域の検索も行えるものとなっている。
のサイズ(ビット数)は、1段目のBFのサイズの1/Xj-1とされる。尚、Xは、2以
上の整数値である。以下、Xのことを、分割数とも表記する。
いに異なるデータ記憶領域が対応付けられる。
(2)算出した検証用ハッシュ値(以下、算出ハッシュ値と表記する)がBF1−1に登録されているか否かをチェック。
(3a)算出ハッシュ値がBF1−1に登録されていなかった場合には、処理対象データが“図3のMBF31の管理対象となっている16個のデータ記憶領域”(以下、チェック対象領域と表記する)に記憶されていないと判定して処理を終了。
(3b)算出ハッシュ値がBF1−1に登録されていた場合には、BF1−1に対応づけられている2段目のBF2−1〜2−4の中から、算出ハッシュ値が登録されているBFを特定(検索)。
(4a)算出ハッシュ値が登録されている2段目のBFが特定できなかった場合には、処理対象データがチェック対象領域に記憶されていないと判定して処理を終了。尚、1段目のBF1−1に算出ハッシュ値が登録されているにも拘わらず、2段目の全BFに算出ハッシュ値が登録されていない場合があるのは、BFが、誤判定(擬陽性)があり得るものであるためである。
(4b)算出ハッシュ値が登録されている2段目のBFが特定できた場合には、特定されたBFに対応付けられている4個の最下段BF(例えば、BF3−1〜3−4)の中から、算出ハッシュ値が登録されている最下段BFを特定。
(5a)算出ハッシュ値が登録されている最下段BFが特定できなかった場合には、算出ハッシュ値が登録されている2段目のBFを未チェックのBFの中から特定してから、(4)〔(4a)又は(4b)〕に戻る。
(5b)算出ハッシュ値が登録されている最下段BFが特定できた場合には、処理対象データと同内容のデータが記憶されているデータ記憶領域を検索結果として処理を終了。
MBF別ハッシュログ情報”(以下、MBF別ハッシュログ情報の初期値と表記する)のみを記憶した状態にある。
この図5に示してあるように、ブロックマップ21は、LBAフィールド、MBF−IDフィールド及びハッシュ値フィールドを有する。
格納処理部41は、通常は、ストレージ30に対するライト要求が、ユーザ端末100用の通信インタフェース(“I/F”)によって受信されるのを待機(監視)している。
象BF31wのデータ登録数が“既定数”となっている状況下、ステップS102(又はS104)の検索に失敗した場合、格納処理部41は、書込対象MBF31wのデータ登録数が既定数未満ではないと判断する(ステップS111;NO)。
(a)注目MBF31をそのMBF−IDと共にMBFテーブルに追加する処理
(b)注目MBF31に関する,ハッシュログキャッシュテーブル28上のMBF別ハッシュログ情報をハッシュログテーブルに追加する処理
(c)MBFテーブルに追加したMBF31のMBF−IDを、登録済MBF−IDとしてRAM12上に記憶する処理
ュログ情報が記憶されていた部分に、新MBF31に関するMBF別ハッシュログ情報の初期値が記憶される。
(a)注目MBF31をそのMBF−IDと共にMBFテーブルに追加する処理
(b)注目MBF31に関する,ハッシュログキャッシュテーブル28上のMBF別ハッシュログ情報をハッシュログテーブルに追加する処理
(c)MBFテーブルに追加したMBF31のMBF−IDを、登録済MBF−IDとしてRAM12に記憶する処理
始する。
ューを表す情報のことである。第iキュー情報には、第iキュー内に保持されている複数のMBF−IDや、それらのMBF−IDの第iキュー内での位置関係を示す情報が含まれる。
かった場合には、図8Bに模式的に示したように、入力データを第1キュー401に登録
(追加)してから、ヒット頻度管理処理を終了する。
は、当該データを第1キュー401から取り出す。そして、CPU11は、図8Cに模式
的に示してあるように、取り出したデータ(処理対象IDと同じデータ)を第2キュー402への入力データとして取り扱って、第2キュー402に対して、第1キュー401に対
する処理と同内容の処理を行う。
なかった場合には、図8Cに模式的に示してあるように、入力データを第1キュー402
に登録(追加)してから、ヒット頻度管理処理を終了する。一方、入力データと同じデータが第2キュー402内に存在していた場合、CPU11は、当該データを第2キュー4
02から取り出す。そして、CPU11は、取り出したデータを第3キュー(図示略)へ
の入力データとして取り扱って、第3キューに対して、第1キュー401(及び第2キュ
ー402)に対する処理と同内容の処理を行う。
11が第N+1キュー40Nに対して行う処理は、第1キュー401に対する処理とは若干異なる。
11は、まず、第N+1キュー40N+1内に処理対象データと同じデータが存在している
か否かを判断する。そして、CPU11は、第N+1キュー40N+1内に処理対象IDと
同じデータが存在していなかった場合には、処理対象IDを第N+1キュー40N+1に登
録してから、ヒット頻度管理処理を終了する。一方、第N+1キュー40N+1内に処理対
象IDが存在していた場合、CPU11は、処理対象IDを第N+1キュー40N+1から
取り出して第N+1キュー40N+1に登録し直す。換言すれば、CPU11は、処理対象
IDの第N+1キュー40N+1内の位置を、破棄されるまでに最も時間がかかる先頭に変
更する。そして、CPU11は、ヒット頻度管理処理を終了する。
、Z2時等)に従って行う。
が存在していた場合には、第N+1キュー40N+1から全MBF−IDを取り出す。そし
て、取り出したMBF−ID毎に、そのMBF−IDを処理対象MBF−IDとして取り扱うと共に、そのMBF−IDに関する各ハッシュログ25を処理対象ハッシュログとして取り扱って、図9に示した手順の重複除去処理を行う。尚、或るMBF−IDに関する各ハッシュログ25とは、当該MBF−IDで識別されるMBF31の各最下段BFに対応づけらているハッシュログ25のことである。
MBF−ID_βが取り出されるのは、第N−1キューからMBF−ID_βが破棄される以前に、第N−2キューから、MBF−ID_βが取り出されたときである。
上記したストレージ制御装置10は、各種の変形が行えるものである。例えば、ストレージ制御装置10を、ブロックマップ21がHDD13に記憶される装置に変形することができる。また、ストレージ制御装置10を、ハッシュログキャッシュテーブル28がない装置(常に、ハッシュログテーブル23に対するアクセスが行われる装置)に変形することができる。
ストレージを、複数のデータ領域に分けられた複数のデータ記憶領域を備えた装置として取り扱って、前記ストレージ内の各データのストレージ内アドレスとハッシュ値との対応関係を複数のハッシュログによりデータ記憶領域別に管理すると共に、前記ストレージ内の各データの論理アドレス及びハッシュ値と、各データが格納されているデータ領域内のデータが登録されており且つ当該データ領域内の各データがいずれのデータ記憶領域に格納されているかを特定するために使用できるデータ管理情報の識別情報との対応関係をブロックマップにより管理する制御部と、
前記複数のハッシュログと、各データ領域に関するデータ管理情報とを記憶する第1記憶部と、
前記第1記憶部よりも高速にデータを読み書きできる第2記憶部と、
を備え、
前記制御部は、
読込対象データの前記ストレージからの読み込み時に、前記ブロックマップ内の当該読込対象データの論理アドレスに対応づけられた識別情報にて識別されるデータ管理情報が前記第2記憶部上に記憶されていなかった場合には、前記第1記憶部に記憶されている当該データ管理情報を前記第2記憶部上のいずれかのデータ管理情報の代わりに前記第2記憶部上に読み出し、読み出したデータ管理情報に基づき、前記読込対象データが格納されているデータ記憶領域に関する前記ハッシュログを特定し、特定したハッシュログ上の情報を用いて前記読込対象データを前記ストレージから読み込み、
格納対象データの書き込み時に前記格納対象データが登録されているデータ管理情報が前記第2記憶部に記憶されていなかった場合には、他のデータ管理情報に前記格納対象データが登録されているか否かを判定することなく、前記格納対象データを前記ストレージ内に格納し、
所定の条件が満たされた場合に、各データ管理情報の利用状況を基にした優先度にしたがい、少なくとも1つのデータ管理情報を選択し、選択した少なくとも1つのデータ管理情報が関連づけられているデータ領域上のデータについての,他のデータ領域上の重複データを前記ストレージから除去する
ストレージ制御装置。
前記データ管理情報が、
関連付けられているデータ領域内のデータ記憶領域毎に、当該データ記憶領域に格納されたデータが登録されるブルームフィルタを含む多段ブルームフィルタである
ことを特徴とする付記1に記載のストレージ制御装置。
前記制御部は、
各データ管理情報の利用状況に基づき、前記第1記憶部に記憶されている複数のデータ管理情報を、利用頻度の多寡に基づき二分する機能を有し、
前記所定の条件が満たされた場合に、利用頻度の多い方の1つ以上のデータ管理情報の中から前記少なくとも1つのデータ管理情報を選択する
ことを特徴とする付記1又は2に記載のストレージ制御装置。
前記第2記憶部は、書込用データ管理情報及び書込用ハッシュログを記憶し、
前記制御部は、
前記格納対象データの書き込み時に前記格納対象データが登録されているデータ管理情報が前記第2記憶部に記憶されていなかった場合、前記格納対象データを前記ストレージ内に格納すると共に、前記格納対象データを書込用データ管理情報に登録し、書込用ハッシュログ及びブロックマップを更新する
ことを特徴とする付記1から3のいずれか一項に記載のストレージ制御装置。
重複除去を行ってストレージにデータを格納するストレージ制御方法において、
前記ストレージを、複数のデータ領域に分けられた複数のデータ記憶領域を備えた装置として取り扱って、前記ストレージ内の各データのストレージ内アドレスとハッシュ値との対応関係を第1記憶部上の複数のハッシュログによりデータ記憶領域別に管理すると共
に、前記ストレージ内の各データの論理アドレス及びハッシュ値と、各データが格納されているデータ領域内のデータが登録されており且つ当該データ領域内の各データがいずれのデータ記憶領域に格納されているかを特定するために使用できるデータ管理情報の識別情報との対応関係を前記第1記憶部又は前記第1記憶部よりも高速にデータを読み書きできる第2記憶部上のブロックマップにより管理し、
読込対象データの前記ストレージからの読み込み時に、前記ブロックマップ内の当該読込対象データの論理アドレスに対応づけられた識別情報にて識別されるデータ管理情報が前記第2記憶部上に記憶されていなかった場合には、前記第1記憶部に記憶されている当該データ管理情報を前記第2記憶部上のいずれかのデータ管理情報の代わりに前記第2記憶部上に読み出し、
読み出したデータ管理情報に基づき、前記読込対象データが格納されているデータ記憶領域に関する前記ハッシュログを特定し、特定したハッシュログ上の情報を用いて前記読込対象データを前記ストレージから読み込み、
格納対象データの書き込み時に前記格納対象データが登録されているデータ管理情報が前記第2記憶部に記憶されていなかった場合には、他のデータ管理情報に前記格納対象データが登録されているか否かを判定することなく、前記格納対象データを前記ストレージ内に格納し、
所定の条件が満たされた場合に、各データ管理情報の利用状況を基にした優先度にしたがい、少なくとも1つのデータ管理情報を選択し、選択した少なくとも1つのデータ管理情報が関連づけられているデータ領域上のデータについての,他のデータ領域上の重複データを前記ストレージから除去する
ストレージ制御方法。
コンピュータを、重複除去を行ってストレージにデータを格納するストレージ制御装置として動作させるストレージ制御プログラムであって、
前記コンピュータに、
前記ストレージを、複数のデータ領域に分けられた複数のデータ記憶領域を備えた装置として取り扱って、前記ストレージ内の各データのストレージ内アドレスとハッシュ値との対応関係を第1記憶部上の複数のハッシュログによりデータ記憶領域別に管理すると共に、前記ストレージ内の各データの論理アドレス及びハッシュ値と、各データが格納されているデータ領域内のデータが登録されており且つ当該データ領域内の各データがいずれのデータ記憶領域に格納されているかを特定するために使用できるデータ管理情報の識別情報との対応関係を前記第1記憶部又は前記第1記憶部よりも高速にデータを読み書きできる第2記憶部上のブロックマップにより管理し、
読込対象データの前記ストレージからの読み込み時に、前記ブロックマップ内の当該読込対象データの論理アドレスに対応づけられた識別情報にて識別されるデータ管理情報が前記第2記憶部上に記憶されていなかった場合には、前記第1記憶部に記憶されている当該データ管理情報を前記第2記憶部上のいずれかのデータ管理情報の代わりに前記第2記憶部上に読み出し、
読み出したデータ管理情報に基づき、前記読込対象データが格納されているデータ記憶領域に関する前記ハッシュログを特定し、特定したハッシュログ上の情報を用いて前記読込対象データを前記ストレージから読み込み、
格納対象データの書き込み時に前記格納対象データが登録されているデータ管理情報が前記第2記憶部に記憶されていなかった場合には、他のデータ管理情報に前記格納対象データが登録されているか否かを判定することなく、前記格納対象データを前記ストレージ内に格納し、
所定の条件が満たされた場合に、各データ管理情報の利用状況を基にした優先度にしたがい、少なくとも1つのデータ管理情報を選択し、選択した少なくとも1つのデータ管理情報が関連づけられているデータ領域上のデータについての,他のデータ領域上の重複デ
ータを前記ストレージから除去する
処理を行わせるストレージ制御プログラム。
ストレージを、複数のデータ領域に分けられた複数のデータ記憶領域を備えた装置として取り扱って、前記ストレージ内の各データのストレージ内アドレスとハッシュ値との対応関係を複数のハッシュログによりデータ記憶領域別に管理すると共に、前記ストレージ内の各データの論理アドレス及びハッシュ値と、各データが格納されているハッシュログの識別情報との対応関係をブロックマップにより管理する制御部と、
前記複数のハッシュログとを記憶する第1記憶部と、
前記第1記憶部よりも高速にデータを読み書きできる第2記憶部と、
を備え、
前記制御部は、
読込対象データの前記ストレージからの読み込み時に、前記ブロックマップ内の当該読込対象データの論理アドレスに対応づけられた識別情報にて識別されるハッシュログが前記第2記憶部上に記憶されていなかった場合には、前記第1記憶部に記憶されている当該ハッシュログを前記第2記憶部上のいずれかのハッシュログの代わりに前記第2記憶部上に読み出し、読み出したハッシュログ上の情報を用いて前記読込対象データを前記ストレージから読み込み、
格納対象データの書き込み時に前記格納対象データのハッシュ値と同じハッシュ値を保持したハッシュログが前記第2記憶部に記憶されていなかった場合には、他のハッシュログを用いて前記格納対象データの重複データの有無を判定することなく、前記格納対象データを前記ストレージ内に格納し、
所定の条件が満たされた場合に、各ハッシュログの利用状況を基にした優先度にしたがい、少なくとも1つのハッシュログを選択し、選択した少なくとも1つのハッシュログが関連づけられているデータ領域上のデータについての,他のデータ領域上の重複データを前記ストレージから除去する
ストレージ制御装置。
11 CPU
12 RAM
13 HDD
18 ストレージ制御プログラム
20 ヒット頻度管理情報
21 ブロックマップ
22 MBF
23 ハッシュログテーブル
24 MBFキャッシュテーブル
25 ハッシュログ
28、ハッシュログキャッシュテーブル
30 ストレージ
31 多段ブルームフィルタ(MBF)
31w 書込対象MBF
40 キュー
41 格納処理部
42 読込処理部
43 後処理部
50 コンピュータ
100 ユーザ端末
Claims (6)
- ストレージを、複数のデータ領域に分けられた複数のデータ記憶領域を備えた装置として取り扱って、前記ストレージ内の各データのストレージ内アドレスとハッシュ値との対応関係を複数のハッシュログによりデータ記憶領域別に管理すると共に、前記ストレージ内の各データの論理アドレス及びハッシュ値と、各データが格納されているデータ領域内のデータが登録されており且つ当該データ領域内の各データがいずれのデータ記憶領域に格納されているかを特定するために使用できるデータ管理情報の識別情報との対応関係をブロックマップにより管理する制御部と、
前記複数のハッシュログと、各データ領域に関するデータ管理情報とを記憶する第1記憶部と、
前記第1記憶部よりも高速にデータを読み書きできる第2記憶部と、
を備え、
前記制御部は、
読込対象データの前記ストレージからの読み込み時に、前記ブロックマップ内の当該読込対象データの論理アドレスに対応づけられた識別情報にて識別されるデータ管理情報が前記第2記憶部上に記憶されていなかった場合には、前記第1記憶部に記憶されている当該データ管理情報を前記第2記憶部上のいずれかのデータ管理情報の代わりに前記第2記憶部上に読み出し、読み出したデータ管理情報に基づき、前記読込対象データが格納されているデータ記憶領域に関する前記ハッシュログを特定し、特定したハッシュログ上の情報を用いて前記読込対象データを前記ストレージから読み込み、
格納対象データの書き込み時に前記格納対象データが登録されているデータ管理情報が前記第2記憶部に記憶されていなかった場合には、他のデータ管理情報に前記格納対象データが登録されているか否かを判定することなく、前記格納対象データを前記ストレージ内に格納し、
所定の条件が満たされた場合に、各データ管理情報の利用状況を基にした優先度にしたがい、少なくとも1つのデータ管理情報を選択し、選択した少なくとも1つのデータ管理情報が関連づけられているデータ領域上のデータについての,他のデータ領域上の重複データを前記ストレージから除去する
ストレージ制御装置。 - 前記データ管理情報が、
関連付けられているデータ領域内のデータ記憶領域毎に、当該データ記憶領域に格納されたデータが登録されるブルームフィルタを含む多段ブルームフィルタである
ことを特徴とする請求項1に記載のストレージ制御装置。 - 前記制御部は、
各データ管理情報の利用状況に基づき、前記第1記憶部に記憶されている複数のデータ管理情報を、利用頻度の多寡に基づき二分する機能を有し、
前記所定の条件が満たされた場合に、利用頻度の多い方の1つ以上のデータ管理情報の中から前記少なくとも1つのデータ管理情報を選択する
ことを特徴とする請求項1又は2に記載のストレージ制御装置。 - 前記第2記憶部は、書込用データ管理情報及び書込用ハッシュログを記憶し、
前記制御部は、
前記格納対象データの書き込み時に前記格納対象データが登録されているデータ管理情報が前記第2記憶部に記憶されていなかった場合、前記格納対象データを前記ストレージ内に格納すると共に、前記格納対象データを書込用データ管理情報に登録し、書込用ハッシュログ及びブロックマップを更新する
ことを特徴とする請求項1から3のいずれか一項に記載のストレージ制御装置。 - 重複除去を行ってストレージにデータを格納するストレージ制御方法において、
前記ストレージを、複数のデータ領域に分けられた複数のデータ記憶領域を備えた装置として取り扱って、前記ストレージ内の各データのストレージ内アドレスとハッシュ値との対応関係を第1記憶部上の複数のハッシュログによりデータ記憶領域別に管理すると共に、前記ストレージ内の各データの論理アドレス及びハッシュ値と、各データが格納されているデータ領域内のデータが登録されており且つ当該データ領域内の各データがいずれのデータ記憶領域に格納されているかを特定するために使用できるデータ管理情報の識別情報との対応関係を前記第1記憶部又は前記第1記憶部よりも高速にデータを読み書きできる第2記憶部上のブロックマップにより管理し、
読込対象データの前記ストレージからの読み込み時に、前記ブロックマップ内の当該読込対象データの論理アドレスに対応づけられた識別情報にて識別されるデータ管理情報が前記第2記憶部上に記憶されていなかった場合には、前記第1記憶部に記憶されている当該データ管理情報を前記第2記憶部上のいずれかのデータ管理情報の代わりに前記第2記憶部上に読み出し、
読み出したデータ管理情報に基づき、前記読込対象データが格納されているデータ記憶領域に関する前記ハッシュログを特定し、特定したハッシュログ上の情報を用いて前記読込対象データを前記ストレージから読み込み、
格納対象データの書き込み時に前記格納対象データが登録されているデータ管理情報が前記第2記憶部に記憶されていなかった場合には、他のデータ管理情報に前記格納対象データが登録されているか否かを判定することなく、前記格納対象データを前記ストレージ内に格納し、
所定の条件が満たされた場合に、各データ管理情報の利用状況を基にした優先度にしたがい、少なくとも1つのデータ管理情報を選択し、選択した少なくとも1つのデータ管理情報が関連づけられているデータ領域上のデータについての,他のデータ領域上の重複データを前記ストレージから除去する
ストレージ制御方法。 - コンピュータを、重複除去を行ってストレージにデータを格納するストレージ制御装置として動作させるストレージ制御プログラムであって、
前記コンピュータに、
前記ストレージを、複数のデータ領域に分けられた複数のデータ記憶領域を備えた装置として取り扱って、前記ストレージ内の各データのストレージ内アドレスとハッシュ値との対応関係を第1記憶部上の複数のハッシュログによりデータ記憶領域別に管理すると共に、前記ストレージ内の各データの論理アドレス及びハッシュ値と、各データが格納されているデータ領域内のデータが登録されており且つ当該データ領域内の各データがいずれのデータ記憶領域に格納されているかを特定するために使用できるデータ管理情報の識別情報との対応関係を前記第1記憶部又は前記第1記憶部よりも高速にデータを読み書きできる第2記憶部上のブロックマップにより管理し、
読込対象データの前記ストレージからの読み込み時に、前記ブロックマップ内の当該読込対象データの論理アドレスに対応づけられた識別情報にて識別されるデータ管理情報が前記第2記憶部上に記憶されていなかった場合には、前記第1記憶部に記憶されている当該データ管理情報を前記第2記憶部上のいずれかのデータ管理情報の代わりに前記第2記憶部上に読み出し、
読み出したデータ管理情報に基づき、前記読込対象データが格納されているデータ記憶領域に関する前記ハッシュログを特定し、特定したハッシュログ上の情報を用いて前記読込対象データを前記ストレージから読み込み、
格納対象データの書き込み時に前記格納対象データが登録されているデータ管理情報が前記第2記憶部に記憶されていなかった場合には、他のデータ管理情報に前記格納対象データが登録されているか否かを判定することなく、前記格納対象データを前記ストレージ
内に格納し、
所定の条件が満たされた場合に、各データ管理情報の利用状況を基にした優先度にしたがい、少なくとも1つのデータ管理情報を選択し、選択した少なくとも1つのデータ管理情報が関連づけられているデータ領域上のデータについての,他のデータ領域上の重複データを前記ストレージから除去する
処理を行わせるストレージ制御プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013074643A JP6098301B2 (ja) | 2013-03-29 | 2013-03-29 | ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム |
PCT/JP2014/058353 WO2014157244A1 (ja) | 2013-03-29 | 2014-03-25 | ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム |
US14/861,153 US10048866B2 (en) | 2013-03-29 | 2015-09-22 | Storage control apparatus and storage control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013074643A JP6098301B2 (ja) | 2013-03-29 | 2013-03-29 | ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014199574A true JP2014199574A (ja) | 2014-10-23 |
JP6098301B2 JP6098301B2 (ja) | 2017-03-22 |
Family
ID=51624213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013074643A Active JP6098301B2 (ja) | 2013-03-29 | 2013-03-29 | ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US10048866B2 (ja) |
JP (1) | JP6098301B2 (ja) |
WO (1) | WO2014157244A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018532166A (ja) * | 2016-09-28 | 2018-11-01 | 華為技術有限公司Huawei Technologies Co.,Ltd. | 記憶システムにおける重複排除のための方法、記憶システムおよびコントローラ |
JP2018185760A (ja) * | 2017-04-27 | 2018-11-22 | 株式会社東芝 | データの重複を排除するためのストレージ装置 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6089890B2 (ja) * | 2013-03-29 | 2017-03-08 | 富士通株式会社 | ストレージ制御装置、ストレージ制御装置の制御方法およびストレージ制御装置の制御プログラム |
JP6327994B2 (ja) * | 2014-07-28 | 2018-05-23 | ルネサスエレクトロニクス株式会社 | 制御システムおよび半導体装置 |
WO2016194121A1 (ja) * | 2015-06-01 | 2016-12-08 | 株式会社日立製作所 | ストレージシステム、計算機装置、及び、重複排除デバイス |
US10776268B2 (en) | 2018-04-19 | 2020-09-15 | Western Digital Technologies, Inc. | Priority addresses for storage cache management |
US10977189B2 (en) * | 2019-09-06 | 2021-04-13 | Seagate Technology Llc | Reducing forward mapping table size using hashing |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020073276A1 (en) * | 2000-12-08 | 2002-06-13 | Howard John H. | Data storage system and method employing a write-ahead hash log |
JP2011118712A (ja) * | 2009-12-04 | 2011-06-16 | Fujitsu Ltd | データ管理プログラム、データ管理装置、およびデータ管理方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5651138A (en) * | 1994-08-31 | 1997-07-22 | Motorola, Inc. | Data processor with controlled burst memory accesses and method therefor |
US20020161961A1 (en) * | 2001-01-17 | 2002-10-31 | Ajile Systems, Inc. | Multiple virtual machine environment management system |
US7149841B2 (en) * | 2003-03-31 | 2006-12-12 | Micron Technology, Inc. | Memory devices with buffered command address bus |
US7484039B2 (en) * | 2005-05-23 | 2009-01-27 | Xiaogang Qiu | Method and apparatus for implementing a grid storage system |
GB2445764A (en) * | 2007-01-22 | 2008-07-23 | Surfcontrol Plc | Resource access filtering system and database structure for use therewith |
WO2010100733A1 (ja) | 2009-03-05 | 2010-09-10 | 日立ソフトウエアエンジニアリング株式会社 | 統合重複排除システム、データ格納装置、及びサーバ装置 |
JP5359941B2 (ja) | 2010-03-10 | 2013-12-04 | 富士通株式会社 | データ管理装置及びデータ管理方法 |
JP5623239B2 (ja) | 2010-10-28 | 2014-11-12 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 書込みレコードの重複を排除する記憶装置、及びその書込み方法 |
JP5989574B2 (ja) * | 2013-02-28 | 2016-09-07 | 株式会社東芝 | 計算機、メモリ管理方法およびプログラム |
US9342443B2 (en) * | 2013-03-15 | 2016-05-17 | Micron Technology, Inc. | Systems and methods for memory system management based on thermal information of a memory system |
US9292204B2 (en) * | 2013-05-24 | 2016-03-22 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method of rebuilding READ cache for a rebooted node of a multiple-node storage cluster |
US9274967B2 (en) * | 2013-08-07 | 2016-03-01 | Nimble Storage, Inc. | FIFO cache simulation using a bloom filter ring |
JP2015084266A (ja) * | 2013-10-25 | 2015-04-30 | マイクロン テクノロジー, インク. | 半導体装置 |
JP2016126813A (ja) * | 2015-01-08 | 2016-07-11 | マイクロン テクノロジー, インク. | 半導体装置 |
-
2013
- 2013-03-29 JP JP2013074643A patent/JP6098301B2/ja active Active
-
2014
- 2014-03-25 WO PCT/JP2014/058353 patent/WO2014157244A1/ja active Application Filing
-
2015
- 2015-09-22 US US14/861,153 patent/US10048866B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020073276A1 (en) * | 2000-12-08 | 2002-06-13 | Howard John H. | Data storage system and method employing a write-ahead hash log |
JP2011118712A (ja) * | 2009-12-04 | 2011-06-16 | Fujitsu Ltd | データ管理プログラム、データ管理装置、およびデータ管理方法 |
Non-Patent Citations (1)
Title |
---|
YOSHIHIRO TSUCHIYA, TAKASHI WATANABE: ""DBLK: Deduplication for primary block storage"", MASS STORAGE SYSTEMS AND TECHNOLOGIES (MSST), 2011 IEEE 27TH SYMPOSIUM ON, JPN6014020338, 23 May 2011 (2011-05-23), US, pages 1 - 5, XP031997554, ISSN: 0003421425, DOI: 10.1109/MSST.2011.5937237 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018532166A (ja) * | 2016-09-28 | 2018-11-01 | 華為技術有限公司Huawei Technologies Co.,Ltd. | 記憶システムにおける重複排除のための方法、記憶システムおよびコントローラ |
JP2018185760A (ja) * | 2017-04-27 | 2018-11-22 | 株式会社東芝 | データの重複を排除するためのストレージ装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2014157244A1 (ja) | 2014-10-02 |
US20160011788A1 (en) | 2016-01-14 |
US10048866B2 (en) | 2018-08-14 |
JP6098301B2 (ja) | 2017-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6098301B2 (ja) | ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム | |
CN108459826B (zh) | 一种处理io请求的方法及装置 | |
US9767140B2 (en) | Deduplicating storage with enhanced frequent-block detection | |
US20160342545A1 (en) | Data memory device | |
US20170206166A1 (en) | Cache bypass utilizing a binary tree | |
WO2018058382A1 (zh) | 一种存储系统中重复数据删除方法、存储系统及控制器 | |
JP6089890B2 (ja) | ストレージ制御装置、ストレージ制御装置の制御方法およびストレージ制御装置の制御プログラム | |
US9710283B2 (en) | System and method for pre-storing small data files into a page-cache and performing reading and writing to the page cache during booting | |
EP2711841A1 (en) | Data processing method, device and system based on block storage | |
JP6724534B2 (ja) | 情報処理装置、重複除去プログラム、及び重複除去方法 | |
JPWO2017149592A1 (ja) | ストレージ装置 | |
JP2018073261A (ja) | 情報処理装置、情報処理プログラム、及び情報処理方法 | |
US10037281B2 (en) | Method for disk defrag handling in solid state drive caching environment | |
JP2017049806A (ja) | ストレージ制御装置およびストレージ制御プログラム | |
KR20210076828A (ko) | 키-값 장치 및 이의 블록 인터페이스 에뮬레이션 방법 | |
JP5729479B2 (ja) | 仮想テープ装置及び仮想テープ装置の制御方法 | |
KR20120098068A (ko) | 플래시 메모리 배드 블록 관리 장치 및 방법 | |
CN108334457B (zh) | 一种io处理方法及装置 | |
KR101153688B1 (ko) | 데이터 페이지들에 대해 무효화 기회를 부여하는 방법 및 이를 위한 낸드 플래시 메모리 시스템 | |
US8688916B2 (en) | Storage system and data processing method using cache memory | |
JP6112193B2 (ja) | アクセス制御プログラム、ディスク装置及びアクセス制御方法 | |
CN113986891B (zh) | 一种重复数据删除方法及装置 | |
KR101379161B1 (ko) | 저장장치에서 블룸필터를 적용한 역매핑 방법 및 시스템 | |
US10740015B2 (en) | Optimized management of file system metadata within solid state storage devices (SSDs) | |
JP2010160544A (ja) | キャッシュメモリシステム及びキャッシュメモリの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150903 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161018 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161219 |
|
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: 20170124 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170206 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6098301 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |