[go: up one dir, main page]

JP7647078B2 - 情報処理装置、重複除去方法及び重複除去プログラム - Google Patents

情報処理装置、重複除去方法及び重複除去プログラム Download PDF

Info

Publication number
JP7647078B2
JP7647078B2 JP2020203773A JP2020203773A JP7647078B2 JP 7647078 B2 JP7647078 B2 JP 7647078B2 JP 2020203773 A JP2020203773 A JP 2020203773A JP 2020203773 A JP2020203773 A JP 2020203773A JP 7647078 B2 JP7647078 B2 JP 7647078B2
Authority
JP
Japan
Prior art keywords
data
similar
segment
storage device
chunk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020203773A
Other languages
English (en)
Other versions
JP2022091062A (ja
Inventor
駿 五木田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2020203773A priority Critical patent/JP7647078B2/ja
Publication of JP2022091062A publication Critical patent/JP2022091062A/ja
Application granted granted Critical
Publication of JP7647078B2 publication Critical patent/JP7647078B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、情報処理装置、重複除去方法及び重複除去プログラムに関する。
ICT(Information and Communication Technology)インフラストラクチャのアーキテクチャとしてコンポーザブルアーキテクチャが検討されている。コンポーザブルアーキテクチャでは、コンピュートノード(Compute Node)とストレージノード(Storage Node)を仮想化して統合管理をすることが可能であるとともに、コンピュートノードとストレージノードを独立にスケールアウトすることが可能である。コンポーザブルアーキテクチャでは、ストレージノード側はJBOD(Just a Bunch Of Disks)/JBOF(Just a Bunch Of Flash)であり、重複除去などのストレージ機能はコンピュートノード側で実現される。したがって、コンポーザブルアーキテクチャは、安価でかつスケールアウト可能なストレージノードを実現する。
図13は、コンポーザブルアーキテクチャを説明するための図である。図13に示すように、コンピュートノード91とストレージノード92は統合管理される。コンポーザブルアーキテクチャでは、コンピュートノード91のRAM(Random Access Memory)91aは、コンピュート、重複除去、その他ストレージ機能などに使用される。重複除去に使用されるRAM91aの量が多いと、コンピュートノード91で使用されるRAM91aの量が少なくなる。このため、コンポーザブルアーキテクチャでは、RAM使用効率の高い重複除去方式が必要になる。
図14は、重複除去を説明するための図である。図14に示すように、書き込みデータは所定の大きさのチャンクに分割され、チャンクごとにフィンガープリントと呼ばれるハッシュ値が計算される。そして、チャンクの格納場所とフィンガープリントを対応付けるインデックスが参照され、同一のフィンガープリントがある場合には、チャンクは重複しているので、ディスク92aへの書き込みは行われない。一方、同一のフィンガープリントがない場合には、チャンクは重複していないので、ディスクへの書き込みが行われる。なお、ディスク92aは、ストレージノード92に含まれる。また、新規のチャンクがディスク92aへ書き込まれると、チャンクの格納場所とチャンクのフィンガープリントがインデックスに登録される。
図14では、書き込みデータがA、B、C’、Dのチャンクから構成され、A、B、C、Dのフィンガープリントがインデックスに登録されているので、新規のチャンクC’がディスク92aに書き込まれる。
インデックスはRAM91aに記憶されるため、RAM使用効率の高い重複除去を実現しようとすると、インデックスを小さくすることが考えられる。例えば、チャンクサイズが4KB(キロバイト)で10TB(テラバイト)分のユニークデータがあるとし、1チャンク当たり40B(バイト)のメタデータがインデックス用に必要である。すると、インデックスの容量は、40×(10×1012÷(4×103))=1011B=100GBである。
そこで、チャンクを複数まとめたセグメントごとに重複除去を行うことで、インデックスを小さくすることが考えられる。例えば、セグメントサイズを64KBとすると、インデックスの容量を1/16の6.25GBまで減らすことができる。インデックスとして使用されるRAM91aの容量を減らすことで、例えばキャッシュとして使用されるRAM91aの容量を増やすことができ、ストレージノード92へのアクセス性能を向上することができる。
なお、バックアップに関する従来技術として、ファイル単位での差分バックアップの処理負荷を軽減することが可能なストレージ制御装置がある。このストレージ制御装置は、コピーオンライト方式で作成された第1スナップショットに含まれるすべてのファイルを、バックアップ領域にコピーする。その後、このストレージ制御装置は、第2スナップショットを作成する。そして、このストレージ制御装置は、第2スナップショットに含まれるすべてのファイルに関するメタデータが記録された、第2スナップショットにおけるメタデータ領域のうち、第1スナップショットの作成後に更新された領域M1,M2を特定する。このストレージ制御装置は、第1スナップショットの作成後に更新されたデータブロックの位置を管理するための管理情報に基づいて領域M1,M2を特定する。そして、このストレージ制御装置は、領域M1,M2に含まれるメタデータに基づいて、第1スナップショットの作成後に更新されたファイルF1,F2を特定して、バックアップ領域にコピーする。
また、重複除去に関する従来技術として、先にハッシュコード同士を比較することにより、データ同士を比較する対象を絞り込み、重複データを高速に検出する記憶制御装置がある。この記憶制御装置は、ホストから受信されるデータにハッシュコードを設定する。論理ボリュームにはハッシュコード付きのデータが記憶される。そして、この記憶制御装置は、比較対象の各データについて、それぞれのハッシュコード同士を比較する。ハッシュコードが一致する場合、この記憶制御装置は、対象のデータ同士を比較し、重複データであるか否かを判定する。重複データが検出された場合、この記憶制御装置は、重複データを排除する。
米国特許出願公開第2019/0250818号明細書 特開2018-028715号公報 特開2009-251725号公報
セグメントごとに重複除去を行うと重複除去率が低下するという問題がある。図15は、セグメントごとに重複除去を行った場合の重複除去率の低下を説明するための図である。図15に示すように、アプリケーション3がチャンクa、チャンクb、チャンクc、チャンクdから構成されるセグメントAのディスク92aへの書き込みを指示すると、セグメントAのフィンガープリントAが計算され、重複インデックスが参照される。フィンガープリントAは重複インデックスにないので、セグメントAがディスク92aに書き込まれるとともに、フィンガープリントAと格納先が重複インデックスに登録される。
その後、セグメントAのチャンクcがチャンクc’に更新され、アプリケーション3がチャンクa、チャンクb、チャンクc’、チャンクdから構成されるセグメントBのディスク92aへの書き込みを指示する。すると、セグメントBのフィンガープリントBが計算され、重複インデックスが参照される。フィンガープリントBは重複インデックスにないので、セグメントBがディスク92aに書き込まれるとともに、フィンガープリントBと格納先が重複インデックスに登録される。
このように、セグメントBはセグメントAと一部だけが異なるが、セグメントBの全体がディスク92aに書き込まれるため、チャンクa、チャンクb、チャンクdは重複してディスク92aに書き込まれる。
本発明は、1つの側面では、セグメントのように所定数のチャンクをまとめた単位ごとに重複除去を行う場合に、重複除去率を向上させ、ストレージリソースを有効活用することを目的とする。
1つの態様では、情報処理装置は、類似判定部と書き込み部とを有する。前記類似判定部は、記憶装置への第1の大きさの書き込みデータに類似する類似データが前記記憶装置にあるか否かを判定する。前記書き込み部は、前記類似判定部により類似データがあると判定された場合に、前記書き込みデータと前記類似データに基づいて格納データを生成し、生成した格納データを前記記憶装置に書き込む。
1つの側面では、本発明は、重複除去率を向上させ、ストレージリソースを有効活用することができる。
図1は、実施例に係るコンピュートノードによる類似検出を説明するための図である。 図2は、実施例に係るコンピュートノードの構成を示す図である。 図3は、重複インデックスの一例を示す図である。 図4は、類似インデックスの一例を示す図である。 図5は、重複除去用のハッシュ関数と類似判定用のハッシュ関数を説明するための図である。 図6は、論物アドレスマッピング情報の一例を示す図である。 図7は、差分の計算方法を説明するための図である。 図8は、書き込み処理のフローを示すフローチャートである。 図9は、マッピング情報更新処理のフローを示すフローチャートである。 図10は、従来の重複管理と実施例に係る重複管理を比較した図である。 図11は、新セグメントと類似セグメントの排他的論理和を取って圧縮してからディスクに書き込む方法を説明するための図である。 図12は、新セグメントと類似セグメントの排他的論理和を取る場合の論物アドレスマッピング情報の一例を示す図である。 図13は、コンポーザブルアーキテクチャを説明するための図である。 図14は、重複除去を説明するための図である。 図15は、セグメントごとに重複除去を行った場合の重複除去率の低下を説明するための図である。
以下に、本願の開示する情報処理装置、重複除去方法及び重複除去プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例に係るコンピュートノード(情報処理装置)による類似検出について説明する。図1は、実施例に係るコンピュートノードによる類似検出を説明するための図である。なお、図1では、チャンクa、チャンクb、チャンクc、チャンクdから構成されるセグメントAがディスク2aに既に書き込まれているとする。図1に示すように、アプリケーション3がチャンクa、チャンクb、チャンクc’、チャンクdから構成されるセグメントBのディスク2aへの書き込みを指示する(t1)。
すると、実施例に係るコンピュートノードは、重複除去用のフィンガープリントBを計算し、重複インデックスを参照する。そして、フィンガープリントBは重複インデックスにないので、実施例に係るコンピュートノードは、類似検出用のフィンガープリントを計算し、類似インデックスを参照する。ここで、類似検出用のフィンガープリントとは、類似したセグメントに関して値が同じになるフィンガープリントである。セグメントBは、セグメントAと類似するので、セグメントBの類似検出用のフィンガープリントとしてフィンガープリントAが計算される。
そして、実施例に係るコンピュートノードは、セグメントBはセグメントAと類似検出用のフィンガープリントが同じであるので、セグメントBに似たセグメントAがあることを特定する(t2)。そして、実施例に係るコンピュートノードは、ディスク2aから似たセグメントAを読み出し、似たセグメントAとの差分を計算し、差分をディスク2aへ書き込む(t3)。図1では、差分はチャンクc’であるので、チャンクc’がディスク2aへ書き込まれる。
このように、実施例に係るコンピュートノードは、類似インデックスを用いて類似する既存の類似セグメントを特定し、特定した類似セグメントとの差分をディスク2aへ書き込むので、重複除去率の低下を防ぐことができる。
次に、実施例に係るコンピュートノードの構成について説明する。図2は、実施例に係るコンピュートノードの構成を示す図である。図2に示すように、実施例に係るコンピュートノード1は、RAM1aと、CPU(Central Processing Unit)1bと、I/F1cと、ODD(Optical Disk Drive)1dと、LAN(Local Area Network)インタフェース1eとを有する。
RAM1aは、プログラムやプログラムの実行に必要なデータなどを記憶するメモリである。RAM1aは、重複インデックス11と、類似インデックス12と、論物アドレスマッピング情報13と、キャッシュデータ14とを記憶する。
重複インデックス11は、セグメントごとの重複除去に用いられるインデックスである。図3は、重複インデックス11の一例を示す図である。図3に示すように、重複インデックス11は、セグメントとフィンガープリントと構成チャンク物理アドレスとを対応付ける。セグメントは、重複除去が行われる単位データである。フィンガープリントは、セグメントのハッシュ値である。構成チャンク物理アドレスは、セグメントを構成するチャンクが格納されるディスク2aの物理アドレスである。
例えば、チャンクa、チャンクb、チャンクc、チャンクdから構成されるセグメントのフィンガープリントは「0xdeadbeef」である。ここで、「0x」は16進数を表す。また、チャンクa、チャンクb、チャンクc及びチャンクdの物理アドレスは、それぞれ「200」、「201」、「202」及び「203」である。
チャンクa、チャンクb、チャンクc、チャンクdから構成されるセグメントがある状態でチャンクa、チャンクb、チャンクc’、チャンクdから構成されるセグメントが書き込まれると、チャンクc’だけが書き込まれる。チャンクa、チャンクb及びチャンクdについては、すでに存在する物理アドレスが参照される。
類似インデックス12は、類似するセグメントの特定に用いられるインデックスである。図4は、類似インデックス12の一例を示す図である。図4に示すように、類似インデックス12は、セグメントとフィンガープリントと構成チャンク物理アドレスとを対応付ける。セグメントは、類似判定が行われる単位データである。フィンガープリントは、セグメントのハッシュ値である。構成チャンク物理アドレスは、セグメントを構成するチャンクが格納されるディスク2aの物理アドレスである。
例えば、チャンクa、チャンクb、チャンクc、チャンクdから構成されるセグメントのフィンガープリントは「0xbaadf00d」である。また、チャンクa、チャンクb、チャンクc及びチャンクdの物理アドレスは、それぞれ「200」、「201」、「202」及び「203」である。
図5は、重複除去用のハッシュ関数と類似判定用のハッシュ関数を説明するための図である。図5(a)は、重複除去用のハッシュ関数が取る値を示し、図5(b)は、類似判定用のハッシュ関数が取る値を示す。図5において、A、Bは類似データである。図5(a)に示すように、重複除去用には、生成される値に偏りがなく、似たデータの入力に対して近い値が生成されず、衝突(異なる入力に対して同じ値を出力)が起きづらいハッシュ関数が使用される。例えば、SHA-1関数などが重複除去用のハッシュ関数として用いられる。図5(a)では、AとBのハッシュ値はまったく異なる。
一方、図5(b)に示すように、類似判定用には、類似する入力に対しては同じ値となり、そうでない場合は異なる値を取るハッシュ関数が使用される。類似の定義例としては、ハミング距離などがある。例えば、LSH(Locality Sensitive Hashing)の一種であるminHashなどが類似判定用のハッシュ関数として用いられる。図5(b)では、AとBのハッシュ値は同じになる。
図2に戻って、論物アドレスマッピング情報13は、チャンクについて論理アドレスと物理アドレスを対応付ける情報である。図6は、論物アドレスマッピング情報13の一例を示す図である。図6に示すように、論物アドレスマッピング情報13は、チャンクと論理アドレスと物理アドレスとを対応付ける。チャンクは、論理アドレスと物理アドレスが対応付けられるデータである。論理アドレスは、アプリケーション3においてチャンクが格納されるアドレスである。物理アドレスは、ディスク2aにおいてチャンクが格納されるアドレスである。例えば、チャンクaの論理アドレスは「100」であり、物理アドレスは「200」である。
キャッシュデータ14は、ディスク2aが記憶する一部のデータである。キャッシュデータ14は、ディスク2aが記憶するデータへのアクセスを高速化するために用いられる。
CPU1bは、RAM1aに記憶された重複除去プログラムを実行することにより、重複判定部21と、類似判定部22と、差分処理部23と、更新部24とを実現する。重複除去プログラムは、コンピュートノード1により読み出し可能な記録媒体の一例であるDVDに記憶され、ODD1dによってDVDから読み出されてディスク2aにインストールされる。あるいは、重複除去プログラムは、LANインタフェース1eを介して接続されたコンピュータシステムのデータベース等に記憶され、これらのデータベースから読み出されてディスク2aにインストールされる。そして、インストールされた重複除去プログラムは、ディスク2aからRAM1aに読み出されてCPU1bによって実行される。
重複判定部21は、新セグメントのフィンガープリントを重複除去用のハッシュ関数を用いて計算し、新セグメントがディスク2aが記憶するいずれかのセグメントと重複するか否かを重複インデックス11を用いて判定する。ここで、新セグメントは、新たにディスク2aに書き込まれるセグメントである。
類似判定部22は、新セグメントのフィンガープリントを類似判定用のハッシュ関数を用いて計算し、新セグメントがディスク2aが記憶するいずれかのセグメントと類似するか否かを類似インデックス12を用いて判定する。
差分処理部23は、新セグメントと類似セグメントの間の差分を計算し、計算した差分をディスク2aに書き込む。差分処理部23は、セグメントをチャンクに分解し、チャンク単位で一致するか否かを判定する。そして、差分処理部23は、新セグメントを構成するチャンクのうち、既存のチャンクと一致しないチャンクを差分として特定する。差分処理部23は、チャンクが一致するか否かをハッシュ値を用いて判定する。差分処理部23は、例えば、ハッシュ関数として、SHA-1、md5などを用いる。なお、差分処理部23は、チャンクが一致するか否かをハッシュ値を用いないで判定してもよい。また、差分処理部23は、特許請求の範囲の書込み部に対応する。
図7は、差分の計算方法を説明するための図である。図7に示すように、新セグメントがチャンクa、チャンクb、チャンクc’、チャンクdから構成され、書き込み済みセグメントがチャンクa、チャンクb、チャンクc、チャンクdから構成される場合、差分処理部23は、チャンクc’を差分として特定する。
更新部24は、新セグメントが重複セグメントである場合には、新セグメントを構成するチャンクの論理アドレスと、書き込み済みの対応するチャンクの物理アドレスを論物アドレスマッピング情報13に追記する。
また、更新部24は、新セグメントが類似セグメントである場合には、以下のように論物アドレスマッピング情報13を更新する。すなわち、更新部24は、新セグメントを構成するチャンクの論理アドレスと、書き込み済みの対応するチャンク又は新たにディスク2aに書き込まれたチャンクの物理アドレスを論物アドレスマッピング情報13に追記する。
また、更新部24は、新セグメントが重複セグメントでもなく類似セグメントでもない新規セグメントとして書き込まれた場合には、書き込まれたチャンクの論理アドレスと、書き込まれたチャンクの物理アドレスを論物アドレスマッピング情報13に追記する。
また、更新部24は、新セグメントが重複セグメント以外のセグメントである場合には、重複インデックス11及び類似インデックス12を更新する。
I/F1cは、コンピュートノード1をディスク2aに接続するインタフェースである。ディスク2aは、論物アドレスマッピング情報31とデータ32を記憶する。論物アドレスマッピング情報31は、RAM1aに読み出されて論物アドレスマッピング情報13として記憶される。更新された論物アドレスマッピング情報13は、論物アドレスマッピング情報31としてディスク2aに格納される。
次に、書き込み処理のフローについて説明する。図8は、書き込み処理のフローを示すフローチャートである。図8に示すように、コンピュートノード1は、入力チャンクをライトバッファに貯め(ステップS1)、入力チャンクが一定サイズ(セグメントサイズ)貯まったらセグメント化する(ステップS2)。
そして、コンピュートノード1は、セグメント単位で重複除去用ハッシュ値及び類似判定用ハッシュ値を計算し(ステップS3)、重複除去用ハッシュ値を用いて重複インデックス11を検索して、重複セグメントがあるか否かを判定する(ステップS4)。そして、重複セグメントがある場合には、コンピュートノード1は、ステップS8へ進む。
一方、重複セグメントがない場合には、コンピュートノード1は、類似セグメントがあるか否かを判定し(ステップS5)、類似セグメントがない場合には、新規セグメントとして書き込む(ステップS6)。一方、類似セグメントがある場合には、コンピュートノード1は、類似セグメントとの差分を取って差分のみ書き込む(ステップS7)。
そして、コンピュートノード1は、論物アドレスマッピング情報13などを更新するマッピング情報更新処理を行う(ステップS8)。
このように、コンピュートノード1は、類似セグメントがある場合に類似セグメントとの差分を取って差分のみをディスク2aに書き込むので、重複除去率の低下を防ぐことができる。
図9は、マッピング情報更新処理のフローを示すフローチャートである。図9に示すように、コンピュートノード1は、新セグメントが重複セグメントであるか否かを判定する(ステップS11)。そして、重複セグメントである場合には、コンピュートノード1は、重複セグメントを構成するチャンクの論理アドレスと既存の対応するチャンクの物理アドレスを論物アドレスマッピング情報13に追記する(ステップS16)。
一方、重複セグメントでない場合には、コンピュートノード1は、重複インデックス11及び類似インデックス12を更新し(ステップS12)、類似セグメントとして差分のみ書き込みを行ったか否かを判定する(ステップS13)。そして、差分のみの書き込みを行っていない場合には、コンピュートノード1は、書き込まれたチャンクの論理アドレスと、書き込まれたチャンクの物理アドレスを論物アドレスマッピング情報13に追記する(ステップS14)。
一方、差分のみ書き込みを行った場合には、コンピュートノード1は、書き込まれたチャンクの論理アドレスと、既存の対応するチャンク又は新たに書き込まれたチャンクの物理アドレスを論物アドレスマッピング情報13に追記する(ステップS15)。
このように、コンピュートノード1は、セグメント単位での重複インデックス11及び類似インデックス12と、チャンク単位での論物アドレスマッピング情報13を用いることで、ディスク2aへの書き込みを適切に管理することができる。
図10は、従来の重複管理と実施例に係る重複管理を比較した図である。図10(a)は従来の重複管理を示し、図10(b)は実施例に係る重複管理を示す。図10に示すように、アプリケーション3がセグメント内の一部のチャンクを更新した場合、従来は更新前のセグメントと更新後のセグメントの両方がディスク2aに格納されるが、実施例では、更新前のセグメントと差分のみ格納される。
図10において、チャンクa、チャンクb、チャンクc、チャンクdのうちチャンクcがチャンクc’に更新される。すると、従来は、チャンクa、チャンクb、チャンクc、チャンクdから構成されるセグメントと、チャンクa、チャンクb、チャンクc’、チャンクdから構成されるセグメントがディスク2aに格納される。一方、実施例では、チャンクa、チャンクb、チャンクc、チャンクdから構成されるセグメントとチャンクc’がディスク2aに格納される。
したがって、従来の重複管理と比較して、実施例に係る重複管理は、重複除去率を向上することができる。実施例に係る重複管理は、部分更新が多いワークロードに対して、より効果的である。
上述してきたように、実施例では、類似判定部22が、新たにディスク2aに書き込まれるセグメントのフィンガープリントを類似判定用のハッシュ関数を用いて計算する。そして、類似判定部22は、新たにディスク2aに書き込まれるセグメントがディスク2aが記憶するいずれかのセグメントと類似するか否かを、計算したフィンガープリントと類似インデックス12を用いて判定する。そして、新たにディスク2aに書き込まれるセグメントに類似するセグメントがあると類似判定部22により判定された場合に、差分処理部23が、類似するセグメントとの差分を計算し、計算した差分をディスク2aに書き込む。このため、コンピュートノード1は、セグメント単位で重複管理を行うことで重複インデックス11のサイズを小さくするとともに、重複除去率の低下を防ぐことができる。したがって、コンピュートノード1は、ストレージリソースを有効活用することができる。
また、実施例では、セグメントは複数のチャンクから構成され、差分処理部23は、チャンクごとに重複データがあるか否かを判定し、チャンクごとの重複データの有無に基づいて差分を計算するので、差分を適切に計算することができる。
また、実施例では、類似インデックス12が、セグメントとフィンガープリントと構成チャンク物理アドレスとを対応付け、論物アドレスマッピング情報13が、チャンクについて論理アドレスと物理アドレスを対応付ける。そして、更新部24が、新セグメントと類似する類似セグメントがある場合に、類似インデックス12と論物アドレスマッピング情報13を更新する。したがって、コンピュートノード1は、類似セグメントを適切に管理することができる。
なお、差分処理部23は、チャンク単位の比較により差分を取る代わりに、新セグメントと類似セグメントの排他的論理和を取って圧縮してからディスク2aに書き込んでもよい。図11は、新セグメントと類似セグメントの排他的論理和を取って圧縮してからディスク2aに書き込む方法を説明するための図である。図11(a)は書き込み時を示し、図11(b)は読み出し時を示す。
図11(a)に示すように、書き込み時は、差分処理部23は、新セグメントと類似セグメントの排他的論理和を取り、圧縮してディスク2aに書き込む。図11(a)では、「xxyyzz」が圧縮済みデータである。そして、読み出し時は、コンピュートノード1は、圧縮済みデータを展開し、類似セグメントと排他的論理和を取って読み出しデータとする。
新セグメントと類似セグメントの排他的論理和を取る場合、コンピュートノード1は、チャンク単位でデータを管理する代わりに、セグメント単位でデータを管理する。図12は、新セグメントと類似セグメントの排他的論理和を取る場合の論物アドレスマッピング情報13の一例を示す図である。
図12に示すように、論物アドレスマッピング情報13は、セグメントと論理アドレスと物理アドレスとサイズと類似セグメントPとを対応付ける。セグメントは、論理アドレスと物理アドレスが対応付けられるデータである。論理アドレスは、アプリケーション3においてセグメントが格納されるアドレスである。
物理アドレスは、類似セグメントがない場合には、ディスク2aにおいてセグメントが格納されるアドレスである。類似セグメントがある場合には、物理アドレスは、ディスク2aにおいて排他的論理和の圧縮済みデータが格納されるアドレスである。サイズは、ディスク2aに格納されたセグメント又は圧縮済みデータの大きさである。類似セグメントPは、類似セグメントへのポインタである。類似セグメントがない場合には、類似セグメントPは「null」である。
例えば、セグメントabcdについては、論理アドレスは「100-103」であり、物理アドレスは「200」であり、サイズは「8kB」であり、類似セグメントはない。また、セグメントabc’dについては、論理アドレスは「104-107」であり、物理アドレスは「202」であり、圧縮済みデータのサイズは「4kB」であり、類似セグメントはabcdである。
このように、コンピュートノード1は、チャンク単位の比較により差分を取る代わりに、新セグメントと類似セグメントの排他的論理和を取って圧縮することによっても、類似セグメントとの相違を管理することができる。
1,91 コンピュートノード
1a,91a RAM
1b CPU
1c I/F
1d ODD
1e LANインタフェース
2a,92a ディスク
3 アプリケーション
11 重複インデックス
12 類似インデックス
13 論物アドレスマッピング情報
14 キャッシュデータ
21 重複判定部
22 類似判定部
23 差分処理部
24 更新部
31 論物アドレスマッピング情報
32 データ
92 ストレージノード

Claims (5)

  1. 互いに類似するデータに対して互いに異なる値をとる第一ハッシュ関数を用いて記憶装置への書き込みデータと同一の同一データが前記記憶装置にないと判定される場合に、前記書き込みデータに類似する類似データが前記記憶装置にあるか否かを、前記第一ハッシュ関数と異なる第二ハッシュ関数であって、互いに類似するデータに対して互いに同一の値をとる前記第二ハッシュ関数を用いてハミング距離に基づいて判定する類似判定部と、
    前記類似判定部により前記書き込みデータと前記第二ハッシュ関数の値が同一値となる前記類似データが前記記憶装置にあると判定された場合に、前記書き込みデータと前記類似データの差分、または、前記書き込みデータと前記類似データの排他的論理和を前記記憶装置に書き込む書き込み部と、
    を有する情報処理装置。
  2. 前記書き込みデータは複数のチャンクに分割され、
    前記類似判定部は、前記チャンクごとに前記書き込みデータと重複する重複データがあるか否かを判定し、前記チャンクごとの重複データの有無に基づいて前記差分を計算する、
    請求項1に記載の情報処理装置。
  3. 前記データと該データの類似判定に用いられるフィンガープリントと該データに含まれるチャンクの物理アドレスとを対応付けて類似インデックスとして記憶するとともに、前記チャンクと該チャンクの論理アドレスと物理アドレスとを対応付けて論物情報として記憶する記憶部と、
    前記類似判定部により前記類似データがあると判定された場合に、前記書き込みデータに基づいて前記類似インデックス及び前記論物情報を更新する更新部と、
    をさらに有する請求項に記載の情報処理装置。
  4. コンピュータが、
    互いに類似するデータに対して互いに異なる値をとる第一ハッシュ関数を用いて記憶装置への書き込みデータと同一の同一データが前記記憶装置にないと判定される場合に、前記書き込みデータに類似する類似データが前記記憶装置にあるか否かを、前記第一ハッシュ関数と異なる第二ハッシュ関数であって、互いに類似するデータに対して互いに同一の値をとる前記第二ハッシュ関数を用いてハミング距離に基づいて判定し、
    前記書き込みデータと前記第二ハッシュ関数の値が同一値となる前記類似データが前記記憶装置にあると判定した場合に、前記書き込みデータと前記類似データの差分、または、前記書き込みデータと前記類似データの排他的論理和を前記記憶装置に書き込む、
    処理を実行する重複除去方法。
  5. コンピュータに、
    互いに類似するデータに対して互いに異なる値をとる第一ハッシュ関数を用いて記憶装置への書き込みデータと同一の同一データが前記記憶装置にないと判定される場合に、前記書き込みデータに類似する類似データが前記記憶装置にあるか否かを、前記第一ハッシュ関数と異なる第二ハッシュ関数であって、互いに類似するデータに対して互いに同一の値をとる前記第二ハッシュ関数を用いてハミング距離に基づいて判定し、
    前記書き込みデータと前記第二ハッシュ関数の値が同一値となる前記類似データが前記記憶装置にあると判定した場合に、前記書き込みデータと前記類似データの差分、または、前記書き込みデータと前記類似データの排他的論理和を前記記憶装置に書き込む、
    処理を実行させる重複除去プログラム。
JP2020203773A 2020-12-08 2020-12-08 情報処理装置、重複除去方法及び重複除去プログラム Active JP7647078B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020203773A JP7647078B2 (ja) 2020-12-08 2020-12-08 情報処理装置、重複除去方法及び重複除去プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020203773A JP7647078B2 (ja) 2020-12-08 2020-12-08 情報処理装置、重複除去方法及び重複除去プログラム

Publications (2)

Publication Number Publication Date
JP2022091062A JP2022091062A (ja) 2022-06-20
JP7647078B2 true JP7647078B2 (ja) 2025-03-18

Family

ID=82060793

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020203773A Active JP7647078B2 (ja) 2020-12-08 2020-12-08 情報処理装置、重複除去方法及び重複除去プログラム

Country Status (1)

Country Link
JP (1) JP7647078B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN119213285A (zh) 2022-06-03 2024-12-27 富士胶片株式会社 校准部件、能量测定装置、能量测定方法及能量测定程序

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016181479A1 (ja) 2015-05-12 2016-11-17 株式会社日立製作所 ストレージシステムおよび記憶制御方法
JP2017191432A (ja) 2016-04-13 2017-10-19 富士通株式会社 情報記憶装置、重複除去方法、および重複除去プログラム
JP2018045305A (ja) 2016-09-12 2018-03-22 株式会社東芝 ストレージ装置、及びプログラム
JP2019020906A (ja) 2017-07-13 2019-02-07 富士通株式会社 情報処理装置及びプログラム
JP2019046023A (ja) 2017-08-31 2019-03-22 富士通株式会社 情報処理装置、情報処理方法及びプログラム
US20200364516A1 (en) 2019-05-15 2020-11-19 EMC IP Holding Company LLC Data compression using nearest neighbor cluster

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016181479A1 (ja) 2015-05-12 2016-11-17 株式会社日立製作所 ストレージシステムおよび記憶制御方法
JP2017191432A (ja) 2016-04-13 2017-10-19 富士通株式会社 情報記憶装置、重複除去方法、および重複除去プログラム
JP2018045305A (ja) 2016-09-12 2018-03-22 株式会社東芝 ストレージ装置、及びプログラム
JP2019020906A (ja) 2017-07-13 2019-02-07 富士通株式会社 情報処理装置及びプログラム
JP2019046023A (ja) 2017-08-31 2019-03-22 富士通株式会社 情報処理装置、情報処理方法及びプログラム
US20200364516A1 (en) 2019-05-15 2020-11-19 EMC IP Holding Company LLC Data compression using nearest neighbor cluster

Also Published As

Publication number Publication date
JP2022091062A (ja) 2022-06-20

Similar Documents

Publication Publication Date Title
USRE49148E1 (en) Reclaiming space occupied by duplicated data in a storage system
USRE49011E1 (en) Mapping in a storage system
US20210157523A1 (en) Storage system
US8954710B2 (en) Variable length encoding in a storage system
US9454477B2 (en) Logical sector mapping in a flash storage array
US8639669B1 (en) Method and apparatus for determining optimal chunk sizes of a deduplicated storage system
US8539148B1 (en) Deduplication efficiency
US8712963B1 (en) Method and apparatus for content-aware resizing of data chunks for replication
US9977746B2 (en) Processing of incoming blocks in deduplicating storage system
US10055420B1 (en) Method to optimize random IOS of a storage device for multiple versions of backups using incremental metadata
JP6320432B2 (ja) データ重複排除における、類似性探索に基づくダイジェスト検索
US10936228B2 (en) Providing data deduplication in a data storage system with parallelized computation of crypto-digests for blocks of host I/O data
US11455122B2 (en) Storage system and data compression method for storage system
US8538933B1 (en) Deduplicating range of data blocks
US20170199893A1 (en) Storing data deduplication metadata in a grid of processors
JP7647078B2 (ja) 情報処理装置、重複除去方法及び重複除去プログラム
CN104298614A (zh) 数据块在存储设备中存储方法和存储设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240813

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20241011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20241105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20241219

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250217

R150 Certificate of patent or registration of utility model

Ref document number: 7647078

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150