JP2014170304A - ストレージシステム - Google Patents

ストレージシステム Download PDF

Info

Publication number
JP2014170304A
JP2014170304A JP2013040842A JP2013040842A JP2014170304A JP 2014170304 A JP2014170304 A JP 2014170304A JP 2013040842 A JP2013040842 A JP 2013040842A JP 2013040842 A JP2013040842 A JP 2013040842A JP 2014170304 A JP2014170304 A JP 2014170304A
Authority
JP
Japan
Prior art keywords
range
storage
data
defragmentation
target data
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
JP2013040842A
Other languages
English (en)
Other versions
JP6094267B2 (ja
Inventor
Hiroaki Yamamoto
拓明 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2013040842A priority Critical patent/JP6094267B2/ja
Priority to US14/177,783 priority patent/US9367256B2/en
Publication of JP2014170304A publication Critical patent/JP2014170304A/ja
Application granted granted Critical
Publication of JP6094267B2 publication Critical patent/JP6094267B2/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/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1004Defragmentation

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

【課題】デフラグによるI/O性能の低下を解決すること。
【解決手段】本発明のストレージシステムは、データを記憶装置に格納すると共に、当該データと同一のデータ内容の他のデータを格納する場合に、既に記憶されているデータを他のデータとして参照させるデータ格納制御部と、記憶装置の所定の領域内においてデフラグ範囲とされた箇所に格納された記憶対象データを、記憶装置の他の領域内に格納し直すデフラグ処理部と、を備え、上記データ格納制御部は、データが他の記憶対象データとして参照されている数である参照数を記憶し、上記デフラグ処理部は、データの参照数に応じて当該データを記憶装置の他の領域内において後にデフラグ範囲となる箇所に格納する。
【選択図】図22

Description

本発明は、ストレージシステムにかかり、特に、同一内容のデータの重複記憶を排除するストレージシステムに関する。
近年、コンピュータの発達及び普及に伴い、種々の情報がデジタルデータ化されている。このようなデジタルデータを保存しておく装置として、磁気テープや磁気ディスクなどの記憶装置がある。そして、保存すべきデータは日々増大し、膨大な量となるため、大容量なストレージシステムが必要となっている。また、記憶装置に費やすコストを削減しつつ、信頼性も必要とされる。これに加えて、後にデータを容易に取り出すことが可能であることも必要である。その結果、自動的に記憶容量や性能の増大を実現できると共に、重複記憶を排除して記憶コストを削減し、さらには、冗長性の高いストレージシステムが望まれている。
このような状況に応じて、近年では、特許文献1に示すように、コンテンツアドレスストレージシステムが開発されている。このコンテンツアドレスストレージシステムは、データを分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置が特定される。また、コンテンツアドレスストレージシステムの中には、所定のデータを複数のフラグメントに分割すると共に、冗長データとなるフラグメントをさらに付加して、これら複数のフラグメントをそれぞれ複数の記憶装置にそれぞれ格納する、というものもある。
そして、上述したようなコンテンツアドレスストレージシステムでは、後に、コンテンツアドレスを指定することにより、当該コンテンツアドレスにて特定される格納位置に格納されているデータつまりフラグメントを読み出し、複数のフラグメントから分割前の所定のデータを復元することができる。
また、上記コンテンツアドレスは、データの内容に応じて固有となるよう生成される値、例えばデータのハッシュ値、に基づいて生成される。このため、重複データであれば同じ格納位置のデータを参照することで、同一内容のデータを取得することができる。従って、重複データを別々に格納する必要がなく、重複記録を排除して、データ容量の削減を図ることができる。
特に、上述したような重複記憶を排除する機能を有するストレージシステムでは、ファイルなど書き込み対象となるデータを所定容量の複数のブロックデータに分割して圧縮し、記憶装置に書き込む。このように、ファイルを分割したブロックデータ単位で重複記憶を排除することで、重複率が増大し、データ容量の削減を図っている。そして、バックアップを行うストレージシステムに提供することで、バックアップの容量を節約したり、レプリケーション時の帯域の節約を図っている。
一方で、上述した重複排除を行うストレージシステムでは、格納したデータが上書きされることはない。つまり、新しい非重複データを追記するか、古く参照されていないデータを削除するか、といったどちらかしか行われない。このため、重複排除ストレージシステムを長期間運用すると、ストレージ内部で空き領域が断片化し、入出力性能(I/O性能)が低下する。そのため、重複排除ストレージシステムでは、定期的なデフラグ処理が必要になる。
特開2005−235171号公報 特開2010−287049号公報
しかしながら、デフラグ処理は、ユーザによる運用とは関係のないストレージシステムにおけるI/O負荷を発生させるため、デフラグ期間中のI/O性能を低下させてしまう、という問題が生じる。ここで、特許文献2には、メモリ内におけるページ分割数が閾値を超えるブロックに対してデフラグ処理を行う、という技術が開示されている。かかる技術によると、デフラグ処理を行う領域が制限され、I/O性能の低下を抑制できる可能性があるが、データの内容を考慮してデフラグを行っていない。従って、重複排除ストレージシステムに格納される重複排除を伴うデータに対して、デフラグを効率よく行うことができるか不明であり、断片化を解消するためには結局のところ全ての領域に対してデフラグを行う必要がある。その結果、重複排除ストレージシステムにおけるI/O性能の低下を解消することができない。
このため、本発明の目的は、重複排除ストレージシステムにおけるデフラグ処理によるI/O性能の低下、という問題を解決することができるストレージシステムを提供することにある。
本発明の一形態であるストレージシステムは、
記憶対象データを記憶装置に格納すると共に、当該記憶装置に既に記憶されている前記記憶対象データと同一のデータ内容の他の記憶対象データを前記記憶装置に格納する場合に、当該記憶装置に既に記憶されている前記記憶対象データを前記他の記憶対象データとして参照させるデータ格納制御部と、
前記記憶装置の所定の領域内においてデフラグ範囲とされた箇所に格納された前記記憶対象データを、前記記憶装置の他の領域内に格納し直すデフラグ処理部と、を備え、
前記データ格納制御部は、前記記憶装置に記憶されている前記記憶対象データ毎に、当該記憶対象データが他の記憶対象データとして参照されている数である参照数を記憶し、
前記デフラグ処理部は、前記記憶対象データの参照数に応じて当該記憶対象データを前記記憶装置の他の領域内において後にデフラグ範囲となる箇所に格納する、
という構成をとる。
本発明の他の形態であるプログラムは、
情報処理装置に、
記憶対象データを記憶装置に格納すると共に、当該記憶装置に既に記憶されている前記記憶対象データと同一のデータ内容の他の記憶対象データを前記記憶装置に格納する場合に、当該記憶装置に既に記憶されている前記記憶対象データを前記他の記憶対象データとして参照させるデータ格納制御部と、
前記記憶装置の所定の領域内においてデフラグ範囲とされた箇所に格納された前記記憶対象データを、前記記憶装置の他の領域内に格納し直すデフラグ処理部と、を実現させると共に、
前記データ格納制御部は、前記記憶装置に記憶されている前記記憶対象データ毎に、当該記憶対象データが他の記憶対象データとして参照されている数である参照数を記憶し、
前記デフラグ処理部は、前記記憶対象データの参照数に応じて当該記憶対象データを前記記憶装置の他の領域内において後にデフラグ範囲となる箇所に格納する、
ことを実現させるためのプログラムである。
本発明の他の形態であるデフラグ方法は、
記憶対象データを記憶装置に格納すると共に、当該記憶装置に既に記憶されている前記記憶対象データと同一のデータ内容の他の記憶対象データを前記記憶装置に格納する場合に、当該記憶装置に既に記憶されている前記記憶対象データを前記他の記憶対象データとして参照させてデータ格納制御を行うと共に、前記記憶装置に記憶されている前記記憶対象データ毎に、当該記憶対象データが他の記憶対象データとして参照されている数である参照数を記憶し、
前記記憶装置の所定の領域内においてデフラグ範囲とされた箇所に格納された前記記憶対象データを、前記記憶装置の他の領域内に格納し直すデフラグ処理を実行し、
前記デフラグ処理時に、前記記憶対象データの参照数に応じて当該記憶対象データを前記記憶装置の他の領域内において後にデフラグ範囲となる箇所に格納する、
という構成をとる。
本発明は、以上のように構成されることにより、ストレージシステムにおけるデフラグによるI/O性能の低下を抑制することができる。
本発明の実施形態1におけるストレージシステムを含むシステム全体の構成を示すブロック図である。 本発明の実施形態1におけるストレージシステムの構成の概略を示すブロック図である。 本発明の実施形態1におけるストレージシステムの構成を示す機能ブロック図である。 図3に開示したストレージシステムにおけるデータ書き込み処理の様子を説明するための説明図である。 図3に開示したストレージシステムにおけるデータ書き込み処理の様子を説明する説明図である。 図3に開示したストレージシステムにおけるデータ構造を説明する説明図である。 図3に開示したストレージシステムにおけるデータ書き込み処理の様子を説明する説明図である。 図3に開示したストレージシステムにおけるデータ書き込み処理の様子を説明する説明図である。 図3に開示したストレージシステムにおけるデータ書き込み処理の様子を説明する説明図である。 図3に開示したストレージシステムにおけるデフラグ処理の様子を説明する説明図である。 図3に開示したストレージシステムにおけるデフラグ処理の様子を説明する説明図である。 図3に開示したストレージシステムにおけるデフラグ処理の様子を説明する説明図である。 図3に開示したストレージシステムにおけるデフラグ処理の様子を説明する説明図である。 図3に開示したストレージシステムにおけるデータ書き込み処理の動作を示すフローチャートである。 図3に開示したストレージシステムにおけるデフラグ処理の動作を示すフローチャートである。 本発明の実施形態2におけるストレージシステムに記憶されたデータの様子を示す図である。 実施形態2のストレージシステムにおけるデフラグ処理の様子を説明する説明図である。 実施形態2のストレージシステムにおけるデフラグ処理の様子を説明する説明図である。 実施形態2のストレージシステムにおけるデフラグ処理の様子を説明する説明図である。 実施形態2のストレージシステムにおけるデフラグ処理の動作を示すフローチャートである。 実施形態2のストレージシステムの他の構成を示すブロック図である。 本発明の付記1におけるストレージシステムの構成を示すブロック図である。
<実施形態1>
本発明の第1の実施形態を、図1乃至図15を参照して説明する。図1は、システム全体の構成を示すブロック図である。図2は、ストレージシステムの概略を示すブロック図であり、図3は、ストレージシステムの構成を示す機能ブロック図である。図4乃至図13は、ストレージシステムにおけるデータ書き込み処理及びデフラグ処理の動作を説明するための説明図である。図14乃至図15は、ストレージシステムの動作を示すフローチャートである。
ここで、本実施形態は、後述する付記に記載のストレージシステム等の具体的な一例を示すものである。そして、以下では、ストレージシステムが、複数台のサーバコンピュータが接続されて構成されている場合を説明する。但し、本発明におけるストレージシステムは、複数台のコンピュータにて構成されることに限定されず、1台のコンピュータで構成されていてもよい。
[構成]
図1に示すように、本発明におけるストレージシステム1は、ネットワークNを介してバックアップ処理を制御するバックアップシステム4に接続している。そして、バックアップシステム4は、ネットワークNを介して接続されたバックアップ対象装置5に格納されているバックアップ対象データ(記憶対象データ)を取得し、ストレージシステム1に対して記憶するよう要求する。これにより、ストレージシステム1は、記憶要求されたバックアップ対象データをバックアップ用に記憶する。
そして、図2に示すように、本実施形態におけるストレージシステム1は、複数のサーバコンピュータが接続された構成を採っている。具体的に、ストレージシステム1は、ストレージシステム1自体における記憶再生動作を制御するサーバコンピュータであるアクセラレータノード2と、データを格納する記憶装置を備えたサーバコンピュータであるストレージノード3と、を備えている。なお、アクセラレータノード2の数とストレージノード3の数は、図2に示したものに限定されず、さらに多くの各ノード2,3が接続されて構成されていてもよい。
さらに、本実施形態におけるストレージシステム1は、データを分割及び冗長化し、分散して複数の記憶装置に記憶すると共に、記憶するデータの内容に応じて設定される固有のコンテンツアドレスによって、当該データを格納した格納位置を特定するコンテンツアドレスストレージシステムである。このコンテンツアドレスストレージシステムについては、後に詳述する。
なお、以下では、ストレージシステム1が1つのシステムであるとして、当該ストレージシステム1が備えている構成及び機能を説明する。つまり、以下に説明するストレージシステム1が有する構成及び機能は、アクセラレータノード2あるいはストレージノード3のいずれに備えられていてもよい。なお、ストレージシステム1は、図2に示すように、必ずしもアクセラレータノード2とストレージノード3とを備えていることに限定されず、いかなる構成であってもよく、例えば、1台のコンピュータにて構成されていてもよい。さらには、ストレージシステム1は、コンテンツアドレスストレージシステムであることにも限定されず、重複排除機能を有しているストレージシステムであればよい。
図3に、本実施形態におけるストレージシステム1の構成を示す。この図に示すように、ストレージシステム1は、サーバコンピュータにて構成され、所定の演算処理を行う演算装置(図示せず)と、記憶装置20と、を備える。そして、ストレージシステム1は、上記演算装置にプログラムが組み込まれることで構築された、書き込み部11(データ格納制御部)、読み出し部12、削除部13、デフラグ部14(デフラグ処理部)、を備えている。
なお、実際には、上述したストレージシステム1が備える構成は、図2に示したアクセラレータノード2及びストレージノード3がそれぞれ備えているCPU(Central Processing Unit)などの演算装置やハードディスクドライブなどの記憶装置にて構成されている。
ここで、上述したように、本実施形態におけるストレージシステム1は、コンテンツアドレスストレージシステムである。このため、ストレージシステム1は、コンテンツアドレスを利用してデータを記憶装置20に格納する機能を有しており、以下に説明するように、データを分割及び分散し、かつ、コンテンツアドレスにて格納位置を特定して、データを格納する。以下、ストレージシステム1にてコンテンツアドレスを利用した書き込み部11によるデータ書き込み処理の一例、及び、読み出し部12による読み出し処理の一例について、図4及び図5を参照して説明する。但し、以下に説明する処理は、重複排除型のストレージシステムにおけるデータの書き込み処理及び読み出し処理の一例である。従って、本発明におけるストレージシステム1は、以下の方法でデータを書き込んだり読み出すことに限定されず、他の方法で重複記憶を排除してデータの書き込み処理及び読み出し処理を行ってもよい。
まず、図4及び図5の矢印Y1に示すように、ストレージシステム1が書き込み要求されたファイルAの入力を受ける。すると、図4及び図5の矢印Y2に示すように、ファイルAを所定容量(例えば、64KB)のブロックデータDに分割する。
続いて、分割されたブロックデータDのデータ内容に基づいて、当該データ内容を代表する固有のハッシュ値Hを算出する(図5の矢印Y3)。例えば、ハッシュ値Hは、予め設定されたハッシュ関数を用いて、ブロックデータDのデータ内容から算出する。
続いて、ファイルAのブロックデータDのハッシュ値Hを用いて、当該ブロックデータDが既に格納されているか否かを調べる。具体的には、まず、既に格納されているブロックデータDは、そのハッシュ値Hと格納位置を表すコンテンツアドレスCAとが、関連付けられてMFI(Main Fragment Index)ファイルに登録されている。従って、格納前に算出したブロックデータDのハッシュ値HがMFIファイル内に存在している場合には、既に同一内容のブロックデータDが格納されていると判断できる(図5の矢印Y4)。この場合には、格納前のブロックデータDのハッシュ値Hと一致したMFI内のハッシュ値Hに関連付けられているコンテンツアドレスCAを、当該MFIファイルから取得する。そして、このコンテンツアドレスCAを、書き込み要求されたブロックデータDのコンテンツアドレスCAとして返却する。
そして、返却されたコンテンツアドレスCAが参照する既に格納されているデータを、書き込み要求されたブロックデータDとして使用する。つまり、書き込み要求されたブロックデータDの格納先として、返却されたコンテンツアドレスCAが参照する領域を指定することで、当該書き込み要求されたブロックデータDを記憶したこととする。これにより、書き込み要求にかかるブロックデータDを、実際に記憶装置20内に記憶する必要がなくなる。
また、書き込み要求にかかるブロックデータDがまだ記憶されていないと判断された場合には、以下のようにして書き込み要求にかかるブロックデータDの書き込みを行う。まず、書き込み要求にかかるブロックデータDを圧縮して、図5の矢印Y5に示すように、複数の所定の容量のフラグメントデータに分割する。例えば、図4の符号D1〜D9に示すように、9つのフラグメントデータ(分割データ91)に分割する。そしてさらに、分割したフラグメントデータのうちいくつかが欠けた場合であっても、元となるブロックデータを復元可能なよう冗長データを生成し、上記分割したフラグメントデータ91に追加する。例えば、図4の符号D10〜D12に示すように、3つのフラグメントデータ(冗長データ92)を追加する。これにより、9つの分割データ91と、3つの冗長データ92とにより構成される12個のフラグメントデータからなるデータセット90を生成する。
続いて、上述したように生成されたデータセットを構成する各フラグメントデータを、記憶装置に形成された各記憶領域に、それぞれ分散して格納する。例えば、図4に示すように、12個のフラグメントデータD1〜D12を生成した場合には、複数の記憶装置内にそれぞれ形成したデータ格納ファイルに、各フラグメントデータD1〜D12を1つずつそれぞれ格納する(図5の矢印Y6参照)。
続いて、ストレージシステム1は、上述したように格納したフラグメントデータD1〜D12の格納位置、つまり、当該フラグメントデータD1〜D12にて復元されるブロックデータDの格納位置を表すコンテンツアドレスCAを生成して管理する。具体的には、格納したブロックデータDの内容に基づいて算出したハッシュ値Hの一部(ショートハッシュ)(例えば、ハッシュ値Hの先頭8B(バイト))と、論理格納位置を表す情報と、を組み合わせて、コンテンツアドレスCAを生成する。そして、このコンテンツアドレスCAを、ストレージシステム1内のファイルシステムに返却する(図5の矢印Y7)。すると、ストレージシステム1は、バックアップ対象データのファイル名などの識別情報と、コンテンツアドレスCAとを関連付けてファイルシステムで管理する。
また、ブロックデータDのコンテンツアドレスCAと、当該ブロックデータDのハッシュ値Hと、を関連付けて、各ストレージノード3がMFIファイルにて管理する。このように、上記コンテンツアドレスCAは、ファイルを特定する情報やハッシュ値Hなどと関連付けられて、アクセラレータノード2やストレージノード3の記憶装置に格納される。
さらに、ストレージシステム1は、上述したように格納したファイルを読み出す制御を行う。例えば、ストレージシステム1に対して、特定のファイルを指定して読み出し要求があると、まず、ファイルシステムに基づいて、読み出し要求にかかるファイルに対応するハッシュ値の一部であるショートハッシュと論理位置の情報からなるコンテンツアドレスCAを指定する。そして、コンテンツアドレスCAがMFIファイルに登録されているか否かを調べる。登録されていなければ、要求されたデータは格納されていないため、エラーを返却する。
一方、読み出し要求にかかるコンテンツアドレスCAが登録されている場合には、上記コンテンツアドレスCAにて指定される格納位置を特定し、この特定された格納位置に格納されている各フラグメントデータを、読み出し要求されたデータとして読み出す。このとき、各フラグメントが格納されているデータ格納ファイルと、当該データ格納ファイルのうち1つのフラグメントデータの格納位置が分かれば、同一の格納位置から他のフラグメントデータの格納位置を特定することができる。
そして、読み出し要求に応じて読み出した各フラグメントデータからブロックデータDを復元する。さらに、復元したブロックデータDを複数連結し、ファイルAなどの一群のデータに復元して返却する。
次に、上述したように記憶装置20内に書き込まれたデータに対するデフラグ処理を行うための構成を、さらに説明する。図3に示すように、ストレージシステム1は、領域管理表15、ブロック管理表16、ファイル管理表17を備える。これらの表15,16,17は、図示しない主記憶装置に形成されている。また、補助記憶装置にて構成されている記憶装置20の記憶領域は、複数の領域21に分割されて管理されている。
図6は、領域管理表15、ブロック管理表16、ファイル管理表17の詳細、及び、これら各表と記憶装置20及び各領域21との関係を示している。
領域管理表15の「領域番号」の列は、各領域21を識別するための一意な番号を表す。そして、記憶装置20内の領域21は、書き込み時において同時に1つだけ書き込み可能となり、その書き込み可能な領域21のみを「使用中フラグ」を「yes」とすることで特定する。「領域サイズ」は、各領域21に格納可能なデータの合計サイズを表す。「デフラグ範囲」は、後述するようにデフラグ部14がデフラグを行う際の対象とすべき範囲を表す。「未使用範囲」は、一切のデータが格納されていない範囲であり、後述するように書き込み部11やデフラグ部14によってデータが格納される範囲を表す。「長寿命範囲」は、後述するようにデフラグ部14によって重複率が高いブロックが格納される範囲を表す。「最終書込時刻」は、領域21に最後にデータが書き込まれたときの時刻である。
ブロック管理表16の「ハッシュ値」の列は、ファイルを分割した各ブロックデータのハッシュ値を表している。このハッシュ値は、ブロックデータのデータ内容を代表する値であり、書き込み部11は、このハッシュ値を用いて、上述したように書き込み対象であるブロックデータが既に記憶装置20に格納されているか否かを調べる。「重複率」の列は、各ブロックデータの重複率を表している。重複率は、ブロックデータが他のブロックデータとして参照されている数(参照数)の値である。「領域番号」、「物理アドレス」及び「ブロックサイズ」は、各ブロックデータが記憶装置20において格納されている物理的な位置を指し示している。
ファイル管理表17は、ファイルを構成するブロックデータのリストを、ハッシュ値のリストとして保持している。
そして、本実施形態における書き込み部11は、ファイルを記憶装置20の領域21に格納する際には、当該ファイルを分割したブロックデータのハッシュ値を、上記ファイル管理表17及びブロック管理表16に登録する。このとき、ブロックデータのハッシュ値から、当該ブロックデータが既に記憶装置20内の領域21に記憶されているか否かを判断する。そして、記憶対象となるブロックデータが既に記憶装置20内に存在している場合には、当該存在しているブロックデータを参照し、ブロック管理表16の該当ハッシュ値の行における重複率(参照する)の値をインクリメントする。
一方、記憶対象となるブロックデータのハッシュ値が未知のものである場合は、領域管理表15を参照し、「使用中フラグ」が「yes」となっている領域21を見つけ出し、該当領域21の未使用範囲の先頭に該当ブロックデータを書き込む。そして、ブロックデータのサイズ分だけ未使用範囲の先頭を縮小し、デフラグ範囲の末尾を拡大し、領域管理表15の該当領域21の最終書き込み時刻を更新する。加えて、ブロック管理表16に新規エントリを追加し、書き込みの際に使用した領域番号、物理アドレス、およびブロックサイズを格納する。最後に、ファイル管理表17の該当ファイル名のリストに書き込んだブロックのハッシュ値を追記する。
また、読み出し部12は、ファイル管理表17を参照し、読み出し対象となるファイルを構成するブロックデータのハッシュ値を列挙する。そして、ブロック管理表16を参照し、該当ブロックが格納されている領域、物理アドレスおよびブロックサイズを割り出し、該当する格納場所からブロックデータの読み出しを行う。
また、削除部13は、削除対象のファイルを構成するブロックデータに該当するブロック管理表16のエントリにおける「重複率」をデクリメントする。重複率が0になった場合、該当するエントリをブロック管理表16から削除する。ただし、重複率は、削除時に即座にデクリメントされる必要はなく、ファイルつまりブロックデータ削除後の適切なタイミングでデクリメントすることも可能である。
次に、本実施形態におけるデフラグ部14について説明する。デフラグ部14は、所定のタイミングで、記憶装置20の所定の領域21であるデフラグ元領域内に格納されたブロックデータを、他の領域21であるデフラグ先領域内に格納し直すデフラグ処理を実行する。このとき、デフラグ部14は、デフラグ元領域のデフラグ範囲にあるブロックデータをデフラグ対象とし、当該ブロックデータの重複率に応じて、デフラグ先領域に格納する箇所を決定する。
例えば、予め設定された一定値(閾値)未満の重複率であるブロックデータは、デフラグ先領域の未使用範囲のうち、デフラグ範囲に隣接する箇所から格納データが連続するよう格納する。そして、ブロックデータ格納後やデフラグ終了時には、デフラグ先領域のデフラグ範囲から未使用範囲に格納したブロックデータまでの連続する範囲を新たなデフラグ範囲とし、その分、未使用範囲を縮小する。
一方、予め設定された一定値(閾値)以上の高い重複率であるブロックデータは、デフラグ先領域の未使用範囲のうち、長寿命範囲(非デフラグ範囲)に隣接する箇所から格納データが連続するよう格納する。そして、ブロックデータ格納後やデフラグ終了時には、デフラグ先領域の長寿命範囲から未使用範囲に格納したブロックデータまでの連続する範囲を新たな長寿命範囲とし、その分、未使用範囲を縮小する。
[動作]
次に、上述した構成のストレージシステムの動作を、図7乃至図15を参照して説明する。まず、ストレージシステムにファイルを書き込むときの動作を、図7乃至図9と、図14のフローチャートを参照して説明する。
まず、書き込み部11は、書き込み対象のファイル(データストリーム)をフィンガープリントに基づいて所定容量のブロックデータに分割する(ステップS1)。次に、分割された各ブロックデータのハッシュ値を計算する(ステップS2)。
その後、書き込み部11は、ブロック管理表16を確認し、該当するハッシュ値を持つブロックデータが記憶装置20内に存在しているか否かを確認する(ステップS3)。ブロックデータが既に記憶装置20内に存在する場合は(ステップS3:Yes)、書き込み対象であるブロックデータとして既に存在するブロックデータを参照し、ブロック管理表16内の参照されたブロックデータに該当するハッシュ値の行における重複率の値をインクリメントする(ステップS4)。
一方、書き込み部11は、書き込み対象である該当するブロックデータのハッシュ値が未知のもの、つまり、記憶装置20に格納されていない場合は(ステップS3:No)、領域管理表15を参照し、使用中フラグが「yes」となっている領域21(所定の領域)を見つけ出す。ここでは、該当する領域として、図7の書き込み領域30が見つかったとする。なお、書き込み領域30は、それぞれ所定の容量を有するデフラグ範囲31、未使用範囲32、長寿命範囲33が、この順に連なって設定された領域である。つまり、未使用範囲32がデフラグ範囲31と長寿命範囲33とに挟まれており、未使用範囲32の先頭(一端側)にデフラグ範囲31が隣接しており、未使用範囲32の末尾(他端側)に長寿命範囲33が隣接している。なお、書き込み領域30には、必ずしも長寿命範囲33が設定されていなくてもよい。
そして、書き込み部11は、図8に示すように、書き込み領域30の未使用範囲32の先頭、つまり、デフラグ範囲31との隣接箇所に、ブロックデータを書き込む(ステップS5、図8の網掛け部分参照)。なお、未使用範囲32のデフラグ範囲31との隣接箇所側に既に他のブロックデータが格納されている場合には、当該デフラグ範囲31からデータが連続して位置する箇所に、ブロックデータを書き込む。
その後、書き込み部11は、図9に示すように、書き込んだブロックデータのサイズ分だけデフラグ範囲31の末尾を拡大すると共に、当該書き込んだブロックデータのサイズ分だけ未使用範囲32の先頭を縮小する。換言すると、未使用範囲31の先頭側に位置するデフラグ範囲31との隣接箇所から連続してブロックデータが格納された範囲(図9の網掛け部分)と、デフラグ範囲(図8の符号31)と、を連結した範囲を、新たなデフラグ範囲(図9の符号31)とする。そして、領域管理表15における書き込み領域30の最終書込時刻を更新する。
加えて、書き込み部11は、ブロック管理表16に新規エントリを追加し、ブロックデータを書き込んだ領域の領域番号、物理アドレス、および、ブロックデータのサイズを格納する。最後に、ファイル管理表17の該当ファイル名のリストに、書き込んだブロックデータのハッシュ値を追記する。
次に、読み出し部12による動作を説明する。ファイルの読み出し要求があると、読み出し部12は、ファイル管理表17を参照し、ファイルを構成する各ブロックデータのハッシュ値を読み出して列挙する。そして、ブロック管理表16を参照し、該当ブロックデータが格納されている領域および物理アドレスを割り出し、かかる格納場所からブロックデータの読み出し、及び、ファイルの復元を行うことで、要求されたファイルを読み出す。
次に、削除部13による動作を説明する。ファイルの削除要求があると、削除部13は、削除対象のブロックデータに該当するブロック管理表16のエントリにおいて、重複率をデクリメントする。重複率が0になった場合、該当するエントリをブロック管理表16から削除する。ただし、削除時に即座に重複率をデクリメントする必要はなく、データ削除後の適切なタイミングでデクリメントすることも可能である。
次に、デフラグ部14によるデフラグ処理の動作を、図10乃至図13と、図15のフローチャートを参照して説明する。書き込み実施後、使用中フラグが「yes」となっている領域21について未使用領域が空になった場合、デフラグを実行する。デフラグには、2つの領域を用いる。このとき、図13に示すように領域管理表15を用いて、デフラグ元となる領域21は、デフラグ範囲が空でない領域のうち最終書き込み時刻が最も古い領域を選択する。また、デフラグ先となる領域21は、デフラグ範囲が空(0〜0)である領域を選択する。これによって、ここでは図10に示すように、デフラグ元となる領域21としてデフラグ元領域40(図13の領域2)が選択され、デフラグ先となる領域21としてデフラグ先領域50(図13の領域1)が選択されたこととする。そして、デフラグ元領域40からデフラグ先領域50へブロックデータを移動することでデフラグを行なう。
なお、デフラグ元領域40及びデフラグ先領域50は、それぞれ所定の容量を有するデフラグ範囲41,51、未使用範囲42,52、長寿命範囲43,53が、この順に連なって設定された領域である。つまり、未使用範囲42,52がデフラグ範囲41,51と長寿命範囲43,53とに挟まれており、未使用範囲42,52の先頭(一端側)にデフラグ範囲41,51が隣接しており、未使用範囲42,52の末尾(他端側)に長寿命範囲43,53が隣接している。
まず、デフラグ部14は、デフラグ元領域40内のデフラグ範囲41に含まれるブロックデータを列挙する(ステップS11)。次に、デフラグ部14は、各ブロックデータについて、ブロック管理表16を参照し、該当ブロックデータの重複率を確認する(ステップS12)。
そして、デフラグ部14は、該当ブロックデータの重複率が一定値未満である場合は(ステップS13:Yes)、図11の矢印M2,M4に示すように、デフラグ先領域50の未使用領域52の先頭にブロックデータを移動する(ステップS14)。つまり、デフラグ先領域50の未使用範囲52のうち、デフラグ範囲51との隣接箇所にブロックデータを書き込む(図11の網掛け部分参照)。なお、未使用範囲52のデフラグ範囲51との隣接箇所側に既に他のブロックデータが格納されている場合には、当該デフラグ範囲51からデータが連続して位置する箇所に、ブロックデータを書き込む。
その後、デフラグ部14は、図12に示すように、デフラグ先領域50において、書き込んだブロックデータのサイズ分だけデフラグ範囲51の末尾を拡大すると共に、当該書き込んだブロックデータのサイズ分だけ未使用範囲52の先頭を縮小する。換言すると、未使用範囲52の先頭側に位置するデフラグ範囲51との隣接箇所から連続してブロックデータが格納された範囲(図11の網掛け部分)と、デフラグ範囲(図11の符号51)と、を連結した範囲を、新たなデフラグ範囲(図12の符号51)とする。このデフラグ先領域50の新たなデフラグ範囲51は、後にデフラグ対象となる。そして、領域管理表15におけるデフラグ先領域50の最終書込時刻を更新する。
また、デフラグ部14は、該当ブロックデータの重複率が一定値以上である場合は(ステップS13:No)、図11の矢印M1,M3に示すように、デフラグ先領域50の未使用領域52の末尾にブロックデータを移動する(ステップS15)。つまり、デフラグ先領域50の未使用範囲52のうち、長寿命範囲53との隣接箇所にブロックデータを書き込む(図11の網掛け部分参照)。なお、未使用範囲52の長寿命範囲53との隣接箇所側に既に他のブロックデータが格納されている場合には、当該長寿命範囲51からデータが連続して位置する箇所に、ブロックデータを書き込む。
その後、デフラグ部14は、図12に示すように、デフラグ先領域50において、書き込んだブロックデータのサイズ分だけ長寿命範囲53の先頭を拡大すると共に、当該書き込んだブロックデータのサイズ分だけ未使用範囲52の末尾を縮小する。換言すると、未使用範囲52の末尾側に位置する長寿命範囲53との隣接箇所から連続してブロックデータが格納された範囲(図11の網掛け部分)と、長寿命範囲(図11の符号53)と、を連結した範囲を、新たな長寿命範囲(図12の符号53)とする。
上述したデフラグ処理により、デフラグ元領域40のデフラグ範囲41内のブロックデータの重複率が「0」となった場合、ブロック管理表16の該当する行を削除することで、該当ブロックデータを破棄する。この時点で、デフラグ先領域50の未使用範囲52が空になった場合、デフラグを中断する。また、ブロック管理表16の該当するハッシュ値をもつ行について、領域番号と物理アドレスを、移動先を指し示すように更新する。これらの処理がすべて完了した時点で、デフラグ元領域40のデフラグ範囲41を未使用範囲42に統合し、当該デフラグ範囲41を「0-0」とする。
デフラグ後、デフラグ部14あるいは書き込み部11は、デフラグ先領域50の使用中フラグを「yes」に変更し、それ以外の領域21すべてについて使用中フラグを「no」にする。
以上のように、本実施形態におけるストレージシステムでは、デフラグ時に、重複率の高いブロックデータと重複率の低いブロックデータとを、別々の場所(デフラグ範囲と長寿命範囲)に格納している。これにより、次回のデフラグ時には、重複率の高いブロックを格納している長寿命範囲をデフラグの対象から除外し、重複率の低いブロックデータを格納しているデフラグ範囲のみをデフラグ対象としている。このため、領域21全体をデフラグする場合と比較して、デフラグ処理に要するI/O負荷を低減させることができる。
また、データ書き込み時には、領域管理表15における使用中フラグを用いることで、書き込み可能な領域を限定している。これにより、他の書き込み可能でない領域についてはデータの書き込みが発生せず、ブロックの削除のみが行なわれる。そのため、時間経過とともに、書き込みが行なわれていない領域は空き領域に変わることが期待できる。
さらに、重複率の低いデータは、時間経過とともに大半が削除され、連続した空き領域に変わることが期待できる。そのため、重複率の低いデータをまとめて一箇所に格納し、しばらく経ってから空き領域として利用することができる。一方で、重複率の高いデータは、以後削除される可能性が低い。そのため、一箇所にまとめて格納しておき、空き領域の断片化の発生を抑制することができる。
<実施形態2>
次に、本発明の第2の実施形態を、図16乃至図20を参照して説明する。図16は、領域管理表の一例を示す図である。図17乃至図19は、ストレージシステムにおけるデフラグ処理の動作を説明するための説明図である。図20は、ストレージシステムの動作を示すフローチャートである。
本実施形態におけるストレージシステムは、上述した実施形態1とほぼ同様の構成をとっているが、デフラグ時におけるブロックデータを格納するデフラグ先領域の構成が異なる。以下、実施形態1と異なる構成について主に説明する。
まず、本実施形態における記憶装置20内の領域21は、図16の領域管理表15に示すように、主に重複率の低いブロックデータを格納する「短寿命領域」と、主に重複率の高いブロックデータを格納するための「長寿命範囲」といった専用領域が設定されている。
そして、図17に示すように、「短寿命領域」は、デフラグ時に、一次デフラグ先領域60(第一領域)として選択される。この「短寿命領域」である一次デフラグ先領域60は、所定の容量を有するデフラグ範囲61、未使用範囲62、長寿命範囲63が、この順に連なって設定された領域である。つまり、未使用範囲62がデフラグ範囲61と長寿命範囲63とに挟まれており、未使用範囲62の先頭(一端側)にデフラグ範囲61が隣接しており、未使用範囲62の末尾(他端側)に長寿命範囲63が隣接している。
また、図17に示すように、「長寿命領域」は、デフラグ時に、二次デフラグ先領域70(第二領域)として選択される。この「長寿命領域」である二次デフラグ先領域70は、所定の容量を有するデフラグ範囲71、未使用範囲72、長寿命範囲73が、この順に連なって設定された領域である。つまり、未使用範囲72がデフラグ範囲71と長寿命範囲73とに挟まれており、未使用範囲72の先頭(一端側)にデフラグ範囲71が隣接しており、未使用範囲72の末尾(他端側)に長寿命範囲73が隣接している。
次に、デフラグ時の動作を説明する。まず、図16に示す領域管理表15より、デフラグ元となるデフラグ元領域40として、デフラグ範囲が空でない領域のうち、最終書き込み時刻が最も古い領域を選択する。また、デフラグ先となるデフラグ先領域60,70は、短寿命用と長寿命用との2種類を選択する。短寿命用の一次デフラグ領域60として、特性が短寿命の領域のうち未使用範囲が最大である領域を選択する。長寿命用の二次デフラグ領域70として、特性が長寿命の領域のうちデフラグ範囲が空である領域を選択する。ここでは、図17に示すように、短寿命用の一次デフラグ領域60と、長寿命用の二次デフラグ領域70と、が選択されたこととする。そして、デフラグ元領域40から一次デフラグ先領域60、二次デフラグ領域70へブロックデータを移動することでデフラグを行う。
まず、デフラグ部14は、デフラグ元領域40内のデフラグ範囲41に含まれるブロックデータを列挙する(ステップS21)。次に、デフラグ部14は、各ブロックデータについて、ブロック管理表16を参照し、該当ブロックデータの重複率を確認する(ステップS22)。
そして、デフラグ部14は、該当ブロックデータの重複率が一定値未満である場合は(ステップS23:Yes)、図18に示すように、一次デフラグ先領域60の未使用領域62の先頭にブロックデータを移動する(ステップS24)。つまり、デフラグ先領域60の未使用範囲62のうち、デフラグ範囲61との隣接箇所にブロックデータを書き込む(図18の網掛け部分参照)。
その後、デフラグ部14は、図19に示すように、一次デフラグ先領域60において、書き込んだブロックデータのサイズ分だけデフラグ範囲61の末尾を拡大すると共に、当該書き込んだブロックデータのサイズ分だけ未使用範囲62の先頭を縮小する。換言すると、未使用範囲62の先頭側に位置するデフラグ範囲61との隣接箇所から連続してブロックデータが格納された範囲(図18の網掛け部分)と、デフラグ範囲(図18の符号61)と、を連結した範囲を、新たなデフラグ範囲(図19の符号61)とする。これにより、一次デフラグ先領域60の新たなデフラグ範囲61は、後にデフラグ対象となる。そして、領域管理表15における一次デフラグ先領域60の最終書込時刻を更新する。
また、デフラグ部14は、該当ブロックデータの重複率が一定値以上である場合は(ステップS23:No)、図18に示すように、二次デフラグ先領域70の未使用領域72の末尾にブロックデータを移動する(ステップS25)。つまり、二次デフラグ先領域70の未使用範囲72のうち、長寿命範囲73との隣接箇所にブロックデータを書き込む(図18の網掛け部分参照)。
その後、デフラグ部14は、図19に示すように、二次デフラグ先領域70において、書き込んだブロックデータのサイズ分だけ長寿命範囲73の先頭を拡大すると共に、当該書き込んだブロックデータのサイズ分だけ未使用範囲72の末尾を縮小する。換言すると、未使用範囲72の末尾側に位置する長寿命範囲73との隣接箇所から連続してブロックデータが格納された範囲(図18の網掛け部分)と、長寿命範囲(図18の符号73)と、を連結した範囲を、新たな長寿命範囲(図19の符号73)とする。
上述したデフラグ処理により、デフラグ元領域40のデフラグ範囲41内のブロックデータの重複率が「0」となった場合、ブロック管理表16の該当する行を削除することで、該当ブロックデータを破棄する。この時点で、一次デフラグ先領域60の未使用範囲62が空になった場合、デフラグを中断し、二次デフラグ先領域70の未使用範囲72が空になった場合、他の特性が超寿命となっている領域を選びなおし続行する。また、ブロック管理表16の該当するハッシュ値をもつ行について、領域番号と物理アドレスを、移動先を指し示すように更新する。これらの処理がすべて完了した時点で、デフラグ元領域40のデフラグ範囲41を未使用範囲42に統合し、当該デフラグ範囲41を「0-0」とする。
デフラグ後、デフラグ部14あるいは書き込み部11は、一次デフラグ先領域60の使用中フラグを「yes」に変更し、それ以外の領域21すべてについて使用中フラグを「no」にする。
以上のように、重複率に応じてブロックデータを格納するデフラグ先として、「短寿命領域」と「長寿命範囲」といった専用領域を設定することで、デフラグ時におけるデフラグ先領域の確保が容易になり、デフラグ処理を実行する手段の実装が簡潔になる。
ここで、上記記憶装置20として、データのアクセス速度、特に、読み出し速度が異なる2種類の装置を用いてもよい。例えば、記憶装置20は、図21に示すように、ハードディスクドライブといった一次記憶装置20Aと、当該一次記憶装置20Aよりもデータのアクセスが高速なSSD(Solid State Drive)といった二次記憶装置20Bと、を備える。そして、一次記憶装置20A内の領域21は、主に重複率の低いブロックデータを格納する上記一次デフラグ先領域60として使用し、二次記憶装置20B内の領域21は、主に重複率の高いブロックデータを格納する上記二次デフラグ先領域70として使用する。
これにより、重複率の高いブロックデータは高頻度で参照されることとなるが、かかるブロックデータがデフラグ処理により集約される上記二次デフラグ先領域70を、読み出し速度が高速な二次記憶装置20Bに設けることで、読み込み性能を改善することができる。
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるストレージシステム(図22参照)、プログラム、デフラグ方法の構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
(付記1)
記憶対象データを記憶装置120に格納すると共に、当該記憶装置に既に記憶されている前記記憶対象データと同一のデータ内容の他の記憶対象データを前記記憶装置に格納する場合に、当該記憶装置に既に記憶されている前記記憶対象データを前記他の記憶対象データとして参照させるデータ格納制御部111と、
前記記憶装置の所定の領域内においてデフラグ範囲とされた箇所に格納された前記記憶対象データを、前記記憶装置の他の領域内に格納し直すデフラグ処理部112と、を備え、
前記データ格納制御部111は、前記記憶装置に記憶されている前記記憶対象データ毎に、当該記憶対象データが他の記憶対象データとして参照されている数である参照数を記憶し、
前記デフラグ処理部112は、前記記憶対象データの参照数に応じて当該記憶対象データを前記記憶装置の他の領域内において後にデフラグ範囲となる箇所に格納する、
ストレージシステム100。
(付記2)
付記1に記載のストレージシステムであって、
前記デフラグ処理部は、前記参照数が予め設定された閾値未満である前記記憶対象データを、前記記憶装置の他の領域内において後にデフラグ範囲となる箇所に格納し、前記参照数が予め設定された閾値以上である前記記憶対象データを、前記記憶装置の他の領域内において後に非デフラグ範囲となる箇所に格納する、
ストレージシステム。
(付記3)
付記2に記載のストレージシステムであって、
前記記憶装置の他の領域は、予め設定されたデフラグ範囲と、データが未格納な範囲である未使用範囲と、が隣接して形成されており、
前記デフラグ処理部は、前記参照数が閾値未満である前記記憶対象データを、前記記憶装置の他の領域における前記未使用範囲内であり前記デフラグ範囲との隣接箇所からデータが連続して位置する箇所に格納し、前記未使用範囲内における前記デフラグ範囲との隣接箇所から連続して前記記憶対象データが格納された範囲と前記デフラグ範囲とを連結した範囲を新たなデフラグ範囲とする、
ストレージシステム。
(付記4)
付記3に記載のストレージシステムであって、
前記記憶装置の他の領域は、予め設定された非デフラグ範囲と、データが未格納な範囲である未使用範囲と、が隣接して形成されており、
前記デフラグ処理部は、前記参照数が閾値以上である前記記憶対象データを、前記記憶装置の他の領域における前記未使用範囲であり前記非デフラグ範囲との隣接箇所からデータが連続して位置する箇所に格納し、前記未使用範囲内における前記非デフラグ範囲との隣接箇所から連続して前記記憶対象データが格納された範囲と前記非デフラグ範囲とを連結した範囲を新たな非デフラグ範囲とする、
ストレージシステム。
(付記5)
付記2に記載のストレージシステムであって、
前記記憶装置の他の領域は、予め設定されたデフラグ範囲にデータが未格納な範囲である未使用範囲の一端側が隣接すると共に、当該未使用範囲の他端側が予め設定された非デフラグ範囲に隣接し、当該未使用範囲がデフラグ範囲と非デフラグ範囲とに挟まれて形成されており、
前記デフラグ処理部は、前記参照数が閾値未満である前記記憶対象データを、前記記憶装置の他の領域における前記未使用範囲内であり前記デフラグ範囲との隣接箇所からデータが連続して位置する箇所に格納し、前記未使用範囲内における前記デフラグ範囲との隣接箇所から連続して前記記憶対象データが格納された範囲と前記デフラグ範囲とを連結した範囲を新たなデフラグ範囲とし、前記参照数が閾値以上である前記記憶対象データを、前記記憶装置の他の領域における前記未使用範囲であり前記非デフラグ範囲との隣接箇所からデータが連続して位置する箇所に格納し、前記未使用範囲内における前記非デフラグ範囲との隣接箇所から連続して前記記憶対象データが格納された範囲と前記非デフラグ範囲とを連結した範囲を新たな非デフラグ範囲とする、
ストレージシステム。
(付記6)
付記1乃至5のいずれかに記載のストレージシステムであって、
前記記憶装置の所定の領域は、予め設定されたデフラグ範囲と、データが未格納な範囲である未使用範囲と、が隣接して形成されており、
前記データ格納制御部は、前記記憶対象データを新たに前記記憶装置に格納する際に、前記記憶装置の所定の領域における前記未使用範囲内であり前記デフラグ範囲との隣接箇所からデータが連続して位置する箇所に格納し、前記未使用範囲内における前記デフラグ範囲との隣接箇所から連続して前記記憶対象データが格納された範囲と前記デフラグ範囲とを連結した範囲を新たなデフラグ範囲とする、
ストレージシステム。
(付記7)
付記4に記載のストレージシステムであって、
前記記憶装置の他の領域は、前記デフラグ範囲と前記未使用範囲とが隣接して形成された第一領域と、当該第一領域とは異なり前記非デフラグ範囲と前記未使用範囲とが隣接して形成された第二領域と、を有する、
ストレージシステム。
(付記8)
付記7に記載のストレージシステムであって、
前記第一領域は、所定の記憶装置に形成されており、
前記第二領域は、前記所定の記憶装置よりもデータ読み出し処理が高速な他の記憶装置に形成されている、
ストレージシステム。
(付記9)
情報処理装置に、
記憶対象データを記憶装置に格納すると共に、当該記憶装置に既に記憶されている前記記憶対象データと同一のデータ内容の他の記憶対象データを前記記憶装置に格納する場合に、当該記憶装置に既に記憶されている前記記憶対象データを前記他の記憶対象データとして参照させるデータ格納制御部と、
前記記憶装置の所定の領域内においてデフラグ範囲とされた箇所に格納された前記記憶対象データを、前記記憶装置の他の領域内に格納し直すデフラグ処理部と、を実現させると共に、
前記データ格納制御部は、前記記憶装置に記憶されている前記記憶対象データ毎に、当該記憶対象データが他の記憶対象データとして参照されている数である参照数を記憶し、
前記デフラグ処理部は、前記記憶対象データの参照数に応じて当該記憶対象データを前記記憶装置の他の領域内において後にデフラグ範囲となる箇所に格納する、
ことを実現させるためのプログラム。
(付記9−2)
付記9に記載のプログラムであって、
前記デフラグ処理部は、前記参照数が予め設定された閾値未満である前記記憶対象データを、前記記憶装置の他の領域内において後にデフラグ範囲となる箇所に格納し、前記参照数が予め設定された閾値以上である前記記憶対象データを、前記記憶装置の他の領域内において後に非デフラグ範囲となる箇所に格納する、
プログラム。
(付記10)
記憶対象データを記憶装置に格納すると共に、当該記憶装置に既に記憶されている前記記憶対象データと同一のデータ内容の他の記憶対象データを前記記憶装置に格納する場合に、当該記憶装置に既に記憶されている前記記憶対象データを前記他の記憶対象データとして参照させてデータ格納制御を行うと共に、前記記憶装置に記憶されている前記記憶対象データ毎に、当該記憶対象データが他の記憶対象データとして参照されている数である参照数を記憶し、
前記記憶装置の所定の領域内においてデフラグ範囲とされた箇所に格納された前記記憶対象データを、前記記憶装置の他の領域内に格納し直すデフラグ処理を実行し、
前記デフラグ処理時に、前記記憶対象データの参照数に応じて当該記憶対象データを前記記憶装置の他の領域内において後にデフラグ範囲となる箇所に格納する、
デフラグ方法。
(付記10−2)
付記10に記載のデフラグ方法であって、
前記デフラグ処理時に、前記参照数が予め設定された閾値未満である前記記憶対象データを、前記記憶装置の他の領域内において後にデフラグ範囲となる箇所に格納し、前記参照数が予め設定された閾値以上である前記記憶対象データを、前記記憶装置の他の領域内において後に非デフラグ範囲となる箇所に格納する、
デフラグ方法。
なお、上述したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されている。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
1 ストレージシステム
2 アクセラレータノード
3 ストレージノード
4 バックアップシステム
5 バックアップ対象装置
11 書き込み部
12 読み出し部
13 削除部
14 デフラグ部
15 領域管理表
16 ブロック管理表
17 ファイル管理表
20 記憶装置
20A 一次記憶装置
20B 二次記憶装置
21 領域
30 書き込み領域
40 デフラグ元領域
50 デフラグ先領域
60 一次デフラグ領域
70 二次デフラグ領域
31,41,51,61,71 デフラグ範囲
32,42,52,62,72 未使用範囲
33,43,53,63,73 長寿命範囲
100 ストレージシステム
111 データ格納制御部
112 デフラグ処理部
120 記憶装置

Claims (10)

  1. 記憶対象データを記憶装置に格納すると共に、当該記憶装置に既に記憶されている前記記憶対象データと同一のデータ内容の他の記憶対象データを前記記憶装置に格納する場合に、当該記憶装置に既に記憶されている前記記憶対象データを前記他の記憶対象データとして参照させるデータ格納制御部と、
    前記記憶装置の所定の領域内においてデフラグ範囲とされた箇所に格納された前記記憶対象データを、前記記憶装置の他の領域内に格納し直すデフラグ処理部と、を備え、
    前記データ格納制御部は、前記記憶装置に記憶されている前記記憶対象データ毎に、当該記憶対象データが他の記憶対象データとして参照されている数である参照数を記憶し、
    前記デフラグ処理部は、前記記憶対象データの参照数に応じて当該記憶対象データを前記記憶装置の他の領域内において後にデフラグ範囲となる箇所に格納する、
    ストレージシステム。
  2. 請求項1に記載のストレージシステムであって、
    前記デフラグ処理部は、前記参照数が予め設定された閾値未満である前記記憶対象データを、前記記憶装置の他の領域内において後にデフラグ範囲となる箇所に格納し、前記参照数が予め設定された閾値以上である前記記憶対象データを、前記記憶装置の他の領域内において後に非デフラグ範囲となる箇所に格納する、
    ストレージシステム。
  3. 請求項2に記載のストレージシステムであって、
    前記記憶装置の他の領域は、予め設定されたデフラグ範囲と、データが未格納な範囲である未使用範囲と、が隣接して形成されており、
    前記デフラグ処理部は、前記参照数が閾値未満である前記記憶対象データを、前記記憶装置の他の領域における前記未使用範囲内であり前記デフラグ範囲との隣接箇所からデータが連続して位置する箇所に格納し、前記未使用範囲内における前記デフラグ範囲との隣接箇所から連続して前記記憶対象データが格納された範囲と前記デフラグ範囲とを連結した範囲を新たなデフラグ範囲とする、
    ストレージシステム。
  4. 請求項3に記載のストレージシステムであって、
    前記記憶装置の他の領域は、予め設定された非デフラグ範囲と、データが未格納な範囲である未使用範囲と、が隣接して形成されており、
    前記デフラグ処理部は、前記参照数が閾値以上である前記記憶対象データを、前記記憶装置の他の領域における前記未使用範囲であり前記非デフラグ範囲との隣接箇所からデータが連続して位置する箇所に格納し、前記未使用範囲内における前記非デフラグ範囲との隣接箇所から連続して前記記憶対象データが格納された範囲と前記非デフラグ範囲とを連結した範囲を新たな非デフラグ範囲とする、
    ストレージシステム。
  5. 請求項2に記載のストレージシステムであって、
    前記記憶装置の他の領域は、予め設定されたデフラグ範囲にデータが未格納な範囲である未使用範囲の一端側が隣接すると共に、当該未使用範囲の他端側が予め設定された非デフラグ範囲に隣接し、当該未使用範囲がデフラグ範囲と非デフラグ範囲とに挟まれて形成されており、
    前記デフラグ処理部は、前記参照数が閾値未満である前記記憶対象データを、前記記憶装置の他の領域における前記未使用範囲内であり前記デフラグ範囲との隣接箇所からデータが連続して位置する箇所に格納し、前記未使用範囲内における前記デフラグ範囲との隣接箇所から連続して前記記憶対象データが格納された範囲と前記デフラグ範囲とを連結した範囲を新たなデフラグ範囲とし、前記参照数が閾値以上である前記記憶対象データを、前記記憶装置の他の領域における前記未使用範囲であり前記非デフラグ範囲との隣接箇所からデータが連続して位置する箇所に格納し、前記未使用範囲内における前記非デフラグ範囲との隣接箇所から連続して前記記憶対象データが格納された範囲と前記非デフラグ範囲とを連結した範囲を新たな非デフラグ範囲とする、
    ストレージシステム。
  6. 請求項1乃至5のいずれかに記載のストレージシステムであって、
    前記記憶装置の所定の領域は、予め設定されたデフラグ範囲と、データが未格納な範囲である未使用範囲と、が隣接して形成されており、
    前記データ格納制御部は、前記記憶対象データを新たに前記記憶装置に格納する際に、前記記憶装置の所定の領域における前記未使用範囲内であり前記デフラグ範囲との隣接箇所からデータが連続して位置する箇所に格納し、前記未使用範囲内における前記デフラグ範囲との隣接箇所から連続して前記記憶対象データが格納された範囲と前記デフラグ範囲とを連結した範囲を新たなデフラグ範囲とする、
    ストレージシステム。
  7. 請求項4に記載のストレージシステムであって、
    前記記憶装置の他の領域は、前記デフラグ範囲と前記未使用範囲とが隣接して形成された第一領域と、当該第一領域とは異なり前記非デフラグ範囲と前記未使用範囲とが隣接して形成された第二領域と、を有する、
    ストレージシステム。
  8. 請求項7に記載のストレージシステムであって、
    前記第一領域は、所定の記憶装置に形成されており、
    前記第二領域は、前記所定の記憶装置よりもデータ読み出し処理が高速な他の記憶装置に形成されている、
    ストレージシステム。
  9. 情報処理装置に、
    記憶対象データを記憶装置に格納すると共に、当該記憶装置に既に記憶されている前記記憶対象データと同一のデータ内容の他の記憶対象データを前記記憶装置に格納する場合に、当該記憶装置に既に記憶されている前記記憶対象データを前記他の記憶対象データとして参照させるデータ格納制御部と、
    前記記憶装置の所定の領域内においてデフラグ範囲とされた箇所に格納された前記記憶対象データを、前記記憶装置の他の領域内に格納し直すデフラグ処理部と、を実現させると共に、
    前記データ格納制御部は、前記記憶装置に記憶されている前記記憶対象データ毎に、当該記憶対象データが他の記憶対象データとして参照されている数である参照数を記憶し、
    前記デフラグ処理部は、前記記憶対象データの参照数に応じて当該記憶対象データを前記記憶装置の他の領域内において後にデフラグ範囲となる箇所に格納する、
    ことを実現させるためのプログラム。
  10. 記憶対象データを記憶装置に格納すると共に、当該記憶装置に既に記憶されている前記記憶対象データと同一のデータ内容の他の記憶対象データを前記記憶装置に格納する場合に、当該記憶装置に既に記憶されている前記記憶対象データを前記他の記憶対象データとして参照させてデータ格納制御を行うと共に、前記記憶装置に記憶されている前記記憶対象データ毎に、当該記憶対象データが他の記憶対象データとして参照されている数である参照数を記憶し、
    前記記憶装置の所定の領域内においてデフラグ範囲とされた箇所に格納された前記記憶対象データを、前記記憶装置の他の領域内に格納し直すデフラグ処理を実行し、
    前記デフラグ処理時に、前記記憶対象データの参照数に応じて当該記憶対象データを前記記憶装置の他の領域内において後にデフラグ範囲となる箇所に格納する、
    デフラグ方法。
JP2013040842A 2013-03-01 2013-03-01 ストレージシステム Active JP6094267B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013040842A JP6094267B2 (ja) 2013-03-01 2013-03-01 ストレージシステム
US14/177,783 US9367256B2 (en) 2013-03-01 2014-02-11 Storage system having defragmentation processing function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013040842A JP6094267B2 (ja) 2013-03-01 2013-03-01 ストレージシステム

Publications (2)

Publication Number Publication Date
JP2014170304A true JP2014170304A (ja) 2014-09-18
JP6094267B2 JP6094267B2 (ja) 2017-03-15

Family

ID=51421624

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013040842A Active JP6094267B2 (ja) 2013-03-01 2013-03-01 ストレージシステム

Country Status (2)

Country Link
US (1) US9367256B2 (ja)
JP (1) JP6094267B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017146722A (ja) * 2016-02-16 2017-08-24 日本電気株式会社 ストレージ装置
JP2017188096A (ja) * 2016-03-31 2017-10-12 三星電子株式会社Samsung Electronics Co.,Ltd. 重複除去メモリモジュール及びそのメモリ重複除去方法
JP2018106545A (ja) * 2016-12-27 2018-07-05 富士通株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10296229B2 (en) 2015-06-18 2019-05-21 Hitachi, Ltd. Storage apparatus
CN108196955A (zh) * 2017-12-28 2018-06-22 广州酷狗计算机科技有限公司 一种点读笔的内容导入方法及装置
US11232070B2 (en) * 2019-06-24 2022-01-25 Western Digital Technologies, Inc. Metadata compaction in a distributed storage system
US11157186B2 (en) 2019-06-24 2021-10-26 Western Digital Technologies, Inc. Distributed object storage system with dynamic spreading
US20220414062A1 (en) * 2021-06-28 2022-12-29 EMC IP Holding Company LLC Stripe defragmentation and rebuild based on stripe access frequency
CN114816232B (zh) * 2021-07-27 2022-11-08 云南省地质环境监测院(云南省环境地质研究院) 一种高效存取地质灾害大数据的方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009205201A (ja) * 2008-02-26 2009-09-10 Kddi Corp 重複排除技術を用いたデータバックアップ方法、記憶制御通信装置及びプログラム
JP2010218194A (ja) * 2009-03-17 2010-09-30 Nec Corp ストレージシステム
JP2011170665A (ja) * 2010-02-19 2011-09-01 Nec Corp ストレージシステム
US20130226881A1 (en) * 2012-02-29 2013-08-29 Netapp. Inc. Fragmentation control for performing deduplication operations

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7444389B2 (en) 2003-12-09 2008-10-28 Emc Corporation Methods and apparatus for generating a content address to indicate data units written to a storage system proximate in time
US8484427B1 (en) * 2006-06-28 2013-07-09 Acronis International Gmbh System and method for efficient backup using hashes
JP2010287049A (ja) 2009-06-11 2010-12-24 Toshiba Corp メモリシステムおよびメモリシステムの管理方法
US20120198152A1 (en) * 2011-02-01 2012-08-02 Drobo, Inc. System, apparatus, and method supporting asymmetrical block-level redundant storage
US8560801B1 (en) * 2011-04-07 2013-10-15 Symantec Corporation Tiering aware data defragmentation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009205201A (ja) * 2008-02-26 2009-09-10 Kddi Corp 重複排除技術を用いたデータバックアップ方法、記憶制御通信装置及びプログラム
JP2010218194A (ja) * 2009-03-17 2010-09-30 Nec Corp ストレージシステム
JP2011170665A (ja) * 2010-02-19 2011-09-01 Nec Corp ストレージシステム
US20130226881A1 (en) * 2012-02-29 2013-08-29 Netapp. Inc. Fragmentation control for performing deduplication operations

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017146722A (ja) * 2016-02-16 2017-08-24 日本電気株式会社 ストレージ装置
JP2017188096A (ja) * 2016-03-31 2017-10-12 三星電子株式会社Samsung Electronics Co.,Ltd. 重複除去メモリモジュール及びそのメモリ重複除去方法
JP2018106545A (ja) * 2016-12-27 2018-07-05 富士通株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム

Also Published As

Publication number Publication date
JP6094267B2 (ja) 2017-03-15
US9367256B2 (en) 2016-06-14
US20140250282A1 (en) 2014-09-04

Similar Documents

Publication Publication Date Title
JP6094267B2 (ja) ストレージシステム
US20230013281A1 (en) Storage space optimization in a system with varying data redundancy schemes
US9208067B2 (en) Storage system and storage control method that compress and store data elements
US9043540B2 (en) Systems and methods for tracking block ownership
US8843445B2 (en) Storage system for storing data in a plurality of storage devices and method for same
US8996799B2 (en) Content storage system with modified cache write policies
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
JP6685334B2 (ja) ストレージ装置
JP6298932B2 (ja) ストレージ装置
US20180307440A1 (en) Storage control apparatus and storage control method
JP2019028954A (ja) ストレージ制御装置、プログラム、及び重複排除方法
US20170351608A1 (en) Host device
EP2669806A1 (en) Storage system
JP2005202942A (ja) 情報記録媒体、データ処理装置及びデータ処理方法
JPWO2011108048A1 (ja) ストレージ装置
US9575679B2 (en) Storage system in which connected data is divided
JP2012208650A (ja) ストレージ装置
JP6281333B2 (ja) ストレージシステム
US9858963B2 (en) Storage device, computer-readable nonvolatile storage medium to store control program of storage device, and control method of storage device
JP6733214B2 (ja) 制御装置、ストレージシステム、制御方法及びプログラム
WO2017212515A1 (ja) ストレージシステム、計算機、およびストレージ制御方法
JP2018173802A (ja) ストレージシステム、データソート方法及びプログラム
JP2019053477A (ja) ファイル制御装置、ファイル制御方法、プログラム
JP6794827B2 (ja) ストレージ管理装置、ストレージシステム、方法およびプログラム
WO2018092288A1 (ja) ストレージ装置及びその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161212

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: 20170117

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170130

R150 Certificate of patent or registration of utility model

Ref document number: 6094267

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150