JP2017521762A - ストレージ装置、プログラム、情報処理方法 - Google Patents
ストレージ装置、プログラム、情報処理方法 Download PDFInfo
- Publication number
- JP2017521762A JP2017521762A JP2016571760A JP2016571760A JP2017521762A JP 2017521762 A JP2017521762 A JP 2017521762A JP 2016571760 A JP2016571760 A JP 2016571760A JP 2016571760 A JP2016571760 A JP 2016571760A JP 2017521762 A JP2017521762 A JP 2017521762A
- Authority
- JP
- Japan
- Prior art keywords
- data
- block
- block data
- read
- storage unit
- 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
Links
- 238000003860 storage Methods 0.000 title claims abstract description 349
- 230000010365 information processing Effects 0.000 title claims description 15
- 238000003672 processing method Methods 0.000 title claims description 12
- 238000013500 data storage Methods 0.000 claims abstract description 142
- 238000012545 processing Methods 0.000 claims description 44
- 238000001514 detection method Methods 0.000 claims description 17
- 230000015654 memory Effects 0.000 description 273
- 238000013467 fragmentation Methods 0.000 description 220
- 238000006062 fragmentation reaction Methods 0.000 description 220
- 238000004422 calculation algorithm Methods 0.000 description 200
- 238000000034 method Methods 0.000 description 95
- 238000002474 experimental method Methods 0.000 description 67
- 230000008569 process Effects 0.000 description 65
- 230000006870 function Effects 0.000 description 51
- 238000007726 management method Methods 0.000 description 48
- 238000013459 approach Methods 0.000 description 37
- 230000000694 effects Effects 0.000 description 33
- 238000010586 diagram Methods 0.000 description 21
- 230000007423 decrease Effects 0.000 description 19
- 230000009467 reduction Effects 0.000 description 19
- 238000005516 engineering process Methods 0.000 description 16
- 230000008859 change Effects 0.000 description 15
- 238000004088 simulation Methods 0.000 description 15
- 238000012360 testing method Methods 0.000 description 15
- 238000011160 research Methods 0.000 description 14
- 238000012546 transfer Methods 0.000 description 14
- 230000015556 catabolic process Effects 0.000 description 13
- 238000006731 degradation reaction Methods 0.000 description 13
- 239000012634 fragment Substances 0.000 description 13
- 230000002829 reductive effect Effects 0.000 description 12
- 230000010076 replication Effects 0.000 description 11
- 230000002354 daily effect Effects 0.000 description 10
- 238000011161 development Methods 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 9
- 230000001276 controlling effect Effects 0.000 description 9
- 230000000875 corresponding effect Effects 0.000 description 9
- 238000012217 deletion Methods 0.000 description 8
- 230000037430 deletion Effects 0.000 description 8
- 230000006872 improvement Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 238000011084 recovery Methods 0.000 description 8
- 230000003442 weekly effect Effects 0.000 description 8
- 230000001976 improved effect Effects 0.000 description 7
- 230000014759 maintenance of location Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 230000006835 compression Effects 0.000 description 6
- 230000003203 everyday effect Effects 0.000 description 6
- 101100004286 Caenorhabditis elegans best-5 gene Proteins 0.000 description 5
- 230000002411 adverse Effects 0.000 description 5
- 238000005259 measurement Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 238000000638 solvent extraction Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 4
- 230000007774 longterm Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000013403 standard screening design Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 241000243251 Hydra Species 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 3
- 239000000872 buffer Substances 0.000 description 3
- 238000012512 characterization method Methods 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000008030 elimination Effects 0.000 description 3
- 238000003379 elimination reaction Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- QRXWMOHMRWLFEY-UHFFFAOYSA-N isoniazide Chemical compound NNC(=O)C1=CC=NC=C1 QRXWMOHMRWLFEY-UHFFFAOYSA-N 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000008450 motivation Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000004080 punching Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000002459 sustained effect Effects 0.000 description 2
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 230000002301 combined effect Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000002542 deteriorative effect Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000013213 extrapolation Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000035876 healing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000004793 poor memory Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000002040 relaxant effect Effects 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005201 scrubbing Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
重複排除されたブロックデータを記憶するデータ記憶部と、
前記データ記憶部から取得されたブロックデータを一時的に記憶する一時データ記憶部と、
前記データ記憶部が記憶する前記ブロックデータを読み出して前記一時データ記憶部に記憶させ、当該一時データ記憶部から前記ブロックデータを読み出すデータ読出制御部と、
前記一時データ記憶部に記憶されている前記ブロックデータの記憶状態を制御する一時データ制御部と、
を有するとともに、
前記ブロックデータを読み出す順番についての情報である読出順番情報を記憶する読出順番情報記憶部を有し、
前記データ読出制御部は、前記読出順番情報記憶部から取得した前記読出順番情報に基づいて前記データ記憶部から取得した前記ブロックデータを前記一時データ記憶部に記憶させ、
前記一時データ制御部は、前記読出順番情報に基づいて前記一時データ記憶部に対する前記ブロックデータの記憶状態を制御する
という構成を採る。
重複排除されたブロックデータを記憶するデータ記憶部と、前記データ記憶部から取得されたブロックデータを一時的に記憶する一時データ記憶部と、前記ブロックデータを読み出す順番についての情報である読出順番情報を記憶する読出順番情報記憶部と、を有する情報処理装置に、
前記データ記憶部が記憶する前記ブロックデータを読み出して前記一時データ記憶部に記憶させ、当該一時データ記憶部から前記ブロックデータを読み出すデータ読出制御手段と、
前記一時データ記憶部に記憶されている前記ブロックデータの記憶状態を制御する一時データ制御手段と、
を実現させ、
前記データ読出制御手段は、前記読出順番情報記憶部から取得した前記読出順番情報に基づいて前記データ記憶部から取得した前記ブロックデータを前記一時データ記憶部に記憶させ、
前記一時データ制御部は、前記読出順番情報に基づいて前記一時データ記憶部に対する前記ブロックデータの記憶状態を制御する
という構成を採る。
ブロックデータを読み出す順番についての情報である読出順番情報を取得し、
取得した前記読出順番情報に基づいて記憶装置から取得した前記ブロックデータを一時記憶装置に記憶させ、
前記読出順番情報に基づいて前記一時記憶装置に対する前記ブロックデータの記憶状態を制御する
という構成を採る。
本発明の第1の実施形態を、図1乃至図10を参照して説明する。図1は、ストレージシステム1を含むシステム全体の構成を示すブロック図である。図2は、ストレージシステム1の概略を示すブロック図である。図3は、ストレージシステム1の構成の一例を示す機能ブロック図である。図4は、図3で示すディスク装置12が記憶するデータを説明するための図である。図5は、図3で示すキャッシュメモリ14が記憶するデータを説明するための図である。図6は、図5で示すブロックデータ順番情報141の構成例を示す図である。図7は、図5で示すデータ情報142の構成例を示す図である。図8、図9は、図3で示すリストア管理部13が行うデータの読み出し処理の様子を説明するための図である。図10は、図3で示すストレージシステム1が行う読み出し処理の動作を示すフローチャートである。
次に、本発明の第2の実施形態では、書き込み対象データ中の連続する複数のブロックデータと、ディスク装置12に既に連続して記憶されている複数のブロックデータと、の共通部分の割合に応じて重複するブロックデータの書き直しを行う、ストレージシステム6について説明する。
本発明の第4の実施形態を、以下の論文形式にて説明する。
<1.1 動機>
デジタルの世界は毎日どんどん大きくなる。2007年以来、インターナショナルデータコーポレーションは、デジタル宇宙、つまり、1年間で作成され複製されるデジタル情報の量を評価している。直近の研究が示すところによれば、デジタル宇宙は2年ごとにおよそ2倍になり、2020年には40兆ギガバイトという目を引く数字に達するだろう(図19参照)。
標準的な磁気ハードディスクドライブ(HDD)上のデータの断片化は、一緒に使用される2個以上のデータが互いに離れて保存されている時に生じるので、それらすべてへのアクセスで実現される性能を低下させる。残念ながら、重複排除バックアップシステムにおける断片化の問題は、システムの主な機能である重複排除自体に直結している。最新の重複排除システムにおいて、データは、書き込まれる前に比較的小さなブロック(たとえば8KB)に分割される。ブロックの一意性が確認された後にだけ、ブロックはディスク上に保存される。さもなければ、既存のブロックのアドレスが返される。このようなブロックは、直近に書き込まれたブロックから遠く離れて保存されている可能性があるので、全く同じストリームのデータをリストアすることが非効率的になる。ここから断片化の話が始まる。
リストア帯域幅(必要なときにデータを復元するための時間)は、データ重複排除率(確保可能な記憶領域)と最大書き込み性能(バックアップウィンドウの長さ)とともに、重複排除システムの性能を説明する主な要素の1つである。常連の顧客が作業環境において達成する実際のリストア性能は、多くの場合、様々な理由によってシステムのメーカーによって示されたものとは異なる。具体的に、リストア帯域幅は、通常、空のシステムに保存される最初のバックアップにとっては適度に良好であるが、以降のバックアップにとっては劣化する。これは主に、重複排除によるデータの断片化には、以下のように様々な種類があるためである。
・インターバージョン断片化:同じデータの定期的な(毎日、毎週、毎月)バックアップによって引き起こされる。
・インターナルストリーム断片化:1つのバックアップに同じブロックが何度も登場することに起因する。
・グローバル断片化:互いに論理的関係が無いバックアップに同じブロックが現れることに起因する。
インターバージョン断片化は、今日の市場で最も人気がある、インライン重複排除機能を有するシステムにおいてのみ観察することができる。このソリューションにおいて重複ブロックが保存されることはないので、インターバージョン断片化は、古いバックアップの複数の場所に散在する最新のバックアップに論理的に属するデータを生み出す。この影響はバックアップのたびに大きくなる。なぜなら、バックアップのデータの多くは、実際には、増加する過去のバックアップ内にあり、増加する異なるディスクの場所を示唆している。データセットとその特性評価およびバックアップパターンによっては、実験において、数パーセントから最大50%を超える読み出し性能の低下を示す。このデータセットがカバーするのではせいぜい50の連続したバックアップであるので、より多くのバックアップが行われた場合、この割合はさらに高くなると思われる。
大きなリストア帯域幅のペナルティを取り入れ得る要因は、インターナルストリーム断片化である。インターナルストリーム断片化は、インターバージョン断片化と同様に重複排除に起因するが、1つのバックアップだけに限られる。これにより、同じデータの全てのバックアップバージョンに対するほぼ一定の影響や、影響を受ける重複排除バックアップシステム(オフラインを含む)の種類といった、異なった特徴がもたらされる。実験によれば、1つのバックアップからのブロックの17‐33%はバックアップ内に1回以上出現するので、インターナルストリーム断片化のまさに原因となっているインターナルストリームの重複の排除は、一般的に非常に重要である。デフォルトでは、それらのブロックは重複排除機構によって除去されるので、ユーザーデータのための貴重なスペースを節約する。残念ながら、そのためには、リストアが必要な際に見られる最大70%の性能低下の犠牲が伴う。さらなる分析によれば、バックアップシステムでのリストアとともに一般的に使用されるLRUキャッシングアルゴリズムは、上記のシナリオではあまり有効ではなく、ほとんどの場合にメモリを無駄なデータで満杯にしてしまう。
上述のシナリオを考慮すると、この論文の目的は、書き込み性能と重複排除効果の両方に悪影響を与えることなく、リストア性能の低下を回避することである。言い換えれば、理想的な重複排除のソリューションは、インラインアプローチにより現在提供されているような大きい書き込み帯域幅と、高いリストア性能とを、あらゆる種類の断片化に起因する読み出しのペナルティ無しで達成しなければならない。
・ユーザから収集した実際のトレースに基づいて、重複排除機能を有するストレージシステム(特にインライン)に固有の断片化問題を、詳細に分析して記載した。
・見つけられた問題を解決するアルゴリズムのための要件と考えられる得失評価を同定した。
・リードキャッシュの有効性を大きく改善し、また、バックアップシステムの特性を活用することによりインターナルストリーム断片化に対処するソリューションとしての、フォワードナレッジ(将来の知識)を有するインテリジェントキャッシュを提案した。
・書き込み帯域幅、レイテンシ、リストア性能、追加領域の一時使用といった、重要な得失評価に対処する多くの機能とともに、重複排除ロスがなくバックアップ書き込み性能への影響が最小限である、インターバージョン断片化に対抗するためのコンテキストベースの再書き込みアルゴリズム(CBR)を提案した。
・選択されたソリューションの有効性を証明するための実際のユーザートレースに基づく一連の実験ともに、提案されたアルゴリズムの要件満足度と得失評価を分析した。
・断片化問題と提案されたその問題のソリューションのスケーラビリティを分析した。
この論文は次のように構成される。次章では、概して重複排除とストレージシステムに関する情報を提供する。この論文の動機づけ、断片化問題の本質の深い考察、その異なる起源、および、いくつかの例を、第3章に示す。第4章と第5章では、重複排除機能を有するストレージシステムにおいて発生する2つの異なる問題について、ソリューションを提示する。フォワードナレッジを有するインテリジェントキャッシュが、インターナルストリーム断片化の存在下でのリードキャッシュの有効利用を提供する一方で、コンテンツベースの再書き込みアルゴリズム(略してCBR)は、最新のバックアップの今後の復元にとって最も効果的なブロック配置を保証するためにインターナルストリーム断片化を扱う。両方のソリューションについて、議論と得失評価を行う。第6章では、実験で使用した仮説と方法論とともに性能の結果についての議論を含め、様々なユーザから収集された実際のトレースに関して両方のアルゴリズムを評価している。第6章にはまた、両ソリューションのスケーラビリティに関するセクションとともに、ソリューション毎の実験と両ソリューションでの実験とが含まれる。第7章では、断片化問題の他のソリューションとともに、関連の研究を説明している。最後に、第8章では、結論と、可能なアルゴリズムの拡張に関する見識と、将来の研究のための他の方向性について述べる。
<2.1 2次ストレージシステム>
<2.1.1 要件>
バックアップとは、オリジナルが紛失または破損した場合に備えて作られるファイルなどのコピーである。このような単純で簡単そうなタスクは、1台のデスクトップのバックアップに関して言えば、それほど困難そうには聞こえない。しかしながら、数百人のユーザを抱える大規模企業となると、数テラバイトのデータが日々生成され、内部安全上の理由から、毎晩あるいは毎週末に(つまりバックアップウィンドウが短い)バックアップを実行する必要があり、状況は劇的に変化する。たった数バイトしか違わない同じデータセットのバックアップを何度も(毎日あるいは週に1回)保存することを要求するバックアップポリシーも、非常に大規模なシステム(ペタバイトレベル)の容易な管理も忘れることはできない。データセットごとに個別の弾力性を設定する可能性を評価する者もいれば、最も重要な機能である容易なシステム拡張とともに、オンデマンドでの削除(分散環境では非常に複雑である)や、無停電更新といった機能に配慮する者もいる。 簡単かつ高速なリモートレプリケーションも、最も安い費用とともに重要な追加と見られている。期待されるように、これらの2つの制約はそれぞれ、一般的に、簡単には対処されない得失評価をもたらす。さらに、バックアップシステムが存在する主な理由について覚えておく必要がある。すなわち、緊急リストアである。費用の高いダウンタイムを最小限に抑えるための高速リカバリがなければ、他の全ての機能はそれほど魅力的には見えない。
・緊急時における高速でのデータ復旧
・大きい(そして拡張可能な)容量
・非常に大きいバックアップ帯域幅(小さいバックアップウィンドウを可能にするため)
・リモートレプリケーションオプション(好ましくは修正されたデータのみ)
・設定可能な、保存データの弾力性
・オンデマンドでの削除
・システムのサイズに関係ない、簡単な管理、アップグレード、および、ストレージの追加
最初の汎用コンピュータは1946年に構築され、バックアップの進化は非常に短期間であるように見えるが、それはまた非常に強烈なものである。最新のデバイスは1TB以上を保存することができるが、最初の利用可能なパンチカードが保存できるデータは、100バイト未満であった。このような短い期間での大きな飛躍は、各ユーザがコンピュータ経験から最大限引き出すための技術を開発することに投入された作業量を表すものだ。
重複排除は、一般的に、冗長データを排除する技術と定義される。データが重複排除された場合、重複した情報の1つのインスタンスが保持され、重複するインスタンスはこの1つのコピーへのポインタに置き換えられる。全体のプロセスはユーザやアプリケーションから完全に隠されており、使いやすく、いかなる専用ソフトウェアの変更も必要としない。
粒度
データ重複排除は、一般的に、ファイルレベルまたはブロックレベルで動作することができる。前者では、重複ファイルを排除するが、最小限の変更でも全てのファイルを異なるファイルとして再度保存する必要があるので、一般的にはあまり効率的な重複排除方法ではない。ブロックの重複排除では、ファイル内で検索して小さなブロックにチャンクする。各ブロックはその後、記憶されて索引付けされる一意のハッシュ値を生成するために、SHA-1やSHA-256といったハッシュアルゴリズムを使用して処理される。ファイルが更新された場合、変更されたデータのみが保存れる。すなわち、ドキュメントまたはプレゼンテーションの数バイトだけが変更された場合には、変更されたブロックのみが保存される。この動作により、ブロックの重複排除は、はるかに効率的になる。しかし、ブロックの重複排除は、より多くの処理能力を要し、個々のピースを追跡するために、はるかに大きなインデックスを使用する。
ブロックレベルでの重複排除アルゴリズムのための2つの主な抽象的概念は、固定サイズおよび可変サイズのチャンキングと呼ばれる。多くのテスト後、固定長のブロックの場合、予定された更新とうまく動作しないことが判明した。ファイルの初めでのまたは途中での数バイトの簡単な修正により、以下の全てのコンテンツは、そのサイズを維持するために、異なるブロック境界を持つ新しいデータとして再書き込みしなければならなかった。一方、可変チャンキング長は、変更が行われた直後にブロック境界の同期を可能にする専用のアルゴリズム(ラビンフィンガープリンティング:Rabin fingerprinting)を使用する。そのおかげで、変更されたファイルの後半は、同一のブロックに分割可能であり、これらのブロックは、変更されていないオリジナルファイルのバックアップ後に既に存在するブロックに重複排除することができる。
2次ストレージシステムは、バックアップを実行する一群のクライアントによって使用されている。各バックアップストリームはブロックに分けられる必要があり、各ブロックについてハッシュ計算を行い、これによりシステム内でその存在が確認される。これらの動作は、クライアント側またはサーバ側で行うことができる。前者は、ソース重複排除と呼ばれ、クライアントにインストールする専用のソフトウェアが必要になるが、ある処理能力(ハッシュ計算)の費用で、ネットワーク使用をはるかに少なくすることができる。一方、後者は、ターゲット重複排除と呼ばれ、クライアントにとって完全に透明で、単純にネットワークインタフェースを介して記憶領域を提供するので、ハッシングやその他全ての内部で必要な動作の実行を非常に簡単に利用することができる。どちらのオプションも市場で入手可能であり、顧客の要望に基づいて展開される。
ターゲット重複排除機能を有するシステムには、プロセスが適用される時間が異なる2つのグループがある。オフライン(後処理)重複排除は、最も簡単な方法であり、第1段階で、現在のバックアップからの全てのデータがシステムに連続的に保存される。動作が終了した後、最新のバックアップからのブロックが古いバックアップから重複を排除するためのベースとなるように、実際の重複排除がバックグラウンドで実行される。このようなアプローチでは、最新のバックアップからの全てのデータが1つの連続した空間に配置されて読みやすい一方で、多くの様々な問題を引き起こす。しかしながら、問題なのは、バックアップ性能が数倍も低いことと、ネットワークやディスク帯域幅を節約する可能性がないこと(すなわち、クライアントまたはバックアップサーバー上での重複排除)と、全バックアップウィンドウに相当する生データを保持するための領域(ランディングゾーン)を保持する必要があることである。ランディングゾーンは、重複排除処理を早く開始してパートごとに行うこと(ステージング)によって最小限に抑えることはできるが、その動作に必要なシステムリソースが現在のバックアップを遅くし、新たな悪影響を加えることになる。さらに、オフラインプロセスでは、各バックアップの後でそのサイズの約95%が(重複排除率が20:1であると仮定して)ストレージスペース全体の中で発見されてバックグラウンドで削除する必要があるので、非常に高価なものとなる。
重複排除の最後の特性は、その範囲に関する。システム内に存在する各重複ブロックが常に特定される、最も直感的なグローバルバージョンは、出現する実装および技術的な問題のために一般的ではない。主な問題は、巨大なグローバルインデックスであり、常に最新の状態にされて、必要なブロックの高速な識別を可能にしなければならない。ここでの課題の1つは、ブロックが重複しているか否かを識別することだ。これは多くの場合、ブルームフィルタを用いて行われ、グーグルのビッグテーブル(Google’s Big Table)やデータドメイン(DataDomain)のような分散システムで使用される。それは、発見されないブロックのための高額な探索を回避するのに役立つ。一方、インデックスキャッシングやディスク上でのチャンクのレイアウトのために、大きなブロックサイズを使用したりチャンクの局所性を利用したりするといった手法は、RAMに必要なデータの量を減らす。その結果、ディスク上に置かれている完全なインデックスにアクセスする必要がある要求は、ほんのわずかだ。分散環境に入ると問題はさらに複雑で、タスクに対処するために専用の分散ハッシュテーブルを使用する、グローバル重複排除(HYDRAstor:ハイドラストア)を有する市販のシステムしかない。
重複排除率は、データストリーム特性化、チャンキングアルゴリズム、ブロックサイズ、保存ポリシーに依存して広く変化し得る。研究論文が確認したように、全ての格納データに関連するメタデータサイズも、ハッシュの計算やメタデータの更新を行い、データを保存/検索するために必要な性能とともに考慮されなければならない。最後に、システムのスケーラビリティとデータを再構築するための時間とに関する問題について留意する必要がある。上記の全てが重複排除率に確実に影響を与え、重複排除率は4:1から200:1以上の範囲を取り得る。つまり、10‐20倍以上の圧縮(元の記憶容量の5%未満)が達成可能であり、それは、他のソース、すなわちビジネスと科学の両方で確認されるいくらかの偏差である。
重複排除はあらゆる環境で使用可能であるが、30乃至90日間にわたって復旧プロセスのために複数回同じデータセットを繰り返しコピーして保存することが必要な、バックアップのような冗長性の高い動作にとって理想的である。記載の使用パターンによれば、この技術は、特に有用であり、保存されるデータが20倍以上削減される結果となる(多くの様々な特徴による。詳細はセクション2.2.2を参照)。このような結果は、大きく経費を節約させるか、あるいは、以前は達成できなかった可能性を実現することができる。
・高い書き込みスループット(既存のブロックを保存する必要はない)
・利用可能な物理容量の増大
・特異データだけの簡単なレプリケーション
・ネットワーク帯域幅の節約(ソース重複排除およびレプリケーション)
・下記と一緒にバックアップ用のディスク技術を可能にする
数秒以内のランダムアクセス
迅速な緊急リストア(一度に多数のディスクから)
複数のストリームアクセス
ファイルシステムのインタフェース
設定可能な回復力クラス
維持されているデータ整合性と自己回復
データがどのように変換されたとしても、ユーザはその整合性を心配するだろう。重複排除プロセスは、システムのどこかにあるブロックの同じコピーを探し、結果として、ディスクやサーバ上の様々な場所に散在するあるストリームのデータをもたらすだろう。このような記憶領域を節約する方法によれば、メタデータ内のどこかに保存されている正確なレシピ無しに、書かれているのとは正反対の方法で、必要なデータを読み出すことは、ほとんど不可能になる。こうしたことは、ベンダーからのソフトウェアの品質に対する高い要求を置き、顧客からのプロセスに対するかなりの信頼を示唆する。
情報記憶産業協会(INSIC)によると、テープ技術の使用は、2次記憶として過去30年にわたり最も一般的であったが、近年では移行しつつある。このシステムは、バックアップシステム市場から、3次バックアップ(アクセスの少ないまたはアクセスの無い長期保存バックアップ用にごく最近作られたカテゴリ)、アーカイブ(長期保存のために移動されるデータ)、そして、規制順守データ(規則で定義された期間保存される)へと移っている。これら全ての使用ケースには、データの1つのコピーを、大抵は全く読み出さずに長期間保持することが含まれる。これらの目的のために、テープは、価格、優れた持続時間、低いエネルギーコスト、および、重複排除要件が無いことにより、より良い選択肢だろう(図30参照)。
<3.1 バックアップシステムにおけるリストアの役割>
リストアは、バックアップほど頻繁には発生しないが、データが失われた場合だけではなく、フルバックアップをストリーミングして、変更されたデータをテープに保存して(3次バックアップ)オフサイトに複製するためにも使用される。その結果、実際には書き込みより読み出しの方が多いシステムが全体の20%である一方、レプリケーション動作を除外したとしても、平均すると、読み出しが平均的なバックアップシステムにおける全ての入出力の約26%(平均;中央値9%)を占めている。
各企業は独自のバックアップポリシーを持っており、それは、データの安全性と災害復旧要件に対する最良の答えでなければならない。最も一般的な戦略の1つは、会社の全データのバックアップを週末に実行し、より小さな増分バックアップを毎日実行することだ。これは、通常、バックアップウィンドウ(バックアップを終えるために利用できる時間)が毎営業日には非常に制限されているが週末には増大する、ということに起因する。重複排除システムを使用すると、新規データおよび変更データ(その大きさは増分バックアップにほぼ等しい)だけを実際に保存するというソリューションと同様に、毎日でもフルバックアップを行うことができる一方、他の全ての重複データは、プロセスを通常のフルバックアップよりも何倍も短くするバックアップアプリケーションに対して非常に素早く確認される。
データへの連続的なアクセスは、実際のハードドライブからデータを読み出すというリストア性能における最大のボトルネックの問題を軽減するのに非常に役立つ。データ配置が最適であるという事実により、一般的なHDDに関して言えば、エンジニアは、ランダムまたは未定義のデータアクセスパターンと比較して、簡単だが効果的なリストア性能を何倍も改善する技術を使用することが可能になる。
連続データの場合に最も一般的かつ効果的な手法は、システムメモリにハードドライブから一定または可変の大きなチャンクでデータをプリフェッチすることだ。この動作の結果、ユーザが1ブロック(たとえば8KB)だけの読み出し要求をすると、はるかに大きなチャンク(たとえば2MB)を、ディスクから読み出すきっかけとなり、今後の使用のためにシステムメモリ内に全ての読み出しブロック(2MB/ 8KB= 256)を配置する。このようなアプローチのおかげで、連続的なアクセスの場合には、多くの次の読み取り動作が、ディスクアクセスの費用を支払うことなく、メモリからデータを取得することを可能にする。
データは、ディスクからプリフェッチされた後、実際のプリフェッチと比べて通常はるかに大きいバッファキャッシュ(またはリードキャッシュ)と呼ばれる専用のシステムメモリに保存される。その理由は、現実には理想的な連続負荷はないからである。小さいキャッシュの場合、不連続的な途絶(ディスク上の別の場所からの読み出し)があると、以前読み出された列に戻った後でデータを再ロードする必要があるだろう。大きいサイズのおかげで、キャッシュは、上述の状況においてある程度の回復力を有するだけでなく、正確ではない順序での読み出し(書き込み時のデータ並べ替えの場合)や、多くのストリームへの同時アクセスをサポートする。重複排除バックアップシステムの場合、キャッシュのもう一つの機能は非常に興味深く重要になる。この機能は、比較的短期間に何回も要求されるデータブロックを保持することが可能であり、達成されたリストア帯域幅においてさらなる改善を可能にする。
プリフェッチ/キャッシュアルゴリズムは、合理的なリストア帯域幅を達成するのに効率的に役立つにもかかわらず、最適に動作しないことが時々ある。その1つは、アクセスパターンが実際には一部のみで連続的であるというケースである。このようなパターンは、決して使われないであろう大量のデータをディスクから読み出すことに起因し、実際の読み出し動作時間とメモリ内のスペースの両方を無駄にし、これにより、キャッシュは効率的に実際の確保メモリよりも数倍も小さくなる。
断片化は、一般に、断片に分割された状態であると定義される。この論文の目的のために、バックアップされる連続ストリームデータと、そのデータが重複排除機能を有するシステム内のディスクドライブへの保存のされ方に焦点を当てる。通常、理論的な観点より実務のほうが関心を呼ぶ。したがって、完璧な連続データの配置の場合に必要とされる入出力の数と比較して、上記のプリフェッチ/キャッシュアルゴリズムを使用する際に追加の入出力動作(ディスクアクセス)を必要とするブロックの並べ替えだけを、断片化として検討する。
実験が示すところでは、重複排除機能を持つシステム全体で1つのバックアップしか持たないということが既に、この機能を持たないシステムと比較して、そのリストア性能を低下させる可能性がある。このような現象は、インターナルストリーム断片化と呼ばれ、1つのストリームに何度も登場する同一のブロックによって引き起こされる。
バックアップは定期的に実行されるので(毎日/毎週/毎月)、1つの論理ストリームの各部分は、同じデータセットのさまざまなバージョンで見つけられる。全てのそのようなバージョンは、1バックアップサイクル内で変更されるデータの量だけ(通常は非常に小さな割合)過去のものと異なり、これにより、同一データセットの結果として生じるバージョンは非常に似たものになる。
実際に、グローバル断片化はインターナル断片化とよく似ている。唯一の重大な違いは、問題のある重複が、同じストリームの過去の部分からではなく、全く無関係なものから来ている、ということである。これは、インターナル断片化では、問題はストリームにおける2回目以降のブロック出現によって引き起こされた、という事実によるものであり、既にリストアされたブロックを、十分に長いキャッシュ内に維持することによる悪影響に立ち向かうことを可能にした。グローバル断片化の場合、問題は既に最初のブロックの出現とともに発生し(それ以降のものはむしろインターナル断片化とみなす必要がある)、そのブロックは、現在のバックアップセットの外に存在するので、システム全体の中でほぼいかなる場所でも見つけることができる。
大きな重複排除バックアップシステムを検討する際には、全く新しい視点を考慮しなければならない。何千ものハードディスクとともに数十数百のサーバを持つと、全ての問題は別のレベルに到達する傾向がある。要求を処理したり潜在的な問題を隠したりするハードウェアは多く存在する一方、スケーラビリティの目的は、システムの機能をそのサイズとともに計ることを必要とする。
断片化問題の本当の規模を視覚化するために、商用システムのハイドラストアの顧客から収集した6つの異なるデータセットについてシミュレーションを行った。全てのデータセットの詳細な内容および実験方法は、セクション6.1に述べる。
図38において、一番上の線は、所定のキャッシュメモリサイズと既成のベラディのキャッシュ置換ポリシー(既成のベラディキャッシュと呼ぶ)とを使って最新のバックアップによって達成されるリストア帯域幅に相当し、ページからブロックに移動する際に最適ではないとしても、達成可能な性能レベルを非常に良く述べている(アルゴリズムの詳細についてはセクション3.1.2を、ブロックをプリフェッチする場合における最適性欠如に関する議論についてはセクション8.2.2を参照)。他の線は、実際のバックアップシステムと最も一般的なLRUキャッシュ置換ポリシーとを使用したシミュレーションの結果である。真ん中の線は、システム全体に存在する最新のバックアップだけでの数字を示し、したがって、インターナルストリーム断片化の影響を示す。一方で、一番下の線は、データセットから全てのバックアップが保存された後の最新のバックアップ帯域幅を表し、但し、インターバージョン断片化も含む。
インライン重複排除機能を持つバックアップシステムに関して言えば、時間の観点や実行したバックアップの実際の数が非常に重要である。図39は、各バックアップの実行後の断片化の問題を示している。1番上の線は、無制限のキャッシュを用いて(インターナルストリーム断片化を除く)インターバージョン断片化無しで達成可能な帯域幅を表し、各データセットにおいてバックアップ毎に達成可能な最大性能レベルを示す。他の全ての線は、両方の種類の断片化を含む。
図40及び3.5に示すように、キャッシュは、インターナルストリーム断片化を闘うために使用される武器と考えることができる。キャッシュは役に立つけれども(特に、無制限のメモリが利用可能である時)、価格が非常に高い。たとえば、ディベロプメントプロジェクトで32MBのキャッシュメモリから始めると、リストア帯域幅を倍にするためだけに、16倍大きいメモリ(512MB)を使用する必要があり、依然として重複の無いシステムについての100%ラインを下回る。同様に、同じ結果を達成するためにイシューリポジトリでは、必要なメモリが64倍にもなる(2048MB)。また、近代的なバックアップシステムが一度に多くのバックアップストリームを処理することを念頭に置くと、必要なメモリはさらに何倍にも増大し、全体のシステム要件を莫大にするだろう。
断片化は、重複排除の自然な副産物(あるいは、むしろ廃棄物)である。バックアップ間の干渉の無い別々の連続的なディスクスペースに各バックアップを維持することによって、断片化を排除することができるが、このような場合、重複排除は無いであろう。
前のセクションで述べたように、重複排除機能を備えたシステムにおいてリストア帯域幅が一般的に低いことの主な理由の1つは、インターナルストリーム断片化である。キャッシュサイズ毎のテスト結果を分析すると(図38参照)、バックアップが1つだけバックアップシステム内に存在する時でさえ(インターバージョン断片化なし)、LRUキャッシュを使った一般的なソリューションと比較すると、はるかに高いリストア帯域幅が既成のベラディキャッシュで達成されることに気づくことができる。その結果は、データセットによって大きく異なるけれども、全てのキャッシュサイズにおける平均増加は80%を超え、256MBのキャッシュサイズの例では、その値は、ゼネラルファイルサーバとウィキにおける7‐25%からイシューリポジトリとメールにおける197%まで異なっている。
キャッシュ置換ポリシーとしてのLRUとうまく交換するために、新しいソリューションは、以下のことを求められる。
・既成のベラディキャッシュで達成されるものに近い(そして当然ながらLRUよりもかなり高い)リストア帯域幅を提供する。
・保存すべき追加データを必要としない(最大限の重複排除の効果は維持されるべきである)。
・リストアアルゴリズムに何らかの変更があれば少しだけ実施する。
・リストアアルゴリズム外での変更は必要ない。
・ディスク帯域幅、スピンドル、処理能力などの多くの追加リソースを必要としない。
・必要に応じてトレードオフに対処する上での様々な選択肢を提供する。
バックアップシステムに保存される前の各データセットは、通常、バックアップアプリケーションによって1つの大きな(数十または数百ギガバイト)論理ストリームに圧縮されている。多くの読み出しアルゴリズムや重複排除アルゴリズムは、このようなバックアップポリシーに既に依存しており、ストリーミングアクセスの経路を最適化する傾向があるが、これは実はバックアップシステムではごく一般的なことだ。私のアイデアでは、リストアプロセス中にこの既知の特性をさらに最適化したい。
限定されたフォワードナレッジのキャッシュを実装するために、次の能力をサポートするバックアップシステムを想定する。
・同一コンテンツを有する全てのブロックに対して1つのアドレス。同じ内容のブロックは同じアドレスを持たなければならない。バックアップシステムの場合、この特性は、コンテンツのアドレス指定能力で確認される。
・1つのストリーム識別子で全体のバックアップリストア:システムに提供される1つの識別子が、バックアップ全体を読み出すために十分であるはずだ。
・事前にメタデータをプリフェッチする機能。システムは、実データを取り出す前に、定義された量のメタデータを最初に読み出すことができなければならない。このようなメタデータは、より良いメモリ使用量を確保するために、キャッシュ置換ポリシーのために必要とされるであろう。
<4.4.1 システムリストアアルゴリズム>
システムレベルから見ると、ストリームリストアは、ストリーム識別子を受信することで始まる(図41参照)。このような動作は必要とされる全てのメタデータへのアクセスのロックを解除するけれども、あまりにも多くのメモリを占有しないようにするために、通常は、ある少しの量だけが読み出される。これに基づき、専用のアドレスを持つブロックを読み出す要求が送信される。リストアが進むと、追加のメタデータが読み出され、より多くの要求が発行される。システムを十分に利用する一定の負荷とそのリソースを提供するために、全体のプロセスは非常に円滑である。
ディスクレベルでは、データストレージについては、標準的なプリフェッチおよびキャッシュアルゴリズムが使用されるが、修正されたキャッシュ置換ポリシーを使う(図42参照)。受信した転送情報のおかげで、限定されたフォワードナレッジを持つ専用のオラクルを作成することができる。次のブロックの出現に関する情報は、キャッシュにおいて最適なメモリアロケーション近くを確保するのに役立つ。
オラクルは、全ての既知の将来の、しかし未読のブロックの識別子を、それらがストリームで出現するブロック位置をソートしたリストとともに保持するマップとして設計されている(図43参照)。将来の情報を用いたアップデートでは、ブロックの識別子が、存在しなければ追加されて、固有のブロック位置がリストの最後尾に押されていく。必要な場合には、その構造は、所定のブロックについてそれが必要となる最も近い将来の位置を戻すか、あるいは、次のブロックの出現のリストから最も近い(現在の)位置を除去することによって直近に読まれたブロックを更新するだろう。追加データで、限定されたフォワードナレッジを有するオラクルは、キャッシュデータが保持されるメモリとは異なる専用メモリを必要とする。総量のフォワードナレッジからの各ブロックアドレスについて、ブロック識別子とストリーム内におけるその位置との両方が必要とされている。幸いなことに、両者のサイズは、実際のキャッシュに必要なメモリの一部のみを使用するように制限することができる。
フォワードナレッジキャッシュは、通常、ブロックアドレスをキーとして、また、データを値として持つ標準マップとして編成される。LRUとの唯一の違いは、保持される情報の種類である(図44参照)。最も昔に使用されたブロックを保存するリスト(LRUプライオリティキュー)の代わりに、直近に発生したブロックの順序リストが保持される。すなわち、FKキャッシュプライオリティキューである(新しい場所のブロックが追加された場合に二分探索を行う能力を持つ)。ブロックの更新や追加などの全ての操作は、最新の利用の代わりに次ブロックの発生情報が保存されているということ以外、LRU構造上の操作に非常に似ている。
図45と46は、2つの例におけるブロックリストアおよびキャッシュ置換ポリシーの例を示す。1つめはブロックがキャッシュ内に見つかった時、2つめはブロックがディスクからリストアされなければならなかった時である。前者において、実行された唯一の操作は、キャッシュとオラクル構造との両方でリストアされたブロックの実際の更新である。後者はより複雑であり、キャッシュ置換プロセスも含む。一般的には、以下の手順で構成される。
・ブロックをディスクから読み出してそのプリフェッチとともにキャッシュする(オラクルが提供する次のセクションの出現に関する情報でキャッシュを更新)
・次に出現するセクションによって順序付けられたブロックをリストアされたブロックとともに保持するキャッシュプライオリティキューを更新する
・次の出現まで最も時間のある最大キャッシュサイズを超えるブロックを削除する(セクション番号の値が最も高い)
・リストアがキャッシュから実行されるときに行われるのと同じ方法で構造の更新を継続する。
フォワードナレッジを用いるアルゴリズムにおけるキャッシュ自体は、LRUアルゴリズムを用いるものと非常によく似た方法で構築されるので、そのメモリ要件は変わらない。しかしながら、フォワードナレッジを持つオラクルでは、独立した専用のメモリを必要とするであろう。別の要件は全てのブロックアドレスの追加リストであり、これらのブロックアドレスは、フォワードナレッジとして受け取られた後でデータをリストアするために実際に使用されるまでリストアされるのを待機する。フォワードナレッジのサイズは何ギガバイトにも及ぶので、データをリストアするためにアドレスが使用されるまでには何秒もかかるだろう(フォワードナレッジを満たすためにアドレスが配信される一方で、リストアは可能な限り迅速に行われることを想定)。これは、専用のメモリを必要とすることを意味する。セクション4.4.4で詳細に説明される別のアプローチは、追加メモリを占有することではなくメタデータを2回リストアすることである。1回目はフォワードナレッジのためであり、2回目はリストア自体のためである。どのソリューションが使用されたとしても、適切なメモリサイズは、リストアキャッシュに割り当てられたメモリの合計に含まれるべきである。
ソリューションの代替案
重要な点は、将来読み出されるであろうデータのアドレスのリストを維持するだけで、必要とされる追加メモリの三分の二が既に消費される、ということだ(ブロック毎に保持される33バイトのうち20バイト)。この影響を最小限に抑えるために考慮する価値のあるアイデアは以下の通りである。
メタデータリストアのパターンは、提案されたアルゴリズムを用いて大幅に修正されるので、リストア性能への影響に関する問題が生じる。このテーマに関する議論は、所定のシステムとそのメタデータリストアプロセスの詳細な知識を必要とするので、一般には困難である。幸いなことに、メタデータは通常、リストアされる全てのデータのうちのほんの小さな部分なので(8KBにつき20バイトで0.256%)、再びそれをすべて読み出してもそれほど多くの追加作業を生むことはない。また、ブロック毎に100バイトを超える高いメタデータオーバーヘッドを持つシステムを考慮すると、同じシナリオにおける総リストア帯域劣化は依然として1.5%未満であろう。これはほとんど目立たない。
フォワードナレッジを持つインテリジェントキャッシュの領域における主要なトレードオフは、標準的なキャッシュに特化したメモリのサイズとフォワードナレッジに関連する。データセットの特性や利用可能なメモリの総量しだいで、あるケースではごくわずかな量のフォワードナレッジが効果的なキャッシュ使用を既に保証する一方、別のケースでは非常に小さいキャッシュサイズでの非常に多くの将来の情報が、非常に良い選択である。
セクション3.3.2で提示した実験は、インライン重複排除によって引き起こされるインターバージョン断片化の悪影響を示す。いくつかのケースにおける値がそれほど重要だとは思えないが(ゼネラルファイルサーバ、ウィキ、ディベロプメントプロジェクトの場合、7‐14回のバックアップ後に約12%‐17%のリストア帯域幅の減少)、それらのデータセット内における比較的少数のバックアップという事実と、長いデータセットを用いた実験でサポートされている時間に増加する問題の顕著な傾向(メールとユーザディレクトリの場合、22‐50のバックアップ後に約19%‐36%の減少)とは、実生活での使用に潜在的に高い影響を示唆し、1つのデータセットのために作成されるバックアップの数は、毎年50から300以上にまで変化する。また、イシューリポジトリデータセットは、たった7回のバックアップを実行することで既に、可能なリストア帯域幅の50%以上のコストがかかる、ということを表している。この見解は、ナムらによる他の独立データセットとリリブリッジらによる一層長いもの(90回以上のバックアップ)とに関して確認された。
上記の問題は、重複排除システムの他の重要な評価指標に対する悪影響のないソリューションを必要とする。このようなソリューションは以下の通りでなければならない。
・最新のバックアップについてインターバージョン断片化によって引き起こされるリストア帯域幅の低下を解消する
・進行中のバックアップについてほんのわずかな(好ましくは5%以下)書き込み性能の低下しか生じない
・重複排除の有効性を低下させない(必要であれば、ほんのわずかの一時的な追加スペースを使用する)
・ディスク帯域幅、スピンドル、処理能力などの追加リソースをあまり必要としない
・トレードオフに対処する上での選択肢の範囲を提供する。
ほとんどの場合、最新のバックアップは障害発生後にリストアされる。なぜなら、ユーザは通常、最新の情報がリストアされることに関心を持つからである(図31参照)。この見解に基づいて、(重複排除率を維持するために)古いバックアップを犠牲にして、最新のバックアップのために断片化を解消したい。このようなアプローチの例を図47に示す。図47は、2つのケースにおいてバージョンの番号に応じて、複数のバックアップバージョンにわたる断片化によって引き起こされるリストア性能の低下を示す。2つのケースとは、(1)バックアップ経過時間とともに断片化が減少するインライン重複排除と、(2)最新のバックアップが連続的にディスクに書き込まれ、バックアップ経過時間とともに断片化が増大する、オフライン重複排除である。コンテキストベースの再書き込みアルゴリズムを導入することにより、オフライン重複排除に類似したデフラグ効果を達成するために、関連コストなしで、インライン重複排除機能にデフラグ機能を追加したい。
次のセクションで説明するデフラグソリューションを実装するには、バックアップストレージが下記の機能をサポートしている必要がある。
・コンテンツアドレス指定能力。以下で説明する後続の特徴にとって有用な基本機能である。
・ブロックハッシュの存在のチェックに基づく重複排除クエリ。このクエリはハッシュベースでありメタデータだけを読み出す必要がある、ということが重要である。提示したデフラグソリューションにとって、重複排除がシステム内の全てのブロックに対して試行されるか、あるいはその一部に対して試行されるか(疎索引作成など)は重要ではない。しかしながら、重複排除を実行するためにブロックデータ全体を読み出すことは避ける必要がある。なぜなら、そのような動作は、断片化されたストリームの読み出しと、非常に低い総書き込み性能とを実際に生じるからだ。また、高断片化のせいで、ブロックメタデータを十分速く読み出すのにさえ十分なスピンドルを持てないかもしれない、ということを認識しなければならない。しかしながら、SSDがバックアップデータ全体を保持するにはあまりにも小さく高価である一方、フラッシュメモリに基づく、この問題に対するソリューションがある。
・ディスクで隣接するブロックの高速判定。2つのブロックがあるとすると、システムは、それらがディスク上で互いに近接しているかどうかを迅速に判定することができるはずである。これは、システム内のブロックの有無を確認する各クエリが、ディスク上のこのブロックの位置を返す場合に達成される。
・システム内に既に存在するブロックを書き込んで、古いものを削除する機能。将来の読み出し性能を高めるためにブロックを再度保存する決定がなされた時に、これが必要とされる。このような再書き込みは、新しいものがリストア時に使用されるように、以前のコピーを効果的に無効化する。
<5.4.1 ブロックコンテキスト>
このアルゴリズムは、ディスクコンテキストとストリームコンテキストという重複の2つの固定サイズのコンテキストを利用する。ストリーム内のブロックのストリームコンテキストは、このブロックの直後にこのストリームに書き込まれるブロックセットとして定義され、ディスクコンテキストは、ディスク上でこのブロックのすぐ後に続くブロックを含む(図48参照)。これら2つのコンテキストの共通部分が多いときには、プリフェッチのおかげでこの共通部分におけるブロックの読み出しは非常に高速である。実際、これは、特に初期バックアップについて、かなり頻繁に起こる。
基本的なアイデアは、高断片化された重複、つまり、現在のバックアップにおけるストリームコンテキストがディスクコンテキストとは大きく異なるブロックを再書き込みすることである。そのような再書き込みでの試みは、両コンテキストを類似させることである。再書き込み後、ブロックの新しいコピーは読み出しに用いられ、これは、同じバックアップに保存されている他のブロックをプリフェッチすることを意味し(したがって断片化を減少させる)、また、古いコピーは最終的にバックグラウンドで回収される。
再書き込みプロセスを案内するために、重複の再書き込み有用性という概念を導入する必要がある。また、2つの閾値が各ループ繰り返し上で維持され調整される。2つの閾値とは、最小限の再書き込み有用性(定数)と、最新の有用性閾値(変数)である。
判定ブロックのディスクコンテキストとストリームコンテキストとの共通部分が小さい場合には、そのようなブロックの再書き込みが望ましい。なぜなら、あまり有用でないデータを読み出すための1回の追加ディスクシークを回避するのに役立つからである。一方で、この共通部分が大きい場合には、そのような再書き込みはあまり得策ではない。なぜなら、追加のシークタイムは多くの有用データを読み出すのに必要な時間によって償却されるからである。
最小有用性は、リストア性能をごくわずかしか改善しない再書き込みを回避するための、CBRアルゴリズムの定数パラメータである。最小再書き込み有用性を70%に設定した。この値は高く見えるかもしれないが、低い有用性は、以下の分析で提示されるように有益ではない。
現在の有用性閾値は、現在の判定ブロックの再書き込み有用性を定義する、CBRアルゴリズムの可変パラメータである。その値を計算するために、最良5%ブロックセットが、最も高いの再書き込み有用性をもつバックアップストリーム内において、これまで見られた全ての重複の5%(デフォルト値)と定義される。再書き込み可能な各ブロックは重複でなければならず、ストリーム内に十分な重複がないかもしれないので全ブロックの5%未満であっても維持する可能性があることに注意されたい。
判定ブロックは、その再書き込み有用性が現在の再書き込み有用性閾値の最大値と最小有用性を下回っていないときに再書き込みられる。それ以外の場合は、コンテキスト共通部分内の全てのブロックは再書き込みられない、すなわち、それらのブロックは、現在のストリーム内の重複として扱われてアルゴリズムの将来のループによってスキップされるようにマークされる。各再書き込み判定は常に、これまでに見られたストリーム内の全てのブロックに基づいてオンラインで計算される、5%の再書き込み制限の対象であることに注意されたい。
コンテキストの共通部分を計算する
判定ブロックのストリームコンテキストは、十分な書き込み要求がこのストリームに対して提示されるまでこのブロックの書き込みの完了を遅延させることによって満たされる。各要求について、重複状態は、データのセキュアハッシュ(すなわち、SHA-1)に基づいて、(ディスク上のブロック位置という追加の結果とともに)修正された重複排除クエリを発行することによって解決される。アルゴリズムの過去のループの1つによって埋められたクエリ結果が既にあるならば、そのクエリは発行されない。重複が検出された場合、修正されたクエリは、ディスク上のブロックの位置を返し、ブロックアドレス(ハッシュ)がこれ以上遅れることなく返される。ストリームコンテキストを埋める間、各所定ブロックは、判定ブロックまでのディスク上での距離の比較により分析され、コンテキストに既に出現する重複か(否か)を判断される。このようにして、ディスクコンテキストとストリームコンテキストの共通部分が判定される。
最良5%の有用性を追跡することは非現実的であるので、このアルゴリズムは、一定数の有用性バケット(たとえば1万個)を維持する。各バケットは、互いに素である等しい再書き込み有用性小領域を割り当てられ、全てのバケットは、有用性領域全体をカバーし、各バケットは、これまで見られたブロックの数をその有用性とともにこのバケット領域に保持する。このような構造は、各バケットに割り当てられた有用性領域内で、合理的な精度での最良5%のブロックのうちの最悪のブロックの再書き込み有用性の概算を、最小限のコストで可能にする。実際には、最小の再書き込み有用性を超える値を表すバケットだけが有用であるが、どちらの場合においても、このような構造に必要なメモリはごくわずかである。
実験によると、実際には、あらゆるバックアップストリームが、そのストリームの他のブロックの重複(インターナルストリーム重複)であるブロックを含む。重複排除率を低下させなければ、そのようなインターナル重複の最適な位置を決定するためのオンラインの方法がないので、ストリームの対応重複ブロックの近傍におけるディスク位置は、潜在的に良いものだとみなすことができる。しかしながら、重要なことは、ストリームの各バージョンのバックアップ中に、再書き込みのためにCBRアルゴリズムが同じ論理位置を選択し、他のいかなる位置もこのような動作を始動させないことである。これは、各バックアップの間に論理ストリーム内の1つの場所から他の場所にインターナル重複ブロックを再書き込みすること(スラッシング)をさせないために必要とされる。一方、前のセクションで説明したフォワードナレッジを有するキャッシュは、論理ストリームの最初の位置が最も高い可能性を有するものと考えるべきであることを示唆している。一旦キャッシュに読み込まれると、長時間そこにとどまる可能性があり、同じデータに対する他の要求にも役立つ。したがって、ブロックは、それが初めてストリーム内に発生した場合にのみ再書き込みすることを考慮されるべきだ。
提示したCBRアルゴリズムは、少数のブロックを再書き込みすることによって、より連続したディスクアクセスを確保する際に、十分な役割を果たす。しかしながら、結局のところ、ストリームを読み出す際に重要なのは達成されるリストア性能である。再書き込みするブロックの数をさらに減少させながらこの結果を同じレベルで維持することは、各バックアップ時に支払われる費用を下げるために役立つだろう。
CBRアルゴリズムは、再書き込みされたブロックの古いコピーを削除するバックグラウンドプロセスを要する。この処理は、データスクラビングやデータソーティングといった既に随時実行されている他のメンテナンスタスクと一緒に行うことが可能である。この削除プロセスが実行されるまで、再書き込みによって使用される追加スペースは一時的に重複排除率を低減する。このようなデータの割合が制限され、メンテナンス作業が通常は非常に頻繁に行われるので、このソリューションは容易に許容されるべきである。
データブロックがコンテンツアドレッサブルである場合、新旧両方のコピーが同じアドレスを持つので、古いコピーが新しいコピーと交換されるときにデータブロックへのポインタを変更しなくてよい。最新のバックアップリストアの良好なパフォーマンスを確保するために、ブロックの最新コピーにアクセスするための唯一の手順は、システムが過去に同じブロックの多くのコピーを許可しなかった場合は、若干修正する必要があるだろう。これは、ブロックインデックスにおいて最新ブロックへのエントリのみを保持することによって行うことができる。
セクション5.4.4に記載したように、多くのメモリを必要とする可能性があるアルゴリズムの一部は、インターナル重複ブロックの除去のために使用されるブルームフィルタである。必要なメモリは、バックアップストリーム1GB毎に約240KBであり、それほど多くは見えないが、ストリームが大きいほど、この要件に対する圧力は大きくなる。
オンラインアルゴリズムの最適化
CBRアルゴリズムは、これまでに見られたブロックだけを見るので(フォワードナレッジとみなすことができる小さなストリームコンテキストも加えて)、明らかにオンラインである。残念ながら、同じ理由で、現在の有用性がストリーム全体で安定しているときにだけ、そのアルゴリズムは最適である。他のケースでは、5%の再書き込み制限を最大限に利用するとともに、特にストリームの最初のブロックと最後のブロックの再書き込み有用性の間には大きな差があるので、最終的な結果はそれほど良好ではないかもしれない(デフラグ前よりはまだ良いが)。
CBRアルゴリズムの単純な変形を導入することができる。これは、コストを削減し利点を維持すると思われる。最初に、再書き込み対象のブロックを識別し、バックアップ終了後、後にバックグラウンドでそれらのブロックを再書き込みする。しかしながら、これは、あまり役に立たない。なぜなら、再書き込みは断片化されたブロックの読み出しを必要とし、これが極端に遅くなる可能性があるからである(正確には、ブロックが最も断片化されているため)。CBRのインラインバージョンでは、これらのブロックは、実際には、ユーザがデータを書き込むときにほとんど無料で受信される。
ストリームコンテキストの大きさ
このアルゴリズムは、初期設定では、ストリームコンテキストの大きさとして5MBを使用する。なぜなら、それは、CBRを効果的にすることを可能にするほど十分大きく、書き込みレイテンシの向上をこのコンテキストを満たすことにより好ましいものにするほど十分小さいからだ。バックアップシステムが1ストリーム毎に100MB/sを達成すると仮定すると、コンテキストを一杯にするために50msしか必要ないだろう。2MBから20MBの間の他の値も検証され、これらの値は、最終的な帯域幅の結果がほんの少し異なるものの、所望のレイテンシを減少させたり増加させたりするために許容可能であるが、再書き込みされた重複の数のばらつきは大きくなる(ストリームコンテキストが大きいほど、再書き込みされるブロックは少なくなり、リストア帯域幅は若干悪くなることを意味する)。他方、あるシステムにおいて遅延が重要である場合、書き込み確認を待つことができる最大限許容可能な遅延でストリームコンテキストの大きさを定義することができる。このような場合、各ブロックのストリームコンテキストは異なるだろうが、まだ合理的なデフラグ結果を提供するに違いない。
再書き込み回数の初期設定での上限はストリーム内でこれまでに登場した全ブロックの5%に設定されているが、いくつかの個別の要件の場合にはこの値は容易に変更することができる。上限を高くすると、再書き込み有用性が最低限よりも高い全てのブロックが再書き込み対象となり、CBRデフラグをせずに長時間バックアップされたストリームにとって非常に有用であるかもしれない。もちろん、このようなバックアップの時間は比例して増加するだろうが、次からはその制限を5%に戻してもよい。
<6.1 実験方法>
実験の目標は、ディスクそのもの以外にはボトルネックのない全ての、または、少なくともほとんどのシステムに共通する環境に関する問題を示すことであり、個々の実装を詳細に調べることではない。このように、通常はある所定の実装の制限でしかない構造上の仮定を用いて、実験を不明瞭にすることなく、実際の断片化問題の深刻度とそのソリューションの効率性とを評価することを優先する。言い換えれば、このセクションに示された結果は、性能の上限とみなされ、インライン重複排除機能を持つ最も一般的なシステムにとって特に重要である。なお、オフライン重複排除機能を備えたシステムは、インターバージョン断片化には悩まされないが、ストリーム中に内在する断片化には対処しなければならない。そのために、第4章で提示されここで評価されるフォワードナレッジを有するキャッシュは、非常に役立つ。
インライン重複排除を行う大多数のバックアップシステムの共通部分を説明するのに十分に一般的な、バックアップシステムモデルを提案する。これは、主要な問題の特徴に関して特に実装されるうえで十分に簡潔で、かつ、限られた時間で数多くの実験を実施するために十分に効率的である。
このモデルでは、各測定の開始時には空である1つの連続スペース(1つの大きなディスクのようなもの)で構成された、単純なストレージサブシステムを想定した。シミュレータでの書き込み処理は、セクション3.2で説明したインライン重複排除を行うシステムに存在する全ての特徴を維持するよう設計された。主なものは、局在性を維持するブロックの配置や現在占有されている領域の後への新しいブロックの配置などである。このような書き込みアルゴリズムは、最大の書き込み帯域幅と最小のリソース使用率とを保証する。これらは、バックアップ実行中において常に優先事項であった
セクション3.1.2で説明したように、プリフェッチングとキャッシングを用いる読み出しは、ストレージ環境内で最も一般的に使用されている。
プリフェッチは、ディスク上に連続して配置されたデータを読み出すために非常に有効である。重複排除を行う環境でこれを示すために、6つのデータセット全てについて512KBから8MBまで変更される固定プリフェッチサイズを使用してシミュレーションを行った(図50参照)。ここでの比較は様々なプリフェッチサイズを使用して行われるため、入出力の数だけに基づく性能の外挿はもはや行うことができない(このようなケースでの比較結果は、ディスクがどのくらいの量のデータをシーク時間内に読み出すことができるかに因る)。したがって、一般的なエンタープライズデータセンター容量のHDD仕様を使用して、達成される性能について推論できるようにした。
実験では、一般的に多くのユーザが毎日行う増分バックアップを省略した(重複排除を行うシステムでは、新しいデータのみが保存されるので、実際には増分バックアップはフルバックアップと非常に似ている)。残念ながら、実験でデータを使用することに対して親切にも同意してくれたユーザたちは持っていなかった。そのようなデータを用いた実験は、有益ではあるだろうが、既に実験で提示された考えを述べるだけだろう。確かなことは、このようなバックアップは、断片化の問題を無くすことも弱めることもできない、ということだ。なぜなら、丸1週間後には、似たような新規のデータを同じ記憶領域に書き込むことになるからだ。実際には、日々の修正は、より小さくより頻繁であるので、問題をより深刻にするかもしれない。というのも、1週間分の新規データは、1つの領域ではなく5つから7つの領域に分割されるからだ。
断片化の問題を診断して提案したアルゴリズムを検証するために、サイズが5.7TBを超える実際のユーザーデータを表し、かつ、6セットの週毎のフルバックアップから成るトレースを収集した。各セットの特徴を図51に示す一方、それらのコンテンツの種類を以下に提示する。
・ディベロプメントプロジェクト。大きなC++プロジェクトのCVSデータ、LDAPデータ、サーバ設定ファイル
・イシューリポジトリ。イシューリポジトリデータ(XMLとアタッチメントを含む)、サーバ設定ファイル
・ウィキ。ウィキデータ、サーバ設定ファイル
・ゼネラルファイルサーバ。コンピュータサイエンス研究室のホームディレクトリ(NetWare)
・ユーザディレクトリ。ソフトウェア会社内の18人のユーザのLinuxホームディレクトリ(tar)
・メール。ソフトウェア会社内の35人のユーザのメールボックス(tar)
各テストは常に空のシステムで始まり、パラメータ(キャッシュおよびプリフェッチサイズ、キャッシングアルゴリズム、フォワードナレッジサイズなど)のほかに3つの異なるシナリオで実行することができる。
・base:次々にロードされるデータセットからの全てのバックアップ(インターナル断片化およびインターバージョン断片化を含む)
・defrag:CBRデフラグが有効な状態で次々にロードされるデータセットから全てのバックアップ(最後のバックアップがCBRアルゴリズムにより制限される、インターナル断片化およびインターバージョン断片化の両方)。なお、この結果は、実際にCBRアルゴリズムを用いた実験においてのみ示されるだろう。
・max:システム(インターナルストリーム断片化のみ)にロードされるセットからの最後のバックアップのみ。この結果は、ストリームにとって可能な最大帯域幅レベルと言うことができる。実際には、サイズ無制限のキャッシュを使用する場合に最大である。これは現実的にオフライン重複解除で配慮されるが、関連コストとともにである(セクション2.2.1を参照)。
<6.2.1 要件を満たすこと>
性能の結果
第4章で提示した、限られたフォワードナレッジ持つキャッシュは、断片化されたデータと断片化されていないデータ(オフライン重複排除を含む)の両方にとって、各バックアップ(最新のバックアップを含む)のリストア時のメモリ使用の最適化に非常に役立つ。これは、平均帯域幅の増加を62%から88%までの間で保証する(図52を参照)。
セクション4.4.4で詳細に説明したように、限られたフォワードナレッジの使用は追加リソースを必要とし、それは総費用に含まれなければならない。最も効果的なケースでは、メモリ(8GBのフォワードナレッジに対して13MB程度)と、帯域幅(約0.256%減)である。後者は無視できる程度に小さいが、前者は、キャッシュメモリの合計量が少ない場合は特に、いくらかの差を生む可能性がある。256MBのキャッシュが最も効果的であると一般に考えられるが、8GBのフォワードナレッジを備えてもメモリ使用量は約5%高くなるだけである。帯域幅が増加することと、無限のフォワードナレッジをいかに上手く見積もるかということとを想定すると、このコストは高いとは思えない。
フォワードナレッジを備えるキャッシュもまた、追加メモリを費やして必要なフォワードナレッジのサイズを設定することで調整可能である。一般に、フォワードナレッジが多いほどソリューションはより良好であるが、詳細には、このような性質は限られており、インターナル重複パターンやキャッシュメモリのサイズ、ストリームの状態(断片化されているか否か)に依存する。セクション4.5で既に述べたように、所望のソリューションは、最高の性能の結果を確保するために、利用可能なメモリの総量内で実際のキャッシュとフォワードナレッジとのメモリ分割を自動化することであろう。
コード修正は、ある所定の実装においてアルゴリズムを使用することために必要であるが、非常に限定的であって重複排除効率に影響を与えない。必要とされる2つの修正は、通常はデータリストアを担うアルゴリズムだけを検討し、既に利用可能なインタフェースを使用してキャッシュメモリを管理する。前者は、オラクルを実際のフォワードナレッジで満杯にするためにだけ要求され、各標準的な読み出し要求に適切な情報を添付することによって簡単に行うことが可能であり、他のシステムコンポーネントの観点からは修正がほとんど見えなくなる。一方で、後者は、リストアアルゴリズムに限定され、実装を単純に交換することを容易にするだけだ。このような限定された修正は、市場に存在するほとんどの(あるいは全てかもしれない)システムのためにアルゴリズムを適切にする。
図53および54は、フォワードナレッジを持つキャッシュの影響を、制限ありの場合(512MB、2GB、8GBまで)と制限なしの場合(この研究で前に使用したベラディのキャッシュと同じ)とを、標準LRUアルゴリズムとの比較とともに示す。
様々なフォワードナレッジサイズを持つキャッシュメモリ使用の効率について再び図53と図54とを比較すると、興味深い事実を観察することができる。前者(インターバージョン断片化あり)について、8GBのフォワードナレッジは、1GBのキャッシュが、無限のフォワードナレッジでアルゴリズムの最大8%以内にとどまるために十分である(平均2.48%)が、断片化されていないオプションは、保持する価値のあるより多くのデータが入出力のたびにリストアされるので、より高い要件を有する。この場合、8GBのフォワードナレッジは、最高256MB(無制限のオプションからの逸脱は最大2.3%;平均0.83%)までのキャッシュに対しては極めて役に立つが、512MBになると既に不足を示している(最大19.25%、平均5.48%)。このオプションとより大きなキャッシュオプションでは、より長いフォワードナレッジが必要である。なお、実験では、フォワードナレッジ内に見つかったブロックだけがキャッシュに保持可能である(詳細はセクション6.1.1を参照)。フォワードナレッジが短い場合や、将来的に使用されるブロックがごく少数である場合に、キャッシュメモリは十分に活用されないかもしれず、これは、異なるメモリサイズでの2つの結果が同じである時に図面上でしばしば見られる。
セクション6.1.1からの観測のために、実験のほとんどは、サイズが2MBの固定デフォルトプリフェッチで行われた。なぜなら、それは、最も一般的なLRUアルゴリズムの観点で効果的であり、様々なアルゴリズム間での比較を容易にしたからである。このようなレベルのプリフェッチサイズ(2‐4MB)は、多くの論文で使用されるサイズとも同様であり、最も一般的なサイズとみなされることを示唆する。それにもかかわらず、フォワードナレッジを有するキャッシュアルゴリズムを持つことは、これらの仮定を大きく改めることが判明した。プリフェッチサイズと関連してリストア帯域幅における差を可視化するために、一般的なエンタープライズディスクの特徴を用いたシミュレーションを行った(持続データ転送速度:175MB/s、リードアクセスタイム:12.67ms)。図56に示す結果は、各条件(断片化ありと断片化なし)でのそれぞれのバックアップと、異なるリストアアルゴリズムの使用とが、それ自体の最適プリフェッチサイズを有することを示唆し、それは互いに大きく異なり得る。1つの明確な観察結果では、このような最適プリフェッチは、断片化されたデータよりも断片化されていないデータについて常により大きく、LRUよりもフォワードナレッジアルゴリズムについて常により大きい、ということである。その結果、より大きなプリフェッチへと切り替えることは、非生産的なシークを制限する、より少ない数の入出力を通じてリストア帯域幅を向上させる。フォワードナレッジアルゴリズムのおかげで、プリフェッチサイズは、LRUの場合よりも2‐16倍大きくなり、したがって、断片化されたデータについては11%‐117%(平均68.47%)のレベルで、断片化されていないデータについては27%‐252%(平均120.24%)のレベルで、最大リストア帯域幅を増加させる。フォワードナレッジおよび2MBプリフェッチによる結果と比較すると、プリフェッチサイズの拡大により、断片化されたデータについては0%‐48%(平均23.89%)の追加利得が、断片化されていないデータについては3%‐92%(平均53.90%)の追加利得が与えられる。
<6.3.1 要件に適合すること>
性能の結果
第5章で提示したCBRアルゴリズムは、全てのトレースについてインターバージョン断片化の影響を排除する際に非常に有効である。256MBのLRUキャッシュを用いる一般的なシナリオでは、各データにおける最新バックアップのリストア帯域幅は、結果として平均で最大帯域幅の2.48%以内(21.29%以内から)であり、これは、インターバージョン断片化がない場合に達成される(たとえば、単一のバックアップを保存することによって)。これは平均でたった29.1%(8%‐94%)のリストア帯域幅増を示すが、重要なことは、考慮されるべきさらなる劣化という側面である。残念ながら、アルゴリズムの真の可能性は、長年のバックアップをカバーするトレースがないために、ここでは提示できなかった(詳細はセクション3.3.2を参照)。
このアルゴリズムは、再書き込みされた重複ブロック以外に追加スペースを使用しないので、追加のスペース消費量は、全てのブロックの5%に満たない。実際の数字はずっと低く、0.35%から3.27%(平均1.58%)である。ブロックの古いコピーは、たとえば定期的に行われる削除プロセスの一部としてバックグラウンドで除去されるので、スペースの消費は一時的なものにすぎない。追加のディスク帯域幅の消費も再書き込みされたブロックの書き込みに制限されている。
提示されたアルゴリズムは、再書き込みされるブロックの割合を設定することによって、容易に調整することができる。この割合が高いほど、再書き込み性能がより大きく低下して再書き込みされたブロックの古いコピーを一時的に保存するために必要なディスク容量がより多くなるのと引き換えに、リストア性能がより良好になる。
提示されたアルゴリズムのコストを評価する際、再書き込みに起因するバックアッププロセスの減速を推定した。CBRは重複を非重複として再書き込みするので、このような運用コストを証明するために、商用バックアップシステムであるハイドラストアの書き込みパスを変更して重複のチェックを回避し、その結果として得られた帯域幅を、重複の100%を書き込む際に変更されていないシステムの帯域幅と比較した。
再書き込みの制限にとって最良の値を選択するために、最小の再書き込み有用性は変更せずに70%に維持しつつ、再書き込みの制限を0%から8%まで変えながら実験を行った。各バックアップセットにおける最新バックアップの結果を図59に示す。この制限を2%や1%といった低い値に設定すると、イシューリポジトリ以外の全てのセットに適する。イシューリポジトリにとって、5%の再書き込み制限がリストア帯域幅の減少を最も少なくする。再書き込み制限が5%を超えると、それ以上増加せず、バックアップ時間を大幅に増加させるかもしれないので、全ての実験について、再書き込み制限を5%に設定することを決めた。このように設定しても、最大限の理論上の書き込み帯域幅の低下は、15%のレベルであり、現実には、平均で4%をわずかに超えるだけである。また、最大限の低下は、100%重複ストリームでのみ達成可能であり、帯域幅は既に非常に高い。
実験は、最新のバックアップにおける全ての再書き込みされたブロックの39%から97%が、過去のバックアップの1つにおいて既に再書き込みされたものである、ということを示している。新規ブロック数が非常に少ないバックアップにおいて最も高い数字に到達し、十分なサイズのコンテキストを最終的に実現するためには多くの反復が必要となる。それらのブロックは再び再書き込みされるが、不要であるということではない(実験において、過去のまたは任意のバックアップにおいて既に再書き込みされた再書き込みがある可能性を無くしたところ、最終的なリストア性能は10‐20%低下した)。いくつかのケースにおいて、その再書き込みは、再書き込み有用性を若干減少させるが、必要なレベルを下回るほどではない。あるいは、単純にそれらのブロックを近くに移動させることで、必要とされる前に読み出される可能性を増大させるが、再書き込み有用性の値には目に見える影響はない(リストアキャッシュのため)。両方の側面は、ブロックを再書き込みするためには少なくとも1つの非重複ブロックがストリームコンテキスト内に見出されなければならないというように(次回については再書き込み有用性の低減を保証するために)、修正アルゴリズムの結果によって良好に可視化される。このような実験は、再書き込みされるブロックの数を大幅に(半分にも)減少させたが、同時に、達成されるリストア帯域幅を数パーセント減少させた。同様の結果は、ストリームコンテキストを100MBにまで増加させることで達成可能である。
これまで、バックアップデータは圧縮できないと仮定していた。プリフェッチサイズを一定かつ2MBに維持すると、圧縮可能なデータは、結果的に、断片化が進み、CBRアルゴリズムによってリストア帯域幅の一層良好な相対的向上が実現される。たとえば、50%圧縮可能なデータでは、リストア性能の低下が、テストされたデータセットにおいて12%‐51%(平均21.27%)から16%‐56%(平均26.12%)に増加するが、CBRデフラグが、最新バックアップのリストアを8%‐95%(平均28.94%)ではなく11‐121%(平均35.79%)向上させ、その結果、トータルでの性能低下の縮小は最大10%になる(圧縮無しの場合は最大7%)。全ての結果は、非常に類似した数の再書き込みブロックで達成された。
必要とされるキャッシュメモリの観点からCBRデフラグプロセスを検証するために、無限のフォワードナレッジと考えられる無制限のキャッシュサイズでデフラグした後で各データセットの最後のバックアップを読み出す、というテストを行った。各ケースにおける実際のピークメモリ使用量は図60に示す通りである。ここに集められた数字が示唆することは、CBRデフラグプロセスは、メモリ使用を制限して最新のバックアップをメモリ使用領域内の断片化されていないバックアップに似たものにする、という観点から非常に効果がある、ということだ。
図61は、様々なキャッシュサイズを用いる最新のバックアップについて、CBRデフラグおよび限られたフォワードナレッジキャッシュの両アルゴリズムの、単一オプションおよび複合オプションにおける詳細な結果を示す。断片化の異なる側面に対処するために使用される2つのアルゴリズムは、非常に効果的な共生関係になり、その結果、たとえば256MBを用いる様々なデータセットのケースにおいて16〜388%の帯域幅増となる(平均142.65%:図62参照)。
最後になるが、RAIDやイレイジャーコーディングを使って1つのブロックをリストアするために非常に頻繁に10以上のディスクを使用し、多くのストリームを同時に提供する現在のシステムで、上記の結果全てを別のレベルに引き上げることができる。実験では、ストリーム全体に対して2MBを想定したが、これは、上記設定ではディスク毎にたった200KBのプリフェッチという意味である。最近のディスクドライブを使用すると、このような小さなプリフェッチは、2MBと比較して1つのディスクからのリストア時間がほぼ6倍高いことを意味する(図32参照)。
<7.1 オフライン重複排除との比較>
インターバージョン断片化に対処するための要件のいくつかを満たす1つの簡単なソリューションは、既に市場に存在し、オフライン重複排除と呼ばれ、セクション2.2.1で説明した。その最も単純な形式では、現在のバックアップからの全てのデータは、ディスク上に連続して保存され、重複排除機能は、最新のバックアップからのブロックが、より古いバックアップから重複を排除するための基礎となるようにバックグラウンドで行われる。
チャンク断片化レベル(CFL)は、ストリームの断片化の問題を可視化するためにナムらによって導入された。データが固定サイズのコンテナ(2MBまたは4MB)に保存されたと仮定すると、このアイデアは、最適なチャンク断片化(コンテナサイズで割られるストリームのサイズ)を現在のチャンク断片化(リストア中に読み出されるコンテナの実際の数)で割り、求められた結果の最大値を1に制限することであった。結果として生じる数字は達成される性能に比例することとした。残念ながら、その数字は、リストアパフォーマンスを測定する際に非常に重要であるリードキャッシュの存在を考慮しておらず、実験を非現実的なものにした。
近年、重複排除機能を有するストレージシステムの読み出し性能を向上させるという話題は、発表される論文においてかなり普及した。リリブリッジらによって提案されたソリューションは、デフラグの一種とみなすことができる「コンテナキャッピング」と呼ばれる技術を含む。このソリューションは、限られた数のコンテナだけからのリストアを保証することにより読み出し帯域幅を改善することに成功しているが、示される結果は、その著者が設計した独自のアルゴリズムとの比較ではかなり悪く、設計によって高い断片化を引き起こす(結果を分析すると、重複排除機能のないシンプルなシステムと比較して、12‐44悪いリストア帯域幅)。残念ながら、インターバージョン断片化なしで達成されるリストア帯域幅や無制限のキャッシュを使用するアルゴリズムとの比較はない。このような比較は、非常に興味深いものであろうし、このソリューションの結果を、私の研究で提示するものと比較可能なものにしただろう。それが無いと、インターナル重複排除のレベルを、最終結果に対するその影響とともに決定することはできない。それは、実験において示したように重要である可能性がある。図から得られる1つの情報は、キャッピングを10に設定すると(この論文で分析する全てのオプションの中で最も高いリストア帯域幅を達成する)、このアルゴリズムは、重複排除機能のないシステムの場合に可能な帯域幅の50‐90%を達成する(速度係数4が100%に等しいと仮定)。この結果は、それなりに良いと思われるが、このような設定で17‐50%の(データセット次第である)累積重複排除率に対する悪影響を考慮しない場合に限られる。このコストは非常に高く、書き込み帯域幅を少なくするが、本文中では言及していない。リリブリッジの調査と比較すると、私の研究で提示するアルゴリズムはいずれも重複排除率を変更せず、1つだけが書き込み帯域幅をわずかに縮小させる。これらのアルゴリズム以外に、この研究はまた、断片化問題が興味深い長期の(2年にも及ぶ)トレースに与える重要性を示したが、これは見つけることが困難なものである。残念ながら、このトレースは、他の調査用には入手可能でないと判明し、結果を直接比較することはできなかった。
フォワードアセンブリエリアは、コンテナキャッピングの他にリリブリッジらによって提案された第2の技術であり、リストア開始時に知られているバックアップレシピ(フォワードナレッジに類似)を用いてより良好なキャッシュメモリ利用を支援することを目的とする。最も単純なケースでは、フォワードアセンブリエリアと呼ばれる、読み出されたものに割り当てられる必要なメモリを使って、フルバックアップをMバイトスライスにしてリストアする。1つのMバイトスライスをリストアするために、まず、レシピの対応する部分をメモリバッファに読み込み、必要なバイト範囲を満たすために必要なチャンクを決定する。アセンブリエリアにおいて最も古い充填されていないチャンク場所を特定するたびに、対応するコンテナがリストアしつつ、そのコンテナからのチャンクを必要とするアセンブリの全ての部分を充填する。その処理が終了した後、そのデータをユーザに返すことができ、次のMバイトスライスを読み出すためにアセンブリエリアをクリアすることができる。
いくつかの論文は、より高速な重複排除のための読み出されるメタデータの向上を調査した。ヂューらがブルームフィルタとストリーム指向メタデータプリフェッチとを用いるソリューションを説明する一方で、リリブリッジらは、疎索引作成(以前に選択された少数の大きなセグメント内だけの重複を排除する)ではメモリ消費が少ないために優れていると主張している。これらのソリューションがストリーミング書き込みパターンを想定する一方で、SSDは、ランダムな重複を除去するために使用することができる。このようなアプローチでは、より細かい重複が検出されるので、断片化問題がさらに難しくなる。さらに、上記の技術のいずれも、断片化されたデータの読み出しの問題を解決せず、全てのケースにおいて、後のバックアップほど断片化が増大する。興味深い事実は、CBRデフラグアルゴリズムが、デフラグされたストリームのデータおよびメタデータの両方へのアクセスをより連続的にすることによって、副次的影響として、いくつかの前のソリューションの有効性を向上させるということだ。
<8.1 概要>
本論文では、バックアップシステムにおけるデータ断片化問題を、重複排除と、この問題の2つの異なる側面に対して提案されたソリューションとを用いて説明した。また、紹介されたアルゴリズムが有る場合と無い場合とにおいて、重複排除により発生する様々な種類の断片化がバックアップリストア帯域幅に対して与える影響を定量化した。その結果をサポートするために、我々は、ユーザから収集した実際のバックアップトレースについて数多くの実験を行った。
<8.2.1 リストア中の完璧なメモリ分割>
セクション4.5で既に論じたように、実際のキャッシュとフォワードナレッジとの間での固定メモリの分割は、異なるデータセットに関して、また、1つのストリームのリストアプロセス内でも、最適な選択ではない。この場合のソリューションは、動的メモリ分割であろう。この目的は、メモリの残りがまだ完全には実データによって占有されていない場合にフォワードナレッジを拡張し、将来的に読み出され必要とされるブロックを維持するための十分なスペースがない場合にフォワードナレッジを削減することである。キーとなるのは、読み出された全てのブロック(フォワードナレッジ内に見出されるであろう)が、メモリに保存され、ほぼ100%利用され続ける、という状態を常に維持することだ。
キャッシュが固定量である場合、将来的に最も長い時間使用されないブロックを動かす上記アルゴリズムは、ページ置換ポリシーに関して言えば、ベラディの最適アルゴリズムほど最適ではない。ベラディの最適アルゴリズムの場合、ページは、ページフォールトの場合に別々に削除されたり読み出されたりすることが可能な独立した単位として実際に扱われ、その場合、バックアップストリーム内のデータブロックが異なる。
全体的なリストア性能を向上させるもう1つの一般的な提案は、可変プリフェッチサイズの使用である。事前に知られている、あるいは、ストリームリストア時に収集されたストリームの特徴に基づいて、プリフェッチサイズを変更する、という考えである。そのおかげで、たとえば、データ要求がディスクのあちこちに多かれ少なかれランダムに散在している時に、非常に小さなプリフェッチを使用したり、データ要求が正確に連続した順序でなされた時に、非常に大きなプリフェッチを使用したりすることができる。このアルゴリズムは、要求されたデータの順序が大きく異なってもよい時や、ディスク上の各ブロックの配置に関して事前に知ることができる時には非常に有用であるけれども、バックアップシステムの場合は、その有用性が限定されるようだ。この場合の主な問題は、考えられる断片化問題を実際に解決するのではなくて、より小さなプリフェッチを使用して隠そうとするだけであり、これによりリストアが劣化する。
最新バックアップのリストア性能に影響を与える要素という点でまだ調査されるべき興味深い領域は、保存ポリシーである。ここでの第1の目的は、バックアップの頻度(毎日、毎週、毎月)と、断片化レベルに対する影響とを、CBRデフラグで達成される結果とともに検証することである。第2の目的は、システム内に維持されている1つのバックアップセットの過去のバージョンの数の影響を検証することである(1回の実験中においてバックアップ頻度が固定されていると仮定)。データが多くなるほど、実際に必要なブロックを読み出すことがより困難になるが、その一方で、古いバージョンを単に削除するだけでは現在のバックアップのディスク上での位置は変更されない。同じストリームに属するデータ間でインテリジェント連結機構を備えることが、この場合のソリューションとなる。
コンテキストベースの再書き込みアルゴリズムに関して言えば、今後の研究は次の問題を探求するだろう。
・断片化がひどい場合に、若干低減された重複排除を可能にする
・書き込み中にフォワードナレッジを持つキャッシュアルゴリズムをシミュレーションする(リストアに使用されるものと全く同じか類似の)
・最適な現在の有用性の閾値を選択しながら、過去のバックアップ中に収集された統計を適用する
・書き込み帯域幅を節約するために、n番目のバックアップごとにCBRデフラグを実行する
・あるブロックを再書き込みとみなす場合、そのブロックを含む他のストリームを考慮する
さらなる分析のために残された断片化の最後の側面は、1つのバックアップシステムに配置されている異なるデータセット間に存在するグローバル断片化である。セクション3.2.3において、その問題と、実際の解決への可能ないくつかのアプローチとについて既に説明した。データ重複排除の最大限の効率性にコミットしながらも、断片化のこの側面は、既存のシステムおよび一緒に配置されている異なるデータセットの組み合わせにとってのソリューションを提供するという点において、最も複雑であるようだ。多くの異なる使用パターンを通して、グローバルな重複の数は、重複排除率とさらなる断片化の量とに対するその影響とともに大きく変化し得る。重複排除範囲を同じストリームの過去のバージョンに限定することは、リストア性能の優先順位が極めて高いシステムの場合には、合理的な選択であるかもしれない。前のセクションで提案したCBRアルゴリズムへの拡張機能のいくつかは、グローバル断片化の側面において役に立つだろう。
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるストレージ装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
重複排除されたブロックデータを記憶するデータ記憶部と、
前記データ記憶部から取得されたブロックデータを一時的に記憶する一時データ記憶部と、
前記データ記憶部が記憶する前記ブロックデータを読み出して前記一時データ記憶部に記憶させ、当該一時データ記憶部から前記ブロックデータを読み出すデータ読出制御部と、
前記一時データ記憶部に記憶されている前記ブロックデータの記憶状態を制御する一時データ制御部と、
を有するとともに、
前記ブロックデータを読み出す順番についての情報である読出順番情報を記憶する読出順番情報記憶部を有し、
前記データ読出制御部は、前記読出順番情報記憶部から取得した前記読出順番情報に基づいて前記データ記憶部から取得した前記ブロックデータを前記一時データ記憶部に記憶させ、
前記一時データ制御部は、前記読出順番情報に基づいて前記一時データ記憶部に対する前記ブロックデータの記憶状態を制御する
ストレージ装置。
付記1に記載のストレージ装置であって、
前記一時データ制御部は、前記読出順番情報に基づいて前記一時データ記憶部が記憶する前記ブロックデータを削除することで前記一時データ記憶部に対する前記ブロックデータの記憶状態の制御を行う
ストレージ装置。
付記1又は2に記載のストレージ装置であって、
前記一時データ制御部は、前記読出順番情報に基づいて、前記データ読出制御部が読み出す対象としているブロックデータの読み出す順番から離れている度合いに応じて前記ブロックデータを削除することで前記一時データ記憶部に対する前記ブロックデータの記憶状態の制御を行う
ストレージ装置。
付記1乃至3のいずれかに記載のストレージ装置であって、
前記データ読出制御部は、前記読出順番情報に基づいて、前記ブロックデータを識別するためのブロックデータ識別子と当該ブロックデータ識別子が示す前記ブロックデータが読み出される順番を示す順番情報とを対応付けたブロックデータ順番情報を前記一時記憶部に記憶させ、
前記一時データ制御部は、前記ブロックデータ順番情報を用いて、前記一時データ記憶部に対する前記ブロックデータの記憶状態の制御を行う
ストレージ装置。
付記4に記載のストレージ装置であって、
前記ブロックデータ順番情報に含まれる前記ブロックデータ識別子は、当該ブロックデータ識別子が示す前記ブロックデータの内容に基づいて算出されるハッシュ値の一部である
ストレージ装置。
付記4又は5に記載のストレージ装置であって、
前記ブロックデータ順番情報に含まれる前記順番情報は、前記読出順番情報に基づいて行われる一連の読み出し処理を所定の大きさで複数のセクションに分割した際の、当該分割したセクションの順番を示す情報である
ストレージ装置。
付記1乃至6のいずれかに記載のストレージ装置であって、
前記データ読出制御部は、読み出す対象の前記ブロックデータを前記一時データ記憶部が記憶していない場合に、前記データ記憶部から前記読み出す対象のブロックデータを含む物理領域で連続する複数の前記ブロックデータを読み出して前記一時データ記憶部に記憶させるよう構成され、
前記一時データ制御部は、前記データ記憶部から取得した複数の前記ブロックデータのうち前記読出順番情報に基づいて読み出される予定がないと判断される前記ブロックデータを削除する
ストレージ装置。
付記1乃至7のいずれかに記載のストレージ装置であって、
書き込み対象データを複数の前記ブロックデータに分割するデータ分割部と、
前記データ分割手段にて分割した前記各ブロックデータが前記データ記憶部に既に記憶されているか否かを調べるブロック検出部と、
前記データ分割手段にて分割した前記各ブロックデータを前記データ記憶部に記憶すると共に、当該データ記憶部に既に記憶されているブロックデータと同一内容の他のブロックデータを前記データ記憶部に記憶する場合には、当該データ記憶部に既に記憶されているブロックデータを前記他のブロックデータとして参照させるデータ書き込み部と、を備え、
前記ブロック検出部は、前記データ分割部にて分割した前記ブロックデータのうち前記書き込み対象データ中の所定範囲を構成する連続する複数のブロックデータと、前記データ記憶部に既に連続して記憶されている所定範囲の複数のブロックデータと、の共通部分の割合を表す共通割合を検出し、
前記データ書き込み部は、前記ブロック検出部にて検出した前記共通割合に応じて、前記データ分割部にて分割した前記ブロックデータを新たに前記データ記憶部に記憶する、
ストレージ装置。
付記8に記載のストレージ装置であって、
前記データ書き込み部は、前記書き込み対象データを分割した際に出現する同一の前記ブロックデータのうちの当該書き込み対象データの中で最初に出現する前記ブロックデータを前記データ記憶部に書き込む対象とする
ストレージ装置。
請求項9に記載のストレージ装置であって、
前記データ書き込み部は、前記ブロックデータが前記書き込み対象データにおける最初の出現であるか否かを、ブルームフィルタを用いて判断する
ストレージ装置。
付記8乃至10のいずれかに記載のストレージ装置であって、
前記データ書き込み部は、前記ブロック検出部にて検出した前記共通割合に応じて新たに前記データ記憶部に記憶する前記ブロックデータである再書き込みブロックデータの容量が、前記書き込み対象データのうち既に前記データ記憶部に記憶されているデータの容量に対して、予め設定された割合以下となるよう設定する、
重複排除されたブロックデータを記憶するデータ記憶部と、前記データ記憶部から取得されたブロックデータを一時的に記憶する一時データ記憶部と、前記ブロックデータを読み出す順番についての情報である読出順番情報を記憶する読出順番情報記憶部と、を有する情報処理装置に、
前記データ記憶部が記憶する前記ブロックデータを読み出して前記一時データ記憶部に記憶させ、当該一時データ記憶部から前記ブロックデータを読み出すデータ読出制御手段と、
前記一時データ記憶部に記憶されている前記ブロックデータの記憶状態を制御する一時データ制御手段と、
を実現させ、
前記データ読出制御手段は、前記読出順番情報記憶部から取得した前記読出順番情報に基づいて前記データ記憶部から取得した前記ブロックデータを前記一時データ記憶部に記憶させ、
前記一時データ制御部は、前記読出順番情報に基づいて前記一時データ記憶部に対する前記ブロックデータの記憶状態を制御する
プログラム。
付記11に記載のプログラムであって、
前記一時データ制御手段は、前記読出順番情報に基づいて前記一時データ記憶部が記憶する前記ブロックデータを削除することで前記一時データ記憶部に対する前記ブロックデータの記憶状態の制御を行う
プログラム。
付記11又は12に記載のプログラムであって、
前記一時データ制御部は、前記読出順番情報に基づいて、前記データ読出制御部が読み出す対象としているブロックデータの順番から読み出す順番が離れている前記ブロックデータを削除することで前記一時データ記憶部に対する前記ブロックデータの記憶状態の制御を行う
プログラム。
ブロックデータを読み出す順番についての情報である読出順番情報を取得し、
取得した前記読出順番情報に基づいて記憶装置から取得した前記ブロックデータを一時記憶装置に記憶させ、
前記読出順番情報に基づいて前記一時記憶装置に対する前記ブロックデータの記憶状態を制御する
情報処理方法。
付記14に記載の情報処理方法であって、
前記読出順番情報に基づいて前記一時データ記憶部が記憶する前記ブロックデータを削除することで前記一時データ記憶部に対する前記ブロックデータの記憶状態の制御を行う
情報処理方法。
付記14又は15に記載の情報処理方法であって、
前記読出順番情報に基づいて、読み出す対象としているブロックデータの順番から読み出す順番が離れている前記ブロックデータを削除することで前記一時データ記憶部に対する前記ブロックデータの記憶状態の制御を行う
情報処理方法。
11 メタデータ記憶部
12 ディスク装置
13 リストア管理部
14 キャッシュメモリ
141 ブロックデータ順番情報
142 データ情報
15 キャッシュメモリ制御部
66 データ分割部
67 ブロック検出部
68 データ書き込み部
2 アクセラレータノード
3 ストレージノード
4 バックアップシステム
5 バックアップ対象装置
70 データセット
71 分割データ
72 冗長データ
8 ストレージ装置
81 データ記憶部
82 一時データ記憶部
83 データ読出制御部
84 読出順番情報記憶部
85 一時データ制御部
Claims (16)
- 重複排除されたブロックデータを記憶するデータ記憶部と、
前記データ記憶部から取得されたブロックデータを一時的に記憶する一時データ記憶部と、
前記データ記憶部が記憶する前記ブロックデータを読み出して前記一時データ記憶部に記憶させ、当該一時データ記憶部から前記ブロックデータを読み出すデータ読出制御部と、
前記一時データ記憶部に記憶されている前記ブロックデータの記憶状態を制御する一時データ制御部と、
を有するとともに、
前記ブロックデータを読み出す順番についての情報である読出順番情報を記憶する読出順番情報記憶部を有し、
前記データ読出制御部は、前記読出順番情報記憶部から取得した前記読出順番情報に基づいて前記データ記憶部から取得した前記ブロックデータを前記一時データ記憶部に記憶させ、
前記一時データ制御部は、前記読出順番情報に基づいて前記一時データ記憶部に対する前記ブロックデータの記憶状態を制御する
ストレージ装置。 - 請求項1に記載のストレージ装置であって、
前記一時データ制御部は、前記読出順番情報に基づいて前記一時データ記憶部が記憶する前記ブロックデータを削除することで前記一時データ記憶部に対する前記ブロックデータの記憶状態の制御を行う
ストレージ装置。 - 請求項1又は2に記載のストレージ装置であって、
前記一時データ制御部は、前記読出順番情報に基づいて、前記データ読出制御部が読み出す対象としているブロックデータの読み出す順番から離れている度合いに応じて前記ブロックデータを削除することで前記一時データ記憶部に対する前記ブロックデータの記憶状態の制御を行う
ストレージ装置。 - 請求項1乃至3のいずれかに記載のストレージ装置であって、
前記データ読出制御部は、前記読出順番情報に基づいて、前記ブロックデータを識別するためのブロックデータ識別子と当該ブロックデータ識別子が示す前記ブロックデータが読み出される順番を示す順番情報とを対応付けたブロックデータ順番情報を前記一時記憶部に記憶させ、
前記一時データ制御部は、前記ブロックデータ順番情報を用いて、前記一時データ記憶部に対する前記ブロックデータの記憶状態の制御を行う
ストレージ装置。 - 請求項4に記載のストレージ装置であって、
前記ブロックデータ順番情報に含まれる前記ブロックデータ識別子は、当該ブロックデータ識別子が示す前記ブロックデータの内容に基づいて算出されるハッシュ値の一部である
ストレージ装置。 - 請求項4又は5に記載のストレージ装置であって、
前記ブロックデータ順番情報に含まれる前記順番情報は、前記読出順番情報に基づいて行われる一連の読み出し処理を所定の大きさで複数のセクションに分割した際の、当該分割したセクションの順番を示す情報である
ストレージ装置。 - 請求項1乃至6のいずれかに記載のストレージ装置であって、
前記データ読出制御部は、読み出す対象の前記ブロックデータを前記一時データ記憶部が記憶していない場合に、前記データ記憶部から前記読み出す対象のブロックデータを含む物理領域で連続する複数の前記ブロックデータを読み出して前記一時データ記憶部に記憶させるよう構成され、
前記一時データ制御部は、前記データ記憶部から取得した複数の前記ブロックデータのうち前記読出順番情報に基づいて読み出される予定がないと判断される前記ブロックデータを削除する
ストレージ装置。 - 請求項1乃至7のいずれかに記載のストレージ装置であって、
書き込み対象データを複数の前記ブロックデータに分割するデータ分割部と、
前記データ分割手段にて分割した前記各ブロックデータが前記データ記憶部に既に記憶されているか否かを調べるブロック検出部と、
前記データ分割手段にて分割した前記各ブロックデータを前記データ記憶部に記憶すると共に、当該データ記憶部に既に記憶されているブロックデータと同一内容の他のブロックデータを前記データ記憶部に記憶する場合には、当該データ記憶部に既に記憶されているブロックデータを前記他のブロックデータとして参照させるデータ書き込み部と、を備え、
前記ブロック検出部は、前記データ分割部にて分割した前記ブロックデータのうち前記書き込み対象データ中の所定範囲を構成する連続する複数のブロックデータと、前記データ記憶部に既に連続して記憶されている所定範囲の複数のブロックデータと、の共通部分の割合を表す共通割合を検出し、
前記データ書き込み部は、前記ブロック検出部にて検出した前記共通割合に応じて、前記データ分割部にて分割した前記ブロックデータを新たに前記データ記憶部に記憶する、
ストレージ装置。 - 請求項8に記載のストレージ装置であって、
前記データ書き込み部は、前記書き込み対象データを分割した際に出現する同一の前記ブロックデータのうちの当該書き込み対象データの中で最初に出現する前記ブロックデータを前記データ記憶部に書き込む対象とする
ストレージ装置。 - 請求項9に記載のストレージ装置であって、
前記データ書き込み部は、前記ブロックデータが前記書き込み対象データにおける最初の出現であるか否かを、ブルームフィルタを用いて判断する
ストレージ装置。 - 重複排除されたブロックデータを記憶するデータ記憶部と、前記データ記憶部から取得されたブロックデータを一時的に記憶する一時データ記憶部と、前記ブロックデータを読み出す順番についての情報である読出順番情報を記憶する読出順番情報記憶部と、を有する情報処理装置に、
前記データ記憶部が記憶する前記ブロックデータを読み出して前記一時データ記憶部に記憶させ、当該一時データ記憶部から前記ブロックデータを読み出すデータ読出制御手段と、
前記一時データ記憶部に記憶されている前記ブロックデータの記憶状態を制御する一時データ制御手段と、
を実現させ、
前記データ読出制御手段は、前記読出順番情報記憶部から取得した前記読出順番情報に基づいて前記データ記憶部から取得した前記ブロックデータを前記一時データ記憶部に記憶させ、
前記一時データ制御部は、前記読出順番情報に基づいて前記一時データ記憶部に対する前記ブロックデータの記憶状態を制御する
プログラム。 - 請求項11に記載のプログラムであって、
前記一時データ制御手段は、前記読出順番情報に基づいて前記一時データ記憶部が記憶する前記ブロックデータを削除することで前記一時データ記憶部に対する前記ブロックデータの記憶状態の制御を行う
プログラム。 - 請求項11又は12に記載のプログラムであって、
前記一時データ制御部は、前記読出順番情報に基づいて、前記データ読出制御部が読み出す対象としているブロックデータの順番から読み出す順番が離れている前記ブロックデータを削除することで前記一時データ記憶部に対する前記ブロックデータの記憶状態の制御を行う
プログラム。 - ブロックデータを読み出す順番についての情報である読出順番情報を取得し、
取得した前記読出順番情報に基づいて記憶装置から取得した前記ブロックデータを一時記憶装置に記憶させ、
前記読出順番情報に基づいて前記一時記憶装置に対する前記ブロックデータの記憶状態を制御する
情報処理方法。 - 請求項14に記載の情報処理方法であって、
前記読出順番情報に基づいて前記一時データ記憶部が記憶する前記ブロックデータを削除することで前記一時データ記憶部に対する前記ブロックデータの記憶状態の制御を行う
情報処理方法。 - 請求項14又は15に記載の情報処理方法であって、
前記読出順番情報に基づいて、読み出す対象としているブロックデータの順番から読み出す順番が離れている前記ブロックデータを削除することで前記一時データ記憶部に対する前記ブロックデータの記憶状態の制御を行う
情報処理方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462018122P | 2014-06-27 | 2014-06-27 | |
US62/018,122 | 2014-06-27 | ||
PCT/JP2015/003139 WO2015198591A1 (en) | 2014-06-27 | 2015-06-23 | Storage device, program, and information processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017521762A true JP2017521762A (ja) | 2017-08-03 |
JP6304406B2 JP6304406B2 (ja) | 2018-04-04 |
Family
ID=54937699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016571760A Active JP6304406B2 (ja) | 2014-06-27 | 2015-06-23 | ストレージ装置、プログラム、情報処理方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10430102B2 (ja) |
EP (1) | EP3161609B1 (ja) |
JP (1) | JP6304406B2 (ja) |
CN (1) | CN106662981B (ja) |
CA (1) | CA2953657A1 (ja) |
WO (1) | WO2015198591A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018142175A (ja) * | 2017-02-28 | 2018-09-13 | 日本電気株式会社 | ストレージ装置、プログラム、情報処理方法 |
JP2021131664A (ja) * | 2020-02-19 | 2021-09-09 | Necソリューションイノベータ株式会社 | 情報格納方法 |
JP2021131665A (ja) * | 2020-02-19 | 2021-09-09 | Necソリューションイノベータ株式会社 | レプリケーション方法 |
Families Citing this family (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10222986B2 (en) | 2015-05-15 | 2019-03-05 | Cisco Technology, Inc. | Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system |
CN106557264B (zh) | 2015-09-25 | 2019-11-08 | 伊姆西公司 | 针对固态硬盘的存储方法及设备 |
JP6733214B2 (ja) * | 2016-02-19 | 2020-07-29 | 日本電気株式会社 | 制御装置、ストレージシステム、制御方法及びプログラム |
EP3312727B1 (en) * | 2016-03-02 | 2018-11-14 | Huawei Technologies Co., Ltd. | Differential data backup method and device |
US10747726B2 (en) | 2016-03-08 | 2020-08-18 | International Business Machines Corporation | Deduplication ratio estimation using an expandable basis set |
US10482062B1 (en) * | 2016-03-30 | 2019-11-19 | Amazon Technologies, Inc. | Independent evictions from datastore accelerator fleet nodes |
JP6819869B2 (ja) * | 2017-02-28 | 2021-01-27 | 日本電気株式会社 | ストレージ装置、プログラム、情報処理方法 |
US10963483B2 (en) * | 2017-04-26 | 2021-03-30 | Oracle International Corporation | Sequential storage volume replication based on comparison of write session identifiers |
CN109213621B (zh) * | 2017-07-07 | 2021-08-31 | 华为技术有限公司 | 一种数据处理方法及数据处理设备 |
US10521400B1 (en) * | 2017-07-31 | 2019-12-31 | EMC IP Holding Company LLC | Data reduction reporting in storage systems |
KR101990329B1 (ko) * | 2017-08-10 | 2019-06-18 | 주식회사 티맥스데이터 | 로그 데이터 분석을 이용한 데이터베이스 복구 속도 향상 기법 및 장치 |
US10678778B1 (en) * | 2017-10-19 | 2020-06-09 | EMC IP Holding Company LLC | Date deduplication acceleration |
US10866963B2 (en) | 2017-12-28 | 2020-12-15 | Dropbox, Inc. | File system authentication |
US10877691B2 (en) * | 2017-12-29 | 2020-12-29 | Intel Corporation | Stream classification based on logical regions |
US11010233B1 (en) | 2018-01-18 | 2021-05-18 | Pure Storage, Inc | Hardware-based system monitoring |
US11144638B1 (en) * | 2018-01-18 | 2021-10-12 | Pure Storage, Inc. | Method for storage system detection and alerting on potential malicious action |
US10970395B1 (en) | 2018-01-18 | 2021-04-06 | Pure Storage, Inc | Security threat monitoring for a storage system |
US10503417B2 (en) | 2018-03-25 | 2019-12-10 | International Business Machines Corporation | Data element validation in consistency groups |
US11405289B2 (en) * | 2018-06-06 | 2022-08-02 | Gigamon Inc. | Distributed packet deduplication |
CN108809996B (zh) * | 2018-06-15 | 2021-02-12 | 青岛大学 | 不同流行度的删重存储数据的完整性审计方法 |
US10860555B2 (en) | 2018-08-27 | 2020-12-08 | Dell Products, L.P. | Method and apparatus for two tier data deduplication using weighted graphs |
CN109298836B (zh) * | 2018-09-04 | 2022-07-08 | 航天信息股份有限公司 | 处理数据的方法、装置和存储介质 |
US10949312B2 (en) | 2018-09-21 | 2021-03-16 | Netapp, Inc. | Logging and update of metadata in a log-structured file system for storage node recovery and restart |
EP3867759A1 (en) * | 2018-10-15 | 2021-08-25 | NetApp, Inc. | Improving available storage space in a system with varying data redundancy schemes |
US11379254B1 (en) * | 2018-11-18 | 2022-07-05 | Pure Storage, Inc. | Dynamic configuration of a cloud-based storage system |
US10776029B2 (en) * | 2018-12-21 | 2020-09-15 | Dell Products, L.P. | System and method for dynamic optimal block size deduplication |
CN110311687B (zh) * | 2019-07-09 | 2022-10-04 | 上海天数智芯半导体有限公司 | 一种基于集成算法的时序数据无损压缩方法 |
US20210034583A1 (en) * | 2019-07-30 | 2021-02-04 | Sony Interactive Entertainment LLC | Remote triggering of coalescing of data storage |
US11307841B2 (en) | 2019-07-30 | 2022-04-19 | Sony Interactive Entertainment LLC | Application patching using variable-sized units |
US11262927B2 (en) | 2019-07-30 | 2022-03-01 | Sony Interactive Entertainment LLC | Update optimization using feedback on probability of change for regions of data |
US11449325B2 (en) | 2019-07-30 | 2022-09-20 | Sony Interactive Entertainment LLC | Data change detection using variable-sized data chunks |
US11372813B2 (en) | 2019-08-27 | 2022-06-28 | Vmware, Inc. | Organize chunk store to preserve locality of hash values and reference counts for deduplication |
US11775484B2 (en) | 2019-08-27 | 2023-10-03 | Vmware, Inc. | Fast algorithm to find file system difference for deduplication |
US11461229B2 (en) | 2019-08-27 | 2022-10-04 | Vmware, Inc. | Efficient garbage collection of variable size chunking deduplication |
US12045204B2 (en) | 2019-08-27 | 2024-07-23 | Vmware, Inc. | Small in-memory cache to speed up chunk store operation for deduplication |
US11669495B2 (en) * | 2019-08-27 | 2023-06-06 | Vmware, Inc. | Probabilistic algorithm to check whether a file is unique for deduplication |
US11449465B2 (en) * | 2019-09-11 | 2022-09-20 | International Business Machines Corporation | Fixed chunk size deduplication with variable-size chunking |
US11615185B2 (en) | 2019-11-22 | 2023-03-28 | Pure Storage, Inc. | Multi-layer security threat detection for a storage system |
US12079356B2 (en) | 2019-11-22 | 2024-09-03 | Pure Storage, Inc. | Measurement interval anomaly detection-based generation of snapshots |
US11720714B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Inter-I/O relationship based detection of a security threat to a storage system |
US12079333B2 (en) | 2019-11-22 | 2024-09-03 | Pure Storage, Inc. | Independent security threat detection and remediation by storage systems in a synchronous replication arrangement |
US11341236B2 (en) | 2019-11-22 | 2022-05-24 | Pure Storage, Inc. | Traffic-based detection of a security threat to a storage system |
US12050689B2 (en) | 2019-11-22 | 2024-07-30 | Pure Storage, Inc. | Host anomaly-based generation of snapshots |
US11651075B2 (en) | 2019-11-22 | 2023-05-16 | Pure Storage, Inc. | Extensible attack monitoring by a storage system |
US11755751B2 (en) | 2019-11-22 | 2023-09-12 | Pure Storage, Inc. | Modify access restrictions in response to a possible attack against data stored by a storage system |
US11657155B2 (en) | 2019-11-22 | 2023-05-23 | Pure Storage, Inc | Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system |
US11720692B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Hardware token based management of recovery datasets for a storage system |
US12079502B2 (en) | 2019-11-22 | 2024-09-03 | Pure Storage, Inc. | Storage element attribute-based determination of a data protection policy for use within a storage system |
US11675898B2 (en) | 2019-11-22 | 2023-06-13 | Pure Storage, Inc. | Recovery dataset management for security threat monitoring |
US11520907B1 (en) | 2019-11-22 | 2022-12-06 | Pure Storage, Inc. | Storage system snapshot retention based on encrypted data |
US11500788B2 (en) | 2019-11-22 | 2022-11-15 | Pure Storage, Inc. | Logical address based authorization of operations with respect to a storage system |
US11645162B2 (en) | 2019-11-22 | 2023-05-09 | Pure Storage, Inc. | Recovery point determination for data restoration in a storage system |
US11941116B2 (en) | 2019-11-22 | 2024-03-26 | Pure Storage, Inc. | Ransomware-based data protection parameter modification |
US12067118B2 (en) | 2019-11-22 | 2024-08-20 | Pure Storage, Inc. | Detection of writing to a non-header portion of a file as an indicator of a possible ransomware attack against a storage system |
US11687418B2 (en) | 2019-11-22 | 2023-06-27 | Pure Storage, Inc. | Automatic generation of recovery plans specific to individual storage elements |
US12050683B2 (en) * | 2019-11-22 | 2024-07-30 | Pure Storage, Inc. | Selective control of a data synchronization setting of a storage system based on a possible ransomware attack against the storage system |
US11625481B2 (en) | 2019-11-22 | 2023-04-11 | Pure Storage, Inc. | Selective throttling of operations potentially related to a security threat to a storage system |
US11429279B2 (en) | 2020-09-16 | 2022-08-30 | Samsung Electronics Co., Ltd. | Automatic data separation and placement for compressed data in a storage device |
CN112540733A (zh) * | 2020-12-23 | 2021-03-23 | 华录光存储研究院(大连)有限公司 | 一种数据管理方法、装置、电子设备及存储介质 |
CN112558885B (zh) * | 2020-12-24 | 2022-11-22 | 展讯半导体(成都)有限公司 | 功能手机的存储器使用方法及相关产品 |
US11899558B2 (en) * | 2021-01-15 | 2024-02-13 | Netflix, Inc. | Systems and methods for optimizing hard drive throughput |
US12032537B2 (en) | 2021-03-29 | 2024-07-09 | Cohesity, Inc. | Deduplicating metadata based on a common sequence of chunk identifiers |
CN113392082A (zh) * | 2021-04-06 | 2021-09-14 | 北京沃东天骏信息技术有限公司 | 一种日志去重方法、装置、电子设备及存储介质 |
US11809281B2 (en) * | 2021-04-20 | 2023-11-07 | EMC IP Holding Company LLC | Metadata management for scaled and high density backup environments |
US11797220B2 (en) | 2021-08-20 | 2023-10-24 | Cohesity, Inc. | Reducing memory usage in storing metadata |
US11947497B2 (en) * | 2021-08-24 | 2024-04-02 | Cohesity, Inc. | Partial in-line deduplication and partial post-processing deduplication of data chunks |
CN115729444A (zh) * | 2021-09-01 | 2023-03-03 | 华为技术有限公司 | 一种数据处理方法及装置 |
CN113791935B (zh) * | 2021-09-06 | 2023-10-24 | 广州宝云信息科技有限公司 | 一种数据备份方法、网络节点及系统 |
US11836053B2 (en) | 2021-09-27 | 2023-12-05 | Hewlett Packard Enterprise Development Lp | Resource allocation for synthetic backups |
US11803515B2 (en) | 2021-09-28 | 2023-10-31 | International Business Machines Corporation | Defragmentation in deduplication storage systems |
US12079161B2 (en) * | 2022-01-25 | 2024-09-03 | Hewlett Packard Enterprise Development Lp | Data index for deduplication storage system |
US12061581B2 (en) | 2022-07-26 | 2024-08-13 | Hewlett Packard Enterprise Development Lp | Matching operation for a deduplication storage system |
CN116126753B (zh) * | 2022-12-28 | 2024-02-02 | 江苏都万电子科技有限公司 | 一种防护存储器及存储方法 |
CN116521969B (zh) * | 2023-02-28 | 2023-12-29 | 华为云计算技术有限公司 | 一种数据检索方法、服务端、系统及相关设备 |
CN118012348B (zh) * | 2024-02-18 | 2024-10-01 | 深圳市高工产研咨询有限公司 | 一种企业数值数据的采集分析方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120017060A1 (en) * | 2009-03-30 | 2012-01-19 | Sri Harshan Kapanipathi | Deduplication of data stored in a copy volume |
JP2012064112A (ja) * | 2010-09-17 | 2012-03-29 | Fujitsu Ltd | ストレージ装置、制御部およびストレージ装置制御方法 |
JP2013541055A (ja) * | 2011-09-16 | 2013-11-07 | 日本電気株式会社 | ストレージ装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6571531B2 (en) * | 2001-04-02 | 2003-06-03 | Illinois Tool Works, Inc. | Strap detector assembly |
US6820180B2 (en) * | 2002-04-04 | 2004-11-16 | International Business Machines Corporation | Apparatus and method of cascading backup logical volume mirrors |
US6804768B2 (en) * | 2002-04-15 | 2004-10-12 | Hewlett-Packard Development Company, L.P. | Programmable microprocessor cache index hashing function |
US7853750B2 (en) * | 2007-01-30 | 2010-12-14 | Netapp, Inc. | Method and an apparatus to store data patterns |
US7962452B2 (en) * | 2007-12-28 | 2011-06-14 | International Business Machines Corporation | Data deduplication by separating data from meta data |
US20090177844A1 (en) * | 2008-01-08 | 2009-07-09 | International Business Machines Corporation | Method of efficiently choosing a cache entry for castout |
US8131924B1 (en) * | 2008-03-19 | 2012-03-06 | Netapp, Inc. | De-duplication of data stored on tape media |
US8775774B2 (en) * | 2011-08-26 | 2014-07-08 | Vmware, Inc. | Management system and methods for object storage system |
EP2754053A4 (en) * | 2011-09-07 | 2015-12-23 | Nec Corp | STORAGE SYSTEM |
US9208820B2 (en) * | 2012-06-29 | 2015-12-08 | International Business Machines Corporation | Optimized data placement for individual file accesses on deduplication-enabled sequential storage systems |
WO2014136183A1 (ja) | 2013-03-04 | 2014-09-12 | 株式会社日立製作所 | ストレージ装置及びデータ管理方法 |
CN103473150B (zh) * | 2013-08-28 | 2016-08-31 | 华中科技大学 | 一种用于数据去重系统中的碎片重写方法 |
CN103559106B (zh) * | 2013-10-14 | 2016-03-02 | 华为技术有限公司 | 一种数据的备份方法、装置及系统 |
CN103810297B (zh) * | 2014-03-07 | 2017-02-01 | 华为技术有限公司 | 基于重删技术的写方法、读方法、写装置和读装置 |
-
2015
- 2015-06-23 CN CN201580041132.1A patent/CN106662981B/zh active Active
- 2015-06-23 EP EP15812492.5A patent/EP3161609B1/en active Active
- 2015-06-23 WO PCT/JP2015/003139 patent/WO2015198591A1/en active Application Filing
- 2015-06-23 US US15/319,105 patent/US10430102B2/en active Active
- 2015-06-23 JP JP2016571760A patent/JP6304406B2/ja active Active
- 2015-06-23 CA CA2953657A patent/CA2953657A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120017060A1 (en) * | 2009-03-30 | 2012-01-19 | Sri Harshan Kapanipathi | Deduplication of data stored in a copy volume |
JP2012064112A (ja) * | 2010-09-17 | 2012-03-29 | Fujitsu Ltd | ストレージ装置、制御部およびストレージ装置制御方法 |
JP2013541055A (ja) * | 2011-09-16 | 2013-11-07 | 日本電気株式会社 | ストレージ装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018142175A (ja) * | 2017-02-28 | 2018-09-13 | 日本電気株式会社 | ストレージ装置、プログラム、情報処理方法 |
JP2021131664A (ja) * | 2020-02-19 | 2021-09-09 | Necソリューションイノベータ株式会社 | 情報格納方法 |
JP2021131665A (ja) * | 2020-02-19 | 2021-09-09 | Necソリューションイノベータ株式会社 | レプリケーション方法 |
JP7440167B2 (ja) | 2020-02-19 | 2024-02-28 | Necソリューションイノベータ株式会社 | 情報格納方法 |
JP7477140B2 (ja) | 2020-02-19 | 2024-05-01 | Necソリューションイノベータ株式会社 | レプリケーション方法 |
Also Published As
Publication number | Publication date |
---|---|
CA2953657A1 (en) | 2015-12-30 |
EP3161609B1 (en) | 2022-08-03 |
CN106662981B (zh) | 2021-01-26 |
CN106662981A (zh) | 2017-05-10 |
US20170131934A1 (en) | 2017-05-11 |
EP3161609A4 (en) | 2018-02-28 |
WO2015198591A1 (en) | 2015-12-30 |
US10430102B2 (en) | 2019-10-01 |
EP3161609A1 (en) | 2017-05-03 |
JP6304406B2 (ja) | 2018-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6304406B2 (ja) | ストレージ装置、プログラム、情報処理方法 | |
US9671974B2 (en) | Storage system and deduplication control method therefor | |
US8639669B1 (en) | Method and apparatus for determining optimal chunk sizes of a deduplicated storage system | |
US10176190B2 (en) | Data integrity and loss resistance in high performance and high capacity storage deduplication | |
CN103635900B (zh) | 基于时间的数据分割 | |
Ng et al. | Revdedup: A reverse deduplication storage system optimized for reads to latest backups | |
US8712963B1 (en) | Method and apparatus for content-aware resizing of data chunks for replication | |
JP6124902B2 (ja) | ストレージシステムにおける可変長符号化 | |
US8135907B2 (en) | Method and system for managing wear-level aware file systems | |
US7792882B2 (en) | Method and system for block allocation for hybrid drives | |
CA2810991C (en) | Storage system | |
US7584229B2 (en) | Method and system for priority-based allocation in a storage pool | |
US9235535B1 (en) | Method and apparatus for reducing overheads of primary storage by transferring modified data in an out-of-order manner | |
CN103562914B (zh) | 节约资源型扩展文件系统 | |
WO2015015550A1 (ja) | 計算機システム及び制御方法 | |
US10176183B1 (en) | Method and apparatus for reducing overheads of primary storage while transferring modified data | |
Zou et al. | The dilemma between deduplication and locality: Can both be achieved? | |
US9189408B1 (en) | System and method of offline annotation of future accesses for improving performance of backup storage system | |
US10733105B1 (en) | Method for pipelined read optimization to improve performance of reading data from data cache and storage units | |
CN111124258B (zh) | 全闪存阵列的数据存储方法、装置、设备及可读存储介质 | |
US10908818B1 (en) | Accessing deduplicated data from write-evict units in solid-state memory cache | |
US20190056878A1 (en) | Storage control apparatus and computer-readable recording medium storing program therefor | |
US10565120B1 (en) | Method for efficient write path cache load to improve storage efficiency | |
JP2021092915A (ja) | ストレージシステム及びボリューム複製方法 | |
JP2021076969A (ja) | 情報処理装置および情報処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171024 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171204 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171226 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180125 |
|
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: 20180206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180219 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6304406 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |