JP2014199574A - ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム - Google Patents

ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム Download PDF

Info

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
Application number
JP2013074643A
Other languages
English (en)
Other versions
JP6098301B2 (ja
Inventor
芳浩 土屋
Yoshihiro Tsuchiya
芳浩 土屋
渡辺 高志
Takashi Watanabe
高志 渡辺
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013074643A priority Critical patent/JP6098301B2/ja
Priority to PCT/JP2014/058353 priority patent/WO2014157244A1/ja
Publication of JP2014199574A publication Critical patent/JP2014199574A/ja
Priority to US14/861,153 priority patent/US10048866B2/en
Application granted granted Critical
Publication of JP6098301B2 publication Critical patent/JP6098301B2/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
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • G06F12/1018Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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/0673Single storage device
    • G06F3/0674Disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6032Way prediction in set-associative cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details 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

【課題】データ管理情報(MBF等)の記憶のために使用される,高速にアクセスできる記憶手段(第2記憶部)の記憶容量が少なくても良好に重複除去を行える技術を提供する。
【解決手段】ストレージ制御装置10は、ストレージ30に記憶されたデータを記憶領域別に管理する複数のMBF31を備え、一部のMBF31をRAM12上にキャッシュし、データの書込時には、RAM12上のMBF31のみに基づき重複の有無を判定する。また、ストレージ制御装置10は、各MBFの利用状況に基づき、MBFの利用頻度が高い方のハッシュログの内容が維持される形で、ストレージ30内に格納済みのデータの重複除去を行う。
【選択図】図2

Description

本発明は、ストレージ制御装置とストレージ制御方法とストレージ制御プログラムとに関する。
ストレージ(記憶装置)の記憶容量の有効活用を図る技術として、データ重複除去、重複排除等と呼ばれている,重複したデータをストレージ内に記憶しない技術が知られている。そして、データ重複除去を行う装置では、データが重複しているか否かの判定に、通常、ブルームフィルタや多段ブルームフィルタが用いられている。
多段ブルームフィルタは、ブルームフィルタを多段化したデータ構造である(例えば、特許文献1参照)。この多段ブルームフィルタは、データが記憶されている記憶領域(アドレス範囲)の検索機能を有している。従って、多段ブルームフィルタを用いれば、データの重複除去が高速に行えるのであるが、ストレージサイズが大きくなるにつれ、データの管理に使用する多段ブルームフィルタのサイズも大きくなる。そのため、多段ブルームフィルタを用いる場合には、比較的に大容量のメモリを装置に搭載することが行われている。
尚、本書で開示する技術に関連する文献としては、以下の特許文献2、3、非特許文献1も存在している。
特開2011−186954号公報 特開2012−094220号公報 国際公開第2010/100733号
"2Q: a low overhead high performance buffer replacement algorithm" T. Johnson and Dennis Shasha, Very Large Database Systems Conference1994, September, 1994.
開示の技術の課題は、多段ブルームフィルタの記憶のために使用される,高速にアクセスできる記憶手段(第2記憶部)の記憶容量が少なくても、良好に重複除去を行える技術を提供することにある。
開示の技術の一態様のストレージ制御装置は、
ストレージを、複数のデータ領域に分けられた複数のデータ記憶領域を備えた装置として取り扱って、前記ストレージ内の各データのストレージ内アドレスとハッシュ値との対応関係を複数のハッシュログによりデータ記憶領域別に管理すると共に、前記ストレージ内の各データの論理アドレス及びハッシュ値と、各データが格納されているデータ領域内のデータが登録されており且つ当該データ領域内の各データがいずれのデータ記憶領域に格納されているかを特定するために使用できるデータ管理情報の識別情報との対応関係を
ブロックマップにより管理する制御部と、
前記複数のハッシュログと、各データ領域に関するデータ管理情報とを記憶する第1記憶部と、
前記第1記憶部よりも高速にデータを読み書きできる第2記憶部と、
を備え、
前記制御部は、
読込対象データの前記ストレージからの読み込み時に、前記ブロックマップ内の当該読込対象データの論理アドレスに対応づけられた識別情報にて識別されるデータ管理情報が前記第2記憶部上に記憶されていなかった場合には、前記第1記憶部に記憶されている当該データ管理情報を前記第2記憶部上のいずれかのデータ管理情報の代わりに前記第2記憶部上に読み出し、読み出したデータ管理情報に基づき、前記読込対象データが格納されているデータ記憶領域に関する前記ハッシュログを特定し、特定したハッシュログ上の情報を用いて前記読込対象データを前記ストレージから読み込み、
格納対象データの書き込み時に前記格納対象データが登録されているデータ管理情報が前記第2記憶部に記憶されていなかった場合には、他のデータ管理情報に前記格納対象データが登録されているか否かを判定することなく、前記格納対象データを前記ストレージ内に格納し、
所定の条件が満たされた場合に、各データ管理情報の利用状況を基にした優先度にしたがい、少なくとも1つのデータ管理情報を選択し、選択した少なくとも1つのデータ管理情報が関連づけられているデータ領域上のデータについての,他のデータ領域上の重複データを前記ストレージから除去する。
上記技術によれば、データ管理情報(多段ブルームフィルタ等)の記憶のために使用される,高速にアクセスできる記憶手段(第2記憶部)の記憶容量が少なくても、良好に重複除去を行える。
図1は、実施形態に係るストレージ制御装置の構成及び使用形態の説明図である。 図2は、ストレージ制御装置の機能ブロック図である。 図3は、MBFの説明図である。 図4は、ハッシュテーブルの説明図である。 図5は、ブロックマップの説明図である。 図6Aは、格納処理の流れ図(その1)である。 図6Bは、格納処理の流れ図(その2)である。 図7は、読込処理の流れ図である。 図8Aは、ヒット頻度管理情報の説明図である。 図8Bは、ヒット頻度管理情報の説明図である。 図8Cは、ヒット頻度管理情報の説明図である。 図9は、重複除去処理の流れ図である。
以下、開示の技術の一実施形態に係るストレージ制御装置について、図面を参照して詳細に説明する。
図1に、本実施形態に係るストレージ制御装置10の構成及び使用形態を示す。
この図1に示してあるように、ストレージ制御装置10は、コンピュータ50のHDD(Hard Disk Drive)13に、OS(Operating System)、ストレージ制御プログラム1
8等をインストールした装置である。換言すれば、CPU(Central Processing Unit)
11が、ストレージ制御プログラム18(及びOS)をRAM(Random Access Memory)12上にロードして実行しているコンピュータ50が、ストレージ制御装置10である。
ストレージ制御プログラム18がインストールされるコンピュータ50は、通常のコンピュータである。そのため、各構成要素の詳細説明は省略するが、ストレージ制御装置10(コンピュータ50)は、IPL(Initial Program Loader)等のファームウェアを記憶したフラッシュROM(Read Only Memory;図1では、“ROM”)を備える。また、ストレージ制御装置10は、各構成要素間を接続するチップセット(つまり、1つの集積回路又はバスで接続された複数の集積回路)を備える。
さらに、ストレージ制御装置10は、ストレージ30との間で通信を行うための通信インタフェース(“I/F”)、及び、少なくとも1台のユーザ端末100との間で通信を行うための通信インタフェース(“I/F”)を備える。
ストレージ制御装置10に接続されるストレージ30は、データを格納するための複数の物理ブロック(単位記憶領域)を有し、データをリード/ライトする物理ブロックを、物理ブロックアドレス(PBA:Phsycal Block Address)で指定できる装置である。
ストレージ制御装置10には、ストレージ30として、HDDや、SSD(Solid State Drive)や、HDD及び/又はSSDを複数台組み合わせた装置が接続される。
以下、ストレージ制御装置10の構成及び動作をさらに具体的に説明する。
尚、以下の説明において、データ(格納対象データ等)とは、ストレージ30の1つの物理ブロックに記憶できるサイズの情報のことである。また、データのLBA(Logical Block Address;論理ブロックアドレス)とは、データの格納先/読込先アドレスとして
、ユーザ端末100(ユーザ端末100内のストレージ制御装置10用のドライバ)が使用するアドレスのことである。
格納対象データとは、ストレージ制御装置10がストレージ30内に格納しようとしているデータのことである。また、格納対象データの検証用ハッシュ値とは、格納対象データから算出される,格納対象データと同一内容のデータがストレージ30内に存在しているか否かの最終判定に使用されるハッシュ値のことである。この検証用ハッシュ値としては、通常、MD5(Message-Digest 5)、SHA(Secure Hash Algorithm)−1、SH
A−256等のアルゴリズムにより算出されるセキュアハッシュ値が使用される。
図2に、ストレージ制御装置10の機能ブロック図を示す。
この図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、読込処理部42及び重畳除去処理部43は、ストレージ制御プログラム18(及びOS)を、CPU11(制御部)が実行することにより実現されるユニット
(機能ブロック)である。処理部41〜43の詳細については後述するが、各処理部は、ストレージ30を、全記憶領域(又は大部分の記憶領域)が同一サイズの複数の記憶領域(以下、データ記憶領域と表記する)に分割されている装置として取り扱う。また、各処理部は、ストレージ30を、当該複数のデータ記憶領域が複数のグループ(データ領域)に分けられている装置として取り扱う。
HDD13内のMBFテーブル22は、複数の多段ブルームフィルタ(MBF:Multi-layer Blume Filter)31を、各MBF31の識別情報であるMBF−IDに対応づけて記憶できるテーブルである。MBFテーブル22の具体的な更新手順については後述するが、このMBFテーブル22は、ストレージ制御装置10の運用開始時には、MBF31を1個も記憶しておらず、ストレージ制御装置10の運用開始後に、MBF31が追加されるテーブルとなっている。
RAM12上のMBFキャッシュテーブル24は、m(mは、通常、2以上)個のMBF31を、各MBF31のMBF−IDに対応づけて記憶できるテーブルである。MBFキャッシュテーブル24には、MBFキャッシュテーブル24から掃き出すMBF31を、LRU(Least Recently Used)アルゴリズムにより選択できるようにするための情報も
記憶される。
尚、このMBFキャッシュテーブル24も、MBFテーブル22と同様に、ストレージ制御装置10の運用開始時には、MBF31を1個も記憶していないテーブルである。
RAM12上の書込対象MBF31wは、或る格納対象データがストレージ30内に書き込まれた際に、当該格納対象データの検証用ハッシュ値が登録されるMBF31である。
ここで、書込対象MBF31wと、MBFテーブル22上のMBF31と、MBFキャッシュテーブル24上のMBF31との間の関係を説明しておくことにする。
具体的な処理手順については後述するが、書込対象MBF31wに既定数の検証用ハッシュ値が登録されると、内容及びMBF−IDが書込対象MBF31wと同じMBF31(以下、新MBF31と表記する)がMBFキャッシュテーブル24に追加される。さらに、書込対象MBF31wを、初期化し、書込対象MBF31wのMBF−IDを新IDに変更する処理が行われる。
また、新MBF31(書込対象MBF31w)のMBFキャッシュテーブル24の追加時に、MBFキャッシュテーブル24に既にm個のMBF31が記憶されていた場合には、最も過去に利用されたMBF31がMBFキャッシュテーブル24から掃き出される。尚、MBFキャッシュテーブル24からのMBF31の掃き出しは、MBFテーブル22からのMBF31の読み込み時にも行われる。
MBFキャッシュテーブル24からのMBF31の掃き出し時には、掃き出されるMBF31がMBFテーブル22に記憶されているものであるか否が判断される。そして、MBFキャッシュテーブル24から掃き出されるMBF31がMBFテーブル22に未だ記憶されていないものであった場合には、当該MBF31がMBFテーブル22に追加される。
次に、MBF31の構成を、MBF31の利用法と共に説明する。
MBF31は、通常のBF(ブルームフィルタ)と同様に、それを用いることにより、
格納対象データと同一内容のデータがストレージ30に格納されているか否かを判定できるデータ構造である。ただし、MBF31は、所望のデータが書き込まれているデータ記憶領域の検索も行えるものとなっている。
具体的には、M(≧2)段のMBF31は、通常、i(i=1〜M)段目のBFとして、Xi-1個のBFを含む。また、通常、M段のMBF31のj(j=2〜M)段目のBF
のサイズ(ビット数)は、1段目のBFのサイズの1/Xj-1とされる。尚、Xは、2以
上の整数値である。以下、Xのことを、分割数とも表記する。
M段のMBF31の1段目のBFは、2段目のX個のBFと対応づけられる。また、M段(M≧3)のMBF31のj(j=2〜M−1)段目の各BFは、j+1段目の,互いに異なるX個のBFと対応付けられる。
要するに、段数Mが3であり分割数Xが4であるMBF31は、通常、図3に模式的に示した構成を有している。尚、この図3は、各BFの横方向の長さが各BFのサイズ(ビット数)を示し、BF間の上下関係がBF間の対応関係を示しているものである。
以上、説明した対応関係はBF間の対応関係であったが、M(≧2)段のMBF31のM段目のXi-1個のBF(以下、最下段BFとも表記する)には、ストレージ30の,互
いに異なるデータ記憶領域が対応付けられる。
そして、MBF31は、或る最下段BFに対応づけられているデータ記憶領域内に格納対象データを書き込んだ際に、当該最下段BFと、当該最下段BFに直接的/間接的に対応づけられている各BFとに、格納対象データの検証用ハッシュ値を登録して使用するものとなっている。尚、或る最下段BFに直接的に対応づけられているBFとは、当該最下段BFに対応づけられている,1段上のBFのことである。また、或る最下段BFに間接的に対応づけられているBFとは、当該最下段BFに幾つかのBFを介して対応づけられている,2段以上の上のBFのことである。
従って、使用しているMBF31が図3に示したものである場合、例えば、以下の手順で、或るデータ(以下、処理対象データと表記する)と同内容のデータが記憶されているデータ記憶領域を検索することができる。
(1)処理対象データの検証用ハッシュ値を算出。
(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が特定できた場合には、処理対象データと同内容のデータが記憶されているデータ記憶領域を検索結果として処理を終了。
尚、上記したように、BFは、誤判定(擬陽性)があり得るものである。従って、上記手順により検索されたデータ記憶領域内に、処理対象データと同内容のデータが記憶されていない場合もある。
図2に戻って、説明を続ける。
HDD13内のハッシュログテーブル23は、基本的には、ストレージ30内に実際に格納されているデータ毎に、そのデータが格納されている物理ブロックのPBAと、そのデータの検証用ハッシュ値との組み合わせを記憶しておくためのテーブルである。ただし、ハッシュログテーブル23には、データ記憶領域別に、データが格納されている物理ブロックのPBAとデータの検証用ハッシュ値との組み合わせが記憶される。
具体的には、図4に模式的に示してあるように、ハッシュログテーブル23は、ハッシュ値フィールドとPBAフィールドとを備えたハッシュログ25を、最下段BF指定情報別に記憶できる構成を有している。
最下段BF指定情報は、例えば、或るMBF31のMBF−IDと、当該MBF31の或る最下段BFの,当該MBF31内における識別情報(以下、BF−IDと表記する)との組み合わせである。この最下段BF指定情報は、いずれかのMBF31の要素としてストレージ制御装置10内に記憶されている1個の最下段BFを特定でき、且つ、当該最下段BFを含むMBFのMBF−IDが分かる情報でありさえすれば良い。
既に説明したように、MBF31の各最下段BFは、ストレージ30の,特定の(独自の)データ記憶領域と対応づけられる。従って、ハッシュログテーブル23内の各ハッシュログ25は、自身が対応づけられている最下段BF指定情報を介して、ストレージ30の,特定のデータ記憶領域に対応づけられていることになる。
そして、ハッシュログテーブル23内の或るデータ記憶領域に対応づけられているハッシュログ25は、当該データ記憶領域内に書き込まれたデータに関するレコードが記憶されるテーブルとなっている。ここで、或るデータ領域内に書き込まれたデータに関するレコードとは、当該データの検証用ハッシュ値と当該データが書き込まれている論理ブロックのPBAが設定されたレコードのことである。
以上、説明したように、ハッシュログテーブル23には、各MBF31の最下段BFの数をLと表記すると MBF31毎に、“L組のハッシュログ及び最下段BF指定情報”(以下、MBF別ハッシュログ情報と表記する)が記憶される。ただし、ストレージ制御装置10の運用開始時におけるハッシュログテーブル23は、MBFテーブルと同様に、MBF別ハッシュログ情報を1個も保持していない。そして、ハッシュログテーブル23は、MBFテーブルの更新手順と同様の手順で更新されるテーブルとなっている。
すなわち、ストレージ制御装置10のRAM12(図2)上には、m+1個のMBF別ハッシュログ情報を記憶できるハッシュログキャッシュテーブル28が用意されている。ストレージ制御装置10の運用開始時、このハッシュログキャッシュテーブル28は、書込対象MBF31wに関する“各ハッシュログ25にレコードが1つも記憶されていない
MBF別ハッシュログ情報”(以下、MBF別ハッシュログ情報の初期値と表記する)のみを記憶した状態にある。
また、新MBF31(内容及びMBF−IDが書込対象MBF31wと同じMBF31)の追加により、MBFキャッシュテーブル24から或るMBF31が掃き出される際には、当該MBF31に関するMBF別ハッシュログ情報がハッシュログキャッシュテーブル28から掃き出される。MBFテーブルからのMBF31の読込により、MBFキャッシュテーブル24から或るMBF31が掃き出される際にも、当該MBF31に関するMBF別ハッシュログ情報がハッシュログキャッシュテーブル28から掃き出される。
そして、ハッシュログキャッシュテーブル28から掃き出されるMBF別ハッシュログ情報がハッシュログテーブル22に未だ記憶されていないものであった場合には、当該MBF別ハッシュログ情報がハッシュログテーブル22に追加される。
また、新MBF31のMBFテーブルへの追加時には、ハッシュログキャッシュテーブル28の、それまでMBF別ハッシュログ情報が記憶されていなかった部分又は掃き出ししたMBF別ハッシュログ情報が記憶されていた部分に、新MBF31に関するMBF別ハッシュログ情報の初期値が追加される。
図5に、RAM12上のブロックマップ21の構成を示す。
この図5に示してあるように、ブロックマップ21は、LBAフィールド、MBF−IDフィールド及びハッシュ値フィールドを有する。
このブロックマップ21は、格納対象データがストレージ30内に格納される度に、当該格納対象データのLBA及び検証用ハッシュ値がそれぞれLBAフィールド及びハッシュ値フィールドに設定されたレコードが追加されるテーブルである。或る格納対象データに関するレコードがブロックマップ21に追加される際、当該レコードのMBF−IDフィールドには、当該格納対象データの検証用ハッシュ値が登録されているMBF31のMBF−IDが設定される。
説明の便宜上、ヒット頻度管理情報20(図2)の詳細は後述することにする。
以下、格納処理部41、読込処理部42及び重複除去処理部43の機能を、説明する。
まず、格納処理部41の機能を説明する。
格納処理部41は、通常は、ストレージ30に対するライト要求が、ユーザ端末100用の通信インタフェース(“I/F”)によって受信されるのを待機(監視)している。
ユーザ端末100から或る情報のライト要求が送信されてきた場合、格納処理部41は、当該情報(以下、格納対象情報と表記する)が、ストレージ30の1個の物理ブロックに記憶できるサイズの情報であるか否かを判断する。そして、格納処理部41は、格納対象情報が、1個の物理ブロックに記憶できるサイズの情報であった場合には、格納対象情報自体を格納対象データとして取り扱って、図6A及び図6Bに示した手順の格納処理を実行する。
一方、格納対象情報が、1個の物理ブロックに記憶できるサイズの情報でなかった場合、格納処理部41は、格納対象情報を、物理ブロックに記憶可能なサイズの複数のデータに分割する。そして、格納処理部41は、分割により得られたデータ毎に、そのデータを格納対象データとした格納処理(図6A及び図6B)を実行する。
図6Aに示してあるように、格納処理を開始した格納処理部41は、まず、格納対象データの検証用ハッシュ値を算出する(ステップS101)。
次いで、格納処理部41は、算出した検証用ハッシュ値(以下、算出ハッシュ値と表記する)が登録されている最下段BFを、MBFキャッシュテーブル24上の各MBF31及び書込対象MBF31wの中から検索する(ステップS102)。すなわち、格納処理部41は、上記した(2)〜(5a)の処理を、MBFキャッシュテーブル24上の各MBF31及び書込対象MBF31wに対して行う。
既に説明したように、ストレージ制御装置10の運用開始時、MBFキャッシュテーブル24上には、1個もMBF31が記憶されていない。従って、ステップS102の検索は、ストレージ制御装置10の運用開始後、しばらくの間は、書込対象BF31wのみに対して行われる。
算出ハッシュ値が登録されている最下段BFを検索できなかった場合(ステップS103;YES)、格納処理部41は、書込対象MBF31wのデータ登録数が既定数未満であるか否かを判断する(図6B;ステップS111)。
そして、格納処理部41は、書込対象MBF31wのデータ登録数が既定数未満であった場合(ステップS111;YES)には、格納対象データをストレージ30内に書き込む(ステップS116)。このステップS116の処理時、格納処理部41は、格納対象データを書き込む物理ブロックのPBA(以下、格納先PBAと表記する)を、書込対象MBF31wの各最下段BFに対応付けられているデータ記憶領域内の空き物理ブロックのPBAの中から選択する。尚、空き物理ブロックとは、データが格納されていない物理ブロックのことである。また、格納先PBAとしては、通常、前回の格納先PBAとしたアドレスの次アドレスが選択される。
格納対象データをストレージ30内に書き込んだ格納処理部41は、算出ハッシュ値を書込対象MBF31wに登録する(ステップS117)。すなわち、格納処理部41は、格納対象データを格納したデータ記憶領域に対応づけられている,書込対象MBF31wの最下段BMと、当該最下段BFに直接的/間接的に対応づけられている,書込対象MBF31wの各BFとに、算出ハッシュ値を登録する。また、このステップS117にて、格納処理部41は、自身が管理している,RAM12の書込対象MBF31wのデータ登録数に、“1”を加算する処理も行う。
ステップS117の処理を終えた格納処理部41は、算出ハッシュ値を登録した最下段BMに対応付けられている,ハッシュログキャッシュテーブル28上のハッシュログ25に、格納先PBAと算出ハッシュ値とを設定したレコードを追加する(ステップS118)。より具体的には、格納処理部41は、算出ハッシュ値を登録した最下段BMを示す最下段BM指定情報に対応付けられているハッシュログキャッシュテーブル28上のハッシュログ25に、格納先PBAと算出ハッシュ値とを設定したレコードを追加する。
そして、格納処理部41は、ブロックマップ21に、格納先LBAと、書込対象BF31wのMBF−IDと、算出ハッシュ値とを設定したレコードを追加(ステップS119)してから、この書込処理を終了する。尚、書込先LBAとは、受信したライト要求に含まれるLBA、又は、当該LBAと、格納対象データの,格納対象情報(ライト要求で書き込みが指示されている情報)内での位置とから算出されるLBAのことである。
ストレージ制御装置10の運用開始後、ステップS117の処理が“既定数”と同回数実行されると、書込対象BF31wのデータ登録数が“既定数”となる。そして、書込対
象BF31wのデータ登録数が“既定数”となっている状況下、ステップS102(又はS104)の検索に失敗した場合、格納処理部41は、書込対象MBF31wのデータ登録数が既定数未満ではないと判断する(ステップS111;NO)。
従って、格納処理部41は、書込対象MBF31wと、内容、MBF−IDが同じMBF31を、MBFキャッシュテーブル24に記憶(追加)する(ステップS113)。換言すれば、格納処理部41はデータ登録数が“既定数”となった書込対象MBF31wのコピー(以下、新MBF31と表記する)を、MBFキャッシュテーブル24に記憶(追加)する(ステップS113)。
尚、このステップS113では、MBFキャッシュテーブル24上のMBF31をMBFテーブル22に追加する処理などが行われる場合がある。具体的には、ステップS113の処理時、格納処理部41は、まず、m個のMBF31がMBFキャッシュテーブル上に記憶されているか否かを判断する。
m個のMBF31がMBFキャッシュテーブル上に記憶されていなかった場合、格納処理部41は、新MBF31を、MBFキャッシュテーブルに追加してから、ステップS113の処理を終了する。
これに対して、m個のMBF31がMBFキャッシュテーブルに記憶されていた場合、格納処理部41は、MBFキャッシュテーブル上の、最も過去に利用されたMBF31を注目MBF31として特定する。次いで、格納処理部41は、注目MBF31のMBF−IDが、登録済MBF−IDとしてRAM12上に記憶されているか否かを判断する。
注目MBF31のMBF−IDが登録済MBF−IDとしてRAM12上に記憶されていなかった場合、格納処理部41は、以下の3処理を行う。
(a)注目MBF31をそのMBF−IDと共にMBFテーブルに追加する処理
(b)注目MBF31に関する,ハッシュログキャッシュテーブル28上のMBF別ハッシュログ情報をハッシュログテーブルに追加する処理
(c)MBFテーブルに追加したMBF31のMBF−IDを、登録済MBF−IDとしてRAM12上に記憶する処理
これらの処理を終えた格納処理部41は、MBFキャッシュテーブル上の,注目MBF31が記憶されていた部分に新MBF31を記憶してから、ステップS113の処理を終了する。
一方、注目MBF31のMBF−IDが登録済MBF−IDとしてRAM12上に記憶されていた場合、格納処理部41は、上記3処理を行うことなく、MBFキャッシュテーブル上の,注目MBF31が記憶されていた部分に新MBF31を記憶する。そして、格納処理部41は、ステップS113の処理を終了する。
ステップS113の処理を終えた格納処理部41は、書込対象MBFを初期化し、書込対象MBFのMBF−IDを新IDに変更する処理(ステップS114)を行う。ここで、新IDとは、既存のいずれのMBF−IDとも異なるMBF−IDのことである。新IDは、例えば、書込対象MBFのMBF−IDに“1”を加算することにより生成される。
次いで、格納処理部41は、新MBF31に関するMBF別ハッシュログ情報の初期値をハッシュログキャッシュテーブルに記憶する(ステップS115)。このステップS115では、ハッシュログキャッシュテーブルの,注目MBF31に関するMBF別ハッシ
ュログ情報が記憶されていた部分に、新MBF31に関するMBF別ハッシュログ情報の初期値が記憶される。
そして、格納処理部41は、既に説明したステップS116〜S119の処理を実行してから、書込処理を終了する。
以下、書込処理の残りのステップの処理の内容を説明する。
算出ハッシュ値が登録されている最下段BFを検索できた場合(図6A、ステップS103;YES)、格納処理部41は、当該最下段BFに対応づけられている,ハッシュログキャッシュテーブル28上のハッシュログから、格納対象データの重複データに関するレコードを検索する(ステップS104)。ここで、格納対象データの重複データに関するレコードとは、ハッシュ値フィールドの値が算出ハッシュ値と一致しているレコードのことである。
格納対象データの重複データに関するレコードを検索できなかった場合(ステップS105;NO)、格納処理部41は、ステップS102の検索に失敗した場合と同様に、ステップS111(図6B)以降の処理を実行して書込処理を終了する。。
一方、格納対象データの重複データに関するレコードを検索できた場合(ステップS105;YES)、格納処理部41は、ヒット頻度管理処理(ステップS106;詳細は後述)を行う。
ヒット頻度管理処理を終えた格納処理部41は、ブロックマップ21に、格納先LBAと、検索した最下段BFを含むMBF31のMBF−IDと、算出ハッシュ値とを設定したレコードを追加する(ステップS107)。そして、格納処理部41は、この書込処理を終了する。
次に、読込処理部42(図2)の機能を説明する。
読込処理部42は、ストレージ30からのデータの読み込みを行うユニット(機能ブロック)である。
図7に、読込処理部42が、或るデータをストレージ30から読み込む際に行う読込処理の流れ図を示す。尚、この流れ図及び以下の説明において、読込対象データとは、読込処理部42がストレージ30から読み込もうとしているデータのことである。また、読込対象LBAとは、読込対象データのLBAのことである。読込処理部42は、ストレージ30に対するリード要求が、ユーザ端末100から送信されてきた場合、この読込処理を何回か実行することにより要求された情報を用意して、ユーザ端末100に返送する。
図7に示してあるように、読込処理を開始した読込処理部42は、まず、読込対象LBAと対応づけられているMBF−ID及びハッシュ値をブロックマップ21から検索する(ステップS201)。
読込対象LBAと対応づけられているMBF−ID等を検索できなかった場合(ステップS202;NO)、読込処理部42は、ブロックサイズのALL0データを読込対象LBAのデータの読込結果とする(ステップS208)。尚、ブロックサイズのALL0データとは、全ビットが“0”であり、サイズがブロックサイズと一致するデータのことである。
そして、ステップS208の処理を終えた読込処理部42は、この読込処理を終了する。
要するに、ブロックマップ21には、過去にストレージ30内に格納された全てのデータの格納先LBAが記憶されている(図6A及び図6B参照)。従って、読込対象LBAと対応づけられているMBF−ID等を検索できなかった場合(ステップS202;NO)、読込対象データ(読込対象LBAで識別されるデータ)が存在していないことになる。そのため、ブロックサイズのALL0データが、読込対象LBAのデータの読込結果とされる。
一方、読込対象LBAと対応づけられているMBF−ID等が検索できた場合(ステップS202;YES)、読込処理部42は、対応MBF31がRAM12上に存在するか否かを判断する(ステップS203)。ここで、対応MBF31とは、ステップS201の処理で検索されたMBF−IDが割り当てられているMBF31のことである。尚、ステップS203の処理は、MBFキャッシュテーブル上の全MBF31の中に、対応MBF31が存在するか否かを判断する処理ではなく、MBFキャッシュテーブル上の全MBF31と書込対象MBF31wとの中に、対応MBF31が存在しているか否かを判断する処理である。
対応MBF31がRAM12上に存在していなかった場合(ステップS203;NO)、読込処理部42は、ステップS204にて、以下の処理を行う。
読込処理部42は、まず、MBFキャッシュテーブル上の、最も過去に利用されたMBF31を注目MBF31として特定する。次いで、格納処理部41は、注目MBF31のMBF−IDが、登録済MBF−IDとしてRAM12上に記憶されているか否かを判断する。
注目MBF31のMBF−IDが登録済MBF−IDとしてRAM12上に記憶されていなかった場合、格納処理部41は、上記したものと同じ以下の3処理を行う。
(a)注目MBF31をそのMBF−IDと共にMBFテーブルに追加する処理
(b)注目MBF31に関する,ハッシュログキャッシュテーブル28上のMBF別ハッシュログ情報をハッシュログテーブルに追加する処理
(c)MBFテーブルに追加したMBF31のMBF−IDを、登録済MBF−IDとしてRAM12に記憶する処理
これらの処理を終えた格納処理部41は、MBFテーブル22から対応MBF31を読み込んで、注目MBF31の代わりのMBF31としてMBFキャッシュテーブル上に記憶する。また、格納処理部41は、ハッシュログテーブル22から対応MBF31に関するMBF別ハッシュログ情報を読み込んで、注目MBF31に関するMBF別ハッシュログ情報の代わりの情報としてハッシュログキャッシュテーブルに記憶する。
そして、格納処理部41は、ステップS204の処理を終了する。
要するに、読込処理部42は、格納処理部41が、格納処理のステップS113、S115(図6B)にて行う処理とほぼ同内容の処理を、ステップS204にて行う。尚、ステップS204にて、MBFキャッシュテーブル上のMBF31の数に関する判断が行われていないのは、ステップS204が、MBFキャッシュテーブル上のMBF31の数が3となっていないと実行されないステップであるためである。
ステップS204の処理を終えた読込処理部42は、ステップS205以降の処理を開
始する。
また、対応MBF31がRAM12上に存在していた場合(ステップS203)、読込処理部42は、ステップS210にてヒット頻度管理処理(詳細は後述)を行ってから、ステップS205以降の処理を開始する。
ステップS205にて、読込処理部42は、ステップS201の処理で検索された検証用ハッシュ値(以下、処理対象ハッシュ値と表記する)が登録されている最下段BFを対応MBF31から検索する。次いで、読込処理部42は、検索した最下段BFに対応づけられている,ハッシュログキャッシュログテーブル28上のハッシュログから処理対象ハッシュ値に対応づけられているPBAを検索する(ステップS206)。その後、読込処理部42は、検索したPBAが示している物理ブロックのデータを、読込対象データとしてストレージ30から読み込む(ステップS207)。そして、読込処理部42は、この読込処理を終了する
以下、重複除去処理部43、ヒット頻度管理処理及びヒット頻度管理情報20について、説明する。
重複除去処理部43は、ストレージ30内に既に格納されているデータに対して重複除去を行うユニット(機能ブロック)である。
すなわち、ストレージ制御装置10は、上記したように、格納対象データのストレージ30への格納時(図6A、6B参照)、RAM12上のMBF31及びMBF別ハッシュログ情報だけから、格納対象データの重複データの有無を判断する。従って、ストレージ制御装置10を用いておけば、『HDD13内のMBF31もRAM12上に読み出して重複データの有無を判断する装置』や『ハッシュログテーブル22がRAM12上に存在する装置』を用いた場合よりも、格納対象データをストレージ30内に高速に格納することが出来る。また、ストレージ制御装置10は、『ハッシュログテーブル22及びMBFテーブル23がRAM12上に存在する装置』よりもRAM12の記憶容量が少なくて済む装置となっていることにもなる。
ただし、ストレージ制御装置10は、RAM12上のMBF31及びMBF別ハッシュログ情報だけから重複データの有無を判断する装置であるが故に、重複データが実際には存在している格納対象データをストレージ30に書き込む場合がある装置ともなっている。
そして、同じデータがストレージ30内に存在したのでは、ストレージ30の記憶容量が無駄に消費されることになる。そのため、ストレージ30内に既に格納されているデータに対して重複除去を行うことが望ましいのであるが、重複除去のやり方によっては、リード要求に対する応答速度が遅くなってしまう。
具体的には、例えば、ファイルαの書き込みにより、データA〜Dの検証用ハッシュ値がMBF別ハッシュログ情報#1に記憶され、その後、データA〜Dと同内容のデータの検証用ハッシュ値が、それぞれ、MBF別ハッシュログ情報#2〜#5に記憶された場合を考える。尚、説明の便宜上、m=2であるとする。
この場合、様々な形でデータの重複がなくなるようにすることができる。ただし、MBF別ハッシュログ情報#1及びブロックマップ21を更新することによってデータの重複をなくした場合、MBF別ハッシュログ情報#1のみの参照で読み出せていたファイルαが、MBF別ハッシュログ情報#2〜#5を参照しなければ読み出せなくなってしまう。
そして、ストレージ制御装置10は、データの読込に必要とされるMBF及びMBF別ハッシュログ情報がRAM12上になかった場合(図7参照)、HDDからそれらの情報をロードする装置である。従って、MBF別ハッシュログ情報#1及びブロックマップ21の更新によりデータの重複をなくした場合、それまで、HDDからの情報の最大ロード回数が1回であったファイルαの読み出し時に、HDDから最少でも、2回、情報をロードしなければならなくなる。
このように、重複除去のやり方によっては、リード要求に対する応答速度が遅くなってしまう。
リード要求に対する応答速度が遅くならない形での重複除去を可能とするために想到した処理が、以下で説明するヒット頻度管理処理及び重複除去処理である。
まず、ヒット頻度管理処理により参照・更新される情報であるヒット頻度管理情報20の概要を説明する。
ヒット頻度管理情報20は、第1キュー情報〜第N+1キュー情報を含む。ここで、第i(i=1〜N+1)キュー情報とは、『MBF−IDを複数個保持でき、任意位置のMBF−IDの取り出しが可能なFIFO(First In, First Out)キュー』である第iキ
ューを表す情報のことである。第iキュー情報には、第iキュー内に保持されている複数のMBF−IDや、それらのMBF−IDの第iキュー内での位置関係を示す情報が含まれる。
次に、ヒット頻度管理処理の内容を説明する。尚、格納処理部41又は読込処理部42として機能しているCPU11が実際に行うヒット頻度管理処理は、保持しているMBF−IDの組み合わせや順番がそれまでとは異なるキューを表すものとなるように、幾つかのキュー情報の内容を変更する処理である。ただし、説明の便宜上、以下では、図8Aに模式的に示したように、上記仕様のハードウェアキューである第1〜第N+1キュー401〜40N+1が存在しているものとして、ヒット頻度管理処理の内容を説明することにする。
ヒット頻度管理処理は、その実行前に検索/特定されたMBF31のMBF−IDを用いて、ヒット頻度管理情報20を更新する処理である。尚、ヒット頻度管理処理の実行前に検索/特定されたMBF31のMBF−ID(以下、処理対象IDと表記する)とは、書込処理(図6A)では、ステップS102の処理で検索されたMBF31のMBF−IDのことである。また、処理対象IDとは、読込処理(図7)では、ステップS201の処理で検索された対応MBF31のMBF−IDのことである。
既に説明した書込処理及び読込処理の処理手順から明らかなように、ヒット頻度管理処理は、RAM12上のMBF31がそのまま使用できる場合、すなわち、キャッシュヒットした場合、に実行される処理となっている。従って、処理対象IDは、キャッシュヒットしたMBF31のMBF−IDとなっていると言うことが出来る。
ヒット頻度管理処理を開始したCPU11は、まず、処理対象IDを第1キュー40への入力データとして取り扱って、入力データ(処理対象ID)と同じデータが第1キュー401内に存在しているか否かを判断する。
そして、CPU11は、入力データと同じデータが第1キュー401内に存在していな
かった場合には、図8Bに模式的に示したように、入力データを第1キュー401に登録
(追加)してから、ヒット頻度管理処理を終了する。
一方、入力データと同じデータが第1キュー401内に存在していた場合、CPU11
は、当該データを第1キュー401から取り出す。そして、CPU11は、図8Cに模式
的に示してあるように、取り出したデータ(処理対象IDと同じデータ)を第2キュー402への入力データとして取り扱って、第2キュー402に対して、第1キュー401に対
する処理と同内容の処理を行う。
すなわち、CPU11は、入力データと同じデータが第2キュー402内に存在してい
なかった場合には、図8Cに模式的に示してあるように、入力データを第1キュー402
に登録(追加)してから、ヒット頻度管理処理を終了する。一方、入力データと同じデータが第2キュー402内に存在していた場合、CPU11は、当該データを第2キュー4
2から取り出す。そして、CPU11は、取り出したデータを第3キュー(図示略)へ
の入力データとして取り扱って、第3キューに対して、第1キュー401(及び第2キュ
ー402)に対する処理と同内容の処理を行う。
第N−1キュー(図示略)から入力データと同じデータが取り出せた場合にCPU11が第Nキュー40Nに対して行う処理も、第1キュー401に対する処理と同内容の処理である。ただし、第Nキュー40Nから入力データと同じデータが取り出せた場合にCPU
11が第N+1キュー40Nに対して行う処理は、第1キュー401に対する処理とは若干異なる。
具体的には、第Nキュー40Nから入力データと同じデータが取り出せた場合、CPU
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は、ヒット頻度管理処理を終了する。
次に、重複除去処理部43の機能を説明する。
重複除去処理部43は、ヒット情報管理情報20を参照することにより第N+1キュー40N+1の状況を把握する処理を、予め定められているスケジュール(Z1時間毎;毎日
、Z2時等)に従って行う。
そして、重複除去処理部43は、第N+1キュー40N+1内に1つ以上のMBF−ID
が存在していた場合には、第N+1キュー40N+1から全MBF−IDを取り出す。そし
て、取り出したMBF−ID毎に、そのMBF−IDを処理対象MBF−IDとして取り扱うと共に、そのMBF−IDに関する各ハッシュログ25を処理対象ハッシュログとして取り扱って、図9に示した手順の重複除去処理を行う。尚、或るMBF−IDに関する各ハッシュログ25とは、当該MBF−IDで識別されるMBF31の各最下段BFに対応づけらているハッシュログ25のことである。
すなわち、或る処理対象ハッシュログに対する重複除去処理を開始した重複除去処理部43は、まず、処理対象ハッシュログの最初のレコード上のハッシュ値(つまり、或るデータの検証用ハッシュ値)を、処理対象ハッシュ値として取得する(ステップS301)。
次いで、重複除去処理部43は、ストレージ制御装置10内のMBFの中から、処理対象ハッシュ値が登録されているMBF31を検索すると共に、検索したMBF31から,処理対象ハッシュ値が登録されている最下段BMを検索する(ステップS302)。このステップS302の処理は、第N+1キュー40N+1から取り出したいずれのMBF−IDともMBF−IDが一致しておらず、かつ、前回以前のステップS302の処理で処理対象ハッシュ値の登録の有無がチェックされていないMBFの中から、処理対象ハッシュ値が登録されているMBF31を検索する処理である。
処理対象ハッシュ値が登録されているMBF31を検索できた場合(ステップS303;NO)、重複除去処理部43は、検索した最下段BFに対応づけらているハッシュログから処理対象ハッシュ値が設定されているレコードを削除する(ステップS304)。このステップS304の処理は、検索した最下段BFに対応づけらているハッシュログが、ハッシュログテーブル内及びハッシュログキャッシュテーブル内に存在していた場合には、両テーブル内のハッシュログに対して行われる。
続くステップS305にて、重複除去処理部43は、まず、検索したMBFのMBF−IDと処理対象ハッシュ値とが設定されているレコードをブロックマップから検索する。そして、重複除去処理部43は、検索したレコード上のMBF−IDを処理対象MBF−IDに変更(ステップS305)してから、ステップS306の判断を行う。尚、ステップS304の処理時に処理対象ハッシュ値が設定されているレコードを見出せなかった場合、重複除去処理部43は、このステップS305の処理を行うことなく、ステップS306の判断を行う。
ステップS306にて、重複除去処理部43は、ステップS302〜S306のループ処理の終了条件が満たされたか否かを判断する。ここで、ステップS302〜S306のループ処理の終了条件とは、例えば、ステップS302の検索に失敗するまでループ処理を繰り返す、ループ処理を繰り返さない(ステップS302〜S305の処理を1回行う)といった条件のことである。
そして、重複除去処理部43は、ステップS302〜S306のループ処理の終了条件が満たされていなかった場合には、ステップS302以降の処理を再び開始する。
重複除去処理部43は、ステップS302の検索に失敗した場合(ステップS303;YES)には、処理対象ハッシュログの全レコードの処理が完了したか否かを判断する(ステップS307)。重複除去処理部43は、ステップS302〜S306のループ処理の終了条件が満たされた場合(ステップS306;YES)にも、処理対象ハッシュログの全レコードの処理が完了したか否かを判断する(ステップS307)。
処理対象ハッシュログの全レコードの処理が完了していなかった場合(ステップS307;NO)、重複除去処理部43は、ステップS301に戻って、処理対象ハッシュログの次のレコード上のハッシュ値を、処理対象ハッシュ値として取得する。
そして、重複除去処理部43は、処理対象ハッシュログの全レコードの処理が完了したときに、この重複除去処理を終了する。
要するに、上記したヒット頻度管理処理(図8C参照)により、第N+1キュー40N+1にMBF−ID_βが入力されるのは、FIFOキューである第Nキュー40NからMBF−ID_βが破棄される以前に、第N−1キューから、MBF−ID_βが取り出されたときである。また、第N−1キューもFIFOキューであるので、第N−1キューから
MBF−ID_βが取り出されるのは、第N−1キューからMBF−ID_βが破棄される以前に、第N−2キューから、MBF−ID_βが取り出されたときである。
他の各キューもFIFOキューであるので、各キューからMBF−ID_βが破棄される以前に、前キューからMBF−ID_βが取り出されないと、次キューにMBF−ID_βが入力されない。従って、第N+1キューに登録されるMBF−IDは、最近のヒット頻度が特に高いMBFのMBF−IDとなる。
また、重複除去処理部43が行う重複除去処理は、そのようなMBFに対応づけられている各ハッシュログの内容を維持して、重複除去を行うものとなっている。そして、最近のヒット頻度が特に高いMBFに対応づけられている各ハッシュログの内容を維持しておけば、通常、ファイルの読み込み時に必要なHDDからの情報の平均的なロード回数を増やさないことができる。従って、上記した重複除去処理及びヒット頻度管理処理による重複除去は、リード要求に対する応答速度が遅くならない形で重複除去を行えるものとなっていると言うことができる。
《変形形態》
上記したストレージ制御装置10は、各種の変形が行えるものである。例えば、ストレージ制御装置10を、ブロックマップ21がHDD13に記憶される装置に変形することができる。また、ストレージ制御装置10を、ハッシュログキャッシュテーブル28がない装置(常に、ハッシュログテーブル23に対するアクセスが行われる装置)に変形することができる。
MBFの代わりに、同様の機能を有する,MBFに分類されない情報を採用することも出来る。すなわち、MBFの代わりに、各データが格納されているデータ領域内のデータが登録されており且つ当該データ領域内の各データがいずれのデータ記憶領域に格納されているかを特定するために使用できる情報を採用することも出来る。また、ヒット頻度管理処理の代わりに、各MBFの利用回数/頻度を計数する処理を採用することもできる。ヒット頻度管理処理を、実際にハードウェアキューを制御する処理に変形することもできる。
ストレージ制御装置10を、専用の装置や、ストレージ30と一体化された装置に変形することも出来る。ストレージ制御装置10を、論理ブロックアドレスでアクセスすべき記憶装置30(内部で論理ブロックアドレスが物理ブロックアドレスに変換される記憶装置30)に接続して使用する装置に変形することも出来る。尚、この変形は、PBAの代わりに記憶装置30のLBAが使用されるようにするだけで実現できる。
また、ストレージ制御プログラム18を、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory)等の可搬型記録媒体に記録して配布することが出来る。
以上、開示した技術に関し、更に以下の付記を開示する。
(付記1)
ストレージを、複数のデータ領域に分けられた複数のデータ記憶領域を備えた装置として取り扱って、前記ストレージ内の各データのストレージ内アドレスとハッシュ値との対応関係を複数のハッシュログによりデータ記憶領域別に管理すると共に、前記ストレージ内の各データの論理アドレス及びハッシュ値と、各データが格納されているデータ領域内のデータが登録されており且つ当該データ領域内の各データがいずれのデータ記憶領域に格納されているかを特定するために使用できるデータ管理情報の識別情報との対応関係をブロックマップにより管理する制御部と、
前記複数のハッシュログと、各データ領域に関するデータ管理情報とを記憶する第1記憶部と、
前記第1記憶部よりも高速にデータを読み書きできる第2記憶部と、
を備え、
前記制御部は、
読込対象データの前記ストレージからの読み込み時に、前記ブロックマップ内の当該読込対象データの論理アドレスに対応づけられた識別情報にて識別されるデータ管理情報が前記第2記憶部上に記憶されていなかった場合には、前記第1記憶部に記憶されている当該データ管理情報を前記第2記憶部上のいずれかのデータ管理情報の代わりに前記第2記憶部上に読み出し、読み出したデータ管理情報に基づき、前記読込対象データが格納されているデータ記憶領域に関する前記ハッシュログを特定し、特定したハッシュログ上の情報を用いて前記読込対象データを前記ストレージから読み込み、
格納対象データの書き込み時に前記格納対象データが登録されているデータ管理情報が前記第2記憶部に記憶されていなかった場合には、他のデータ管理情報に前記格納対象データが登録されているか否かを判定することなく、前記格納対象データを前記ストレージ内に格納し、
所定の条件が満たされた場合に、各データ管理情報の利用状況を基にした優先度にしたがい、少なくとも1つのデータ管理情報を選択し、選択した少なくとも1つのデータ管理情報が関連づけられているデータ領域上のデータについての,他のデータ領域上の重複データを前記ストレージから除去する
ストレージ制御装置。
(付記2)
前記データ管理情報が、
関連付けられているデータ領域内のデータ記憶領域毎に、当該データ記憶領域に格納されたデータが登録されるブルームフィルタを含む多段ブルームフィルタである
ことを特徴とする付記1に記載のストレージ制御装置。
(付記3)
前記制御部は、
各データ管理情報の利用状況に基づき、前記第1記憶部に記憶されている複数のデータ管理情報を、利用頻度の多寡に基づき二分する機能を有し、
前記所定の条件が満たされた場合に、利用頻度の多い方の1つ以上のデータ管理情報の中から前記少なくとも1つのデータ管理情報を選択する
ことを特徴とする付記1又は2に記載のストレージ制御装置。
(付記4)
前記第2記憶部は、書込用データ管理情報及び書込用ハッシュログを記憶し、
前記制御部は、
前記格納対象データの書き込み時に前記格納対象データが登録されているデータ管理情報が前記第2記憶部に記憶されていなかった場合、前記格納対象データを前記ストレージ内に格納すると共に、前記格納対象データを書込用データ管理情報に登録し、書込用ハッシュログ及びブロックマップを更新する
ことを特徴とする付記1から3のいずれか一項に記載のストレージ制御装置。
(付記5)
重複除去を行ってストレージにデータを格納するストレージ制御方法において、
前記ストレージを、複数のデータ領域に分けられた複数のデータ記憶領域を備えた装置として取り扱って、前記ストレージ内の各データのストレージ内アドレスとハッシュ値との対応関係を第1記憶部上の複数のハッシュログによりデータ記憶領域別に管理すると共
に、前記ストレージ内の各データの論理アドレス及びハッシュ値と、各データが格納されているデータ領域内のデータが登録されており且つ当該データ領域内の各データがいずれのデータ記憶領域に格納されているかを特定するために使用できるデータ管理情報の識別情報との対応関係を前記第1記憶部又は前記第1記憶部よりも高速にデータを読み書きできる第2記憶部上のブロックマップにより管理し、
読込対象データの前記ストレージからの読み込み時に、前記ブロックマップ内の当該読込対象データの論理アドレスに対応づけられた識別情報にて識別されるデータ管理情報が前記第2記憶部上に記憶されていなかった場合には、前記第1記憶部に記憶されている当該データ管理情報を前記第2記憶部上のいずれかのデータ管理情報の代わりに前記第2記憶部上に読み出し、
読み出したデータ管理情報に基づき、前記読込対象データが格納されているデータ記憶領域に関する前記ハッシュログを特定し、特定したハッシュログ上の情報を用いて前記読込対象データを前記ストレージから読み込み、
格納対象データの書き込み時に前記格納対象データが登録されているデータ管理情報が前記第2記憶部に記憶されていなかった場合には、他のデータ管理情報に前記格納対象データが登録されているか否かを判定することなく、前記格納対象データを前記ストレージ内に格納し、
所定の条件が満たされた場合に、各データ管理情報の利用状況を基にした優先度にしたがい、少なくとも1つのデータ管理情報を選択し、選択した少なくとも1つのデータ管理情報が関連づけられているデータ領域上のデータについての,他のデータ領域上の重複データを前記ストレージから除去する
ストレージ制御方法。
(付記6)
コンピュータを、重複除去を行ってストレージにデータを格納するストレージ制御装置として動作させるストレージ制御プログラムであって、
前記コンピュータに、
前記ストレージを、複数のデータ領域に分けられた複数のデータ記憶領域を備えた装置として取り扱って、前記ストレージ内の各データのストレージ内アドレスとハッシュ値との対応関係を第1記憶部上の複数のハッシュログによりデータ記憶領域別に管理すると共に、前記ストレージ内の各データの論理アドレス及びハッシュ値と、各データが格納されているデータ領域内のデータが登録されており且つ当該データ領域内の各データがいずれのデータ記憶領域に格納されているかを特定するために使用できるデータ管理情報の識別情報との対応関係を前記第1記憶部又は前記第1記憶部よりも高速にデータを読み書きできる第2記憶部上のブロックマップにより管理し、
読込対象データの前記ストレージからの読み込み時に、前記ブロックマップ内の当該読込対象データの論理アドレスに対応づけられた識別情報にて識別されるデータ管理情報が前記第2記憶部上に記憶されていなかった場合には、前記第1記憶部に記憶されている当該データ管理情報を前記第2記憶部上のいずれかのデータ管理情報の代わりに前記第2記憶部上に読み出し、
読み出したデータ管理情報に基づき、前記読込対象データが格納されているデータ記憶領域に関する前記ハッシュログを特定し、特定したハッシュログ上の情報を用いて前記読込対象データを前記ストレージから読み込み、
格納対象データの書き込み時に前記格納対象データが登録されているデータ管理情報が前記第2記憶部に記憶されていなかった場合には、他のデータ管理情報に前記格納対象データが登録されているか否かを判定することなく、前記格納対象データを前記ストレージ内に格納し、
所定の条件が満たされた場合に、各データ管理情報の利用状況を基にした優先度にしたがい、少なくとも1つのデータ管理情報を選択し、選択した少なくとも1つのデータ管理情報が関連づけられているデータ領域上のデータについての,他のデータ領域上の重複デ
ータを前記ストレージから除去する
処理を行わせるストレージ制御プログラム。
(付記7)
ストレージを、複数のデータ領域に分けられた複数のデータ記憶領域を備えた装置として取り扱って、前記ストレージ内の各データのストレージ内アドレスとハッシュ値との対応関係を複数のハッシュログによりデータ記憶領域別に管理すると共に、前記ストレージ内の各データの論理アドレス及びハッシュ値と、各データが格納されているハッシュログの識別情報との対応関係をブロックマップにより管理する制御部と、
前記複数のハッシュログとを記憶する第1記憶部と、
前記第1記憶部よりも高速にデータを読み書きできる第2記憶部と、
を備え、
前記制御部は、
読込対象データの前記ストレージからの読み込み時に、前記ブロックマップ内の当該読込対象データの論理アドレスに対応づけられた識別情報にて識別されるハッシュログが前記第2記憶部上に記憶されていなかった場合には、前記第1記憶部に記憶されている当該ハッシュログを前記第2記憶部上のいずれかのハッシュログの代わりに前記第2記憶部上に読み出し、読み出したハッシュログ上の情報を用いて前記読込対象データを前記ストレージから読み込み、
格納対象データの書き込み時に前記格納対象データのハッシュ値と同じハッシュ値を保持したハッシュログが前記第2記憶部に記憶されていなかった場合には、他のハッシュログを用いて前記格納対象データの重複データの有無を判定することなく、前記格納対象データを前記ストレージ内に格納し、
所定の条件が満たされた場合に、各ハッシュログの利用状況を基にした優先度にしたがい、少なくとも1つのハッシュログを選択し、選択した少なくとも1つのハッシュログが関連づけられているデータ領域上のデータについての,他のデータ領域上の重複データを前記ストレージから除去する
ストレージ制御装置。
10 ストレージ制御装置
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記憶部と、
    前記第1記憶部よりも高速にデータを読み書きできる第2記憶部と、
    を備え、
    前記制御部は、
    読込対象データの前記ストレージからの読み込み時に、前記ブロックマップ内の当該読込対象データの論理アドレスに対応づけられた識別情報にて識別されるデータ管理情報が前記第2記憶部上に記憶されていなかった場合には、前記第1記憶部に記憶されている当該データ管理情報を前記第2記憶部上のいずれかのデータ管理情報の代わりに前記第2記憶部上に読み出し、読み出したデータ管理情報に基づき、前記読込対象データが格納されているデータ記憶領域に関する前記ハッシュログを特定し、特定したハッシュログ上の情報を用いて前記読込対象データを前記ストレージから読み込み、
    格納対象データの書き込み時に前記格納対象データが登録されているデータ管理情報が前記第2記憶部に記憶されていなかった場合には、他のデータ管理情報に前記格納対象データが登録されているか否かを判定することなく、前記格納対象データを前記ストレージ内に格納し、
    所定の条件が満たされた場合に、各データ管理情報の利用状況を基にした優先度にしたがい、少なくとも1つのデータ管理情報を選択し、選択した少なくとも1つのデータ管理情報が関連づけられているデータ領域上のデータについての,他のデータ領域上の重複データを前記ストレージから除去する
    ストレージ制御装置。
  2. 前記データ管理情報が、
    関連付けられているデータ領域内のデータ記憶領域毎に、当該データ記憶領域に格納されたデータが登録されるブルームフィルタを含む多段ブルームフィルタである
    ことを特徴とする請求項1に記載のストレージ制御装置。
  3. 前記制御部は、
    各データ管理情報の利用状況に基づき、前記第1記憶部に記憶されている複数のデータ管理情報を、利用頻度の多寡に基づき二分する機能を有し、
    前記所定の条件が満たされた場合に、利用頻度の多い方の1つ以上のデータ管理情報の中から前記少なくとも1つのデータ管理情報を選択する
    ことを特徴とする請求項1又は2に記載のストレージ制御装置。
  4. 前記第2記憶部は、書込用データ管理情報及び書込用ハッシュログを記憶し、
    前記制御部は、
    前記格納対象データの書き込み時に前記格納対象データが登録されているデータ管理情報が前記第2記憶部に記憶されていなかった場合、前記格納対象データを前記ストレージ内に格納すると共に、前記格納対象データを書込用データ管理情報に登録し、書込用ハッシュログ及びブロックマップを更新する
    ことを特徴とする請求項1から3のいずれか一項に記載のストレージ制御装置。
  5. 重複除去を行ってストレージにデータを格納するストレージ制御方法において、
    前記ストレージを、複数のデータ領域に分けられた複数のデータ記憶領域を備えた装置として取り扱って、前記ストレージ内の各データのストレージ内アドレスとハッシュ値との対応関係を第1記憶部上の複数のハッシュログによりデータ記憶領域別に管理すると共に、前記ストレージ内の各データの論理アドレス及びハッシュ値と、各データが格納されているデータ領域内のデータが登録されており且つ当該データ領域内の各データがいずれのデータ記憶領域に格納されているかを特定するために使用できるデータ管理情報の識別情報との対応関係を前記第1記憶部又は前記第1記憶部よりも高速にデータを読み書きできる第2記憶部上のブロックマップにより管理し、
    読込対象データの前記ストレージからの読み込み時に、前記ブロックマップ内の当該読込対象データの論理アドレスに対応づけられた識別情報にて識別されるデータ管理情報が前記第2記憶部上に記憶されていなかった場合には、前記第1記憶部に記憶されている当該データ管理情報を前記第2記憶部上のいずれかのデータ管理情報の代わりに前記第2記憶部上に読み出し、
    読み出したデータ管理情報に基づき、前記読込対象データが格納されているデータ記憶領域に関する前記ハッシュログを特定し、特定したハッシュログ上の情報を用いて前記読込対象データを前記ストレージから読み込み、
    格納対象データの書き込み時に前記格納対象データが登録されているデータ管理情報が前記第2記憶部に記憶されていなかった場合には、他のデータ管理情報に前記格納対象データが登録されているか否かを判定することなく、前記格納対象データを前記ストレージ内に格納し、
    所定の条件が満たされた場合に、各データ管理情報の利用状況を基にした優先度にしたがい、少なくとも1つのデータ管理情報を選択し、選択した少なくとも1つのデータ管理情報が関連づけられているデータ領域上のデータについての,他のデータ領域上の重複データを前記ストレージから除去する
    ストレージ制御方法。
  6. コンピュータを、重複除去を行ってストレージにデータを格納するストレージ制御装置として動作させるストレージ制御プログラムであって、
    前記コンピュータに、
    前記ストレージを、複数のデータ領域に分けられた複数のデータ記憶領域を備えた装置として取り扱って、前記ストレージ内の各データのストレージ内アドレスとハッシュ値との対応関係を第1記憶部上の複数のハッシュログによりデータ記憶領域別に管理すると共に、前記ストレージ内の各データの論理アドレス及びハッシュ値と、各データが格納されているデータ領域内のデータが登録されており且つ当該データ領域内の各データがいずれのデータ記憶領域に格納されているかを特定するために使用できるデータ管理情報の識別情報との対応関係を前記第1記憶部又は前記第1記憶部よりも高速にデータを読み書きできる第2記憶部上のブロックマップにより管理し、
    読込対象データの前記ストレージからの読み込み時に、前記ブロックマップ内の当該読込対象データの論理アドレスに対応づけられた識別情報にて識別されるデータ管理情報が前記第2記憶部上に記憶されていなかった場合には、前記第1記憶部に記憶されている当該データ管理情報を前記第2記憶部上のいずれかのデータ管理情報の代わりに前記第2記憶部上に読み出し、
    読み出したデータ管理情報に基づき、前記読込対象データが格納されているデータ記憶領域に関する前記ハッシュログを特定し、特定したハッシュログ上の情報を用いて前記読込対象データを前記ストレージから読み込み、
    格納対象データの書き込み時に前記格納対象データが登録されているデータ管理情報が前記第2記憶部に記憶されていなかった場合には、他のデータ管理情報に前記格納対象データが登録されているか否かを判定することなく、前記格納対象データを前記ストレージ
    内に格納し、
    所定の条件が満たされた場合に、各データ管理情報の利用状況を基にした優先度にしたがい、少なくとも1つのデータ管理情報を選択し、選択した少なくとも1つのデータ管理情報が関連づけられているデータ領域上のデータについての,他のデータ領域上の重複データを前記ストレージから除去する
    処理を行わせるストレージ制御プログラム。
JP2013074643A 2013-03-29 2013-03-29 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム Active JP6098301B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 マイクロン テクノロジー, インク. 半導体装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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