JP5444506B1 - データの重複をハッシュテーブルに基づいて排除するためのストレージシステム - Google Patents
データの重複をハッシュテーブルに基づいて排除するためのストレージシステム Download PDFInfo
- Publication number
- JP5444506B1 JP5444506B1 JP2013517504A JP2013517504A JP5444506B1 JP 5444506 B1 JP5444506 B1 JP 5444506B1 JP 2013517504 A JP2013517504 A JP 2013517504A JP 2013517504 A JP2013517504 A JP 2013517504A JP 5444506 B1 JP5444506 B1 JP 5444506B1
- Authority
- JP
- Japan
- Prior art keywords
- chunk
- hash value
- hash
- page
- entries
- 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
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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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
- 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/061—Improving I/O performance
-
- 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/0614—Improving the reliability of storage systems
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
図1は、実施形態に係るコンピュータシステムの典型的なハードウェア構成を示すブロック図である。前記コンピュータシステムは、ストレージシステム10及びホストコンピュータ(以下、ホストと称する置)20から構成される。ストレージシステム10は、ネットワーク30を介してホスト20と接続されている。
SIZE_1<SIZE_2<SIZE_3<SIZE_4<SIZE_5<SIZE_6<SIZE_7
EN_1<EN_2<EN_3<EN_4<EN_5<EN_6<EN_7
がある。
Claims (3)
- ストレージ装置と、
前記ストレージ装置へのアクセスを制御するストレージコントローラと、
第1の数のエントリを有する第1のテーブル及び前記第1の数より大きい第2の数のエントリを有する第2のテーブルを含むハッシュテーブルとを具備し、
前記ストレージコントローラは、
ホストコンピュータからの書き込み要求によって指定されたデータを複数のチャンクに分割する分割部と、
前記複数のチャンクの各々のデータに基づいて、前記複数のチャンクの各々の第1の長さを持つハッシュ値を計算するハッシュ生成部と、
前記ストレージ装置にチャンクを書き込むアクセスコントローラと、
前記ストレージ装置に第1のチャンクが書き込まれる場合、前記第1のチャンクの第1のハッシュ値を、前記第1のチャンクと対応付けて前記ハッシュテーブルの前記第1のテーブルに優先的に登録する重複管理部と、
第2のチャンクの第2のハッシュ値が計算された場合、前記第2のハッシュ値に一致する第3のハッシュ値を前記ハッシュテーブルから探索する処理を、前記第1のテーブルからの探索を優先して実行することにより、前記第2のチャンクと同一内容を持つ第3のチャンクが前記ストレージ装置に格納されているかを判定する重複判定部とを具備し、
前記重複管理部は、前記第3のチャンクが前記ストレージ装置に格納されていると判定された場合、前記第2のチャンクが前記ストレージ装置に書き込まれるのを抑止し、
前記第1のテーブルは、前記第1の長さをそれぞれ持つ複数のハッシュ値を当該複数のハッシュ値に基づいて複数のグループに分類して登録するための、前記複数のグループを指し示す複数のグループインデックスにそれぞれ対応付けられた複数の第1のページを備え、
前記複数の第1のページの各々は第3の数のエントリを有し、
前記複数の第1のページの総エントリ数は前記第1の数に等しく、
前記第2のテーブルは、前記複数のグループインデックスにそれぞれ対応付けられた複数の第2のページを備え、
前記複数の第2のページの各々は前記第3の数よりも大きい第4の数のエントリを有し、
前記複数の第2のページの総エントリ数は前記第2の数に等しく、
前記重複判定部は、前記第2のチャンクの前記第2のハッシュ値に基づいて、当該第2のハッシュ値が属するグループを特定し、前記特定されたグループのグループインデックスに対応付けられた前記第1のページを優先的に選択して、前記第3のハッシュ値を前記選択された第1のページから探索し、前記選択された第1のページから前記第3のハッシュ値を探索できず、且つ少なくとも前記選択された第1のページの前記第3の数のエントリが全て使用されている場合に、前記特定されたグループのグループインデックスに対応付けられた前記第2のページを選択して、前記第3のハッシュ値を前記選択された第2のページから探索し、
前記重複管理部は、前記第3のチャンクが前記ストレージ装置に格納されていないと判定された場合に、前記第1のページ及び前記第2のページのうち最後に選択されたページに前記第1のハッシュ値を登録する
ストレージシステム。 - 前記ハッシュ生成部は、前記第1の長さを持つハッシュ値に基づいて、前記第1の長さよりも短い第2の長さを持ち、且つ前記グループインデックスとして用いられるハッシュ値を計算し、
前記重複判定部は、前記第3のハッシュ値を前記ハッシュテーブルから探索する場合、前記第2のハッシュ値に基づいて計算される前記第2の長さを持つ第4のハッシュ値を、前記第3のハッシュ値が探索されるべきグループを指定するグループインデックスとして用いる
請求項1記載のストレージシステム。 - 前記ストレージコントローラは、揮発性のメモリを更に具備し、
前記ハッシュテーブルは、前記ストレージ装置、または前記ストレージコントローラが有するローカルなストレージ装置に格納されており、
前記複数の第1のページの各々は、当該第1のページ内で使用されているエントリの数と、当該第1のページが属するグループのグループインデックスに対応付けられた前記第2のページ内で使用されているエントリの数とを示す管理情報を含み、
前記重複判定部は、前記第1のページが選択された場合、当該選択された第1のページを前記メモリにロードして、前記第3のハッシュ値を前記ロードされた第1のページから探索し、前記ロードされた第1のページから前記第3のハッシュ値を探索できず、且つ前記ロードされた第1のページに含まれている前記管理情報によって示される前記第2のページ内で使用されているエントリの数が零でない場合に、前記第2のページを選択して、当該選択された第2のページを前記メモリにロードして、前記第3のハッシュ値を前記ロードされた第2のページから探索する
請求項1記載のストレージシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/059530 WO2014155668A1 (ja) | 2013-03-29 | 2013-03-29 | データの重複をハッシュテーブルに基づいて排除するためのストレージシステム、ストレージコントローラ及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5444506B1 true JP5444506B1 (ja) | 2014-03-19 |
JPWO2014155668A1 JPWO2014155668A1 (ja) | 2017-02-16 |
Family
ID=50614397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013517504A Active JP5444506B1 (ja) | 2013-03-29 | 2013-03-29 | データの重複をハッシュテーブルに基づいて排除するためのストレージシステム |
Country Status (4)
Country | Link |
---|---|
US (1) | US9152341B2 (ja) |
JP (1) | JP5444506B1 (ja) |
CN (1) | CN104246722B (ja) |
WO (1) | WO2014155668A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016006050A1 (ja) * | 2014-07-09 | 2016-01-14 | 株式会社日立製作所 | ストレージシステム及び記憶制御方法 |
JP2017142683A (ja) * | 2016-02-10 | 2017-08-17 | 東芝メモリ株式会社 | ストレージコントローラ、ストレージ装置、データ処理方法およびプログラム |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8671265B2 (en) | 2010-03-05 | 2014-03-11 | Solidfire, Inc. | Distributed data storage system providing de-duplication of data using block identifiers |
US11636031B2 (en) * | 2011-08-11 | 2023-04-25 | Pure Storage, Inc. | Optimized inline deduplication |
US9054992B2 (en) | 2011-12-27 | 2015-06-09 | Solidfire, Inc. | Quality of service policy sets |
US9838269B2 (en) | 2011-12-27 | 2017-12-05 | Netapp, Inc. | Proportional quality of service based on client usage and system metrics |
US10908835B1 (en) | 2013-01-10 | 2021-02-02 | Pure Storage, Inc. | Reversing deletion of a virtual machine |
US11733908B2 (en) | 2013-01-10 | 2023-08-22 | Pure Storage, Inc. | Delaying deletion of a dataset |
KR20150002297A (ko) * | 2013-06-28 | 2015-01-07 | 삼성전자주식회사 | 스토리지 시스템 및 그의 동작 방법 |
US9405783B2 (en) * | 2013-10-02 | 2016-08-02 | Netapp, Inc. | Extent hashing technique for distributed storage architecture |
US20150244795A1 (en) | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
US9798728B2 (en) | 2014-07-24 | 2017-10-24 | Netapp, Inc. | System performing data deduplication using a dense tree data structure |
US9671960B2 (en) | 2014-09-12 | 2017-06-06 | Netapp, Inc. | Rate matching technique for balancing segment cleaning and I/O workload |
US10133511B2 (en) | 2014-09-12 | 2018-11-20 | Netapp, Inc | Optimized segment cleaning technique |
US9836229B2 (en) | 2014-11-18 | 2017-12-05 | Netapp, Inc. | N-way merge technique for updating volume metadata in a storage I/O stack |
US9720601B2 (en) | 2015-02-11 | 2017-08-01 | Netapp, Inc. | Load balancing technique for a storage array |
US9762460B2 (en) | 2015-03-24 | 2017-09-12 | Netapp, Inc. | Providing continuous context for operational information of a storage system |
US9710317B2 (en) | 2015-03-30 | 2017-07-18 | Netapp, Inc. | Methods to identify, handle and recover from suspect SSDS in a clustered flash array |
WO2016194121A1 (ja) * | 2015-06-01 | 2016-12-08 | 株式会社日立製作所 | ストレージシステム、計算機装置、及び、重複排除デバイス |
CN106326285B (zh) * | 2015-06-30 | 2019-11-12 | 华为技术有限公司 | 一种存储数据的方法及装置 |
US9740566B2 (en) | 2015-07-31 | 2017-08-22 | Netapp, Inc. | Snapshot creation workflow |
US10606499B2 (en) * | 2015-09-11 | 2020-03-31 | Hitachi, Ltd. | Computer system, storage apparatus, and method of managing data |
US9665287B2 (en) * | 2015-09-18 | 2017-05-30 | Alibaba Group Holding Limited | Data deduplication using a solid state drive controller |
WO2017061022A1 (ja) * | 2015-10-09 | 2017-04-13 | 株式会社日立製作所 | データを重複排除するシステム |
US10255288B2 (en) * | 2016-01-12 | 2019-04-09 | International Business Machines Corporation | Distributed data deduplication in a grid of processors |
JP6406283B2 (ja) * | 2016-03-01 | 2018-10-17 | 日本電気株式会社 | ストレージ装置およびストレージ方法 |
US10929022B2 (en) | 2016-04-25 | 2021-02-23 | Netapp. Inc. | Space savings reporting for storage system supporting snapshot and clones |
US10642763B2 (en) | 2016-09-20 | 2020-05-05 | Netapp, Inc. | Quality of service policy sets |
JP6767825B2 (ja) * | 2016-09-20 | 2020-10-14 | ヤフー株式会社 | データ管理装置、データ管理方法、およびデータ管理プログラム |
KR102559518B1 (ko) | 2016-09-28 | 2023-07-26 | 에스케이하이닉스 주식회사 | 메모리 제어장치 및 방법 |
JP6841024B2 (ja) | 2016-12-09 | 2021-03-10 | 富士通株式会社 | データ処理装置,データ処理プログラムおよびデータ処理方法 |
JP7074454B2 (ja) * | 2017-10-30 | 2022-05-24 | キオクシア株式会社 | 計算機システムおよび制御方法 |
KR102536637B1 (ko) * | 2018-03-29 | 2023-05-26 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US12001355B1 (en) * | 2019-05-24 | 2024-06-04 | Pure Storage, Inc. | Chunked memory efficient storage data transfers |
CN114064621B (zh) * | 2021-10-28 | 2022-07-15 | 江苏未至科技股份有限公司 | 一种重复数据判断方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03282966A (ja) | 1990-03-30 | 1991-12-13 | Fujitsu Ltd | ハッシュエントリ領域管理方法 |
US7278131B2 (en) | 2003-03-03 | 2007-10-02 | Microsoft Corporation | Compact hardware identification for binding a software package to a computer system having tolerance for hardware changes |
JP5043820B2 (ja) | 2005-03-11 | 2012-10-10 | ロックソフト リミテッド | 低冗長記憶システムで索引を行う方法 |
US7870409B2 (en) * | 2007-09-26 | 2011-01-11 | Hitachi, Ltd. | Power efficient data storage with data de-duplication |
JP4962483B2 (ja) | 2008-12-19 | 2012-06-27 | 日本電気株式会社 | 情報処理装置 |
JP5216915B2 (ja) | 2009-02-25 | 2013-06-19 | 株式会社日立製作所 | ストレージ装置 |
JP5254141B2 (ja) * | 2009-07-14 | 2013-08-07 | 富士通株式会社 | アーカイブ装置、データ格納プログラムおよびデータ格納方法 |
US8396873B2 (en) * | 2010-03-10 | 2013-03-12 | Emc Corporation | Index searching using a bloom filter |
JP2012133551A (ja) * | 2010-12-21 | 2012-07-12 | Nec Corp | 書き込み制御システム及び書き込み制御方法 |
JP2013058133A (ja) * | 2011-09-09 | 2013-03-28 | Nec Corp | データ書き込み装置 |
-
2013
- 2013-03-29 CN CN201380000362.4A patent/CN104246722B/zh active Active
- 2013-03-29 WO PCT/JP2013/059530 patent/WO2014155668A1/ja active Application Filing
- 2013-03-29 JP JP2013517504A patent/JP5444506B1/ja active Active
- 2013-07-31 US US13/955,626 patent/US9152341B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016006050A1 (ja) * | 2014-07-09 | 2016-01-14 | 株式会社日立製作所 | ストレージシステム及び記憶制御方法 |
US9658774B2 (en) | 2014-07-09 | 2017-05-23 | Hitachi, Ltd. | Storage system and storage control method |
JP2017142683A (ja) * | 2016-02-10 | 2017-08-17 | 東芝メモリ株式会社 | ストレージコントローラ、ストレージ装置、データ処理方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
CN104246722B (zh) | 2017-02-22 |
WO2014155668A1 (ja) | 2014-10-02 |
US20140297980A1 (en) | 2014-10-02 |
JPWO2014155668A1 (ja) | 2017-02-16 |
US9152341B2 (en) | 2015-10-06 |
CN104246722A (zh) | 2014-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5444506B1 (ja) | データの重複をハッシュテーブルに基づいて排除するためのストレージシステム | |
US9063877B2 (en) | Storage system, storage controller, and method for managing mapping between local address and physical address | |
US10055420B1 (en) | Method to optimize random IOS of a storage device for multiple versions of backups using incremental metadata | |
JP6240071B2 (ja) | ストレージシステムにおけるマッピングテーブルを効果的に管理するコンピューターシステムおよびその方法 | |
AU2012294218B2 (en) | Logical sector mapping in a flash storage array | |
US10956071B2 (en) | Container key value store for data storage devices | |
JP6450598B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
US8281105B2 (en) | I/O conversion method and apparatus for storage system | |
WO2015114809A1 (ja) | 階層化ストレージシステム、ストレージコントローラ、及び階層間のデータ移動を代替する方法 | |
JP5976980B1 (ja) | 階層化ストレージシステム、階層化ストレージ装置を利用するコンピュータ、及びファイルへのアクセスのカウントを補正する方法 | |
US11061827B2 (en) | Metadata representation for enabling partial page duplication | |
US10592150B2 (en) | Storage apparatus | |
US9996426B1 (en) | Sparse segment trees for high metadata churn workloads | |
US20180307440A1 (en) | Storage control apparatus and storage control method | |
US10963177B2 (en) | Deduplication using fingerprint tries | |
WO2015162755A1 (ja) | データを圧縮して格納するストレージ装置 | |
JP5141234B2 (ja) | 階層記憶制御装置、階層記憶制御システム及びそれらに用いる階層記憶制御方法及びそのプログラム | |
WO2016038714A1 (ja) | ファイルシステム、データ重複排除方法、及びファイルシステムのためのプログラム | |
US20200159454A1 (en) | Large-scale storage system and data placement method in large-scale storage system | |
JP6419662B2 (ja) | ストレージシステム及びデータ重複検出方法 | |
US11138129B2 (en) | Globally optimized partial page deduplication of storage objects | |
WO2016194121A1 (ja) | ストレージシステム、計算機装置、及び、重複排除デバイス | |
JP2018185760A (ja) | データの重複を排除するためのストレージ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20131126 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131220 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5444506 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |