JP6360215B2 - 仮想ハードディスクイメージを圧縮する方法 - Google Patents

仮想ハードディスクイメージを圧縮する方法 Download PDF

Info

Publication number
JP6360215B2
JP6360215B2 JP2017022345A JP2017022345A JP6360215B2 JP 6360215 B2 JP6360215 B2 JP 6360215B2 JP 2017022345 A JP2017022345 A JP 2017022345A JP 2017022345 A JP2017022345 A JP 2017022345A JP 6360215 B2 JP6360215 B2 JP 6360215B2
Authority
JP
Japan
Prior art keywords
sector
data block
garbage
data
bitmap
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017022345A
Other languages
English (en)
Other versions
JP2017091583A (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2017091583A publication Critical patent/JP2017091583A/ja
Application granted granted Critical
Publication of JP6360215B2 publication Critical patent/JP6360215B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file system
    • 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/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0643Management of files
    • 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/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1004Defragmentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

関連出願の相互参照
本出願は、参照によりその全体が本明細書に組み込まれる、2011年8月10日に出願された、「仮想ハードディスクイメージを圧縮する方法および装置」という名称の、中国特許出願第201110228838.2号に対する外国優先権を主張するものである。
本開示は、コンピュータのファイル処理技術に関連し、より具体的には、仮想ハードディスクイメージファイルを圧縮する方法および装置に関する。
イメージファイルは、ある程度zip形式のファイルに類似する。イメージファイルは、ある特定のフォーマットに従い、単一のファイル内に一組のファイルを含むことができ、これはオペレーションシステムやゲーム等のテスト版に使用され得る。イメージファイルの重要な特性の1つは、これが特定のソフトウエアによって認識されることができ、直接ディスクに焼くことができるということである。イメージファイルは、システムファイル、起動ファイル、パーティション情報等を含む、より多くの情報を含むことができるように拡張され得る。したがって、イメージファイルはパーティションのすべての情報またはハードディスクのすべての情報でさえも含み得る。
仮想ハードディスク(VHD)とは、イメージファイル形式の仮想ハードディスクである。VHDフォーマットを持つファイルは、仮想マシンのデータをフォーマットし、格納するための仮想ハードディスクとして使用され得る。
VHDファイルには、容量固定ハードディスクイメージファイル、容量可変ハードディスクイメージファイルおよび差分ハードディスクイメージファイルを含む3つの型があり得る。容量固定ハードディスクイメージファイルのサイズは、作成されるときに固定される。ファイルシステムのフォーマット、データの書き込み、またはデータの削除等の、容量固定ハードディスクイメージファイルに対する操作は、容量固定ハードディスクイメージファイルのサイズを変化させないことがある。容量可変ハードディスクイメージファイルおよび差分ハードディスクイメージファイルのサイズは、その中にデータが書き込まれると、増加し得る。しかし、容量可変ハードディスクイメージファイルおよび差分ハードディスクイメージファイルのサイズは、その中のデータが削除されても縮小しない。
例えば、2GBの記憶領域を持つ容量可変ハードディスクイメージファイルが作成されると、その初期のサイズは数10KBしかないことがある。容量可変ハードディスクイメージファイルの中にデータが書き込まれると、サイズは約2GBまで増加し得る。しかし、容量可変ハードディスクイメージファイル内のデータを削除しても、そのサイズは縮小しない。
かかる特性に基づき、容量可変ハードディスクイメージファイルまたは差分ハードディスクイメージファイルの中に一度データが書き込まれると、そのファイルサイズは増加する。後にデータが削除されても、そのファイルサイズは圧縮されない。したがって、こうした削除されたデータは依然としてVHDの記憶領域を占有し、これによって記憶領域を浪費する。
本概要は、下記の詳細な説明においてさらに記載される、さまざまな概念を簡略化された形で紹介するために提供される。本概要は、特許請求される発明の主題のすべての重要な特徴または必須の特徴を特定することを意図しておらず、また特許請求される発明の主題の範囲を決定するための補助として単独で使用されることも意図していない。例えば、「技術」という用語は、上記および本開示の全体に及ぶ文脈により認められるごとく、デバイス(複数可)、システム(複数可)、方法(複数可)、および/またはコンピュータ可読の命令を示し得る。本開示は、仮想ハードディスクイメージを圧縮する方法および装置を開示する。
本開示は、仮想ハードディスクイメージファイルを圧縮する方法を開示する。1つのファイルは、1つまたは複数のデータブロックと、それぞれのデータブロックの情報を記録するブロック割り当て表(BAT)とを含む。このファイル内で1つまたは複数のガベージデータブロックが検索され、BAT内のガベージデータブロックに対応する1つまたは複数の記録が修正される。ガベージデータブロックとは、有効データを格納していないデータブロックである。このガベージデータブロックの後にある有効データブロックは、ガベージデータブロックの位置に移動され、有効データブロックが移動された後、BAT内の有効データブロックの対応する記録が修正される。データブロックの移動が完了した後、ファイルのサイズが縮小する。
例えば、それぞれのデータブロックは、1つまたは複数のセクタと、それぞれのセクタの情報を記録するビットマップとを含み得る。ファイル内のガベージデータブロックの検索に先立って、データブロック内の1つまたは複数のガベージセクタが検索され、ビットマップ内の1つまたは複数のガベージセクタの対応する記録が修正される。
例えば、ファイル内のガベージデータブロックの検索は、ファイルのデータブロックのビットマップの検索と、すべての対応するセクタの記録がガベージセクタであることを示すビットマップを持つデータブロックはガベージデータブロックであるという判断とを含み得る。
例えば、データブロック内のガベージセクタの検索は、ファイルのデータブロック内のビットマップの検索を含み得る。ビットマップ内のセクタに対応する記録が、セクタ内にデータが格納されていることを示した場合、ファイルの種類に関する判断がなされる。ファイルが容量可変ハードディスクイメージファイルである場合、セクタ内のすべてのデータが0で表されるかどうかのさらなる判断がなされる。判断結果が正である場合、セクタはガベージセクタであると判断される。ファイルが差分ハードディスクイメージファイルである場合、セクタ内に格納されたデータが、親イメージファイルに同じセクタ位置を持つ、対応するセクタ内に格納されたデータと同じかどうかのさらなる判断がなされる。これらが同じである場合、セクタはガベージセクタであると判断される。
別の例では、データブロック内のガベージセクタの検索は、ファイルが容量可変ハードディスクイメージファイルであるという判断がなされたとき、ある処理を行うことを含み得る。ファイルのデータブロックのソースビットマップと、対応するセクタが有効データを格納しているかどうかを示すブロックビットマップとが取得される。ソースビットマップとブロックビットマップとの間ですべてのビットが比較される。ソースビットマップ内の対応するセクタの記録が、このセクタがデータを格納していることを示し、一方でブロックビットマップ内のセクタの対応する記録が、このセクタがテータを格納していないことを示した場合、このセクタはガベージセクタであると判断される。
別の例では、データブロック内のガベージセクタの検索は、ファイルが差分ハードディスクイメージファイルであるという判断がなされたとき、ある処理を行うことを含み得る。ファイルのデータブロックのソースビットマップと、対応するセクタが有効データを格納しているかどうかを示すブロックビットマップと、親イメージファイル内の同じデータブロックの親ビットマップとが取得される。ソースビットマップと、ブロックビットマップと、親ビットマップとにあるすべてのビットが比較される。ソースビットマップ内の対応するセクタの記録が、このセクタがデータを格納していることを示し、一方で親ビットマップ内のセクタの対応する記録が、このセクタがデータを格納していないことを示し、かつブロックビットマップ内のセクタの対応する記録が、このセクタがデータを格納していないことを示した場合、このセクタはガベージセクタであると判断される。
例えば、データブロックが移動を終了した後、ファイルは圧縮される。データブロックが移動された後、1つまたは複数のガベージデータブロックに相当するサイズを持つ未使用領域がファイルの最後に形成される。この未使用領域は削除され、圧縮されたサイズを持つファイルが得られる。
本開示はまた、仮想ハードディスクイメージファイルを圧縮するための装置を開示する。ファイルは、データブロックと、それぞれのデータブロックの情報を記録するBATとを含む。本装置は、データブロック検索モジュールと、データ移動モジュールと、ファイル圧縮モジュールとを含み得る。データブロック検索モジュールは、ファイル内の1つまたは複数のガベージデータブロックを検索し、BAT内のガベージデータブロックに対応する1つまたは複数の記録を修正する。ガベージデータブロックとは、有効データを格納していないデータブロックである。データ移動モジュールは、ガベージデータブロックの後にある有効データブロックを、ガベージデータブロックの位置に移動させ、有効データブロックが移動された後に、BAT内の有効データブロックの対応する記録を修正する。データブロックの移動が完了した後に、ファイル圧縮モジュールはファイルのサイズを圧縮する。
例えば、それぞれのデータブロックは、1つまたは複数のセクタと、それぞれのセクタの情報を記録するビットマップとを含み得る。本装置は、データブロック内の1つまたは複数のガベージセクタを検索し、ビットマップ内の1つまたは複数のガベージセクタの対応する記録を再利用する、ガベージセクタ検索モジュールをさらに含み得る。
別の例では、ガベージデータブロック検索モジュールは、ファイルのデータブロックのビットマップを検索し、すべての対応するセクタの記録がガベージセクタであることを示すビットマップを持つデータブロックを、ガベージデータブロックであると判断し得る。
さらに別の例では、ガベージセクタ検索モジュールは、ビットマップ検索サブモジュールと、判断サブモジュールとを含み得る。ビットマップ検索サブモジュールは、ファイルのデータブロック内のビットマップを検索する。ビットマップ内のセクタに対応する記録が、セクタ内に格納されているデータがあることを示した場合には、判断サブモジュールがトリガされる。判断サブモジュールは、ファイルの種類を判断する。ファイルが容量可変ハードディスクイメージファイルである場合、判断サブモジュールは、セクタ内のすべてのデータが0と表されるかどうかを判断する。判断結果が正である場合、このセクタはガベージセクタであると判断される。ファイルが差分ハードディスクイメージファイルである場合、判断サブモジュールは、セクタ内に格納されているデータが、親イメージファイルに同じセクタ位置を持つ、対応するセクタ内に格納されているデータと同じであるかどうかを判断する。これらが同じである場合、このセクタはガベージセクタであると判断される。
別の例では、ファイルが容量可変ハードディスクイメージファイルである場合、ガベージセクタ検索モジュールは、第1の取得サブモジュールと、第1の比較サブモジュールとを含み得る。第1の取得サブモジュールは、ファイルのデータブロックのソースビットマップと、対応するセクタが有効データを格納しているかどうかを示すブロックビットマップとを取得する。第1の比較サブモジュールは、ソースビットマップとブロックビットマップとの間ですべてのビットを比較する。ソースビットマップ内の対応するセクタの記録が、セクタがデータを格納しており、一方でブロックビットマップ内のセクタの対応する記録が、セクタがデータを格納していないことを示した場合、このセクタはガベージセクタであると判断される。
別の例では、ファイルが差分ハードディスクイメージファイルである場合、ガベージセクタ検索モジュールは、第2の取得サブモジュールと、第2の比較サブモジュールとを含み得る。第2の取得サブモジュールは、ファイルのデータブロックのソースビットマップと、対応するセクタが有効なデータを格納しているかどうかを示すブロックビットマップと、親イメージファイル内の同じデータブロックの親ビットマップとを取得する。第2の比較サブモジュールは、ソースビットマップと、ブロックビットマップと、親ビットマップとの間でそれぞれのビットを比較する。ソースビットマップ内の対応するセクタの記録が、セクタがデータを格納していることを示し、一方で親イメージファイルの親ビットマップ内のセクタの対応する記録が、セクタがデータを格納していないことを示し、ブロックビットマップ内のセクタの対応する記録が、セクタがデータを格納していないことを示した場合、このセクタはガベージセクタであると判断される。
従来技術と比較すると、本開示に記載の本発明の技術は、少なくとも以下の効果を有する。
第1に、本発明の技術は、仮想ハードディスクイメージファイル内のガベージデータブロックを検索し、ガベージデータブロックの後ろの有効データブロックをガベージデータブロックの位置へと移動し、したがってファイルの最後に未使用領域を形成する。本発明の技術は、次に、不要な領域を切り取るかまたは削除し、したがってガベージデータブロックが整理され、ファイルのサイズが圧縮される。本発明の技術は、容量可変ディスクイメージファイルまたは差分ディスクイメージファイルのサイズを、それらの中のいくつかのデータが削除された後に縮小することを可能にし、これによってファイルの記憶領域を確保する。
第2に、本発明の技術は、データブロック内のどのセクタがガベージセクタであるかを迅速に特定し、すべてがガベージセクタであるセクタを持つデータブロックをガベージデータブロックであると判断し得る、ガベージセクタを迅速に演算する方法を提供する。
本開示によるいかなる製品も、上述するすべての効果を有する必要はない。
本開示の実施形態をより良く説明するため、本実施形態において使用される図面の簡単な説明を記載する。以下の図面は、本開示のいくつかの実施形態にのみ関連することは明白である。当業者であれば、創意工夫を必要とすることなく本開示の図面により別の図面を取得することが可能である。
本開示に従う、VHDイメージファイルフォーマットの一例を示す図である。 本開示に従う、ブロック割り当て表(BAT)の一例を示す図である。 本開示に従う、仮想ハードディスクイメージファイルを圧縮する方法の一例を示すフローチャートである。 本開示に従う、仮想ハードディスクイメージファイルを圧縮する別の方法の例を示すフローチャートである。 図2に示される実施形態の例に従う、ガベージデータブロックの検索後のBATの例を示す図である。 図5に示される実施形態の例に従う、データが移動された後のBATの例を示す図である。 図6に示される実施形態の例に従う、ファイルが圧縮された後のBATの例を示す図である。 本開示に従う、仮想ハードディスクイメージファイルを圧縮する装置の一例である。
以下に、図面を参照した本発明の技術の詳細な説明を記載する。本明細書に記載される実施形態は実施形態の例であり、本開示の範囲を制限するために使用されないものとする。
本開示に開示される技術は、仮想ハードディスクイメージファイル内のガベージデータを整理し、ファイルのサイズを縮小する方法を提供する。イメージファイル内のいくつかのデータが削除された後、本発明の技術は、ファイルのサイズを縮小させることができ、それにより、ファイルの記憶領域を確保する。以下に、仮想ハードディスク(VHD)フォーマット内のイメージファイルの例を用いた本開示の方法の例を記載する。
図1は、本開示に従う、VHDイメージファイルフォーマット100の一例を示す図である。VHDイメージファイル100の例は、フッタ102、ヘッダ104、BAT(BAT)106、および1つまたは複数のデータブロック108(0)、108(1)、…、108(m)を含み、ここで、mは任意の整数であってもよい。
フッタ102は、ヘッダ104の開始セクタ、ファイルサイズ、イメージの種類(容量可変イメージまたは差分イメージ等)等の情報を記録する。フッタ102は、ファイル100の最後に存在する。ファイル100の中に新しいデータが書き込まれたときは、後にファイル100の最後へと移動される。フッタ102は、ファイル100の重要な情報を含むため、フッタコピー110もまたファイル100の最初に保存され得る。
ヘッダ104は、BAT106の開始セクタ、BAT106の項目数(これはデータブロックの最大許容数である)、データブロック108のサイズ等の情報を記録する。また、ファイルが差分イメージファイルである場合、ヘッダ104はまた、その親イメージまたは親イメージファイルの位置情報を記録する。
BAT[0]112(0)およびBAT[1]112(1)等の、BAT106内のそれぞれのBAT項目112は、各々のデータブロック108の開始セクタに対応する。例えば、BAT[0]112(0)はデータブロック0 108(0)に対応し、BAT[1]112(1)はデータブロック1 108(1)に対応する。BAT内の記録が、対応するデータブロック108を持たない場合、記録は割り付けられていないデータブロックを表す0xFFFFFFFFを含み得る。
それぞれのデータブロック108は、ビットマップと、1つまたは複数のデータフィールド(またはセクタ)を含み得る。容量可変VHDファイル内において、ビットマップ内のビットが0である場合、そのビットに対応するセクタがデータを格納していないことを示す。ビットマップ内のビットが1である場合、そのビットに対応するセクタがデータを格納していることを示す。しかし、セクタ内のデータが削除されると、このビットは反転せず、依然として1を示す。言い換えると、1つのセクタ内のデータがデータブロック108からファイル100へと割り当てられたとき、データが修正されなければ、対応するビットマップ内のビットは0であり、データが修正されれば、対応するビットマップ内のビットは1である。
差分VHDファイル内において、ビットが1である場合、これは差分VHDファイルの対応するセクタが有効データを格納していることを表す。ビットが0である場合、これは差分VHDファイルの対応するセクタが有効データを格納しておらず、データが親イメージファイルの対応するセクタから読み出される必要があることを表す。親イメージファイルもまた差分イメージファイルである場合、データは、差分でない先祖イメージファイル(これは容量固定または容量可変である)が見つかるまで、親イメージファイルの親イメージファイルから読み出される必要がある。
イメージファイル100内のデータブロックは、同じサイズを有してもよく、これはヘッダ104内に記録される。
図1に示すイメージファイルフォーマット100に基づき、容量可変イメージファイルまたは差分イメージファイルが作成されると、新規に作成されたイメージファイルは、フッタ、ヘッダ、BAT等を含むセクションのみを含み得る。データブロックは割り当てられない。データがイメージファイルの中に書き込まれると、データに1つまたは複数のデータブロックが割り当てられてこのデータを保存し、BAT内の対応する記録が更新されてデータブロックの開始セクタが記録される。
格納されているデータがVHDイメージファイルから読み出されると、読み出される論理セクタ番号(これは、VHDイメージファイルに相対する物理セクタ番号の代わりに、データを格納している論理セクタ番号に対応する)がVHDイメージファイルに相対する物理セクタ番号に変換される。変換方法の一例を以下に示す。
BlockNumber=LogicalSectorNumber/SectorsPerBlock、
ここで、記号“/”は除算演算子を表す。例えば、5/3=1である。
SectorInBlock=LogicalSectorNumber%SectorsPerBlock、
ここで、記号“%”はモジュロ演算子を表す。例えば、5%3=2である。
PhysicalSectorLocation=BAT[BlockNumber]+BlockBitmapSectorCount+SectorInBlock、
ここで、
LogicalSectorNumberは論理セクタ番号を表し、
BlockNumberはデータブロック番号を表し、
SectorsPerBlockはデータブロック内のセクタの数を表し、
SectorInBlockは置かれたデータブロック内のセクタの数を表し、
PhysicalSectorLocationは、VHDイメージファイルに相対する物理セクタ番号を表し、
BlockBitmapSectorCountは、ビットマップ内のセクタの数を表す。
仮想マシンのユーザの観点からすると、VHDイメージファイルはディスクパーティションのような働きをし、その上にファイルシステムを配備することができる。書き込まれることが必要なデータが存在する場合、異なるファイルシステム用の異なるデータ書き込みストラテジに基づき、データはファイルシステムの異なる物理的位置に書き込まれ得る。一例において、データはファイルシステムの開始位置からの順序通りに書き込まれず、後に1つずつとなる(すなわち、開始位置に相対して、小さいセクタ番号から始まって大きいセクタ番号へ)。したがって、VHDファイルにおいて、データブロックの順序は、その開始セクション番号としばしば異なる。
図1の例において、例えば、それぞれのデータブロック108のサイズは、2MBであり得る。仮想マシンのユーザが、3MB目の位置に数KBのデータを書き込むことを意図すると、ファイルシステムはまずVHDファイルにデータブロック0 108(0)ではなくデータブロック1 108(1)を割り当て得る。
図2は、本開示に従う、BAT202の例を図示する。図2の例において、VHDファイル200は16個のデータブロックを有し得る。BAT202は、16データブロック(これはDBと短縮される)204の数を記録し、それらはDB0 204(0)、DB1 204(1)、DB2 204(2)、DB3 204(3)、DB4 204(4)、DB5 204(5)、DB6 204(6)、DB7 204(7)、DB8 204(8)、DB9 204(9)、DB10 204(10)、DB11 204(11)、DB12 204(12)、DB13 204(13)、DB14 204(14)、DB15 204(15)である。BAT202はまた、それぞれのデータブロック204の開始セクタを記録する。
各々のデータブロックの開始セクタ番号は、VHDファイル内の各々のデータブロックの相対位置である。偏差206は、ファイル200内の各々のデータブロックの相対位置を示す。
各々のデータブロックの開始セクタ番号が0xFFFFFFFFであるとき、これは各々のデータブロックがまだ割り付けられていないことを示す。図2の例において、DB0 204(0)の開始セクタ番号は15であり、これは偏差206における値15に対応する。DB1 204(1)、DB2 204(2)、DB3 204(3)、DB9 204(9)、DB10 204(10)およびDB11 204(11)の開始セクタ番号は、0xFFFFFFFFである。DB0 204(0)の開始セクタ番号は15であり、これは偏差206における値15に対応する。DB4 204(4)の開始セクタ番号は8223であり、これは偏差206における値8223に対応する。DB5 204(5)の開始セクタ番号は12327であり、これは偏差206における値12327に対応する。DB6 204(6)の開始セクタ番号は16431であり、これは偏差206における値16431に対応する。DB7 204(7)の開始セクタ番号は32847であり、これは偏差206における値32847に対応する。DB8 204(8)の開始セクタ番号は36951であり、これは偏差206における値36951に対応する。DB12 204(12)の開始セクタ番号は20535であり、これは偏差206における値20535に対応する。DB13 204(13)の開始セクタ番号は24639であり、これは偏差206における値24639に対応する。DB14 204(14)の開始セクタ番号は28743であり、これは偏差206における値28743に対応する。DB15 204(15)の開始セクタ番号は4119であり、これは偏差206における値4119に対応する。図2に示すように、それぞれのデータブロック204の開始セクタ番号は、DB0 204(0)からDB15 204(15)への順序通りに、小さい数から大きい数へと並んではいない。
上記に記載した説明に基づき、以下はVHDファイルからデータが削除されたとしても、従来技術がVHDファイルを圧縮できないことを示す分析である。
従来技術において、データが書き込まれるべきセクタに対応するデータブロックがまだ割り付けられていない場合(すなわち、BAT内の対応する項目記録は0xFFFFFFFFである)、新規のデータブロックが割り付けられ(BAT内の対応する項目記録は、新規に割り付けられたデータブロックの新規の開始セクション番号)、データが書き込まれるべきセクタに対応するビットマップ内のビットが1に修正される。しかし、いくつかのデータが削除された後、データブロック内のデータが有効でなくても有効であっても、ビットマップ内のデータブロックのビットは反転せず、依然として1に留まり、これはデータブロックが割り付けられていることを示す。したがって、従来技術はデータブロックによって占拠されている記憶領域を回収することができず、これによって記憶領域が浪費されることをもたらす。
上記に記載した説明に基づき、VHDファイルの記憶領域を確保するためには、VHDファイルは圧縮されねばならない。ファイルが圧縮される前に、データファイルの後の位置に格納されているデータは、ガベージデータが位置する場所に移動され、したがってファイルの最後に未使用領域が形成される。未使用領域は次に切り取られるか削除される。
したがって、本開示は、ファイル内のガベージデータを効果的に排除し、ファイルを圧縮するための、仮想ハードディスクイメージファイルを圧縮する方法を提供する。
図3は、本開示に従う、仮想ハードディスクイメージファイルを圧縮する方法の一例のフローチャートを示す。302で、ファイル内のガベージデータブロックが検索され、BAT内のガベージデータブロックの対応する記録が修正される。ガベージデータブロックとは、有効データを格納していないデータブロックである。
ファイル内のデータブロックは、主にガベージデータブロックとして、または有効データブロックとして分類される。有効データブロックとは、有効データを格納しているデータブロックである。ガベージデータブロックとは、中のデータがすべて削除されたデータブロックを指す。すなわち、ガベージデータブロック内のデータは有効でない。
ガベージデータブロックが発見された後、BAT内のガベージデータブロックの開始セクション番号の値が0xFFFFFFFFに設定される。すなわち、このデータブロックに対応する論理データブロックは、データを格納していない。
304で、ガベージデータブロックの後の位置を有する有効データブロックがガベージデータブロックの位置に移動され、移動後のBAT内の有効データブロックの対応する記録が修正される。
ファイルの物理的記憶領域内において、後の位置とは、ガベージデータブロックの位置がガベージデータブロックの位置へ移動された後のファイル内の位置を有する有効データブロックを指す。BAT内の有効データブロックの開始セクション番号は、ガベージデータブロックの開始セクション番号に修正される。
移動とは、複製処理を指す。ガベージデータブロックの後の位置を有する有効データブロック内のデータは、ガベージデータブロックの位置にコピーされる。
306で、データブロックが移動を終了した後、ファイルが圧縮される。この移動の目的は、ファイルの最後に不要な領域が形成される程度に、有効データブロックをファイルの前方に移動させることである。不要な領域は次に切り取られるか削除される。したがって、ファイルのサイズは圧縮される。
当業者が図3に示す実施形態の例をより良く理解することができるように、図4に本開示に従う、仮想ハードディスクイメージファイルを圧縮する別の方法の例のフローチャートを示す。図4はやはり例としてVHDファイルを使用する。
402で、ファイル内のガベージデータセクタが検索される。例えば、それぞれのデータブロック内のそれぞれのセクタに関して、データブロックのビットマップが検索される。ビットマップ内のセクタに対応する記録が、セクタマップ内のセクタに対応するビットが1であるというように、セクタ内にデータが格納されていることを示した場合、データは対応するセクタ内に格納されているか、データはすでにセクタから削除されている。1つまたは複数のさらなる判断がなされる必要がある。
ファイルが容量可変ハードディスクイメージファイルである場合、セクタ内に格納されたデータがすべて0であるかどうか判断される。セクタ内に格納されたデータがすべて0である場合、セクタはガベージセクタであると判断される。
ファイルが差分ハードディスクイメージファイルである場合、セクタ内に格納されたデータが、親イメージファイル内の同じセクタ位置に格納されたデータと同じであるかどうかが判断される。セクタ内に格納されたデータが、親イメージファイル内の同じセクタ位置に格納されたデータと同じである場合、セクタはガベージセクタであると判断される。
404で、ビットマップ内のガベージセクタの対応する記録が修正される。ガベージセクタが発見された後、ビットマップ内のガベージセクタの対応するビットが0にクリアされ、これはセクタ内にデータが格納されていないことを表す。
406で、ファイル内のガベージデータブロックが検索される。例えば、ファイル内のデータブロックのビットマップが検索される。ビットマップ内のデータブロックのすべてのセクタの記録がガベージセクタであると示されたとき、データブロックはガベージデータブロックであると判断される。しかし、それぞれのデータブロックについて、データブロックが使用される場合(BATの対応する記録が0xFFFFFFFFでないように)は、上記に記載の操作の後、データブロックのビットマップはすべて0を示し、もはや有効データを格納していないため、データブロックもまたガベージデータブロックであると判断される。
しかし、データブロックのビットマップ内において、セクタに対応するいくつかのビットが0であり、セクタに対応するいくつかのビットが1である場合、データブロックはガベージデータブロックではなく、依然として有効データブロックである。
408で、BAT内のガベージデータブロックの対応する記録が修正される。BATにおいて、ガベージデータブロックの開始セクタの記録が0xFFFFFFFFに設定される。例えば、図2の例において、3つのデータブロックDB5 204(5)、DB13 204(13)およびDB14 204(14)の開始セクタ番号はそれぞれ、12327、24630、および28743である。上記に記載の3つの操作の後、この3つのデータブロックがガベージデータブロックであると判断される。BAT内のこれらの対応する記録、すなわちDB5 204(5)、DB13 204(13)、およびDB14 204(14)は、図5に示されるように0xFFFFFFFFに設定される。図5は、図2に示される実施形態の例に従う、ガベージデータブロックの検索後のBAT202の例を示すダイアグラムである。
図5の例において、開始セクタ番号が新規に0xFFFFFFFFに設定された3つのデータブロックは、これらの3つのブロックがいまやガベージデータブロックであることを示すため、黒色で塗られている。
410で、データが移動される。そのビットマップおよびデータを含む、ガベージデータブロック(ターゲット位置)の後にある有効データブロック(ソース位置)は、ガベージデータブロックの位置にコピーされる。移動後のBAT内の有効データブロックの開始セクタは更新される。
例えば、図5において、開始セクタ番号36951を持つ有効データブロックDB8 204(8)は、開始セクタ番号12327を持つデータブロックに移動され得る。対応するBAT[8]の開始セクタ番号は、12327に変えられる。開始セクタ32847を持つ有効データブロックDB7 204(7)は、開始セクタ24639を持つデータブロックに移動され得る。対応するBAT[7]の開始セクタ番号は、24639に変えられる。最後に、図6に示されるファイルが形成される。図6は、図5に示される実施形態の例に従う、データの移動後のBAT202の例を示すダイアグラムである。
したがって、ファイル200の最後で、開始セクタ28743を持つデータブロックは依然としてガベージデータブロックであり、一方で開始セクタが32847および36951のデータブロック内のデータが、開始セクタがそれぞれ24639および12327に変えられたデータブロックにコピーされる。したがって、開始セクタが32847および36951のデータブロックはもはやファイル200に確保しておく必要がない。開始番号28743、32847、および36951を持つ合計3つのデータブロックは、未使用領域をそれぞれ形成する。
ファイルを利便的に圧縮するため、ファイルの最後に未使用領域を形成することを目的とした他の移動技術が存在し得る。
412で、ファイルが圧縮される。例えば、データブロックの移動が完了した後、つまりは406で発見されたガベージデータブロックがいまや有効データを格納しているか、または有効データブロックがガベージデータブロックの位置にそれ以上コピーされ得ないとき、未使用領域がファイル200の最後に形成される。未使用領域が切り取られるかまたは削除された後、圧縮されたファイルが得られる。例えば、圧縮されたサイズの最大は、発見されたガベージデータブロックのサイズであり得る。図7に示すとおり、ファイルの最後の3つのブロックは切り取られるかまたは削除される。
本発明の技術は、ガベージデータを整理し、VHDフォーマットの容量可変ハードディスクイメージファイルまたは差分ハードディスクイメージファイルの記憶領域を、その中のデータのいくつかが削除された後に圧縮し、それによってファイルの記憶領域を確保する。
ガベージデータブロックを検索する処理において、上記に記載した方法を使用して、セクタがガベージセクタであるかどうかを判断するための比較のために、現在のイメージファイル(ファイルが容量可変イメージファイルである場合)および/または親イメージファイル(差分イメージファイルである場合)からビットマップを読み出すことに加え、本発明の技術はまた、ガベージセクタを迅速に演算する方法を提供する。この方法は、データブロックからガベージセクタを迅速に特定し、そのすべてのセクタがガベージセクタであるデータブロックをガベージデータブロックとして扱うことができ得る。
ガベージセクタを迅速に演算する方法の例は、やはりVHDイメージファイルの例を使用する。
差分ハードディスクイメージファイルに関して、それぞれのデータブロックについて、3つのビットマップが取得されることがあり、これらはsrc_bmpと表され得るソースビットマップと、prt_bmpと表され得る親ビットマップと、blk_bmpと表され得るブロックビットマップである。
src_bmpは、VHDイメージファイル内のデータブロックのソースビットマップを表す。prt_bmpは、先祖イメージのビットマップを表す。例えば、親イメージファイル内のデータブロックの親ビットマップが読み出される。親イメージファイル内のデータブロックの親ビットマップ内のビットが1である場合、ビット1はである。そうでない場合、最終の先祖のイメージファイルまでデータブロックのビットマップが親イメージファイルの親イメージファイルから読み出される。最終の先祖のイメージファイル内のビットマップ内のビットが0である場合、ビットは0である。
blk_bmpは、ブロックビットマップを表す。例えば、仮想マシンのユーザは、VHDイメージファイル内に構築されたファイルシステムを読み出し、反射的に、セクタが有効な情報を格納しているかどうかを表すビットマップを取得することができる。
ファイルシステムは一般的に、どのセクタが有効な情報を格納しているか、またどのセクタが有効な情報を格納していないかを特定するために、種々の方法でデータのビットマップ情報を記録する。例えば、Linux(登録商標)においてはext2/3/4が頻繁に使用される。ビットマップブロックは、どのブロックが有効データを格納しているか記録する。別の例では、Windows(登録商標)においてはNew Technology File System(NTFS)がしばしば使用される。その$Bitmapファイルは、ブロックのビットマップ情報を記録する。1つのブロックは、数個のセクタを含み得る。
ファイルシステムのビットマップ情報が取得された後、VHDファイル内のどのセクタが有効な情報を格納しているか特定するために、論理セクタ番号と物理セクタ番号との間で上記に記載の変換方法が使用されることができ、これによってblk_bmpが取得される。
次に、3つのビットマップが互いに比較され、終点ビットマップが生成され、これはdst_bmpと表され得る。dst_mapは、ビットマップ内のガベージセクタに対応するビットが0にクリアされた後(すなわち、404での操作の完了後)に、VHD内のデータブロックのビットマップとして使用され得る。それぞれのビットについて、以下の方法の例が使用されることができ、これは次の擬似コードで表される。
if src_bmp=0,then dst_bmp=0;
if src_bmp=1,then
if prt_bmp=0 and blk_bmp=1,then dst_bmp=1;
/*これは、親イメージファイルに相対して、新規データが書き込まれることを表す。*/
if prt_bmp=1 and blk_bmp=0,then dst_bmp=1;
/*これは、親イメージファイルに相対してデータが削除されることを表す。*/
if prt_bmp=0 and blk_bmp=0,then dst_bmp=0;
/*これは、親イメージファイルに相対して新規データが書き込まれ、かかる新規データが後に削除されることを表す。*/
if prt_bmp=1 and blk_bmp=1
/*これは、親イメージファイルに相対してデータの変更が発生することを表す。データは、ソースイメージファイルおよび親イメージファイルから読み出され、比較される。これらが同じであった場合、dst_bmpは0に設定される。そうでない場合、dst_bmpは1に設定される。*/
上記に記載の方法に基づき、ソースビットマップ内のセクタに対応する記録が、このセクタがデータを格納している(src_bmp=1)ことを示し、親ビットマップ内のセクタに対応する記録が、このセクタがデータを格納していない(prt_bmp=0)ことを示し、ブロックビットマップ内のセクタに対応する記録が、このセクタがデータを格納していない(blk_bmp=0)ことを示した場合、このセクタはガベージセクタであると判断される。
加えて、src_bmp=1、prt_bmp=1、およびblk_bmp=1である場合、データはソースイメージおよび親イメージから抽出され、比較される。これらが同じである場合、dst_bmpは0に設定される。このセクタもまたガベージセクタであると判断される。
容量可変ハードディスクイメージの処理は比較的単純である。例えば、最初に、それぞれのデータブロックについて、ソースビットマップとブロックビットマップとが取得される。親ビットマップを取得する必要はない。
次に、ソースビットマップとブロックビットマップとが比較され、404の後の上記に記載の操作において、終点ビットマップすなわちdst_bmpがセクタビットマップとして取得される。それぞれのビットについて、以下の方法の例が使用されることができ、これは次の擬似コードで表される。
if src_bmp=0,then dst_bmp=0;
if src_bmp=1,then
if blk_bmp=1,then dst_bmp=1;
/*これは、新規データが書き込まれることを表す。*/
if blk_bmp=0,then dst_bmp=0;
/*これは、新規データが書き込まれることを表す。しかし、新規に書き込まれたデータは後に削除される。*/
上記に記載したとおり、ソースビットマップ内のセクタに対応する記録が、セクタがデータを格納している(src_bmp=1)ことを示し、ブロックビットマップ内のセクタに対応する記録が、セクタがデータを格納していない(blk_bmp=0)ことを示した場合、このセクタはガベージセクタであると判断される。
上記に記載された実施形態の例は、例としてVHDフォーマットのイメージファイルを使用して説明される。本発明の技術はまた、上記に記載した原理と同じかまたは類似の、本明細書に記載されない他の種類のフォーマットにの仮想イメージファイルにおいても使用され得る。
簡単にするため、上記の方法の実施形態の例は、一連の操作の組み合わせとして説明される。当業者は、本開示が本明細書に記載された操作の順序に制限されないことを理解するであろう。本明細書に記載された操作は、本開示に従って、他の順序となる場合、または一斉に起こる場合がある。当業者はまた、本明細書に記載された実施形態が説明を目的とするものであり、本開示に従いすべての操作が必要なわけではないことを理解するであろう。
上記に記載の実施形態の例の説明に基づき、本開示はまた、上記に記載の例を実装するための、仮想ハードディスクイメージファイルを圧縮する対応する装置を開示する。
図8は、本開示に従う、仮想ハードディスクイメージファイルを圧縮する装置の一例を示す図である。
装置800は、1つまたは複数のプロセッサ802と、メモリ804とを含むがこれに限定されない。メモリ804は、ランダムアクセスメモリ(RAM)等の揮発性メモリおよび/または読み出し専用メモリ(ROM)またはフラッシュRAM等の不揮発性メモリの形式のコンピュータ記憶媒体を含み得る。メモリ704は、コンピュータ記憶媒体の一例である。
コンピュータ記憶媒体には、コンピュータで実行可能な命令、データ構造、プログラムモジュール、またはその他のデータ等の情報を格納するためのあらゆる方法および技術において実装される、揮発性および不揮発性の、取り外し可能および取り外し不可能の媒体を含む。コンピュータ記憶媒体の例には、相変化メモリ(PRAM)、静的ランダムアクセスメモリ(SRAM)、動的ランダムアクセスメモリ(DRAM)、他の種類のランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能なプログラム可能読み出し専用メモリ(EEPROM)、フラッシュメモリまたは他のメモリ技術、コンパクトディスク読み出し専用メモリ(CD−ROM)、デジタル汎用ディスク(DVD)または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、またはコンピュータデバイスからのアクセス用の情報を格納するために使用されることができるあらゆる非伝送媒体を含むがこれに限定されない。本明細書に定義されるとおり、コンピュータ記憶媒体には、変調データ信号および搬送波等の一時的な媒体は含まない。
メモリ804は、その中にプログラムユニットまたはモジュールおよびプログラムデータを格納し得る。一実施形態において、モジュールはガベージデータブロック検索モジュール806と、データ移動モジュール808と、ファイル圧縮モジュール810とを含み得る。
ガベージデータブロック検索モジュール806は、ファイル内の1つまたは複数のガベージデータブロックを検索し、BAT内のガベージデータブロックに対応する1つまたは複数の記録を修正する。ガベージデータブロックとは、有効データを格納していないデータブロックである。データ移動モジュール808は、ガベージデータブロックの後にある有効データブロックを、ガベージデータブロックの位置に移動させ、有効データブロックが移動された後に、BAT内の有効データブロックの対応する記録を修正する。ファイル圧縮モジュール810は、データブロックの移動が完了した後に、ファイルを圧縮する。
例えば、それぞれのデータブロックは、1つまたは複数のセクタと、それぞれのセクタの情報を記録するビットマップとを含み得る。本装置は、データブロック内の1つまたは複数のガベージセクタを検索し、ビットマップ内の1つまたは複数のガベージセクタの対応する記録を修正する、ガベージセクタ検索モジュール812とをさらに含み得る。
例えば、ガベージセクタ検索モジュール812に基づき、ガベージデータブロック検索モジュール806は、ファイルのデータブロックのビットマップを検索し、データブロックであって、そのビットマップがすべての対応するセクタの記録がガベージセクタであることを示すデータブロックがガベージデータブロックであると判断し得る。
例えば、ガベージセクタ検索モジュール812は、ガベージセクタを検索するための2つの例示的な方法を使用してもよい。例示的な方法の1つにおいて、ガベージセクタ検索モジュール812は、ソースイメージ(イメージファイルが容量可変イメージファイルである場合)または親イメージファイル(イメージファイルが差分イメージファイルである場合)からビットマップを読み出し、それらを比較してセクタがガベージセクタであるかどうか判断し得る。ガベージセクタ検索モジュール812は、ビットマップ検索サブモジュールと判断サブモジュールとを含み得る。ビットマップ検索サブモジュールは、ファイルのデータブロックのビットマップを検索する。ビットマップ内のセクタに対応する記録が、セクタ内にデータが格納されていることを示した場合、判断サブモジュールがトリガされる。判断サブモジュールは、追加の判断操作を行ってもよい。判断サブモジュールは、ファイルの種類を判断する。ファイルが容量可変ハードディスクイメージファイルである場合、判断サブモジュールは、セクタ内のすべてのデータが0を表すかどうか判断する。判断結果が正である場合、セクタはガベージセクタであると判断される。ファイルが差分ハードディスクイメージファイルである場合、判断サブモジュールは、セクタ内に格納されたデータが、親イメージファイルに同じセクタ位置を持つ、対応するセクタ内に格納されたデータと同じかどうかを判断する。これらが同じである場合、セクタはガベージセクタであると判断される。
ガベージセクタを高速検索するための別の例示的な方法として、ガベージセクタ検索モジュール812は、ファイルの種類に基いて、異なるサブモジュールを含み得る。ファイルが容量可変ハードディスクイメージファイルである場合、ガベージセクタ検索モジュール812は、第1の取得サブモジュールと、第1の比較サブモジュールとを含み得る。第1の取得サブモジュールは、ファイルのデータブロックのソースビットマップと、対応するセクタが有効データを格納しているかどうかを示すブロックビットマップとを取得する。第1の比較サブモジュールは、ソースビットマップとブロックビットマップとの間で、すべてのビットを比較する。ソースビットマップ内の対応するセクタの記録が、このセクタがデータと格納していることを示し、一方でブロックビットマップ内のセクタの対応する記録が、セクタがデータを格納していないことを示した場合、このセクタはガベージセクタであると判断される。
ファイルが差分ハードディスクイメージファイルである場合、ガベージセクタ検索モジュール812は、第2の取得サブモジュールと第2の比較サブモジュールとを含み得る。第2の取得サブモジュールは、ファイルのデータブロックのソースビットマップと、対応するセクタが有効なデータを格納しているかどうかを示すブロックビットマップと、先祖イメージファイル内の同じデータブロックの親ビットマップとを取得する。第2の比較サブモジュールは、ソースビットマップと、ブロックビットマップと、親ビットマップとの間でそれぞれのビットを比較する。ソースビットマップ内の対応するセクタの記録が、セクタがデータを格納していることを示し、一方で親ビットマップ内のセクタの対応する記録が、セクタがデータを格納していないことを示し、ブロックビットマップ内のセクタの対応する記録が、セクタがデータを格納していないことを示した場合、セクタはガベージセクタであると判断される。
本開示に記載の仮想ハードディスクイメージファイルを圧縮する装置800は、VHDフォーマットの容量可変ハードディスクイメージファイルまたは差分ハードディスクイメージファイルからデータが削除された後に、イメージファイルのサイズを縮小させることができ、それにより、ファイルの記憶領域を確保する。
上記に記載された仮想ハードディスクイメージファイルを圧縮するための装置の実施形態の例は、原理が本明細書の方法の実施形態の例に記載されたものに類似するため、比較的単純に説明される。関連のある説明は、図1〜図7に示す実施形態の例を参照してもよい。
本開示は、本開示の実施形態の方法、デバイス(システム)およびコンピュータプログラムのフローチャートおよび/またはブロックダイアグラムを参照することによって説明される。それぞれのフローおよび/またはブロック、ならびにフローチャートおよび/またはブロックダイアグラムのフローおよび/またはブロックは、コンピュータプログラム命令によって実装されることが可能であることが理解されるものとする。これらのコンピュータプログラム命令は、フローチャートの1つまたは複数のフローおよび/またはブロックダイアグラムの1つまたは複数のブロックを実装するためのデバイスが、コンピュータまたは他のプログラム可能なデータプロセッサによって操作される命令を通じて生成されることができるように、汎用コンピュータ、特殊コンピュータ、埋め込みプロセッサまたは他のプログラム可能なデータプロセッサに提供され、マシンを生成することができる。
これらのコンピュータプログラム命令は、コンピュータまたは他のプログラム可能なデータプロセッサに一定の作動をするように命令することができる、他のコンピュータ可読の記憶装置にも格納されることができ、その結果、コンピュータ可読の記憶装置に格納された命令により、命令デバイスであって、フローチャートの1つまたは複数のフローおよび/またはブロックダイアグラムの1つまたは複数のブロックに定められた機能を実装する命令デバイスを含む製品が生成される。
これらのコンピュータプログラム命令は、コンピュータまたは他のプログラム可能なデータプロセッサが一連の操作ステップを操作させて、コンピュータによって実装されるプロセスを生成することができるように、コンピュータまたは他のプログラム可能なデータプロセッサ内にロードされることができる。その結果、コンピュータまたは他のプログラム可能なデータプロセッサ内で操作される命令は、フローチャートの1つまたは複数のフローおよび/またはブロックダイアグラムの1つまたは複数のブロックにおいて定められた機能を実装するためのステップを提供することができる。
本実施形態は、単に本開示の説明に過ぎず、本開示の範囲を制限することを意図するものではない。本開示の原理を逸脱することなく、ある特定の修正および改善がなされることが可能であり、本開示の保護下にあるということが当技術分野の当業者に理解されるものとする。

Claims (9)

  1. コンピュータによって実行可能な命令で構成される、1つまたは複数のプロセッサによって実施される方法であって、
    1つまたは複数のデータブロックと、それぞれのデータブロックの情報を記録するブロック割り当て表(BAT)と、仮想ハードディスクフォーマットに従い、単一のファイル内に一組のファイルとを含むイメージファイル内において、有効データを格納していないデータブロックであるガベージデータブロックを前記1つまたは複数のデータブロックの間で検索することと、
    前記ガベージデータブロックの検索に先立って、前記ガベージデータブロック内のガベージセクタである特定のセクタを検索し、前記ガベージデータブロックと関連するビットマップである特定の前記ビットマップ内の前記ガベージセクタの記録を修正することと、
    前記BAT内の前記ガベージデータブロックの記録を修正することと、
    前記ガベージデータブロックの後に位置する位置から有効データブロックを前記ガベージデータブロックの位置に移動することと、
    前記移動の後に、前記BAT内の前記有効データブロックの記録を修正することと、
    前記移動の後に、前記イメージファイルのサイズを圧縮することであって、
    前記移動の後に前記イメージファイルの前記サイズを前記圧縮することは、
    前記移動の後に、前記イメージファイルの最後に未使用領域を形成することと、
    前記イメージファイルから前記未使用領域を切り取ることと、
    サイズが縮小したイメージファイルを取得することと、
    を含み、前記検索されたガベージデータブロックが前記有効データを格納するか、または前記有効データブロックが前記ガベージデータブロックの位置にコピーされることができない場合に前記未使用領域が形成される、圧縮することと、
    を含み、前記1つまたは複数のデータブロックのそれぞれは、1つまたは複数のセクタと、それぞれのセクタの情報を記録するビットマップと
    を含むことを特徴とする方法。
  2. 前記ガベージデータブロック内の前記ガベージセクタである前記特定のセクタの前記検索は、
    前記ガベージデータブロックと関連する前記ビットマップを検索することと、
    前記ガベージデータブロックと関連する前記ビットマップ内にある前記特定のセクタに対応する記録が、前記特定のセクタがデータを格納していることを示すという判断に応じて、前記イメージファイルの種類を判断することと
    を含み、前記イメージファイルの前記種類が容量可変ハードディスクイメージファイルであると判断された場合、前記特定のセクタの前記検索は、
    前記特定のセクタ内に格納されたデータが有効データでない場合、前記特定のビットマップ内にある前記特定のセクタは前記ガベージセクタであると判断することをさらに含み、前記イメージファイルの前記種類が差分ハードディスクイメージファイルであると判断された場合、前記特定のセクタの前記検索は、
    前記特定のセクタ内に格納されたデータが、親イメージファイル内に同じセクタ位置を持つ対応するセクタ内に格納されたデータと同じである場合、前記特定のビットマップ内にある前記特定のセクタは前記ガベージセクタであると判断することと
    をさらに含むことを特徴とする請求項1に記載の方法。
  3. 前記特定のセクタ内に格納されたデータが有効データでない場合、前記特定のセクタは前記ガベージセクタであると前記判断することは、前記特定のセクタ内に格納されたデータはすべて0であると判断することを含むことを特徴とする請求項2に記載の方法。
  4. 前記ガベージデータブロックの中の前記ガベージセクタである前記特定のセクタを前記検索することは、
    前記イメージファイルが容量可変ハードディスクイメージファイルであると判断することと、
    検索されるデータブロックのソースビットマップと、対応する特定のセクタが有効データを格納しているかどうかを示す、検索される前記データブロックのブロックビットマップとを取得することと、
    前記ソースビットマップと前記ブロックビットマップとの間でそれぞれのビットを比較することと
    を含み、前記ソースビットマップ内の前記特定のセクタの記録が、前記特定のセクタが有効データを格納していることを示し、かつ前記ブロックビットマップ内の前記対応する特定のセクタの記録が、前記対応する特定のセクタが有効データを格納していないことを示す場合、前記特定のセクタの前記検索は、
    前記特定のセクタは前記ガベージセクタであると判断することと
    をさらに含むことを特徴とする請求項1に記載の方法。
  5. 前記ガベージデータブロック内の前記ガベージセクタを前記検索することは、
    前記イメージファイルが差分ハードディスクイメージファイルであると判断することと、
    検索されるデータブロックのソースビットマップと、第1の対応する特定のセクタが有効データを格納しているかどうかを示す、検索される前記データブロックのブロックビットマップと、親イメージファイル内の検索される前記データブロックの親ビットマップとを取得することと、
    前記ソースビットマップと、前記ブロックビットマップと、前記親ビットマップとの間でそれぞれのビットを比較することと
    を含み、前記ソースビットマップ内の前記特定のセクタの記録が、前記特定のセクタが有効データを格納していることを示し、前記ブロックビットマップ内の前記第1の対応する特定のセクタの記録が、前記第1の対応する特定のセクタが有効データを格納していないことを示し、かつ前記親ビットマップ内の第2の対応する特定のセクタの記録が、前記第2の対応する特定のセクタが有効データを格納していないことを示す場合、前記特定のセクタの前記検索は、
    前記特定のセクタは前記ガベージセクタであると判断することと
    をさらに含むことを特徴とする請求項1に記載の方法。
  6. 前記親ビットマップ内の前記第2の対応する特定のセクタの前記記録が、前記有効データを格納していないかどうかを判断することをさらに含み、
    前記親イメージファイルから最終の先祖イメージファイルまでの親ビットマップを読み出すことを含み、
    検索される前記データブロックの任意の親ビットマップ内の前記第2の対応する特定のセクタに対応するビットが、前記第2の対応する特定のセクタが前記有効データを格納していると示した場合、前記親ビットマップ内の前記第2の対応する特定のセクタの前記記録が、前記有効データを格納していないかどうかを前記判断することは、
    前記親イメージファイル内の前記第2の対応する特定のセクタが前記有効データを格納していると判断すること
    をさらに含み、
    検索される前記データブロックの任意の親ビットマップ内の前記第2の対応する特定のセクタに対応するビットが、前記第2の対応する特定のセクタが前記有効データを格納していないと示した場合、前記親ビットマップ内の前記第2の対応する特定のセクタの前記記録が、前記有効データを格納していないかどうかを前記判断することは、
    前記親イメージファイル内の前記第2の対応する特定のセクタは前記有効データを格納していないと判断すること
    をさらに含むことを特徴とする請求項5に記載の方法。
  7. 前記ガベージデータブロックの後に位置する前記有効データブロックは、前記イメージファイルの物理的記憶領域内において、前記ガベージデータブロックの位置の後ろの位置を持つ特定の有効データブロックであることを特徴とする請求項1に記載の方法。
  8. 前記ガベージデータブロックの後に位置する位置から前記有効データブロックを前記移動することは、前記有効データブロック内のデータを前記ガベージデータブロックの前記位置にコピーすることを含むことを特徴とする請求項1に記載の方法。
  9. プロセッサによって実行可能な、コンピュータによって実行可能な命令を含むメモリであって、前記命令は、前記プロセッサによって実行されるとき、前記プロセッサに、
    イメージファイルであって、1つまたは複数のデータブロックと、それぞれのデータブロックの情報を記録するブロック割り当て表(BAT)と、仮想ハードディスクフォーマットに従い、単一のファイル内に一組のファイルとを含む、前記イメージファイル内において、ガベージデータブロックであって、有効データを格納していないデータブロックである、前記ガベージデータブロックを前記1つまたは複数のデータブロックの間で検索することと、
    前記ガベージデータブロックの検索に先立って、前記ガベージデータブロック内のガベージセクタである特定のセクタを検索し、前記ガベージデータブロックと関連するビットマップである特定の前記ビットマップ内の前記ガベージセクタの記録を修正することと、
    前記BAT内の前記ガベージデータブロックの記録を修正することと、
    前記ガベージデータブロックの後に位置する位置から有効データブロックを前記ガベージデータブロックの位置に移動することと、
    前記移動の後に、前記BAT内の前記有効データブロックの記録を修正することと、
    前記移動の後に、前記イメージファイルのサイズを圧縮することであって、
    前記移動の後に前記イメージファイルの前記サイズを前記圧縮することは、
    前記移動の後に、前記イメージファイルの最後に未使用領域を形成することと、
    前記イメージファイルから前記未使用領域を切り取ることと、
    サイズが縮小したイメージファイルを取得することと、
    を含み、前記検索されたガベージデータブロックが前記有効データを格納するか、または前記有効データブロックが前記ガベージデータブロックの位置にコピーされることができない場合に前記未使用領域が形成される、圧縮することと、
    を含む操作を実行させ、前記1つまたは複数のデータブロックのそれぞれは、1つまたは複数のセクタと、それぞれのセクタの情報を記録するビットマップと
    を含むことを特徴とするメモリ。
JP2017022345A 2011-08-10 2017-02-09 仮想ハードディスクイメージを圧縮する方法 Active JP6360215B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201110228838.2 2011-08-10
CN201110228838.2A CN102929884B (zh) 2011-08-10 2011-08-10 一种收缩虚拟磁盘镜像文件的方法及装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014525169A Division JP6092868B2 (ja) 2011-08-10 2012-08-10 仮想ハードディスクイメージを圧縮する方法

Publications (2)

Publication Number Publication Date
JP2017091583A JP2017091583A (ja) 2017-05-25
JP6360215B2 true JP6360215B2 (ja) 2018-07-18

Family

ID=46690746

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014525169A Active JP6092868B2 (ja) 2011-08-10 2012-08-10 仮想ハードディスクイメージを圧縮する方法
JP2017022345A Active JP6360215B2 (ja) 2011-08-10 2017-02-09 仮想ハードディスクイメージを圧縮する方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2014525169A Active JP6092868B2 (ja) 2011-08-10 2012-08-10 仮想ハードディスクイメージを圧縮する方法

Country Status (7)

Country Link
US (2) US9501225B2 (ja)
EP (1) EP2742417A1 (ja)
JP (2) JP6092868B2 (ja)
CN (1) CN102929884B (ja)
HK (1) HK1176438A1 (ja)
TW (1) TWI540432B (ja)
WO (1) WO2013023133A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102081167B1 (ko) * 2012-11-13 2020-02-26 삼성전자주식회사 메모리 장치를 이용하는 방법 및 그 장치
US10133500B2 (en) 2013-03-06 2018-11-20 Ab Initio Technology Llc Managing operations on stored data units
US9875054B2 (en) * 2013-03-06 2018-01-23 Ab Initio Technology Llc Managing operations on stored data units
US9959070B2 (en) 2013-03-06 2018-05-01 Ab Initio Technology Llc Managing operations on stored data units
US9633027B1 (en) 2013-03-14 2017-04-25 EMC IP Holding Company LLC High speed backup
CN103389946B (zh) * 2013-07-16 2016-08-10 中国科学院计算技术研究所 去碎片化方法及***
CN105593829B (zh) * 2013-09-27 2019-03-22 慧与发展有限责任合伙企业 从原始映像备份中排除文件***对象的方法、***及介质
CN104156175B (zh) * 2014-08-06 2017-05-24 厦门天锐科技股份有限公司 一种虚拟磁盘容量平滑拓展方法
CN105630401A (zh) * 2014-11-04 2016-06-01 中兴通讯股份有限公司 数据的保存方法、装置及读取方法、装置
US10067945B2 (en) * 2015-02-24 2018-09-04 Quest Software Inc. File and move data to shrink datafiles
CN106708831B (zh) * 2015-07-31 2020-12-01 炬芯科技股份有限公司 一种fat镜像文件处理的方法及装置
US10108631B2 (en) * 2016-01-06 2018-10-23 Acronis International Gmbh System and method of removing unused regions of a data file
CN107918521A (zh) * 2016-10-09 2018-04-17 深圳市深信服电子科技有限公司 虚拟磁盘的缩减方法及装置
CN108604231B (zh) * 2016-12-13 2022-01-14 华为技术有限公司 镜像处理方法以及计算设备
CN106598503B (zh) * 2016-12-23 2019-09-24 郑州云海信息技术有限公司 一种云平台下优化虚拟磁盘占用存储空间的方法和装置
CN107391544B (zh) * 2017-05-24 2020-06-30 阿里巴巴集团控股有限公司 列式存储数据的处理方法、装置、设备及计算机储存介质
JP6696052B2 (ja) * 2017-06-20 2020-05-20 株式会社日立製作所 ストレージ装置及び記憶領域管理方法
CN107332904A (zh) * 2017-06-29 2017-11-07 郑州云海信息技术有限公司 一种跨存储***的数据迁移方法、装置及***
CN108021630B (zh) * 2017-11-21 2021-03-30 深圳市雷鸟网络传媒有限公司 垃圾文件清理方法、智能终端及计算机可读存储介质
CN109597571B (zh) * 2018-11-15 2022-02-15 金蝶软件(中国)有限公司 数据存储方法、数据读取方法、装置和计算机设备
JP2021131772A (ja) * 2020-02-20 2021-09-09 富士通株式会社 情報処理装置及びディスクイメージ管理プログラム
CN112988077B (zh) * 2021-04-27 2021-07-23 云宏信息科技股份有限公司 一种虚拟磁盘复制方法和计算机可读存储介质
CN115509624B (zh) * 2022-10-25 2023-04-28 中南大学 面向流式加载的镜像融合方法及***

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4280055B2 (ja) * 2001-11-28 2009-06-17 株式会社Access メモリ制御方法および装置
JP4438457B2 (ja) 2003-05-28 2010-03-24 株式会社日立製作所 記憶領域割当方法、システム及び仮想化装置
US20050027938A1 (en) 2003-07-29 2005-02-03 Xiotech Corporation Method, apparatus and program storage device for dynamically resizing mirrored virtual disks in a RAID storage system
US7284109B1 (en) 2003-11-21 2007-10-16 Symantec Corporation Partition creation
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US7296180B1 (en) * 2004-06-30 2007-11-13 Sun Microsystems, Inc. Method for recovery of data
US7873782B2 (en) * 2004-11-05 2011-01-18 Data Robotics, Inc. Filesystem-aware block storage system, apparatus, and method
CN1277213C (zh) * 2004-12-31 2006-09-27 大唐微电子技术有限公司 一种闪存文件***管理方法
US7647468B2 (en) * 2005-12-09 2010-01-12 Microsoft Corporation Compaction, de-fragmentation, and merging of virtual storage device of virtual machine
US7409523B2 (en) * 2005-12-16 2008-08-05 Microsoft Corporation Online storage volume shrink
CN100485681C (zh) * 2006-03-23 2009-05-06 北京握奇数据***有限公司 智能卡存储***及该***中文件创建管理的方法
US7779056B2 (en) * 2006-09-15 2010-08-17 Sandisk Corporation Managing a pool of update memory blocks based on each block's activity and data order
EP2137629A4 (en) * 2007-03-20 2010-12-29 Sanggyu Lee MOBILE VIRTUAL MACHINE IMAGE
CN100543748C (zh) * 2007-04-25 2009-09-23 北京中星微电子有限公司 一种利用文件分配表进行文件寻道的方法及***
US8195866B2 (en) * 2007-04-26 2012-06-05 Vmware, Inc. Adjusting available persistent storage during execution in a virtual computer system
JP4995024B2 (ja) * 2007-10-02 2012-08-08 キヤノン株式会社 パターン認識方法、パターン認識装置及びプログラム
US8464241B2 (en) * 2008-05-20 2013-06-11 Citrix Systems, Inc. Methods and systems for patching multiple disk images derived from a common base disk image
US8812809B2 (en) * 2008-06-10 2014-08-19 Oracle America, Inc. Method and apparatus for allocating memory for immutable data on a computing device
JP4508279B2 (ja) * 2008-07-17 2010-07-21 ソニー株式会社 画像処理装置、画像処理方法、及び、プログラム
US8495316B2 (en) 2008-08-25 2013-07-23 Symantec Operating Corporation Efficient management of archival images of virtual machines having incremental snapshots
CN101661486B (zh) * 2008-08-28 2012-11-07 国际商业机器公司 对包含虚拟机的宿主机硬盘进行碎片整理的方法和***
US8171201B1 (en) 2008-10-07 2012-05-01 Vizioncore, Inc. Systems and methods for improving virtual machine performance
US8452930B2 (en) * 2009-03-27 2013-05-28 Hitachi, Ltd. Methods and apparatus for backup and restore of thin provisioning volume
US8176294B2 (en) 2009-04-06 2012-05-08 Red Hat Israel, Ltd. Reducing storage expansion of a virtual machine operating system
US8805788B2 (en) * 2009-05-04 2014-08-12 Moka5, Inc. Transactional virtual disk with differential snapshots
EP2441004B8 (en) * 2009-06-12 2020-02-19 Violin Systems LLC Memory system having persistent garbage collection
US8402218B2 (en) * 2009-12-15 2013-03-19 Microsoft Corporation Efficient garbage collection and exception handling in a hardware accelerated transactional memory system
US9372712B2 (en) * 2009-12-17 2016-06-21 International Business Machines Corporation Optimizing virtual storage size in a virtual computer system based on information related to virtual machines, user inputs and/or configuration parameters
JP5427011B2 (ja) * 2009-12-17 2014-02-26 株式会社日立製作所 仮想ハードディスクの管理サーバおよび管理方法、管理プログラム
US8627000B2 (en) * 2010-02-08 2014-01-07 Microsoft Corporation Virtual disk manipulation operations
US20120005677A1 (en) * 2010-06-30 2012-01-05 Yuji Fujiwara Computing Machine and Method for Controlling Computing Machine
US20120054743A1 (en) * 2010-08-31 2012-03-01 Yuji Fujiwara Information Processing Apparatus and Client Management Method
US8417912B2 (en) 2010-09-03 2013-04-09 International Business Machines Corporation Management of low-paging space conditions in an operating system
US8874859B2 (en) 2010-12-22 2014-10-28 Vmware, Inc. Guest file system introspection and defragmentable virtual disk format for space efficiency
US8904136B2 (en) * 2011-03-15 2014-12-02 Symantec Corporation Optimized shrinking of virtual disks
US8819383B1 (en) * 2012-02-17 2014-08-26 Netapp, Inc. Non-disruptive realignment of virtual data
US8856078B2 (en) * 2012-02-21 2014-10-07 Citrix Systems, Inc. Dynamic time reversal of a tree of images of a virtual hard disk
US20130219069A1 (en) * 2012-02-22 2013-08-22 Computer Associates Think, Inc. System and method for managing virtual hard disks in cloud environments
US20140033188A1 (en) * 2012-07-26 2014-01-30 Microsoft Corporation System updates from cloud blob storage using vhd differentials

Also Published As

Publication number Publication date
US20160335018A1 (en) 2016-11-17
CN102929884B (zh) 2016-05-04
JP2014527231A (ja) 2014-10-09
US9501225B2 (en) 2016-11-22
JP6092868B2 (ja) 2017-03-08
JP2017091583A (ja) 2017-05-25
HK1176438A1 (zh) 2013-07-26
TWI540432B (zh) 2016-07-01
TW201308083A (zh) 2013-02-16
CN102929884A (zh) 2013-02-13
EP2742417A1 (en) 2014-06-18
WO2013023133A8 (en) 2013-12-19
US10331349B2 (en) 2019-06-25
US20130041927A1 (en) 2013-02-14
WO2013023133A1 (en) 2013-02-14

Similar Documents

Publication Publication Date Title
JP6360215B2 (ja) 仮想ハードディスクイメージを圧縮する方法
CN110187999B (zh) 地址映射数据备份方法及装置
US20070288711A1 (en) Snapshot copy management method used for logic volume manager
JP5386111B2 (ja) ファイルシステムの記録方法
CN102591982A (zh) 执行增量sql服务器数据库备份的方法和***
JPH04186447A (ja) 情報処理装置
JP2010535379A (ja) フラッシュメモリに最適化された入出力制御方法および装置
JP6156517B2 (ja) 書き込み情報記憶装置、方法、及び、プログラム
KR101593184B1 (ko) 파일시스템 메타데이터 기반 파티션 복구 방법 및 장치
US20170351608A1 (en) Host device
CN105260266B (zh) 一种快照卷写方法及依赖快照***
US10725970B2 (en) Block storage device with optional deduplication
CN111221478B (zh) 数据写入、读取方法、装置、设备及机器可读存储介质
CN110231914B (zh) 数据存储装置及其操作方法
JP2017531892A (ja) ブロックレベル記憶デバイスのスナップショットを実行するための改善された装置および方法
WO2009110665A1 (en) Information storage medium for recording data according to journaling file system, and method of and apparatus for writing/recovering data using journaling file system
CN107704208B (zh) 一种元数据的修复方法、装置及介质
KR101413985B1 (ko) 비휘발성 메모리에 적합한 파일시스템을 이용한 파일 관리 방법
CN111258503B (zh) 一种cirros文件***的管理方法和装置
KR101556300B1 (ko) 리눅스 파일 시스템에서의 파일 복원 장치 및 방법
JP6419662B2 (ja) ストレージシステム及びデータ重複検出方法
TWI536161B (zh) 備份方法、還原方法及其電腦、電腦程式產品與電腦可讀取記錄媒體
JP2009205591A (ja) アクセスモジュール、情報記録モジュール、及び情報記録システム
US11455255B1 (en) Read performance of log-structured file system (LFS)-based storage systems that support copy-on-write (COW) snapshotting
CN111913915B (zh) 文件隐藏方法和装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170215

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171222

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180621

R150 Certificate of patent or registration of utility model

Ref document number: 6360215

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250