JP6122038B2 - 重複排除のオペレーションを実行するためのフラグメンテーションのコントロール - Google Patents

重複排除のオペレーションを実行するためのフラグメンテーションのコントロール Download PDF

Info

Publication number
JP6122038B2
JP6122038B2 JP2014559940A JP2014559940A JP6122038B2 JP 6122038 B2 JP6122038 B2 JP 6122038B2 JP 2014559940 A JP2014559940 A JP 2014559940A JP 2014559940 A JP2014559940 A JP 2014559940A JP 6122038 B2 JP6122038 B2 JP 6122038B2
Authority
JP
Japan
Prior art keywords
data set
fragmentation
deduplication operation
access
storage
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
JP2014559940A
Other languages
English (en)
Other versions
JP2015513741A (ja
Inventor
アロク・シャルマ
スニル・ワルワイカー
バイジャヤンティ・ブハラドワジ
Original Assignee
ネットアップ,インコーポレイテッド
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 ネットアップ,インコーポレイテッド filed Critical ネットアップ,インコーポレイテッド
Publication of JP2015513741A publication Critical patent/JP2015513741A/ja
Application granted granted Critical
Publication of JP6122038B2 publication Critical patent/JP6122038B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

関連出願への相互参照
本願は、2012年2月29日出願の米国特許出願第13/408051号(特許文献1)の優先権を主張するものであり、該出願は参照の上全体としてこの明細書に組み込まれる。
発明の分野
本願についての少なくとも一つの実施形態は、ストレージサーバに格納されるデータの重複排除に関し、特に、重複排除のプロセスにて、データセットに取り入れられるフラグメンテーションのレベルをコントロールすることに関する。
背景
ストレージコントローラは、一つ以上のホストの代わりにデータを格納し検索するのに用いられる物理的処理デバイスである。ネットワークストレージコントローラは、ネットワーク上で一つ以上のクライアントをサーブするストレージサーバとして動作するように、磁気若しくは光学ストレージベースのディスク、テープ若しくはフラッシュメモリなどの、大容量記憶装置のセット内にデータを格納して管理するように、(例えば、ハードウエア、ソフトウエア、ファームウエア、若しくはそれらの任意の組み合わせにより)構成され得る。
大容量記憶装置は、データが格納され得る一連のアドレス可能な場所を提供する。テープドライブなどの装置は、順次のオーダでアクセスされるべき格納場所を許容するに過ぎないが、ハードディスクやフラッシュはランダムアクセスを許容する。大容量記憶装置は、或る所望の特性を備える単体のデバイスのより高い層への印象を与えるように、組み合わされ得る。例えば、レイド(RAID)(「レイドアレイ」)は、データ拡散された二つ以上のハードディスクを含み、これにより、転送速度の増大、フォールトトレラントの改善、若しくはストレージキャパシティの増大を取得する。レイドアレイ内の種々のデバイス上におけるデータの配置(並びに、エラー検出及び訂正情報の計算及び格納)は、ハードウエア及び/又はソフトウエアにより管理され得る。
多数の現代のデータ処理システムは、膨大な量のデータを消費し及び/又は生成する。ハードディスクドライブなどの大容量記憶装置は、このデータを格納するのに用いられる。これらの処理システムにより消費され生成されるデータ量に追随するために、大容量記憶装置の格納容量、及び/又は大容量記憶装置上のスペース利用の効率性が、増加されればよい。大容量記憶装置上のスペース利用の効率性を増加する一つの方法は、大容量記憶装置上に格納された冗長データを除去する重複排除のオペレーションを実行することである。
米国特許出願第13/408051号
しかしながら、重複排除は、ディスク上の連続ブロックとして前に格納されたデータセット内にフラグメンテーションを取り込んでしまうことが多い。個々のアドレス可能な場所は、通常、多重データバイトを保持することができる。それら場所は「ブロック」と称される。データセットのデータブロックが、読み出し順から外れて、分離され、及び/又は格納されているとき、データセットは「断片化されている」と言われる。フラグメント化(断片化)されたデータセットを読み出すプロセスは、データセットに対応するデータブロックの内容を取得するのに、ストレージシステムに対して多重の読み出しオペレーションを実行することを強いることがある。大容量記憶装置の多数のタイプの機械的性質は、それらの速度を、システムの潜在的処理速度の何分の一かに制限してしまうことがある。特に、データセットがフラグメント化(断片化)されてデータセットを検索するのに多数の読み出しオペレーションを要求する場合はそうである。重複排除により生じるフラグメンテーションは、ストレージシステムのパフォーマンスに悪影響を与え得るので、多数のストレージシステムユーザは重複排除のオペレーションを無効にしてしまい、従って重複排除の空間節約の利点から得るものが無い。
従って、重複排除の間に取り込まれるフラグメンテーションの効果と、ユーザに所望されるストレージシステムのパフォーマンスとの間をバランスさせる技術が、必要とされている。
本明細書で紹介される技術により、ファイルシステム内データセットのフラグメンテーションによりファイルシステムの読み出しパフォーマンスに重大な影響を与えることもなく、ファイルシステムのための重複排除のオペレーションが可能になる。一つの実施形態では、ファイルシステムのホストとなるストレージサーバが、データセットへ重複排除のオペレーションを実行することの結果としてファイルシステム内に格納されるデータセットに取り込まれるフラグメンテーションのレベルを判定する。ストレージサーバは続いて、フラグメンテーションのレベルを閾値と比較し、比較の結果に基づいて重複排除のオペレーションを実行するかどうかを判定する。閾値は、ファイルシステムのデータセット内のフラグメンテーションの受入可能なレベルを表す。
一つの実施形態では、ファイルシステム内に格納されるデータセットのフラグメンテーションのレベルは、データセットに関して重複排除のオペレーションを実行した後に、データセットにアクセスする読み出しのオペレーションの数をカウントする先読みを実行し、重複排除の後の読み出しのオペレーションの数の、理想データセットにアクセスするための読み出しのオペレーションの数に対する比率である、フラグメンテーションのインデクスを計算することにより、判定される。理想データセットは、連続物理データブロック内に格納され、最小限数の読み出しのオペレーションでアクセスされ得るものである。フラグメンテーションのインデクスは、重複排除のオペレーションによるフラグメンテーションの増加の表示である。
重複排除のオペレーションの後に、データセットを表す物理ボリュームブロックナンバ(PVBN)のリストを判定し、PVBNのリストをソートし、更にブロックの連続グループの数をカウントすることにより、ストレージサーバは、重複排除のオペレーションを実行した後に、デーラセットにアクセスするための読み出しのオペレーションの数を計算できる。
上記にて略記された技術の他の形態は、添付の図面及び以下の発明の詳細な説明から明白であろう。
本発明についての一つ以上の実施形態は例示として示されるのであり、添付の図面の図に制限されない。なお同一符号は同要素を示す。
図1はネットワークシステムの例を示す。 図2は一つ以上のネットワークストレージサーバを実装できるストレージコントローラの例を示す図である。 図3は概略、ストレージサーバ内のストレージオペレ-ティングシステムのアークティクチャの例を示す。 図4Aはファイルシステム内のファイルのためのバッファツリーのブロック線図表示である。 図4Bは、重複排除プロセスがファイルシステム上で実行された後の、ファイルシステム内のファイルのためのバッファツリーのブロック線図表示である。 図5は重複排除のオペレーションを実行するかどうかを判定するプロセスのフロー図である。 図6はデータセットに関して重複排除のオペレーションを実行することで取り込まれるフラグメンテーションのレベルを判定するプロセスのフロー図である。 図7は重複排除のオペレーションを実行するに先立ち、重複排除にデータセットにアクセスする読み出しオペレーションの数を計算するためのプロセスのフロー図である。
「実施形態」、「一つの実施形態」などの本明細書の表現は、記載する特定の特徴、構造若しくは特性が、本発明の少なくとも一つの実施形態に含まれる、ということを意味する。本明細書におけるそれらフレーズの発生は、全て同じ実施形態に言及するものでは無い。
図1はネットワークストレージシステムの例を示し、該ネットワークストレージシステムは、複数のクライアントシステム104、ストレージサーバ108、並びに、クライアントとストレージサーバ108を接続するネットワーク106を含む。図1に示すように、ストレージサーバ108は、大容量記憶サブシステム105内の、ディスクなどの多数の大容量記憶装置112と結合する。一方で、大容量記憶装置112の一部若しくは全ては、フラッシュメモリ、半導体ドライブ(SSD)、テープストレージなどの、他のタイプのストレージであってもよい。しかしながら、記載を促進すべく、ストレージデバイス112は本明細書ではディスクであると想定する。
ストレージサーバ108は、例えば、ネッタップ(NetApp(登録商標))から入手可能であるFASシリーズのストレージサーバプロダクトの一つであればよい。クライアントシステム104はネットワーク106を介してストレージサーバ108に接続されるが、該ネットワーク106は、例えば、ローカルエリアネットワーク(LAN)若しくはワイドエリアネットワーク(WAN)などの、パケット交換方式のネットワークであればよい。更に、ストレージサーバ108は、スイッチング構造(図示せず)を介してディスク112に接続され得るが、該スイッチング構造は、例えば、光ファイバー分散データインタフェース(FDDI)であってもよい。留意すべきことは、ネットワークデータストレージ環境の内部にて、他のどの適切な数のストレージサーバ及び/若しくは大容量記憶装置、並びに/又は、他のどの適切なネットワーク技術が、採用されてもよい、ということである。
ストレージサーバ108は、ディスク112上のストレージスペースの一部若しくは全てを、従来の方式でクライアントシステム104に利用可能にすることができる。例えば、ディスク112の各々は、個別のディスク、多重ディスク(例えば、レイドグループ)若しくは他のどの適切な大容量記憶装置として、実装されてもよい。大容量記憶サブシステム105内の情報の格納は、物理ストレージディスク112のコレクションを含む、一つ以上のストレージボリュームとして実装可能であり、該物理ストレージディスク112のコレクションは、協働して、ボリューム上のボリュームブロックナンバ(BVN)スペースの全体の論理配置を規定する。個々のボリュームは一般的に、但し必然では無いが、それ自身のファイルシステムと関連する。
ボリューム/ファイルシステムと関連するディスクは、通常一つ以上のグループとして構造化され、個々のグループはレイド(RAID)として動作し得る。RAID−4レベルの実装などの、多くのRAID実装は、RAIDグループ内の所与の数の物理ディスクに亘るデータ「ストライプ」の冗長書き込みと、ストライプされたデータに関するパリティ情報の適宜の格納とを介して、データストレージの信頼性/インテグリティを向上する。RAID実装の実例は、RAID−4レベル実装である。但し、当然のことながらRAID実装の他のタイプ及びレベルが本明細書に記載の技術に従って用いられてもよい。一つ以上のRAIDグループは共に集合体を形成する。集合体は一つ以上のボリュームを含んでもよい。
図2は、一つ以上のネットワークストレージサーバ、例えば、図1のストレージサーバを実装し得るストレージコントローラのハードウエアアーキテクチャの例を示す図である。ストレージサーバは、大容量記憶サブシステム105のディスク112などの大容量記憶装置上の、情報のストレージ、構造、及び検索に関する、ストレージサービスを提供する処理システムである。実例では、ストレージサーバ108は、一つ以上のプロセッサを含むプロセッササブシステム210を含む。ストレージサーバ108は更に、メモリ220、ネットワークアダプタ240、及びストレージアダプタ250を含み、これら全ては相互接続260により相互接続される。
ストレージサーバ108は、ストレージマネジャと称されるハイレベルモジュールを実装してディスク112上の一つ以上のファイルシステムでデータを論理的に構成するのが好ましい、ストレージオペレーティングシステム230を実行する、シングル若しくはマルチプロセッサストレージサーバとして、実現され得る。
例示のメモリ220は、本明細書で紹介する技術に関連する、ソフトウエアプログラムコード及びデータを格納するため、プロセッサ210及びアダプタ240、250によりアドレス可能であるストレージの場所を含む。プロセッサ210及びアダプタは、ソフトウエアコードを実行しデータ構造を操作するように構成された処理エレメント及び/又は論理回路を含み得る。ストレージオペレーティングシステム230は、その一部が通常メモリに常駐し処理エレメントにより実行されるが、(とりわけ)ストレージサーバ108により提供されるストレージサービスのサポートでストレージオペレーションを起動することにより、ストレージサーバ108を機能的に構成する。種々のコンピュータ読み取り可能ストレージメディアを含む、他の処理及びメモリの導入物は、本明細書で紹介する技術に関連するプログラム命令を格納し実行するのに用いられ得ることは、当業者には明白であろう。
ネットワークアダプタ240は、ポイントツーポイントリンク、ワイドエリアネットワーク、パブリックネットワークにて実装される仮想プライベートネットワーク、若しくは共用ローカルエリアネットワークに亘って、一つ以上のクライアント104、若しくは他のストレージサーバと、ストレージサーバ108を連結する、複数のポートを含む。よってネットワークアダプタ240は、機械的コンポーネント、更には、ストレージサーバ108をネットワーク106に接続するのに必要とされる電気及びシグナル伝達回路を含んでもよい。例示のように、ネットワーク106は、イーサネット(登録商標)若しくはファイバチャネルネットワークとして、実現され得る。個々のクライアント104は、伝送制御プロトコル/インターネットプロトコル(TCP/IP)などの、予め規定されたプロトコルに従ってデータのパケット若しくはフレームを交換することにより、ネットワーク106に亘ってストレージサーバ108と通信できる。
ストレージアダプタ250は、ストレージオペレーティングシステム230と協働して、クライアント104により要求される情報にアクセスする。情報は、書き込み可能ストレージメディアの付属アレイのどのタイプに格納されてもよく、この書き込み可能ストレージメディアの付属アレイは、磁気ディスク若しくはテープ、光学ディスク(例えば、CD−ROM若しくはDVD)、フラッシュメモリ、半導体ドライブ(SSD)、電子ランダムアクセスメモリ(RAM)、データ及びパリティ情報を含む情報を格納するように調整されたマイクロエレクトロメカニカル及び/又は他の任意の類似のメディア、などである。しかしながら、本明細書に例示するにあたっては、情報はディスク112に格納される。ストレージアダプタ250は、従来の高性能のファイバチャネルリンクトポロジなどの、I/O相互接続アレンジメントに亘ってディスクと連結する、インプット/アウトプット(I/O)インタフェース回路を備える複数のポートを含む。
ストレージオペレーティングシステム230は、ディスク112に格納されるデータへのクライアントアクセスを促進する。ある実施形態では、ストレージオペレーティングシステム230は、一つ以上の仮想モジュールと協働するライトエニウエアファイルシステムを実装してディスク112により提供される格納スペースを「仮想化する」。ある実施形態では、ストレージオペレーティングシステム230のストレージマネジャ310(図3)エレメントは、ディスク112上で名前付きディレクトリ及びファイルの階層構造として、情報を論理的に構成する。個々の「オンディスク」ファイルは、情報を格納するように構成されたディスクブロックのセットとして実装され得る。本明細書で用いるように、「ファイル」の用語はデータに関する任意のコンテナを意味する。仮想モジュールにより、ストレージマネジャ310は、名前付き論理ユニットナンバ(LUN)としてエクスポートされる、ディスク上のブロックの階層構造として更に情報を論理的に構成し得る。
図3は、ストレージサーバ108内で利用するストレージオペレーティングシステム230のアーキテクチャの例を概略示す。一つの実施形態では、ストレージオペレーティングシステム230は、ライトエニウエアファイルシステム(WAFL(商標))を実装する、NetApp(登録商標),Inc.,Sunnyvaleから入手可能なNetApp(登録商標)DataONTAP(商標)オペレーティングシステムであればよい。しかしながら、本明細書に記載の技術に従って利用するために、他のストレージオペレーティングシステムが、別途設計されても拡張されてもよい。
ストレージオペレーティングシステム230は、ソフトウエア及び/若しくはファームウエアでプログラムされたプログラム可能回路として、若しくは、特別に設計された非プログラム可能回路(即ち、ハードウエア)として、又は、それらの組み合わせとして、実装され得る。例示の実施形態では、ストレージオペレーティングシステム230は、複数のモジュール、若しくはレイヤを含む。これらのレイヤはストレージマネジャ310を含み、該ストレージマネジャ310は、ストレージオペレーティングシステム230のコア機能要素である。ストレージマネジャ310は、ストレージサーバ108により管理されるデータに関してストラクチャ(例えば、一つ以上のファイルシステム)を課し、クライアント104からの読み出し及び書き込みリクエストを使用可能にする。
ストレージサーバにネットワーク106に亘って(例えば、クライアント104と)通信させるために、ストレージオペレーティングシステム230は、論理的にはストレージマネジャ310の下で、マルチプロトコルレイヤ320及びネットワークアクセスレイヤ330も含む。マルチプロトコルレイヤ320は、ネットワークファイルシステムズ(NFS)、コモンインターネットファイルシステム(CIFS)、ハイパーテキストトランスファプロトコル(HTTP)、インターネットスモールコンピュータシステムインタフェース(iSCSI)、及び/又はバックアップ/ミラーリングプロトコルなどの、種々のより高レベルのネットワークプロトコルを実装するのであり、これにより、ディスク112上に格納されるデータをユーザ及び/又はアプリケーションプログラムに利用可能にする。ネットワークアクセスレイヤ330は、イーサネット(登録商標)、インターネットプロトコル(IP)、TCP/IP、ファイバチャネルプロトコル及び/又はユーザデータグラムプロトコル/インターネットプロトコル(UDP/IP)などの、ネットワークに亘って通信するための一つ以上のより低レベルのプロトコルを実装する、一つ以上のネットワークドライバを含む。
更に、デバイスにストレージサブシステム(例えば、ストレージサブシステム105)と通信させるために、ストレージオペレーティングシステム230は、論理的にはストレージマネジャ310の下で、ストレージアクセスレイヤ340及び関連ストレージドライバレイヤ3500を含む。ストレージアクセスレイヤ340は、RAID−4、RAID−5若しくはRAID DP(登録商標)などの、より高レベルのストレージ冗長アルゴリズムを実装する。ストレージドライバレイヤ350は、ファイバチャネルプロトコルやスモールコンピュータシステムインタフェース(SCSI)などの、より低レベルのストレージデバイスアクセスプロトコルを実装する。
更に、読み出し若しくは書き込みオペレーションに関連する、クライアントインタフェースからストレージインタフェースへの、ストレージオペレーティングシステム230を介するデータフローのパス360も、図3に示す。よって、ストレージマネジャ310は、ストレージアクセスレイヤ340及びストレージドライバレイヤ350を介してストレージサブシステム105にアクセスする。クライアント104は、情報デリバリのクライアント/サーバモデルに従ってストレージサーバと相互作用できる。即ち、ネットワーク106に亘ってパケットを交換することによって、クライアント104はストレージサーバ108のサービスを要求し、ストレージサーバはクライアントにより要求されたサービスの結果を戻すことができる。ファイル及びディレクトリのフォームで情報にアクセスするときTCP/IPに亘ってCIFSやNFSなどのファイルベースのアクセスプロトコルを用いることにより、クライアントはパケットを発行し得る。一方で、ブロックのフォームで情報にアクセスするときiSCSI及びSCSIなどのブロックベースのアクセスプロトコルを用いることにより、クライアントはパケットを発行し得る。
一つの実施形態にて、ストレージマネジャ310は、ディスク112などのストレージデバイス上に格納される情報へのアスセスにて用いるために、論理ボリュームマネジメントを提供するメッセージベースのファイルシステムを実装する。即ち、ファイルシステム意味論を提供することに加えて、ストレージマネジャ310は、重複排除及び圧縮のオペレーションなどの、更なる格納効率機能を提供する。ストレージマネジャ310は、例えば、4キロバイト(kB)のブロックを用いて、及び、ファイル及び(生成タイム、アクセス許可、サイズ及びブロックの場所などの)ファイル属性を識別するためにインデクスノード(inode)を用いて、ブロックベースであるオンディスクフォーマットの表現を備えるWAFLファイルシステム(以下では、概略「ライトエニウエアファイルシステム」と言う)を実装できる。ファイルシステムは、そのファイルシステムのレイアウトを記述するメタデータを格納するファイルを利用する。これらのメタデータは、とりわけ、inodeファイルを含む。
操作上、クライアント104からの要求は、コンピュータネットワーク106に亘って、及び、ネットワークアダプタ240にて受信されるストレージサーバ108上に、パケットとして転送される。(レイヤ330の)ネットワークドライバは、パケットを有し、適切であれば、ストレージマネジャ310に転送するに先立ち更なる処理のためにマルチプルプロトコルレイヤ上へそれを通過する。ここで、ストレージマネジャは、ディスク112から、要求されたデータをロードする(検索する)オペレーションを生成する。続いてストレージマネジャは、ファイルinodeを含むメッセージストラクチャをRAIDシステムに通過する。ファイルinodeは、ディスク識別子及びディスクブロックナンバにマップされ、ディスクドライバシステム350の適切なドライバ(例えば、SCSIドライバ)に送信される。ディスクドライバは、特定されたディスク112からのディスクブロックナンバにアクセスし、ストレージサーバによる処理のために、要求されたデータブロックをメモリ220内にロードする。要求の完了に際して、ストレージサーバ(及びオペレ-ティングシステム)はネットワーク106に亘ってクライアント104にリプライを返す。
図3にはシングルユニットとして示されているが、ストレージオペレーティングシステム230は、分散型アーキテクチャを有してもよい。例えば、マルチプルプロトコルレイヤ320及びネットワークアクセスレイヤ330がN−モジュール(例えば、N−ブレード)に含まれ、ストレージマネジャ310、ストレージアクセスレイヤ340及びストレージドライバレイヤ350が独立のD−モジュール(例えば、D−ブレード)に含まれてもよい。そのような場合、N−モジュール及びD−モジュール(図示せず)はある形式の物理相互接続を介して相互に(及び、他のN−及びD−モジュールとも)通信し、全体としてストレージサーバノードを形成する。そのようなストレージサーバノードは、一つ以上の他のストレージサーバと接続して高度に拡張性のあるストレージサーバクラスタを形成してもよい。
図4Aは、ファイルシステム内のファイルのためのバッファツリーのブロック図表現である。ファイルシステム内の個々のファイルはinodeを割り当てられる。図4Aは、例えば、inode402−a及び402−bで表されファイルシステム内に格納される、二つのファイルを含む。個々のinode402は、例えば、ポインタを用いて、Level1(L1)間接ブロック404を参照する。個々の間接ブロック404は、少なくとも一つの物理ボリュームブロックナンバ(PVBN)410を格納する。個々のPVBN410は、例えば、ポインタを用いて、大容量記憶装置408内の物理ブロック406を参照する。図4Aに示すように、個々のPVBN410は、固有の物理ブロック406を参照する。例えば、PVBN410−bは、物理ブロック406−bを参照する。ファイルのサイズ及びレイアウトに依存して、間接ブロックの更なるレベル(例えば、レベル2、レベル3)が存在し得ることに留意されたい。
図4Bは、重複排除のプロセスがファイルシステム上で実行された後の、ファイルシステム内のファイルのためのバッファツリーのブッロク図表現である。図4Bで表されるファイルは、図4Aからのものに対応する。重複排除のオペレーションは、前に簡単に述べたように、ファイルシステム内の冗長データを除去し格納する更なるデータのスペースを作成する。基本的に、重複排除は重複ブロックを除去し、ファイルシステム内に固有のブロックのみを格納し、プロセス内で小量の更なるメタデータを作成する。この更なるメタデータは、ストレージマネジャ310により利用され要求に応じてデータを配置する。一つの実施形態では、メタデータは、ファイルシステム内部のあらゆるブロックのための、(例えば、SHA−256に基づく)ハッシュ値若しくは「フィンガプリント」値を含む。重複排除のプロセスの間、データブロックのためのハッシュ値は、ファイルシステム内に格納されるブロックの他のハッシュ値と対比され、一致が見出されると(即ち、ブッロクが同一であると)、冗長データは、二つ以上のブロックの間で物理ブロックの一つを共有することにより除去される。
例えば、inode402−a及び402−bにより表される図4Aのファイルを考慮して、データブロック410−c、410−d及び410−fが、それらのハッシュ値の比較後、同一と判定されれば、ディスク上に三つのブロックを維持する代わりに、重複排除の後一つのブロックが共有され得る。このブロックの共有は図4Bで表される。図4Bの例では、PVBN410−dは、ドナーに指定され、PVBN410−c及び410−fは受容器に指定される。受容器PVBNにより最早参照されない下部の物理ブロック(即ち、ブロック406−c及び406−f)はリリースされ、更なるデータを格納するのにストレージマネジャ310により用いられ得る。
重複排除のオペレーションは、ファイルシステム内にフラグメンテーションを取り込んでしまうことが多い。図4Aに示すように、ストレージマネジャ310は、ブロックを逐次的方法でファイルに割り当て(即ち、406−a、406−b、406−c)ストレージシステムの読み出しパフォーマンスを向上させる。ファイルのブロックが隣接しているとき、ファイルは、ファイルブロックを配置するための、比較的時間消費する検索オペレーションを要求すること無く、単一の読み出しオペレーションによりアクセスされ得る。重複排除のオペレーションが、残りのファイルと隣接しないデータブロックを共有するとき、図4Bに示すように、ブロックの順次レイアウトは壊れる。inode402−aは、断片化されたブロック(即ち、非隣接ブロック406−a、406−b及び406−d)を参照するので、全体ファイルにアクセスするには多重読み出しのオペレーションが実行されねばならない。
例えば、ファイルの読み出しがファイルを検索することにおける顕著な遅延となってしまう重複排除から、ファイルが非常に断片化するとき、ストレージシステムの性能判断が、重複排除のスペース節約の利点よりも上回るポイントがある。この貧弱な読み出し性能は、データに頻繁にアクセスしなければならないストレージシステム(例えば、一次ストレージシステム)には受け入れられるものではない。よって、重複排除を完全に無効にしなければならないということもなく重複排除により生じるフラグメンテーションをコントロールするために、ストレージマネジャ310は、重複排除を実行するに先立ち読み出し性能が低下する程度を判定して、この判定に基づいて重複排除のオペレーションを実行するかどうか決定できる。
一つの実施形態では、ストレージシステムのユーザ(例えば、ストレージアドミニストレータ)は、重複排除のオペレーションを実行するに当たり受入可能なフラグメンテーションのレベルを選択できる。例えば、ストレージシステムが補助ストレージのために利用されユーザがストレージシステムへのリード/ライトアクセスが不定期なものになることが分かっていれば、ユーザは、最大限のスペース節約に向けて重複排除のオペレーションをセットし、フラグメンテーションによる読み出し性能を潜在的に犠牲にできる。しかしながら、ストレージシステムが主要ストレージのために利用されユーザがストレージシステムへのリード/ライトアクセスが頻繁なものになることが分かっていれば、ユーザは、最大限のパフォーマンスに向けて重複排除のオペレーションをセットでき、フラグメンテーションによるストレージシステムの読み出し性能に殆ど若しくは全く影響を与えないならば重複排除が実行されるに過ぎない。同様に、ストレージの節約と性能を様々なレベルでバランスする中間のセッティングもあり得る。
図5は、重複排除のオペレーションを実行するかどうかを判定するプロセスのフロー図である。本明細書に記載のプロセスは、フローチャート内の一連のオペレーションとして構成される。しかしながら、当然ながら、これらのプロセスに関連するオペレーションの少なくとも一部は、同じ全体技術を実行しつつも、潜在的に、再順序付けされ、補完され、若しくは代用され得る。
プロセス500はステップ502で始まり、ステップ502では、ファイルシステム内に格納されるファイルにつき重複排除のオペレーションを実行することにより取り込まれるフラグメンテーションのレベルを、ストレージマネジャ310が判定する。実際に重複排除のオペレーションを実行しなければならないということもなく、フラグメンテーションのレベルが判定される。ステップ502にて判定されるフラグメンテーションのレベルは、重複排除のオペレーションが実行されたならば予想され得る読み出し性能を示す。フラグメンテーションのレベルを判定することは、図6及び図7を参照して以下により詳細に記載される。
ステップ504では、フラグメンテーションのレベルは、ストレージマネジャ31IIより閾値と対比される。前述のように、閾値はストレージシステムのユーザにより判定可能であり、ストレージシステムの使用目的に依存し得る。例えば、主要ストレージとして用いられるストレージシステムに対する閾値は、補助若しくはバックアップストレージのために用いられるストレージシステムに対する閾値と比較して、相対的に低くなる。一つの実施形態では、比較的低い閾値は、ストレージシステムのユーザが、重複排除により取り込まれるフラグメンテーションに関連し得るパフォーマンス遅延により敏感である、ということを示す。フラグメンテーションのレベルがどのように計算されるかに拠るが、ある実施形態では、フラグメンテーションのレベルが所与の閾値より低いかどうか比較が為されるのがこのましい。
図5の例では、ファイルのフラグメンテーションのレベルが、閾値より高いと判定されれば、プロセスはステップ508に移行し、ステップ508ではストレージマネジャ310は、重複排除のオペレーションが実行されるべきでは無いと判定する。しかしながら、ファイルのフラグメンテーションのレベルが閾値より高くないならば、プロセスはステップ506に移行し、ステップ506ではストレージマネジャ310は、重複排除のオペレーションが実行されるべきであると判定する。重複排除のプロセスそれ自身は本開示と密接な関係にあるわけではなく、重複排除に関するどの周知の適切な方法が採用されてもよい。図5のプロセスはファイルシステム内の個々のファイルに対して繰り返され、重複排除のオペレーションを実行するかどうかを判定する。重複排除のオペレーションは継続的に実行されてもよいし周期的に実行されてもよい。
図6は、ファイルに関して重複排除のオペレーションを実行することで取り込まれるフラグメンテーションのレベルを判定するプロセスのフロー図である。プロセス600は図5のステップ502の一つの例示の形態である。プロセスはステップ602にて始まり、そのステップ602ではストレージマネジャ310が、重複排除のオペレーションが実行された後に、ファイルにアクセスするのに必要である読み出しのオペレーションの数を計算する。このプロセスは、図7を参照して以下でより詳細に記載する。
ステップ604では、ストレージマネジャ310は、理想ファイルにアクセスするのに必要である読み出しのオペレーションの数を計算する。理想ファイルは、連続物理データブロックに格納され最低数の読み出しのオペレーションでアクセスされ得るものである。一つの実施形態では、ファイルにアクセスするのに必要である読み出しのオペレーションの数は、先読みのオペレーションを実行することにより判定され得る。先読みのオペレーションは、物理ストレージからブロックをフェッチし、ブロックをメモリ内に格納する。ストレージマネジャは、ファイルにアクセスするのに必要である読み出しのオペレーションの数として、先読みのオペレーションを実行するのに必要である読み出しのオペレーションの数を利用し得る。
一つの実施形態では、ストレージマネジャ310により、64までの連続のディスクブロックのセグメント内のストレージシステムに書き込みができ、読み出しのオペレーションが64までの連続のブロックのセグメント上で実行され得る。よって、例えば、256の連続のディスクブロックから成る理想ファイルに対して、ストレージマネジャ310は、全体ファイルをフェッチする四つの読み出しのオペレーションを実行する。しかしながら、重複排除のオペレーションにより取り込まれるフラグメンテーションの後、この同じ先読みは、より高い数の読み出しのオペレーションを要求してもよい。
ステップ606では、重複排除のオペレーションの後、ストレージマネジャ310はファイルのフラグメンテーションのインデクスを計算する。フラグメンテーションのインデクスは、理想ファイルのフラグメンテーションに関する重複排除の後、ファイルのフラグメンテーションのレベルの表示である。上記からの理想の256ブロックの例を用いると、ファイルが連続であることから理想ファイルのための先読みが四つの読み出しのオペレーションを取り、フラグメンテーションが取り込まれたことから重複排除の後先読みが16の読み出しのオペレーションを取るならば、ファイルのフラグメンテーションのインデクスは4となる。このフラグメンテーションのインデクスは、例えば、図5のステップ504にて閾値に対比され、重複排除のオペレーションを実行するかどうか判定するのに用いられ得る。
図7は、重複排除のオペレーションを実行するのに先立ち、重複排除の後にファイルにアクセスするための読み出しのオペレーションの数を計算するためのプロセスのフロー図である。プロセス700は、図6のステップ602の一つの例示の実施形態である。ステップ702にて、ストレージマネジャ310は、重複排除のオペレーションで用いられるドナーブロックの全てに対するPVBNを配置する。前述のように、ストレージシステムは、ファイルシステム内の個々のブロックのためのハッシュ値若しくはフィンガプリントによりデータ構造を維持する。(通常ブロック「シェアリング」と称される)ドナーブロックで、ファイル内のどのブロックが置換され得るか判定するに当たり、ストレージマネジャ310は、ファイルの個々のブロックのためのハッシュ値を、ファイルシステム内の他のファイルの格納されたハッシュ値と比較する。
可能なドナーブロックが配置された後、ステップ704にて、ファイルの論理ブロックをPVBNと実際に関連付けること無く、ストレージマネジャ310は、オリジナルファイルの個々のPVBNを、ファイルの表すPVBNのリスト内のその対応するドナーブロックと置き換える。ステップ706にて、続いてストレージマネジャは、PVBNのリストをソートし、ディスク上のブロックのレイアウトを表示する。ステップ708にて、ソーとされたPVBNから、ストレージマネジャ310は、重複排除の後、ファイルにアクセスするのに必要である読み出しのオペレーションの数を計算し得る。一つの実施形態では、ストレージマネジャ310は、PVBNリスト内の連続のブロックのグループをカウントすることにより、読み出しのオペレーションの数を計算する。例えば、連続のブロックの16個のグループがあれば、ストレージマネジャ310は、重複排除の後にファイルにアクセスするのに16の読み出しのオペレーションが必要とされることを判定する。
上記にて紹介した技術は、プログラムされたプログラム可能回路により実装可能であり、若しくは、ソフトウエア及び/若しくはファームウエアにより構成可能であり、又は、全体として特定用途の「ハードワイヤードの」回路により、若しくは、それらの様式の組み合わせにより実装可能である。(あるとすれば)それらの特定用途の回路は、例えば、一つ以上の特定用途向け集積回路(ASIC)、プログラム可能論理回路(PLD)、フィールドプログラマブルゲートアレイ(FPGA)などの形式であればよい。
本明細書で紹介する技術を実装するのに用いるソフトウエア若しくはハードウエアは、機械読み取り可能ストレージ媒体上に格納されてもよく、更に、一つ以上の汎用の若しくは特定用途のプログラム可能マイクロプロセッサにより実行されてもよい。本明細書で用語が用いられる「機械読み取り可能媒体」は、機械(ここでの機械は、例えば、コンピュータ、ネットワークデバイス、携帯電話、個人用デジタル補助装置(PDA)、製造ツール、一つ以上のプロセッサを伴うどんなデバイスでも、よい。)によりアクセス可能な形式で情報を格納できる、どんなメカニズムでもよい。例えば、機械読み取り可能媒体は、記録可能/非記録可能媒体(例えば、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置など)を含む。
本明細書で用いられる用語「論理」は、例えば、特定用途のハードワイヤード回路、プログラム可能回路と用いられるソフトウエア及び/若しくはファームウエア、又は、それらの組み合わせを、含み得る。
特定の例示の実施形態を参照して、本発明を記載したが、本発明は記載の実施形態に限定されるのではなく、添付の特許請求の範囲の精神及び範囲の限度で修正及び変更により実行され得る。従って、明細書及び図面は、限定の意味では無く例示の意味で考慮されるべきである。
104・・・クライアント、106・・・ネットワーク、108・・・ストレージサーバ、210・・・プロセッサ、230・・・オペレーティングシステム、240・・・ネットワークアダプタ、250・・・ストレージアダプタ。

Claims (24)

  1. データセットへの重複排除のオペレーションの結果としてストレージサーバによりデータセットに取り込まれるフラグメンテーションのレベルを、ストレージサーバにより計算するステップと、
    前記計算するステップの結果に基づいて重複排除のオペレーションを実行するかどうかを、ストレージサーバにより判定するステップと
    を含む方法。
  2. 重複排除のオペレーションを実行するかどうかを判定するために、フラグメンテーションのレベルを閾値と、ストレージサーバにより比較するステップを
    更に含む請求項1に記載の方法。
  3. フラグメンテーションのレベルを判定するステップが、
    重複排除のオペレーションの後にデータセットにアクセスするのに必要な読み出しのオペレーションの数を計算するステップと、
    理想データセットにアクセスするのに必要な読み出しのオペレーションの数を計算するステップと、
    重複排除の後にデータセットにアクセスするのに必要な読み出しのオペレーションの数と理想データセットにアクセスするのに必要な読み出しのオペレーションの数とに基づいて、フラグメンテーションのレベルを表す、フラグメンテーションのインデクスを計算するステップであって、重複排除のオペレーションを実行するかどうかを判定するステップがフラグメンテーションのインデクスに基づくものである、ステップと
    を含む、請求項1に記載の方法。
  4. フラグメンテーションのインデクスは、重複排除のオペレーションの後にデータセットにアクセスするための読み出しのオペレーションの数と、理想データセットにアクセスするのに必要な読み出しのオペレーションの数との比率である、請求項3に記載の方法。
  5. 重複排除のオペレーションの後にデータセットにアクセスするのに必要な読み出しのオペレーションの数を計算するステップは、
    重複排除のオペレーションで共有されるべきデータセット内の複数のブロックの各々のための、ドナーブロックのアドレスを判定するステップと、
    重複排除のオペレーションの後のデータセットのブロックの各々のためのアドレスを含むアドレスリストを作成するステップと、
    ストレージデバイス上で発生する順序でアドレスリスト内のアドレスをソートするステップと、
    アドレスリストから、重複排除のオペレーションの後にデータセットにアクセスするのに必要な読み出しのオペレーションの数を計算するステップと
    を含む、請求項3に記載の方法。
  6. 閾値が、データセットのためのフラグメンテーションの最大限の受入可能なレベルを表す、請求項2に記載の方法。
  7. 更に、フラグメンテーションのレベルが閾値より低いことを判定することに応答して、重複排除のオペレーションを実行するステップを含む、請求項2に記載の方法。
  8. 更に、フラグメンテーションのレベルが閾値より高いことを判定することに応答して、重複排除のオペレーションを実行しないことを含む、請求項2に記載の方法。
  9. 閾値はユーザのインプットに基づいて設定される、請求項2に記載の方法。
  10. ストレージサーバ上に格納されるデータセットに取り込まれるフラグメンテーションのレベルを表すフラグメンテーションのインデクスを、データセットに関して重複排除のオペレーションを実行することの結果として、計算するステップであって、フラグメンテーションのインデクスは、重複排除のオペレーションの後にデータセットにアクセスするのに必要な読み出しのオペレーションの数と、理想データセットにアクセスするのに必要な読み出しのオペレーションの数との比率である、ステップと、
    重複排除のオペレーションを実行するかどうかを判定するために、フラグメンテーションのインデクスを閾値と比較するステップと、
    比較するステップの結果に基づいて重複排除のオペレーションを実行するステップと
    を含む、方法。
  11. 更に、
    重複排除のオペレーションで共有されるべきデータセット内の複数のブロックの各々のための、ドナーブロックのアドレスを判定するステップと、
    重複排除のオペレーションの後のデータセットの各々のブロックのためのアドレスを含むアドレスリストを作成するステップと、
    ストレージデバイス上で発生する順序でアドレスリスト内のアドレスをソートするステップと、
    アドレスリストから、重複排除のオペレーションの後にデータセットにアクセスするのに必要な読み出しのオペレーションの数を計算するステップと
    を含む、請求項10に記載の方法。
  12. 閾値が、データセットのためのフラグメンテーションの最大限の受入可能なレベルを表す、請求項10に記載の方法。
  13. 更に、フラグメンテーションのインデクスが閾値より低いことを判定することに応答して、重複排除のオペレーションを実行するステップを含む、請求項10に記載の方法。
  14. 更に、フラグメンテーションのインデクスが閾値より高いことを判定することに応答して、重複排除のオペレーションを実行しないことを含む、請求項10に記載の方法。
  15. 閾値はユーザのインプットに基づいて設定される、請求項10に記載の方法。
  16. プロセッサと、
    前記プロセッサと連結するメモリであって、前記プロセッサにより実行されるとき前記プロセッサに複数のオペレーションを実行させる命令を格納する、メモリと
    を含み、
    オペレーションは、
    データセットへの重複排除のオペレーションの結果としてストレージサーバによりデータセットに取り込まれるフラグメンテーションのレベルを計算するステップと、
    前記計算するステップの結果に基づいて重複排除のオペレーションを実行するかどうかを判定するステップと
    を含む、ストレージサーバ。
  17. 前記オペレーションは、重複排除のオペレーションを実行するかどうかを判定するために、フラグメンテーションのレベルを閾値と比較するステップを
    更に含む請求項16に記載のストレージサーバ。
  18. フラグメンテーションのレベルを判定するステップが、
    重複排除のオペレーションの後にデータセットにアクセスするのに必要な読み出しのオペレーションの数を計算するステップと、
    理想データセットにアクセスするのに必要な読み出しのオペレーションの数を計算するステップと、
    重複排除の後にデータセットにアクセスするのに必要な読み出しのオペレーションの数と理想データセットにアクセスするのに必要な読み出しのオペレーションの数とに基づいて、フラグメンテーションのレベルを表す、フラグメンテーションのインデクスを計算するステップと
    を含む、請求項16に記載のストレージサーバ。
  19. フラグメンテーションのインデクスは、重複排除のオペレーションの後にデータセットにアクセスするための読み出しのオペレーションの数と、理想データセットにアクセスするのに必要な読み出しのオペレーションの数との比率である、請求項18に記載のストレージサーバ。
  20. 重複排除のオペレーションの後にデータセットにアクセスするのに必要な読み出しのオペレーションの数を計算するステップは、
    重複排除のオペレーションで共有されるべきデータセット内の複数のブロックの各々のための、ドナーブロックのアドレスを判定するステップと、
    重複排除のオペレーションの後のデータセットの各々のブロックのためのアドレスを含むアドレスリストを作成するステップと、
    ストレージデバイス上で発生する順序でアドレスリスト内のアドレスをソートするステップと、
    アドレスリストから、重複排除のオペレーションの後にデータセットにアクセスするのに必要な読み出しのオペレーションの数を計算するステップと
    を含む、請求項18に記載のストレージサーバ。
  21. 閾値が、データセットのためのフラグメンテーションの最大限の受入可能なレベルを表す、請求項17に記載のストレージサーバ。
  22. 前記オペレーションが更に、フラグメンテーションのレベルが閾値より低いことを判定することに応答して、重複排除のオペレーションを実行するステップを含む、請求項17に記載のストレージサーバ。
  23. 前記オペレーションが更に、フラグメンテーションのレベルが閾値より高いことを判定することに応答して、重複排除のオペレーションを実行しないことを含む、請求項17に記載のストレージサーバ。
  24. 閾値はユーザのインプットに基づいて設定される、請求項17に記載のストレージサーバ。
JP2014559940A 2012-02-29 2013-02-25 重複排除のオペレーションを実行するためのフラグメンテーションのコントロール Active JP6122038B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/408,051 US9026503B2 (en) 2012-02-29 2012-02-29 Fragmentation control for performing deduplication operations
US13/408,051 2012-02-29
PCT/US2013/027673 WO2013130410A1 (en) 2012-02-29 2013-02-25 Fragmentation control for performing deduplication operations

Publications (2)

Publication Number Publication Date
JP2015513741A JP2015513741A (ja) 2015-05-14
JP6122038B2 true JP6122038B2 (ja) 2017-04-26

Family

ID=49004399

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014559940A Active JP6122038B2 (ja) 2012-02-29 2013-02-25 重複排除のオペレーションを実行するためのフラグメンテーションのコントロール

Country Status (5)

Country Link
US (2) US9026503B2 (ja)
EP (1) EP2820545B1 (ja)
JP (1) JP6122038B2 (ja)
CN (1) CN104272263A (ja)
WO (1) WO2013130410A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9933978B2 (en) * 2010-12-16 2018-04-03 International Business Machines Corporation Method and system for processing data
US8732403B1 (en) * 2012-03-14 2014-05-20 Netapp, Inc. Deduplication of data blocks on storage devices
US8706971B1 (en) 2012-03-14 2014-04-22 Netapp, Inc. Caching and deduplication of data blocks in cache memory
JP6094267B2 (ja) * 2013-03-01 2017-03-15 日本電気株式会社 ストレージシステム
US10127235B2 (en) * 2013-03-06 2018-11-13 Quest Software Inc. Storage system deduplication with service level agreements
US10642795B2 (en) * 2013-04-30 2020-05-05 Oracle International Corporation System and method for efficiently duplicating data in a storage system, eliminating the need to read the source data or write the target data
US10747440B2 (en) 2014-09-24 2020-08-18 Hitachi, Ltd. Storage system and storage system management method
CN105812405B (zh) * 2014-12-29 2019-04-09 阿里巴巴集团控股有限公司 一种处理消息的方法、装置及系统
US10037336B1 (en) 2015-03-27 2018-07-31 EMC IP Holding Company LLC Performing block deduplication using block sequence classifications
CN105204783B (zh) * 2015-10-13 2018-12-07 华中科技大学 一种基于数据生存期的固态盘垃圾回收方法
JP6406283B2 (ja) * 2016-03-01 2018-10-17 日本電気株式会社 ストレージ装置およびストレージ方法
CN106066818B (zh) * 2016-05-25 2019-05-17 重庆大学 一种提高重复数据删除备份系统恢复性能的数据布局方法
US10162554B2 (en) 2016-08-03 2018-12-25 Samsung Electronics Co., Ltd. System and method for controlling a programmable deduplication ratio for a memory system
CN107632786B (zh) * 2017-09-20 2020-04-07 杭州宏杉科技股份有限公司 一种数据重删的管理方法及装置
CN109359250B (zh) * 2018-08-31 2022-05-31 创新先进技术有限公司 统一资源定位符处理方法、装置、服务器及可读存储介质
US11455281B2 (en) * 2019-04-19 2022-09-27 EMC IP Holding Company LLC Generating and morphing a collection of files in a folder/sub-folder structure that collectively has desired dedupability, compression, clustering and commonality
JP7323801B2 (ja) 2019-11-06 2023-08-09 富士通株式会社 情報処理装置および情報処理プログラム
CN111459848B (zh) * 2020-03-31 2023-10-31 Oppo广东移动通信有限公司 一种文件碎片的整理方法、装置、存储介质及电子设备
US11520695B2 (en) * 2021-03-02 2022-12-06 Western Digital Technologies, Inc. Storage system and method for automatic defragmentation of memory
US11809736B2 (en) 2021-12-21 2023-11-07 Western Digital Technologies, Inc. Storage system and method for quantifying storage fragmentation and predicting performance drop
US11809747B2 (en) * 2021-12-21 2023-11-07 Western Digital Technologies, Inc. Storage system and method for optimizing write-amplification factor, endurance, and latency during a defragmentation operation
US11847343B2 (en) 2021-12-22 2023-12-19 Western Digital Technologies, Inc. Storage system and method for non-blocking coherent re-writes

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8051252B2 (en) 2005-03-11 2011-11-01 Ross Neil Williams Method and apparatus for detecting the presence of subblocks in a reduced-redundancy storage system
JP4915774B2 (ja) * 2006-03-15 2012-04-11 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
US7562203B2 (en) 2006-09-27 2009-07-14 Network Appliance, Inc. Storage defragmentation based on modified physical address and unmodified logical address
US7321962B1 (en) * 2007-02-07 2008-01-22 Network Appliance, Inc. Technique for translating a hybrid virtual volume file system into a pure virtual file system data stream
JP5060876B2 (ja) * 2007-08-30 2012-10-31 株式会社日立製作所 ストレージシステム及びストレージシステムの消費電力低減方法
KR20100071063A (ko) * 2007-10-05 2010-06-28 디스키퍼 코포레이션 고체 상태 드라이브 최적화기
US8447938B2 (en) * 2008-01-04 2013-05-21 International Business Machines Corporation Backing up a deduplicated filesystem to disjoint media
US8346730B2 (en) * 2008-04-25 2013-01-01 Netapp. Inc. Deduplication of data on disk devices based on a threshold number of sequential blocks
US9176978B2 (en) 2009-02-05 2015-11-03 Roderick B. Wideman Classifying data for deduplication and storage
US20110055471A1 (en) 2009-08-28 2011-03-03 Jonathan Thatcher Apparatus, system, and method for improved data deduplication
JP4852135B2 (ja) * 2009-09-30 2012-01-11 株式会社東芝 データ分割方法及び装置
US8499131B2 (en) 2010-04-13 2013-07-30 Hewlett-Packard Development Company, L.P. Capping a number of locations referred to by chunk references
US8244992B2 (en) * 2010-05-24 2012-08-14 Spackman Stephen P Policy based data retrieval performance for deduplicated data
US20120036113A1 (en) 2010-08-04 2012-02-09 Mark David Lillibridge Performing deduplication of input data at plural levels
KR101652436B1 (ko) 2010-08-17 2016-08-30 에스케이텔레콤 주식회사 분산파일 시스템에서의 중복 제거 장치 및 방법
CA2809224C (en) * 2010-08-31 2016-05-17 Nec Corporation Storage system
US8463981B2 (en) * 2010-12-08 2013-06-11 Hitachi, Ltd. Storage apparatus having deduplication unit
US8825605B2 (en) * 2011-10-11 2014-09-02 Netapp, Inc. Deduplication aware scheduling of requests to access data blocks
US8615499B2 (en) * 2012-01-27 2013-12-24 International Business Machines Corporation Estimating data reduction in storage systems

Also Published As

Publication number Publication date
EP2820545B1 (en) 2020-09-30
US9026503B2 (en) 2015-05-05
US20150254268A1 (en) 2015-09-10
JP2015513741A (ja) 2015-05-14
EP2820545A1 (en) 2015-01-07
US20130226881A1 (en) 2013-08-29
EP2820545A4 (en) 2015-11-11
WO2013130410A1 (en) 2013-09-06
CN104272263A (zh) 2015-01-07

Similar Documents

Publication Publication Date Title
JP6122038B2 (ja) 重複排除のオペレーションを実行するためのフラグメンテーションのコントロール
US9606918B2 (en) Methods and systems for dynamically controlled caching
US10459649B2 (en) Host side deduplication
US8607017B2 (en) Use of similarity hash to route data for improved deduplication in a storage server cluster
US9612768B2 (en) Methods and systems for storing data at different storage tiers of a storage system
US9424285B1 (en) Content-based sampling for deduplication estimation
US9798728B2 (en) System performing data deduplication using a dense tree data structure
US8117388B2 (en) Data distribution through capacity leveling in a striped file system
US8620962B1 (en) Systems and methods for hierarchical reference counting via sibling trees
US8955087B2 (en) Method and system for transferring replicated information from source storage to destination storage
US8171064B2 (en) Methods and systems for concurrently reading direct and indirect data blocks
US11226869B2 (en) Persistent memory architecture
WO2006118957A2 (en) Data placement technique for striping data containers across volumes of a storage system cluster
US8601214B1 (en) System and method for write-back cache in sparse volumes
EP2168063A1 (en) System and method for on-the-fly elimination of redundant date
US20150081981A1 (en) Generating predictive cache statistics for various cache sizes
US20150134625A1 (en) Pruning of server duplication information for efficient caching
US10853286B2 (en) Performance improvement for an active-active distributed non-ALUA system with address ownerships
US8954390B1 (en) Method and system for replication in storage systems

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20151116

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20151118

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170201

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170330

R150 Certificate of patent or registration of utility model

Ref document number: 6122038

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250