JP2016537703A - バックアップシステムの性能の改善 - Google Patents

バックアップシステムの性能の改善 Download PDF

Info

Publication number
JP2016537703A
JP2016537703A JP2016517543A JP2016517543A JP2016537703A JP 2016537703 A JP2016537703 A JP 2016537703A JP 2016517543 A JP2016517543 A JP 2016517543A JP 2016517543 A JP2016517543 A JP 2016517543A JP 2016537703 A JP2016537703 A JP 2016537703A
Authority
JP
Japan
Prior art keywords
backup
storage unit
data
utilization
segments
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
JP2016517543A
Other languages
English (en)
Other versions
JP6521462B2 (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.)
Veritas US IP Holdings LLC
Original Assignee
Veritas US IP Holdings LLC
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 Veritas US IP Holdings LLC filed Critical Veritas US IP Holdings LLC
Publication of JP2016537703A publication Critical patent/JP2016537703A/ja
Application granted granted Critical
Publication of JP6521462B2 publication Critical patent/JP6521462B2/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/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Abstract

バックアップシステムの性能を改善するための技術が開示される。特定の一例示的実施形態では、技術は、バックアップシステムの性能を改善するための方法として実現されてもよい。方法は、クライアントデバイスのバックアップを実行することと、少なくとも1つのコンピュータプロセッサを使用して、バックアップに関連付けられた記憶ユニットの外部に配置されたデータセグメントへの参照を追跡することと、追跡された参照に基づき、バックアップに関連付けられた記憶ユニットの使用率を計算することと、計算された使用率が指定されたパラメータを満たすかどうかを判定することと、計算された使用率が指定されたパラメータを満たす場合に1つ以上の応答動作を判定することと、を含んでもよい。

Description

本開示は概してデータの重複排除に関し、より詳細には、バックアップシステムの性能を改善するための技術に関する。
データ重複排除は、バックアップシステムが、以前にバックアップしたデータ(即ち、重複したデータ)のバックアップを低減することによって記憶領域を節約することを可能にする。バックアップシステムは、バックアップされるデータセグメント(例えば、ブロック)の指紋又はハッシュを生成する場合がある。ハッシュ又は指紋が、以前に記憶したデータセグメントと一致する場合、バックアップシステムは単純に、以前に記憶したデータセグメントへの参照又はポインタを記録する場合がある。例えば、バックアップから以前に記憶したセグメントのコピーへの参照が作成され得る場合、サーバボリュームの第2のバックアップは、データセグメントを(変更されている場合でも)バックアップしない場合がある。以前に記憶したセグメントへの参照は、バックアップに必要な記憶領域の量を、複数のバックアップにわたってセグメントを共有することによって低減し得る。重複排除されたバックアップからの復元は、バックアップによって参照されるデータだけでなく、データがバックアップから取得されることも必要とする場合がある。
バックアップ内のデータセグメントへの参照は、結果的に、記憶領域全体に分散したセグメントへの参照(例えば、大きいボリューム全体に分散したセグメントを指す参照)となり得る。復元の性能は、入出力(I/O)要求がランダムになるにしたがって低下し得る。また、断片化を低減する作業は、バックアップサーバのオーバーヘッドを増加させ得る。
上記のことを考慮すると、現在のセキュリティ情報改善技術に関連する重大な問題及び欠点が存在する可能性があることが理解され得る。
バックアップシステムの性能を改善するための技術が開示される。特定の一例示的実施形態では、技術は、バックアップシステムの性能を改善するための方法として実現されてもよい。方法は、クライアントデバイスのバックアップを実行することと、少なくとも1つのコンピュータプロセッサを使用して、バックアップに関連付けられた記憶ユニットの外部に配置されたデータセグメントへの参照を追跡することと、追跡された参照に基づき、バックアップに関連付けられた記憶ユニットの使用率を計算することと、計算された使用率が指定されたパラメータを満たすかどうかを判定することと、計算された使用率が指定されたパラメータを満たす場合に1つ以上の応答動作を判定することと、を含んでもよい。
この特定の例示的実施形態の他の態様によれば、技術は、1つ以上の応答動作を実行することを更に含んでもよい。
この特定の例示的実施形態の更なる態様によれば、1つ以上の応答動作は、計算された使用率の情報をユーザに提供することと、バックアップ動作をユーザに推奨することと、後続のバックアップにおいて送信する1つ以上の参照セグメントを特定することと、のうちの少なくとも1つを含んでもよい。
この特定の例示的実施形態の追加の態様によれば、バックアップの外部にあるデータセグメントへの参照を追跡することは、クライアントサイトにおいて実行されてもよい。
この特定の例示的実施形態の追加の態様によれば、記憶ユニットの外部にあるデータセグメントへの参照を追跡することは、記憶ユニットに関連付けられたデータセグメントを特定することによって実行されてもよい。
この特定の例示的実施形態の追加の態様によれば、使用率を計算することは、記憶ユニットに関連付けられた、特定されたデータセグメントをカウントすることと、特定されたセグメントによって使用される記憶ユニットの部分を判定することと、を含んでもよい。
この特定の例示的実施形態の追加の態様によれば、指定されたパラメータは、記憶ユニットの許容可能な使用率の範囲を含んでもよい。
この特定の例示的実施形態の追加の態様によれば、指定されたパラメータは、記憶ユニットの許容不可能な使用率の範囲を含んでもよい。
この特定の例示的実施形態の追加の態様によれば、応答動作は、記憶ユニットの計算された使用率が指定された閾値を下回るという判定に基づき、後続のバックアップにおいて、記憶ユニットの変更されていないデータの1つ以上のセグメントを送信することを含んでもよい。
この特定の例示的実施形態の追加の態様によれば、記憶ユニット内の変更されていないデータの1つ以上のセグメントは、バックアップに対するデータの断片化を低減するために、第2の記憶ユニット内のデータのセグメントと組み合わされ、新しい記憶ユニット内に記憶されてもよい。
この特定の例示的実施形態の追加の態様によれば、バックアップに関連付けられた記憶ユニットは、コンテナを含んでもよい。
この特定の例示的実施形態の追加の態様によれば、技術は、記憶ユニットの使用率の閾値を指定するパラメータを設定するためのユーザインタフェースを提供することを更に含んでもよい。
この特定の例示的実施形態の追加の態様によれば、ユーザインタフェースは、記憶ユニットの使用率の指示、及び記憶ユニットのデータの断片化の推定値に少なくとも部分的に基づく推定復元時間の指示を提供してもよい。
この特定の例示的実施形態の追加の態様によれば、ユーザインタフェースは、記憶ユニットのデータの重複排除のレベルに少なくとも部分的に基づく推定バックアップ時間の指示を提供してもよい。
この特定の例示的実施形態の追加の態様によれば、技術は、命令のコンピュータプログラムを記憶する、少なくとも1つの非一時的プロセッサ可読記憶媒体として実現されてもよく、この命令は、方法を実行するためのコンピュータ処理を実行するよう少なくとも1つのプロセッサに命令するために、少なくとも1つのプロセッサによって読み取り可能になるように構成される。
別の特定の例示的実施形態では、技術(単数又は複数)は、バックアップシステムの性能を改善するための製品として実現されてもよい。製品は、少なくとも1つの非一時的プロセッサ可読記憶媒体、及び少なくとも1つの媒体に記憶された命令を含んでもよい。命令は、少なくとも1つの媒体から少なくとも1つのプロセッサによって読み取り可能になり、それによって、少なくとも1つのプロセッサを、クライアントデバイスのバックアップを実行するように動作させ、バックアップに関連付けられた記憶ユニットの外部に配置されたデータセグメントへの参照を追跡させ、追跡された参照に基づき、バックアップに関連付けられた記憶ユニットの使用率を計算させ、計算された使用率が指定されたパラメータを満たすかどうかを判定させ、計算された使用率が指定されたパラメータを満たす場合に1つ以上の応答動作を判定させるように構成されてもよい。
更に別の特定の例示的実施形態では、技術は、ネットワークに通信可能に結合された1つ以上のプロセッサを含むバックアップシステムの性能を改善するためのシステムとして実現されてもよい。1つ以上のプロセッサは、クライアントデバイスのバックアップを実行し、バックアップに関連付けられた記憶ユニットの外部に配置されたデータセグメントへの参照を追跡し、追跡された参照に基づき、バックアップに関連付けられた記憶ユニットの使用率を計算し、計算された使用率が指定されたパラメータを満たすかどうかを判定し、計算された使用率が指定されたパラメータを満たす場合に1つ以上の応答動作を判定するように構成されてもよい。
この特定の例示的実施形態の追加の態様によれば、記憶ユニットの外部にあるデータセグメントへの参照を追跡することは、クライアントデバイスにおいて実行されてもよい。
この特定の例示的実施形態の追加の態様によれば、記憶ユニットの外部にあるデータセグメントへの参照を追跡することは、記憶ユニットに関連付けられたデータセグメントを特定することによって実行されてもよい。
この特定の例示的実施形態の追加の態様によれば、応答動作は、記憶ユニットの計算された使用率が指定された閾値を下回るという判定に基づき、後続のバックアップにおいて、記憶ユニットの変更されていないデータの1つ以上のセグメントを送信することを含んでもよい。
ここで、本開示について、添付図面に示すようなその例示的実施形態を参照して、より詳細に説明する。本開示は、例示的実施形態を参照して以下で説明されるが、本開示はそれに限定されるものではないことを理解されたい。本明細書の教示を参照する当業者は、追加の実装、変更態様、及び実施形態、並びに、本明細書に記載されているような本開示の範囲内であり、かつ本開示がそれに関連して著しい有用性を有し得る他の使用分野を認識するであろう。
ここで、本開示のより完全な理解を促進するために添付図面が参照され、これらの図面では、類似の要素が類似の番号を使用して参照される。これらの図面は、本開示を制限するものとして解釈すべきではなく、例示のみを目的としている。
本開示の一実施形態に係るバックアップシステムの性能を改善するためのネットワークアーキテクチャを示すブロック図である。 本開示の一実施形態に係るコンピュータシステムのブロック図である。 本開示の一実施形態に係るバックアップシステムの性能を改善するためのモジュールを示す図である。 本開示の一実施形態に係るバックアップシステムの性能を改善するための方法を示す図である。 本開示の一実施形態に係るバックアップシステムにおける復元速度の比較を示す図である。 本開示の一実施形態に係るバックアップシステムにおけるバックアップ速度の比較を示す図である。 本開示の一実施形態に係る第1のバックアップ及び第2のバックアップにおけるコンテナの使用率を示す図である。 本開示の一実施形態に係る第2のバックアップ及び第3のバックアップにおけるコンテナの使用率を示す図である。 本開示の一実施形態に係る第3のバックアップ及び第4のバックアップにおけるコンテナの使用率を示す図である。
図1は、本開示の一実施形態に係るバックアップシステムの性能を改善するためのネットワークアーキテクチャ100を示すブロック図である。図1はネットワークアーキテクチャ100の簡略化された図であり、示されていない追加の要素を含み得る。ネットワークアーキテクチャ100は、クライアントシステム110、120及び130、並びにサーバ140A及び140B(これらのうちの1つ以上は、図2に示すコンピュータシステム200を使用して実装されてもよい)を含んでもよい。クライアントシステム110、120及び130は、ネットワーク150に通信可能に結合されてもよい。サーバ140Aは記憶装置160A(1)〜(N)に通信可能に結合されてもよく、サーバ140Bは記憶装置160B(1)〜(N)に通信可能に結合されてもよい。サーバ140A及び140Bは、管理モジュール(例えば、サーバ140Aの重複排除実行モジュール154)を含んでもよい。サーバ140A及び140Bは、SAN(Storage Area Network、ストレージエリアネットワーク)ファブリック170に通信可能に結合されてもよい。SANファブリック170は、サーバ140A及び140B、並びにクライアントシステム110、120及び130による、ネットワーク150を介した記憶装置180(1)〜(N)へのアクセスをサポートしてもよい。
図2のコンピュータシステム200を参照すると、クライアントシステム110、120及び130のうちの1つ以上からネットワーク150への接続を提供するために、モデム247、ネットワークインタフェース248、又は何らかの他の方法が使用されてもよい。クライアントシステム110、120及び130は、サーバ140A又は140B上の情報に、例えば、ウェブブラウザ又は他のクライアントソフトウェア(図示せず)を使用してアクセスすることができてもよい。そのようなクライアントは、クライアントシステム110、120及び130が、サーバ140A若しくは140B、又は記憶装置160A(1)〜(N)、160B(1)〜(N)、及び/若しくは180(1)〜(N)のうちの1つによってホストされるデータにアクセスすることを可能にしてもよい。
ネットワーク150及び190は、ローカルエリアネットワーク(local area network、LAN)、ワイドエリアネットワーク(wide area network、WAN)、インターネット、セルラーネットワーク、衛星ネットワーク、又はクライアント110、120、130、サーバ140、並びにネットワーク150及び190に通信可能に結合された他のデバイスの間の通信を可能にする他のネットワークであってもよい。ネットワーク150及び190は、スタンドアロンネットワークとして、又は互いと連携して動作する、上述の1つ又は任意の数の例示的な種類のネットワークを更に含んでもよい。ネットワーク150及び190は、それらが通信可能に結合される1つ以上のクライアント又はサーバの1つ以上のプロトコルを利用してもよい。ネットワーク150及び190は、他のプロトコルをネットワークデバイスの1つ以上のプロトコルへ、又はネットワークデバイスの1つ以上のプロトコルを他のプロトコルへと変換してもよい。ネットワーク150及び190はそれぞれ1つのネットワークとして示されているが、1つ以上の実施形態によれば、ネットワーク150及び190はそれぞれ、複数の相互接続されたネットワークを含んでもよいことを理解されたい。
記憶装置160A(1)〜(N)、160B(1)〜(N)、及び/又は180(1)〜(N)は、ネットワークアクセス可能な記憶装置であってもよく、サーバ140A又は140Bに対してローカル、リモート、又はこれらの組み合わせであってもよい。記憶装置160A(1)〜(N)、160B(1)〜(N)、及び/又は180(1)〜(N)は、レイド(redundant array of inexpensive disks、「RAID」)、磁気テープ、ディスク、ストレージエリアネットワーク(「SAN」)、インターネット小型コンピュータシステムインタフェース(internet small computer systems interface、「iSCSI」)SAN、ファイバチャネルSAN、共通インターネットファイルシステム(common Internet File System、「CIFS」)、ネットワーク接続ストレージ(network attached storage、「NAS」)、ネットワークファイルシステム(network file system、「NFS」)、光ベースの記憶装置、又はコンピュータによってアクセス可能な他の記憶装置を利用してもよい。記憶装置160A(1)〜(N)、160B(1)〜(N)、及び/又は180(1)〜(N)は、バックアップ又はアーカイブ目的で使用されてもよい。
いくつかの実施形態によれば、クライアント110、120、及び130は、スマートフォン、PDA、デスクトップコンピュータ、ラップトップコンピュータ、サーバ、他のコンピュータ、又は無線若しくは有線接続を介してネットワーク150に結合された他のデバイスであってもよい。クライアント110、120、及び130は、ユーザ入力、データベース、ファイル、Webサービス、及び/又はアプリケーションプログラミングインタフェースからデータを受け取ってもよい。
サーバ140A及び140Bは、アプリケーションサーバ、アーカイブプラットフォーム、バックアップサーバ、ネットワーク記憶装置、メディアサーバ、電子メールサーバ、ドキュメント管理プラットフォーム、エンタープライズ検索サーバ、又はネットワーク150に通信可能に結合された他のデバイスであってもよい。サーバ140A及び140Bは、アプリケーションデータ、バックアップデータ、又は他のデータの記憶のために、記憶装置160A(1)〜(N)、160B(1)〜(N)、及び/又は180(1)〜(N)のうちの1つを利用してもよい。サーバ140A及び140Bは、クライアント110、120、及び130とバックアッププラットフォーム、バックアップ処理、及び/又は記憶装置との間を移動するデータを処理し得る、アプリケーションサーバなどのホストであってもよい。いくつかの実施形態によれば、サーバ140A及び140Bは、データのバックアップ及び/又はアーカイブに使用されるプラットフォームであってもよい。データの1つ以上の部分は、適用されるバックアップポリシー及び/若しくはアーカイブ、データソースに関連付けられた属性、バックアップのために利用可能な領域、データソースにおける利用可能な領域、又は他の要因に基づきバックアップ若しくはアーカイブされてもよい。
いくつかの実施形態によれば、クライアント110、120、及び/又は130は、例えば、重複排除実行モジュール154など、バックアップシステムの性能改善のための、ソフトウェアの1つ以上の部分を含んでもよい。図示されるように、重複排除実行モジュール154の1つ以上の部分は、ネットワークの中心位置に存在してもよい。例えば、サーバ140Aは、サーバ、ファイアウォール、ゲートウェイ、又はバックアップシステムの性能を改善するための1つ以上の動作を実行し得る他のネットワーク要素であってもよい。いくつかの実施形態によれば、ネットワーク190は外部ネットワーク(例えば、インターネット)であってもよく、サーバ140Aは1つ以上の内部構成要素及びクライアントと外部ネットワークとの間のゲートウェイ又はファイアウォールであってもよい。
一部の実施形態では、特定の記憶ユニット内のデータは、概してバックアップ内のデータの局所性と相互に関連するものと見なされてもよい。例えば、データが同じコンテナ内にある場合、そのデータは、データのうちのより多くを単一のI/O要求において読み取ることを可能にする様式で記憶されてもよい。データが変更されたときに、後続のバックアップは、第1のコンテナ内の元のデータが上書きされないように、別のコンテナ内に記憶された変更を含んでもよい。変更されていないデータは、新しい第2のコンテナ内で、第1のコンテナ内の対応するセグメントへの参照(例えば、ポインタ)によって表されてもよい。このデータの重複排除は、バックアップ中に、重複したブロックの書き込みを防止し、時間及び記憶領域を節約し得る。ただし、時間の経過と共に、データはより断片化し、データの局所性は低下し得る。そのようなデータの復元は、I/O要求が断片化した記憶領域にわたって(例えば、ボリューム内の複数のコンテナにわたって)分散するか又はランダムになり得るため、より困難になり、より長い時間が係る場合がある。重複排除実行モジュール154は、データの局所性が低いことの指示であり得る、使用率の低いコンテナを特定してもよい。以下でより詳細に説明するように、重複排除実行モジュール154は、バックアップの記憶領域及び性能と復元の性能との間のバランスを取るために、1つ以上のバックアップにおける重複排除を調節する能力をユーザに提供してもよい。
いくつかの実施形態によれば、重複排除実行モジュール154は、記憶ユニットの外部にあるデータセグメントへの参照を追跡してもよい。例えば、バックアップは、1つ以上の記憶ユニット(例えば、コンテナ)を使用して実行されてもよい。重複排除実行モジュール154は、特定の記憶ユニットに関連付けられた複数の個数のセグメントを追跡してもよい。例えば、初期バックアップは、その全てが新しい、100メガバイト(MB)のデータを含んでもよい。このデータは、それぞれが4個の5MBのセグメントを有する、5個の20MBのコンテナ内に記憶されてもよい。第2のバックアップは、第2のコンテナ内の5MBのデータ及び第3のコンテナ内の15MBのデータに対する変更を含んでもよい。これらの変更は、新しい第6のコンテナ内に記憶されてもよい。このため、第2のバックアップを使用する復元では、元の第2のコンテナのうちの25%又は5MBのみが使用されてもよく、このデータの残りは、新しい第6のコンテナから取得されてもよい。重複排除実行モジュール154は、バックアップを監視してもよく、コンテナの特定の部分のみがバックアップ内で使用されること、及びそのコンテナに対するデータの残りが、1つ以上の他のコンテナへの参照によって取得されることを判定してもよい。いくつかの実施形態によれば、重複排除実行モジュール154は、コンテナに書き込まれるデータの量を追跡することによって、この判定を下してもよい。いくつかの実施形態では、重複排除実行モジュール154は、コンテナのサイズを認識及び受信してもよく、データによって使用されるコンテナの割合を判定することができてもよい。
いくつかの実施形態では、重複排除実行モジュール154は、コンテナへの書き込みを追跡してもよく、コンテナの使用率が低いことを、コンテナのサイズを認識することなく、そのコンテナへの書き込みを他のコンテナへの書き込みと比較することによって判定してもよい。例えば、バックアップが6個のコンテナへの書き込みを実行し、その書き込みの大部分が1個のコンテナあたり合計約20MBであるのに対し、第2のコンテナへの書き込みが合計約5MBである場合、重複排除実行モジュール154は、第2のコンテナの使用率が低いと判定してもよい。1つ以上の実施形態では、使用率は、重複排除実行モジュール154によって、指定されたパラメータに対して測定されてもよい。
1つ以上の実施形態では、重複排除実行モジュール154は、データのセグメント又は部分が、セグメントと共に書き込まれる1つ以上の識別子ごとにコンテナに書き込まれることを判定してもよい。例えば、各バックアップイメージは、特定のバックアップに対応する世代番号を有してもよい(例えば、第1のバックアップは世代0、第2のバックアップは世代1などであってもよい)。バックアップイメージは、新しいデータ(例えば、上記の例では世代1を有するセグメント)、及び場合によっては、クライアントによって送信される必要がない、前のバックアップ内のデータセグメント(例えば、上記の例では世代0を有するセグメント)への参照から成ってもよい。重複排除実行モジュール154は、セグメントに関連付けられた世代番号を監視してもよく、バックアップ内の各世代に関連付けられたデータの量を判定してもよい。
データセグメントは、長さ、世代番号及びオフセットから成るメタデータを含んでもよい。全てのセグメントの長さの合計は、バックアップイメージのサイズと等しくてもよい。世代番号は、セグメントが関連付けられたバックアップを特定してもよい。オフセットは、同じ世代におけるデータの開始点からのデータのオフセットであってもよい。例えば、データセグメントは、以下のデータ構造に関連付けられてもよい。
typedef struct ih_segment_s{
int64_t length;/データの長さ
int64_t generation;/どのバックアップにおいて生成されたか
int64_t offset;/世代におけるオフセット
struct ih_segment_s next;
}ih_segment_t;
バックアップを監視することによって、重複排除実行モジュール154は、書き込まれるデータの量がわずかしかないデータユニット(例えば、コンテナ)を(例えば、コンテナのサイズを認識することによって、又は特定の世代に書き込まれるセグメントを他の世代に対してカウントすることによって)特定することができてもよい。比較的小さい割合のデータのみが書き込まれるデータユニットを特定することによって、重複排除実行モジュール154は、そのようなデータユニットの使用率が低く、データの復元の性能を低下させ得ると推測してもよい。1つ以上のクライアント(例えば、クライアント110、120、及び130)におけるデータユニットの使用率を追跡することによって、重複排除実行モジュール154は、バックアップサーバ上に複数のクライアントからの負荷を集中するのではなく、計算負荷をバックアップクライアントに分散してもよい。
記憶ユニットの使用率を計算した後、重複排除実行モジュール154は、使用率を1つ以上の指定されたパラメータに対して比較してもよい。例えば、指定されたパラメータは、記憶ユニットの許容可能な使用率の範囲、記憶ユニットの許容不可能な使用率の範囲、及び/又は使用率の閾値を含んでもよい。重複排除実行モジュール154は、使用率のパラメータを設定するためのユーザインタフェースを提供してもよい。ユーザインタフェースは、1つ以上の記憶ユニットに対する使用率の指示を提供してもよい。ユーザインタフェースは、記憶ユニットのデータの断片化の推定値、復元時間の履歴データ、データの量、及び/又は他の要因に少なくとも部分的に基づく、推定される復元時間の指示を提供してもよい。ユーザインタフェースは、記憶ユニットに対するデータの重複排除のレベル、データの量、バックアップ時間の履歴データ、及び/又は他の要因に基づく、推定されるバックアップ時間の指示を提供してもよい。いくつかの実施形態によれば、ユーザインタフェースは、ユーザが、コンテナに対する使用率の許容可能なレベルを示す1つ以上のパラメータを指定することによって、復元速度及びバックアップ速度とバックアップ記憶領域のサイズとの間のバランスを選択することを可能にしてもよい。
いくつかの実施形態によれば、重複排除実行モジュール154は、記憶ユニット又はコンテナの使用率が低いと判定した場合に1つ以上の動作を実行してもよい。応答動作は、計算された使用率の情報をユーザに提供することと、バックアップ動作をユーザに推奨することと、後続のバックアップにおいて送信する1つ以上の参照セグメントを特定することと、のうちの1つを含んでもよい。応答動作は、記憶ユニットの計算された使用率が指定された閾値を下回るという判定に基づき、後続のバックアップにおいて、記憶ユニットの変更されていないデータの1つ以上のセグメントを送信することも含んでもよい。記憶ユニット内の変更されていないデータの1つ以上のセグメントは、バックアップに対するデータの断片化を低減するために、第2の記憶ユニット内のデータのセグメントと組み合わされ、新しい記憶ユニット内に記憶されてもよい。
図2は、本開示の一実施形態に係るコンピュータシステム200のブロック図である。コンピュータシステム200は、本開示に係る技術を実装するのに好適である。コンピュータシステム200は、中央処理装置214、システムメモリ217(例えば、RAM(Random Access Memory、ランダムアクセスメモリ)、ROM(Read Only Memory、リードオンリーメモリ)、フラッシュRAMなど)、入出力(I/O)コントローラ218などのコンピュータシステム210の主サブシステムを相互接続し得るバス212、オーディオ出力インタフェース222を介したスピーカーシステム220などの外部オーディオデバイス、ディスプレイアダプタ226を介したディスプレイスクリーン224、シリアルポート228及び230、(キーボードコントローラ233を介して接続される)キーボード232、記憶装置インタフェース234、フロッピーディスク238を収容するように動作するフロッピーディスクドライブ237、ファイバチャネルネットワーク290と接続するように動作するホストバスアダプタ(host bus adapter、HBA)インタフェースカード235A、SCSIバス239と接続するように動作するホストバスアダプタ(HBA)インタフェースカード235B、並びに光ディスク242を収容するように動作する光ディスクドライブ240などの外部デバイスを含んでもよい。また、マウス246(シリアルポート228を介してバス212に結合された他のポイントアンドクリックデバイス)、(シリアルポート230を介してバス212に結合された)モデム247、(バス212に直接結合された)ネットワークインタフェース248、電力マネージャ250、及びバッテリ252が含まれてもよい。
バス212は、中央処理装置214と、前に示したようなリードオンリーメモリ(ROM)又はフラッシュメモリ(どちらも図示せず)及びランダムアクセスメモリ(RAM)(図示せず)を含み得るシステムメモリ217との間のデータ通信を可能にする。RAMは、オペレーティングシステム及びアプリケーションプログラムが読み込まれるメインメモリであってもよい。ROM又はフラッシュメモリは、他のコードの中で、周辺構成要素との相互作用などの基本的なハードウェア動作を制御する基本入出力システム(Basic Input-Output system、BIOS)を含んでもよい。コンピュータシステム210と共に常駐するアプリケーションは、ハードディスクドライブ(例えば、固定ディスク244)、光学ドライブ(例えば、光学ドライブ240)、フロッピーディスクユニット237、又は他の記憶媒体などのコンピュータ可読媒体を介して記憶及びアクセスされてもよい。例えば、重複排除実行モジュール154は、システムメモリ217内に常駐してもよい。
記憶装置インタフェース234は、コンピュータシステム210の他の記憶装置インタフェースと同様、固定ディスクドライブ244などの情報の記憶及び/又は取得のための標準的なコンピュータ可読媒体に接続してもよい。固定ディスクドライブ244は、コンピュータシステム210の一部であってもよく、又は別個であり、かつ他のインタフェースシステムを介してアクセスされてもよい。モデム247は、電話リンクを介したリモートサーバへの直接的な接続、又はインターネットサービスプロバイダ(internet service provider、ISP)を介したインターネットへの直接的な接続を提供してもよい。ネットワークインタフェース248は、POP(point of presence、ポイントオブプレゼンス)を介したインターネットへの直接的なネットワークリンクを介して、リモートサーバへの直接的な接続を提供してもよい。ネットワークインタフェース248は、デジタルセルラー電話接続、セルラーデジタルパケットデータ(Cellular Digital Packet Data、CDPD)接続、デジタル衛星データ接続などを含む無線技術を使用して、そのような接続を提供してもよい。
多くの他のデバイス又はサブシステム(図示せず)は、同様の様式で接続されてもよい(例えば、ドキュメントスキャナ、デジタルカメラなど)。逆に、本開示を実践するために、図2に示す全てのデバイスが存在する必要はない。デバイス及びサブシステムは、図2に示すものと異なる方法で相互接続されてもよい。本開示を実装するためのコードは、システムメモリ217、固定ディスク244、光ディスク242、又はフロッピーディスク238のうちの1つ以上などのコンピュータ可読記憶メディア内に記憶されてもよい。本開示を実装するためのコードは、1つ以上のインタフェースを介して受信されてもよく、メモリ内に記憶されてもよい。コンピュータシステム210上で提供されるオペレーティングシステムは、MS−DOS(登録商標)、MS−WINDOWS(登録商標)、OS/2(登録商標)、OS X(登録商標)、UNIX(登録商標)、Linux(登録商標)、又は別の公知のオペレーティングシステムであってもよい。
電力マネージャ250は、バッテリ252の電力レベルを監視してもよい。電力マネージャ250は、電力レベル、コンピュータシステム200のシャットダウンまでに残っている時間ウィンドウ、電力消費率、コンピュータシステムが主電源(例えば、AC電力)又はバッテリ電力のいずれを使用しているかに関する指示、及び他の電力関連情報を判定することを可能にするための1つ以上のAPI(Application Programming Interface、アプリケーションプログラミングインタフェース)を提供してもよい。いくつかの実施形態によれば、電力マネージャ250のAPIは、リモートアクセス可能(例えば、ネットワーク接続を介してリモートバックアップ管理モジュールにアクセス可能)であってもよい。いくつかの実施形態によれば、バッテリ252は、コンピュータシステム200に対してローカル又はリモートに配置された無停電電源装置(Uninterruptable Power Supply、UPS)であってもよい。そのような実施形態では、電力マネージャ250は、UPSの電力レベルに関する情報を提供してもよい。
図3を参照すると、本開示の一実施形態に係る重複排除実行モジュール310が示されている。図示されているように、重複排除実行モジュール310は、バックアップ参照追跡モジュール312、使用率追跡モジュール314、コンテナ最適化モジュール316、及びエラー記録及び報告モジュール318を含む1つ以上の構成要素を含んでもよい。
以下の説明では、1つ以上のモジュールを含み得るバックアップシステムの性能を改善するためのシステム及び方法のネットワーク要素、コンピュータ、及び/又は構成要素について説明する。本明細書において使用されているように、用語「モジュール」は、コンピューティングソフトウェア、ファームウェア、ハードウェア、及び/又はこれらの様々な組み合わせを指すものとして理解され得る。しかしながら、モジュールは、ハードウェア、ファームウェア上に実装されず、プロセッサ可読記録可能記憶媒体上にも記録されないソフトウェアとして解釈すべきではない(即ち、モジュールはソフトウェアそのものではない)。モジュールは例示的なものであることに留意されたい。様々な適用例をサポートするために、モジュールが組み合わされても、統合されても、かつ/又は複製されてもよい。また、特定のモジュールにおいて実行されるものとして本明細書で説明される機能は、特定のモジュールにおいて実行される機能の代わりに、又はそれに加えて、1つ以上の他のモジュールにおいて、及び/又は1つ以上の他のデバイスによって実行されてもよい。更に、モジュールは、複数のデバイス、及び/又は互いに対してローカル若しくはリモートである他の構成要素に実装されてもよい。更に、モジュールは、1つのデバイスから移動されて別のデバイスに追加されてもよく、かつ/又は両方のデバイス内に含まれてもよい。
バックアップ参照追跡モジュール312は、バックアップクライアント上に存在してもよい。いくつかの実施形態では、バックアップ参照追跡モジュール312は、サーバ上に存在してもよい。バックアップ参照追跡モジュール312は、データのセグメント又は部分が、セグメントと共に書き込まれる1つ以上の識別子(例えば、特定のバックアップに対応し得る世代番号)ごとにコンテナに書き込まれることを判定してもよい。バックアップイメージは、新しいデータ(例えば、世代1を有するセグメント)、及び場合によっては、クライアントによって送信される必要がない、前のバックアップ内のデータセグメント(例えば、世代0を有するセグメント)への参照から成ってもよい。バックアップ参照追跡モジュール312は、セグメントに関連付けられた世代番号を監視してもよく、バックアップ内の各世代に関連付けられたデータの量を判定してもよい。
データセグメントは、長さ、世代番号及びオフセットから成るメタデータを含んでもよい。いくつかの実施形態では、バックアップ参照追跡モジュール312は、各世代に関連付けられた長さの合計を計算してもよく、世代への参照をカウントしてもよく、又はこれらの両方を実行してもよい。
使用率追跡モジュール314は、バックアップ参照追跡モジュール312から参照データを受信してもよい。使用率追跡モジュール314は、書き込まれるデータの量がわずかしかないデータユニット(例えば、コンテナ)を(例えば、コンテナのサイズを認識することによって、又は特定の世代に書き込まれるセグメントを他の世代に対してカウントすることによって)特定することができてもよい。比較的小さい割合のデータのみが書き込まれるデータユニットを特定することによって、使用率追跡モジュール314は、そのようなデータユニットの使用率が低く、データの復元の性能を低下させ得ると推測してもよい。
コンテナ最適化モジュール316は、使用率追跡モジュール314から使用率情報を受信してもよい。コンテナ最適化モジュール316は、使用率を1つ以上の指定されたパラメータに対して比較してもよい。例えば、指定されたパラメータは、記憶ユニットの許容可能な使用率の範囲、記憶ユニットの許容不可能な使用率の範囲、及び/又は使用率の閾値を含んでもよい。コンテナ最適化モジュール316は、記憶ユニット又はコンテナの使用率が低いと判定した場合に1つ以上の動作を実行してもよい。応答動作は、計算された使用率の情報をユーザに提供することと、バックアップ動作をユーザに推奨することと、後続のバックアップにおいて送信する1つ以上の参照セグメントを特定することと、のうちの1つを含んでもよい。応答動作は、記憶ユニットの計算された使用率が指定された閾値を下回るという判定に基づき、後続のバックアップにおいて、記憶ユニットの変更されていないデータの1つ以上のセグメントを送信することも含んでもよい。記憶ユニット内の変更されていないデータの1つ以上のセグメントは、バックアップに対するデータの断片化を低減するために、第2の記憶ユニット内のデータのセグメントと組み合わされ、新しい記憶ユニット内に記憶されてもよい。
エラー記録及び報告モジュール320は、バックアップシステムの性能を改善することに関連付けられたログ、レポート、又は他の情報を生成してもよい。
図4を参照すると、本開示の一実施形態に係るバックアップシステムの性能を改善するための方法400が示されている。ブロック402では、方法400が開始されてもよい。
ブロック404では、バックアップが実行されてもよい。ブロック406では、前のバックアップへの参照が1つ以上のコンテナに対して追跡されてもよい。例えば、データのセグメント又は部分が、セグメントと共に書き込まれる1つ以上の識別子(例えば、特定のバックアップに対応し得る世代番号)によって特定されてもよい。バックアップイメージは、新しいデータ(例えば、世代1を有するセグメント)、及び場合によっては、クライアントによって送信される必要がない、前のバックアップ内のデータセグメント(例えば、世代0を有するセグメント)への参照から成ってもよい。セグメントに関連付けられた世代番号又は他の識別子が監視されてもよく、バックアップ内の各世代に関連付けられたデータの量が判定されてもよい。
ブロック408では、1つ以上のコンテナの使用率が判定されてもよい。いくつかの実施形態では、使用率はバックアップクライアントにおいて計算又は推定されてもよい。使用率は、コンテナのサイズを認識することによって、及びコンテナに書き込まれたデータの量をコンテナのサイズと比較することによって判定されてもよい。いくつかの実施形態では、使用率は、バックアップの特定の世代のセグメントを、他の世代に書き込まれたセグメントに対してカウントすることによって判定されてもよい。コンテナの使用率を計算又は推定する他の方法(例えば、バックアップサーバから使用率情報を受信すること)が実装されてもよい。
ブロック410では、使用率が指定された閾値を下回るかどうかが判定されてもよい。使用率が指定された閾値を下回る場合、方法400はブロック412において続行されてもよい。使用率が指定された閾値と等しいか又はそれを上回る場合、方法400はブロック416において終了してもよい。使用率の他の比較(例えば、使用率を指定された範囲に対して比較すること)が実装されてもよい。
ブロック412では、1つ以上の使用率パラメータとの比較に基づき、1つ以上の応答動作がコンテナに対して実行されてもよい。例えば、後続のバックアップにおいて再送信するデータの部分が特定されてもよい(即ち、データの部分は前のバックアップイメージ内に存在してもよいが、重複排除によって発生する断片化を低減するために、再度クライアントからバックアップサーバに送信されてもよい)。実行される応答動作は、ユーザによって指定されたパラメータ、入力要求に応じたユーザ入力、コンテナの使用率のレベル、参照されるデータの量、及び他の要因によって異なってもよい。
ブロック414では、後続のバックアップ中、再送信されたデータ(即ち、サーバ上で利用可能であるがクライアントから送信されたデータ)及び新しいデータを使用して、新しいコンテナが作成されてもよい。新しいコンテナは、データの断片化を低減し、復元に必要なI/Oを低減し、復元の性能を改善し得る、データの優れた局所性をコンテナに提供してもよい。
ブロック416では、方法400が終了してもよい。
使用率パラメータは、コンテナに対して重複したデータを送信することをトリガする使用率のレベルをユーザが判定し得るように構成可能であってもよい。
図5は、本開示の一実施形態に係るバックアップシステムにおける復元速度の比較を示す図である。例えば、一実施形態のテストでは、バックアップ速度の損失が最小である300MB/秒の復元速度が、元の90MB/秒の復元速度と比較して図示される。復元速度は3倍以上改善されている。図5は、1回目のバックアップから200回目のバックアップまでの復元速度の記録を、一実施形態と、改善されていないか又は従来の実装との間で比較する。
図6は、本開示の一実施形態に係るバックアップシステムにおけるバックアップ速度の比較を示す図である。図6は、改善されていないか又は従来の実装と比較した、一実施形態のバックアップ速度を示す。バックアップ速度は200回のバックアップにわたって比較される。
図7から図9は、一実施形態に係るコンテナの使用率を例示的に示す。一実施形態では、示されたバックアップイメージが、一定の範囲、例えば256MBに分割され、その範囲の使用率がバックアップの終了時に計算される。使用率が閾値を下回る(例えば、50%を下回る、即ち、データの半分未満が現在のバックアップによって使用されている)場合、サーバ内に記憶するための一連のデータは完全に破棄されてもよく(即ち、参照が使用されなくてもよい)、代わりにデータがクライアントから送信されてもよい。この実施形態では、例示を目的としたデータ範囲(即ち、コンテナのサイズ)は20MBであってもよい。データがクライアントから再送信される使用率の閾値は、50%であってもよい。
図7は、本開示の一実施形態に係る第1のバックアップ及び第2のバックアップにおけるコンテナの使用率を示す図である。行702のコンテナは、5個の20MBのコンテナを使用する、100MBの新しいデータの第1のバックアップを表す。参照履歴は、[オフセット,長さ,世代番号]によって、[0,100,0]のように表されてもよい。したがって、このデータは世代0に対してオフセット0で始まり、100MBを含み、(第1のバックアップに対する)世代番号0であってもよい。セグメントの配列及びそれらの対応するコンテナは、以下のように表されてもよい。
Figure 2016537703
第2のバックアップは、行704によって表されてもよい。図示されるように、第2のバックアップは20MBのデータを含んでもよい(即ち、20MBのデータのみが第1のバックアップから変更された)。第2のバックアップは、前のバックアップ(世代0)を参照するオフセット0で始まる35MBのデータ、世代1に対するオフセット0で始まる20MBのデータ、及び世代0に対するオフセット55で始まる45MBのデータを含んでもよい。第2のバックアップは世代0のデータを送信せず、世代0である前のバックアップ内の対応するセグメントを指す参照がサーバにおいて作成される。第2のバックアップの参照履歴は、[オフセット,長さ,世代番号]によって、[0,35,0][0,20,1][55,45,0]のように表されてもよい。セグメントの配列及びそれらの対応するコンテナは、以下のように表されてもよい。
Figure 2016537703
行704に示されるように、第2のバックアップはコンテナ1のデータの75%及びコンテナ2のデータの25%を利用してもよい。新しいコンテナ5は、世代1を使用して作成されてもよく、[オフセット,長さ,世代番号]によって[0,20,1]のように表される参照履歴を有してもよい。新しいコンテナ5は、コンテナ1から変更された5MBのデータ及びコンテナ2から変更された15MBのデータを含んでもよい。
図8は、本開示の一実施形態に係る第2のバックアップ及び第3のバックアップにおけるコンテナの使用率を示す図である。行704は図7から変更されていない。行802は第3のバックアップを表してもよい。第3のバックアップでは、15MBのデータが変更されている。第2のバックアップにおけるコンテナ2の使用率は、指定された使用率の閾値(この実施例では、50%)を下回ったため、このコンテナのデータは、サーバ上で参照されずにクライアントから送信されてもよい。コンテナ2に対してデータをクライアントから送信することによって、従来はデータの既存のコピーへのポインタ又は参照を使用してサーバ上で重複排除及び参照されていたであろう5MBの追加データが送信される。第3のバックアップの参照履歴は、[オフセット,長さ,世代番号]によって、[0,35,0][0,5,1][0,20,2][60,40,0]のように表されてもよい。したがって、前のバックアップ(世代1)におけるコンテナ2内にあった5MBのデータは、クライアントから再送信されて新しいコンテナ6内に記憶されてもよい。新しいコンテナ6は、前のバックアップのコンテナ2に対して変更されたデータを表していた、コンテナ5内の15MBのデータを含んでもよい。これでバックアップ3におけるコンテナ2の使用率は0%になり、復元のために必要でなくなる。コンテナ2内のデータの最新バージョンはコンテナ6に移行したため、データの局所性及び復元の性能が改善され得る。これはバックアップごとのコンテナの論理的な例示であるため、コンテナ内のデータは決して削除されず、したがってコンテナ2は依然として履歴による回復及び復元目的で存在するが、このバックアップセットの一部ではなくなることに留意されたい。
セグメントの配列及びそれらの対応するコンテナは、以下のように表されてもよい。
Figure 2016537703
これでコンテナ5の使用率は25%のみになり、クライアントバックアップモジュールは、前に送信されたデータに基づき、この使用率を計算してもよい。
図9は、本開示の一実施形態に係る第3のバックアップ及び第4のバックアップにおけるコンテナの使用率を示す図である。行802は図8から変更されていない。行902は第4のバックアップを表してもよい。第4のバックアップは、15MBの変更されたデータを含んでもよい。最後のバックアップにおけるコンテナ5の使用率は、指定された閾値(例えば、50%)を下回るものとして検出されたため、(コンテナ1に対する変更を記憶していた)5MBのコンテナ5が、クライアントから再送信されてコンテナ7内に記憶されてもよい。これは、コンテナ1内にあった75%のデータと組み合わせてコンテナ7内に記憶されてもよい。したがって、これでバックアップ7は復元のために5個のコンテナのみを必要とするようになり得、データの局所性が更に改善され得る。第4のバックアップの参照履歴は、[オフセット,長さ,世代番号]によって、[0,20,0][0,20,3][0,20,2][60,40,0]のように表されてもよい。セグメントの配列及びそれらの対応するコンテナは、以下のように表されてもよい。
Figure 2016537703
上述のように本開示に係るバックアップシステムの性能を改善することは、典型的には、ある程度の入力データの処理及び出力データの生成を含むことに留意されたい。この入力データの処理及び出力データの生成は、ハードウェア又はソフトウェア内に実装されてもよい。例えば、特定の電子的構成要素は、重複排除性能改善モジュール内で、又は上述のように本開示に係るバックアップシステムの性能を改善することに関連付けられた機能を実装するための類似回路若しくは関連回路内で利用されてもよい。代替として、命令にしたがって動作する1つ以上のプロセッサが、上述のように本開示に係るバックアップシステムの性能を改善することに関連付けられた機能を実装してもよい。そのような場合、そのような命令が、1つ以上のプロセッサ可読記憶メディア(例えば、磁気ディスク又は他の記憶媒体)に記憶されるか、又は1つ以上の搬送波内で具現化された1つ以上の信号を介して1つ以上のプロセッサに送信され得ることは、本開示の範囲内である。
本開示は、本明細書で説明される特定の実施形態によって、その範囲が限定されるものではない。実際には、本開示の他の様々な実施形態及び変更態様が、本明細書で説明されるものに加えて、上述の説明及び添付の図面から当業者には明らかになるであろう。したがって、そのような他の実施形態及び変更態様は、本開示の範囲内に含まれることが意図されている。更に、本開示は本明細書で、特定の目的のための特定の環境における特定の実装との関連で説明されてきたが、当業者には、本開示の有用性がそのような実装に限定されるものではなく、本開示が任意の数の目的のための任意の数の環境内で有利に実装され得ることが認識されよう。したがって、以下に記載される特許請求の範囲は、本明細書で説明されるような本開示の全範囲及び精神に鑑みて解釈されるべきである。

Claims (20)

  1. バックアップシステムの性能を改善するための方法であって、
    クライアントデバイスのバックアップを実行することと、
    少なくとも1つのコンピュータプロセッサを使用して、前記バックアップに関連付けられた記憶ユニットの外部に配置されたデータセグメントへの参照を追跡することと、
    前記追跡された参照に基づき、前記バックアップに関連付けられた前記記憶ユニットの使用率を計算することと、
    前記計算された使用率が指定されたパラメータを満たすかどうかを判定することと、
    前記計算された使用率が前記指定されたパラメータを満たす場合に1つ以上の応答動作を判定することと、を含む、方法。
  2. 前記1つ以上の応答動作を実行することを更に含む、請求項1に記載の方法。
  3. 前記1つ以上の応答動作は、計算された使用率の情報をユーザに提供することと、バックアップ動作をユーザに推奨することと、後続のバックアップにおいて送信する1つ以上の参照セグメントを特定することと、のうちの少なくとも1つを含む、請求項1に記載の方法。
  4. 前記バックアップの外部にあるデータセグメントへの参照を追跡することは、クライアントサイトにおいて実行される、請求項1に記載の方法。
  5. 前記記憶ユニットの外部にあるデータセグメントへの参照を追跡することは、前記記憶ユニットに関連付けられたデータセグメントを特定することによって実行される、請求項4に記載の方法。
  6. 使用率を計算することは、前記記憶ユニットに関連付けられた、前記特定されたデータセグメントをカウントすることと、前記特定されたセグメントによって使用される前記記憶ユニットの部分を判定することと、を含む、請求項5に記載の方法。
  7. 前記指定されたパラメータは記憶ユニットの許容可能な使用率の範囲を含む、請求項1に記載の方法。
  8. 前記指定されたパラメータは記憶ユニットの許容不可能な使用率の範囲を含む、請求項1に記載の方法。
  9. 前記応答動作は、記憶ユニットの前記計算された使用率が指定された閾値を下回るという判定に基づき、後続のバックアップにおいて、記憶ユニットの変更されていないデータの1つ以上のセグメントを送信することを含む、請求項1に記載の方法。
  10. 前記記憶ユニット内の変更されていないデータの1つ以上のセグメントは、バックアップに対するデータの断片化を低減するために、第2の記憶ユニット内のデータのセグメントと組み合わされ、新しい記憶ユニット内に記憶される、請求項9に記載の方法。
  11. 前記バックアップに関連付けられた前記記憶ユニットはコンテナを含む、請求項1に記載の方法。
  12. 前記記憶ユニットの使用率の閾値を指定するパラメータを設定するためのユーザインタフェースを提供することを更に含む、請求項1に記載の方法。
  13. 前記ユーザインタフェースは、前記記憶ユニットの使用率の指示、及び前記記憶ユニットのデータの断片化の推定値に少なくとも部分的に基づく推定復元時間の指示を提供する、請求項12に記載の方法。
  14. 前記ユーザインタフェースは、前記記憶ユニットのデータの重複排除のレベルに少なくとも部分的に基づく推定バックアップ時間の指示を提供する、請求項13に記載の方法。
  15. 請求項1に記載の方法を実行するためのコンピュータ処理を実行するよう少なくとも1つのプロセッサに命令するために、前記少なくとも1つのプロセッサによって読み取り可能になるように構成される、命令のコンピュータプログラムを記憶する、少なくとも1つの非一時的プロセッサ可読記憶媒体。
  16. バックアップシステムの性能を改善するための製品であって、
    少なくとも1つの非一時的プロセッサ可読記憶媒体と、
    前記少なくとも1つの媒体に記憶された命令と、を含み、
    前記命令は、少なくとも1つのプロセッサによって前記少なくとも1つの媒体から読み取り可能になり、それによって少なくとも1つのプロセッサを、
    クライアントデバイスのバックアップを実行し、
    前記バックアップに関連付けられた記憶ユニットの外部に配置されたデータセグメントへの参照を追跡し、
    前記追跡された参照に基づき、前記バックアップに関連付けられた前記記憶ユニットの使用率を計算し、
    前記計算された使用率が指定されたパラメータを満たすかどうかを判定し、
    前記計算された使用率が前記指定されたパラメータを満たす場合に1つ以上の応答動作を判定するように動作させるように構成される、製品。
  17. バックアップシステムの性能を改善するためのシステムであって、
    ネットワークに通信可能に結合された1つ以上のプロセッサを備え、前記1つ以上のプロセッサは、
    クライアントデバイスのバックアップを実行し、
    前記バックアップに関連付けられた記憶ユニットの外部に配置されたデータセグメントへの参照を追跡し、
    前記追跡された参照に基づき、前記バックアップに関連付けられた前記記憶ユニットの使用率を計算し、
    前記計算された使用率が指定されたパラメータを満たすかどうかを判定し、
    前記計算された使用率が前記指定されたパラメータを満たす場合に1つ以上の応答動作を判定するように構成される、システム。
  18. 前記記憶ユニットの外部にあるデータセグメントへの参照を追跡することは、前記クライアントデバイスにおいて実行される、請求項17に記載のシステム。
  19. 前記記憶ユニットの外部にあるデータセグメントへの参照を追跡することは、記憶ユニットに関連付けられたデータセグメントを特定することによって実行される、請求項17に記載のシステム。
  20. 前記応答動作は、記憶ユニットの前記計算された使用率が指定された閾値を下回るという判定に基づき、後続のバックアップにおいて、記憶ユニットの変更されていないデータの1つ以上のセグメントを送信することを含む、請求項17に記載のシステム。
JP2016517543A 2013-09-27 2014-09-05 バックアップシステムの性能の改善 Active JP6521462B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/040,152 2013-09-27
US14/040,152 US9582194B2 (en) 2013-09-27 2013-09-27 Techniques for improving performance of a backup system
PCT/US2014/054195 WO2015047689A1 (en) 2013-09-27 2014-09-05 Improving backup system performance

Publications (2)

Publication Number Publication Date
JP2016537703A true JP2016537703A (ja) 2016-12-01
JP6521462B2 JP6521462B2 (ja) 2019-05-29

Family

ID=52741323

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016517543A Active JP6521462B2 (ja) 2013-09-27 2014-09-05 バックアップシステムの性能の改善

Country Status (5)

Country Link
US (1) US9582194B2 (ja)
EP (1) EP3049933A4 (ja)
JP (1) JP6521462B2 (ja)
AU (1) AU2014328493B2 (ja)
WO (1) WO2015047689A1 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9594753B1 (en) * 2013-03-14 2017-03-14 EMC IP Holding Company LLC Fragmentation repair of synthetic backups
WO2016018383A1 (en) 2014-07-31 2016-02-04 Hewlett-Packard Development Company Live migration of data
WO2016036347A1 (en) 2014-09-02 2016-03-10 Hewlett Packard Enterprise Development Lp Serializing access to fault tolerant memory
US10496313B2 (en) 2014-09-22 2019-12-03 Hewlett Packard Enterprise Development Lp Identification of content-defined chunk boundaries
US10594442B2 (en) 2014-10-24 2020-03-17 Hewlett Packard Enterprise Development Lp End-to-end negative acknowledgment
EP3213211A4 (en) * 2014-10-29 2017-09-06 Hewlett-Packard Enterprise Development LP Data restoration using allocation maps
WO2016122637A1 (en) 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Non-idempotent primitives in fault-tolerant memory
US10664369B2 (en) 2015-01-30 2020-05-26 Hewlett Packard Enterprise Development Lp Determine failed components in fault-tolerant memory
WO2016122610A1 (en) 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Preventing data corruption and single point of failure in a fault-tolerant memory
US10241871B1 (en) * 2015-03-31 2019-03-26 Veritas Technologies Llc Fragmentation mitigation in synthetic full backups
WO2016159996A1 (en) 2015-03-31 2016-10-06 Hewlett Packard Enterprise Development Lp Preventing data corruption and single point of failure in fault-tolerant memory fabrics
CN107193686A (zh) * 2016-03-15 2017-09-22 伊姆西公司 用于数据备份的方法及设备
US10423340B1 (en) * 2016-03-30 2019-09-24 EMC IP Holding Company LLC Method to repair the locality of the namespace on deduplication storage file system
US10389342B2 (en) 2017-06-28 2019-08-20 Hewlett Packard Enterprise Development Lp Comparator
US11442642B2 (en) 2019-01-29 2022-09-13 Dell Products L.P. Method and system for inline deduplication using erasure coding to minimize read and write operations
US20200241781A1 (en) 2019-01-29 2020-07-30 Dell Products L.P. Method and system for inline deduplication using erasure coding
US10963345B2 (en) 2019-07-31 2021-03-30 Dell Products L.P. Method and system for a proactive health check and reconstruction of data
US11328071B2 (en) 2019-07-31 2022-05-10 Dell Products L.P. Method and system for identifying actor of a fraudulent action during legal hold and litigation
US11372730B2 (en) 2019-07-31 2022-06-28 Dell Products L.P. Method and system for offloading a continuous health-check and reconstruction of data in a non-accelerator pool
US11609820B2 (en) 2019-07-31 2023-03-21 Dell Products L.P. Method and system for redundant distribution and reconstruction of storage metadata
US11775193B2 (en) 2019-08-01 2023-10-03 Dell Products L.P. System and method for indirect data classification in a storage system operations
US11119858B1 (en) 2020-03-06 2021-09-14 Dell Products L.P. Method and system for performing a proactive copy operation for a spare persistent storage
US11175842B2 (en) * 2020-03-06 2021-11-16 Dell Products L.P. Method and system for performing data deduplication in a data pipeline
US11301327B2 (en) 2020-03-06 2022-04-12 Dell Products L.P. Method and system for managing a spare persistent storage device and a spare node in a multi-node data cluster
US11281535B2 (en) 2020-03-06 2022-03-22 Dell Products L.P. Method and system for performing a checkpoint zone operation for a spare persistent storage
US11416357B2 (en) 2020-03-06 2022-08-16 Dell Products L.P. Method and system for managing a spare fault domain in a multi-fault domain data cluster
US11436092B2 (en) 2020-04-20 2022-09-06 Hewlett Packard Enterprise Development Lp Backup objects for fully provisioned volumes with thin lists of chunk signatures
US11418326B2 (en) 2020-05-21 2022-08-16 Dell Products L.P. Method and system for performing secure data transactions in a data cluster

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012103873A (ja) * 2010-11-10 2012-05-31 Sharp Corp 画像処理装置及びミラーリング判定方法
WO2013038632A1 (en) * 2011-09-16 2013-03-21 Nec Corporation Storage system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040039891A1 (en) 2001-08-31 2004-02-26 Arkivio, Inc. Optimizing storage capacity utilization based upon data storage costs
US8244676B1 (en) 2008-09-30 2012-08-14 Symantec Corporation Heat charts for reporting on drive utilization and throughput
US20110016088A1 (en) * 2009-07-20 2011-01-20 Spackman Stephen Philip System and method for performance and capacity monitoring of a reduced redundancy data storage system
US8595188B2 (en) 2009-11-06 2013-11-26 International Business Machines Corporation Operating system and file system independent incremental data backup
US8924667B2 (en) 2011-10-03 2014-12-30 Hewlett-Packard Development Company, L.P. Backup storage management
US8874522B2 (en) 2011-10-31 2014-10-28 Symantec Corporation Managing backups of data objects in containers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012103873A (ja) * 2010-11-10 2012-05-31 Sharp Corp 画像処理装置及びミラーリング判定方法
WO2013038632A1 (en) * 2011-09-16 2013-03-21 Nec Corporation Storage system

Also Published As

Publication number Publication date
EP3049933A1 (en) 2016-08-03
JP6521462B2 (ja) 2019-05-29
US9582194B2 (en) 2017-02-28
WO2015047689A1 (en) 2015-04-02
AU2014328493A1 (en) 2016-04-28
US20150095596A1 (en) 2015-04-02
AU2014328493B2 (en) 2020-01-02
EP3049933A4 (en) 2017-06-21

Similar Documents

Publication Publication Date Title
JP6521462B2 (ja) バックアップシステムの性能の改善
US20190391962A1 (en) Determining chunk boundaries for deduplication of storage objects
US10579477B2 (en) Prioritization of data items for backup in a computing environment
US9075771B1 (en) Techniques for managing disaster recovery sites
US9087010B2 (en) Data selection for movement from a source to a target
AU2012214744B2 (en) Processes and methods for client-side fingerprint caching to improve deduplication system backup performance
US9377964B2 (en) Systems and methods for improving snapshot performance
AU2015362561B2 (en) Techniques for data backup and restoration
US9679007B1 (en) Techniques for managing references to containers
US9021204B1 (en) Techniques for managing data storage
US9483484B1 (en) Techniques for deduplicated data access statistics management
US8515919B1 (en) Techniques for optimizing data migration
US9817834B1 (en) Techniques for performing an incremental backup
US8799223B1 (en) Techniques for data backup management
US9684563B1 (en) Techniques for backup management
US8595454B1 (en) System and method for caching mapping information for off-host backups
US8769334B1 (en) Techniques for providing instant disaster recovery
US10049116B1 (en) Precalculation of signatures for use in client-side deduplication
US10140187B1 (en) Techniques for system backup
US9239790B1 (en) Techniques for evicting cached files
US9436697B1 (en) Techniques for managing deduplication of data
US9773006B1 (en) Techniques for managing non-snappable volumes
US10592527B1 (en) Techniques for duplicating deduplicated data

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20170516

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20170525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20170526

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170526

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170829

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181127

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190419

R150 Certificate of patent or registration of utility model

Ref document number: 6521462

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