JP6122557B2 - ファイルマイグレーション方法及び装置、並びにストレージデバイス - Google Patents

ファイルマイグレーション方法及び装置、並びにストレージデバイス Download PDF

Info

Publication number
JP6122557B2
JP6122557B2 JP2016549609A JP2016549609A JP6122557B2 JP 6122557 B2 JP6122557 B2 JP 6122557B2 JP 2016549609 A JP2016549609 A JP 2016549609A JP 2016549609 A JP2016549609 A JP 2016549609A JP 6122557 B2 JP6122557 B2 JP 6122557B2
Authority
JP
Japan
Prior art keywords
data block
file
target data
target
snapshot
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
JP2016549609A
Other languages
English (en)
Other versions
JP2016535910A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2016535910A publication Critical patent/JP2016535910A/ja
Application granted granted Critical
Publication of JP6122557B2 publication Critical patent/JP6122557B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1724Details of de-fragmentation performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/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/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1204Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
    • 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1222Increasing security of the print job
    • 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1236Connection management
    • 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1238Secure printing, e.g. user identification, user rights for device usage, unallowed content, blanking portions or fields of a page, releasing held jobs
    • 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • G06F3/1258Configuration of print job parameters, e.g. using UI at the client by updating job settings at the printer
    • 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1292Mobile client, e.g. wireless printing

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)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明の実施例は、ストレージ技術の分野に関し、特にファイルマイグレーション方法及び装置、並びにストレージデバイスに関する。
ファイルシステムは、ユーザデータを記憶及び整理するためのデータ構造であり、ユーザにとって簡単且つ便利なデータアクセスを提供する。ファイルシステムを提供するストレージデバイスについて、ストレージデバイスのディスクのストレージ空間はユーザに対してトランスペアレントであり、ユーザは、ディスクに記憶されたデータの具体的な位置を気にかける必要はなく、単にディレクトリ又はファイルにアクセスすることにより、データにアクセスし得る。
リダイレクト・オン・ライト(フルネーム:Redirection On Write、略してROW)ファイルシステムは、リダイレクト・オン・ライトの方式でデータを書き込むファイルシステムを示す。新たなユーザデータが書き込まれる場合又は元のユーザデータが変更される場合、新たなデータは、元の古いデータを上書きせず、データは、ストレージデバイスの新たに割り当てられた空間に書き込まれる。新たなデータが成功して書き込まれた後に、古いデータのストレージ空間が解放される。しかし、新たなデータが絶えず書き込まれると、新たなストレージ空間がストレージデバイスで絶えず割り当てられ、同時に、古いデータのストレージ空間が絶えず解放される。しかし、解放されたストレージ空間の不連続性のため、新たなデータは古いデータの解放されたストレージ空間に書き込まれることができず、ディスクにおけるストレージ空間フラグメント化の問題を生じる。従って、ストレージ空間をデフラグすることが必要である。デフラグは、小さい不連続な利用可能なストレージ空間を大きい連続的なストレージ空間に整理することを示す。
本発明の実施例は、ターゲットファイルが予め割り当てられた連続的なストレージ空間にマイグレーションされることができ、これにより、ディスクデフラグの目的を達成するような、ファイルマイグレーション方法及び装置、並びにストレージデバイスを提供する。
本発明の実施例の第1の態様は、ファイルマイグレーション方法を提供し、この方法は、ストレージデバイスに適用され、ストレージデバイスは、ターゲットファイルを記憶し、ターゲットファイルは、複数のデータブロックを含む。この方法は、ストレージデバイスにより、ターゲットファイルのメタデータのスナップショットを取得するステップであり、スナップショットは、複数のデータブロックの論理アドレス及び複数のデータブロックの第1の書き込み時点を含み、第1の書き込み時点は、スナップショットに記録された、データブロックをストレージデバイスに書き込む時点を示すステップと、複数のデータブロックの論理アドレス及び複数のデータブロックの第1の書き込み時点から、ターゲットデータブロックの論理アドレス及びターゲットデータブロックの第1の書き込み時点を識別するステップと、ターゲットデータブロックの論理アドレスに従って、ターゲットファイルのメタデータからターゲットデータブロックの論理アドレスに対応する第2の書き込み時点を取得するステップであり、ターゲットファイルのメタデータは、ターゲットデータブロックの論理アドレス及び第2の書き込み時点を含み、第2の書き込み時点は、ターゲットデータブロックをストレージデバイスに書き込む最新の時点を示すステップと、第1の書き込み時点が第2の書き込み時点と同じであると決定された場合、ターゲットデータブロックを予め割り当てられた連続的なストレージ空間にマイグレーションするステップとを含む。
第1の態様を参照して、第1の可能な実現方式では、この方法は、連続的なストレージ空間を予め割り当てるステップであり、ストレージ空間のサイズは、ターゲットファイルのサイズ未満ではないステップを更に含む。
第1の態様又は第1の態様の第1の可能な実現方式を参照して、第2の可能な実現方式では、この方法は、ストレージ空間において物理アドレスをターゲットデータブロックに割り当てるステップを更に含み、ターゲットデータブロックを予め割り当てられた連続的なストレージ空間にマイグレーションするステップは、ターゲットデータブロックを物理アドレスに対応するストレージ空間に書き込むステップを含む。
第1の態様の第2の可能な実現方式を参照して、第3の可能な実現方式では、ストレージ空間において物理アドレスをターゲットデータブロックに割り当てた後に、この方法は、物理アドレスと、ターゲットデータブロックを物理アドレスに対応するストレージ空間に書き込む時点とを、ターゲットファイルのメタデータに記憶するステップを更に含む。
第1の態様の第3の可能な実現方式を参照して、第4の可能な実現方式では、ターゲットデータブロックの論理アドレスに対応する第2の書き込み時点が、ターゲットデータブロックの論理アドレスに従って、ターゲットファイルのメタデータから取得された場合、この方法は、ターゲットデータブロックの論理アドレスに対応する第2の書き込み時点が取得された後、且つ、物理アドレスと、ターゲットデータブロックを物理アドレスに対応するストレージ空間に書き込む時点とがターゲットファイルのメタデータに記憶される前に、ターゲットデータブロックの論理アドレス及び第2の書き込み時点が変更できないように、ターゲットデータブロックの論理アドレス及び第2の書き込み時点においてロック動作を実行するステップを更に含む。
第1の態様又は第1の態様の第1の可能な実現方式から第1の態様の第4の可能な実現方式を参照して、本発明の第5の可能な実現方式では、ストレージデバイスにより、ターゲットファイルのメタデータのスナップショットを取得するステップは、ストレージデバイスにより、予め設定された時点が到達した場合、又はファイルマイグレーション命令が受信された場合、ターゲットファイルのメタデータのスナップショットを取得するステップを含む。
本発明の実施例の第2の態様は、ファイルマイグレーション装置を提供し、この装置は、ストレージデバイスに位置し、ストレージデバイスは、ターゲットファイルを記憶し、ターゲットファイルは、複数のデータブロックを含む。この装置は、デフラグモジュールを含み、デフラグモジュールは、ターゲットファイルのメタデータのスナップショットを取得するように構成されたスナップショット取得モジュールであり、スナップショットは、複数のデータブロックの論理アドレス及び複数のデータブロックの第1の書き込み時点を含み、第1の書き込み時点は、スナップショットに記録された、データブロックをストレージデバイスに書き込む時点を示すスナップショット取得モジュールと、ターゲットファイルのメタデータのスナップショット及びターゲットファイルのメタデータを記憶するように構成されたアドレスマッピングモジュールとを含み、スナップショット取得モジュールは、複数のデータブロックの論理アドレス及び複数のデータブロックの第1の書き込み時点から、ターゲットデータブロックの論理アドレス及びターゲットデータブロックの第1の書き込み時点を識別するように更に構成され、デフラグモジュールは、ターゲットデータブロックの論理アドレスに従って、アドレスマッピングモジュールに記憶されたターゲットファイルのメタデータからターゲットデータブロックの論理アドレスに対応する第2の書き込み時点を取得するように構成されたマイグレーションモジュールであり、ターゲットファイルのメタデータは、ターゲットデータブロックの論理アドレス及び第2の書き込み時点を含み、第2の書き込み時点は、ターゲットデータブロックをストレージデバイスに書き込む最新の時点を示すマイグレーションモジュールを含み、マイグレーションモジュールは、第1の書き込み時点が第2の書き込み時点と同じであると決定された場合、ターゲットデータブロックを予め割り当てられた連続的なストレージ空間にマイグレーションするように更に構成される。
第2の態様を参照して、第1の可能な実現方式では、ファイルマイグレーション装置は、連続的なストレージ空間を予め割り当てるように構成された空間管理モジュールであり、ストレージ空間のサイズは、ターゲットファイルのサイズ未満ではない空間管理モジュールを更に含む。
第2の態様又は第2の態様の第1の可能な実現方式を参照して、第2の可能な実現方式では、マイグレーションモジュールは、ストレージ空間において物理アドレスをターゲットデータブロックに割り当てるように更に構成され、マイグレーションモジュールは、ターゲットデータブロックを物理アドレスに対応するストレージ空間に書き込むように具体的に構成される。
第2の態様の第2の可能な実現方式を参照して、第3の可能な実現方式では、マイグレーションモジュールは、ストレージ空間において物理アドレスがターゲットデータブロックに割り当てられた後に、物理アドレスと、ターゲットデータブロックを物理アドレスに対応するストレージ空間に書き込む時点とを、ターゲットファイルのメタデータに記憶するように更に構成される。
第2の態様の第3の可能な実現方式を参照して、第4の可能な実現方式では、マイグレーションモジュールは、ターゲットデータブロックの論理アドレスに対応する第2の書き込み時点が取得された後、且つ、物理アドレスと、ターゲットデータブロックを物理アドレスに対応するストレージ空間に書き込む時点とがターゲットファイルのメタデータに記憶される前に、ターゲットデータブロックの論理アドレス及び第2の書き込み時点が変更できないように、ターゲットデータブロックの論理アドレス及び第2の書き込み時点においてロック動作を実行するように更に構成される。
第2の態様又は第2の態様の第1の可能な実現方式から第2の態様の第4の可能な実現方式を参照して、本発明の第5の可能な実現方式では、デフラグモジュールは、トリガーを更に含み、トリガーは、予め設定された時点を設定するように或いはファイルマイグレーション命令を受信するように構成され、スナップショット取得モジュールは、予め設定された時点が到達した場合、又はファイルマイグレーション命令が受信された場合、ターゲットファイルのメタデータのスナップショットを取得するように具体的に構成される。
本発明の実施例の第3の態様は、ストレージデバイスを提供し、ストレージデバイスは、コントローラとディスクとを含み、コントローラは、プロセッサと通信インタフェースとを含み、通信インタフェースは、ディスクと通信するように構成され、プロセッサは、ターゲットファイルのメタデータのスナップショットを取得し、スナップショットは、複数のデータブロックの論理アドレス及び複数のデータブロックの第1の書き込み時点を含み、第1の書き込み時点は、スナップショットに記録された、データブロックをディスクに書き込む時点を示し、複数のデータブロックの論理アドレス及び複数のデータブロックの第1の書き込み時点から、ターゲットデータブロックの論理アドレス及びターゲットデータブロックの第1の書き込み時点を識別し、ターゲットデータブロックの論理アドレスに従って、ターゲットファイルのメタデータからターゲットデータブロックの論理アドレスに対応する第2の書き込み時点を取得し、ターゲットファイルのメタデータは、ターゲットデータブロックの論理アドレス及び第2の書き込み時点を含み、第2の書き込み時点は、ターゲットデータブロックをディスクに書き込む最新の時点を示し、第1の書き込み時点が第2の書き込み時点と同じであると決定された場合、ターゲットデータブロックを予め割り当てられた連続的なストレージ空間にマイグレーションするように構成される。
第3の態様を参照して、第1の可能な実現方式では、プロセッサは、連続的なストレージ空間を予め割り当てるように更に構成され、ストレージ空間のサイズは、ターゲットファイルのサイズ未満ではない。
第3の態様又は第3の態様の第1の可能な実現方式を参照して、第2の可能な実現方式では、プロセッサは、ストレージ空間において物理アドレスをターゲットデータブロックに割り当てるように更に構成され、プロセッサは、ターゲットデータブロックを物理アドレスに対応するストレージ空間に書き込むように具体的に構成される。
第3の態様の第2の可能な実現方式を参照して、第3の可能な実現方式では、プロセッサは、ストレージ空間において物理アドレスがターゲットデータブロックに割り当てられた後に、物理アドレスと、ターゲットデータブロックを物理アドレスに対応するストレージ空間に書き込む時点とを、ターゲットファイルのメタデータに記憶するように更に構成される。
第3の態様の第3の可能な実現方式を参照して、第4の可能な実現方式では、プロセッサは、ターゲットデータブロックの論理アドレスに対応する第2の書き込み時点が、ターゲットデータブロックの論理アドレスに従って、ターゲットファイルのメタデータから取得された場合、ターゲットデータブロックの論理アドレスに対応する第2の書き込み時点が取得された後、且つ、物理アドレスと、ターゲットデータブロックを物理アドレスに対応するストレージ空間に書き込む時点とがターゲットファイルのメタデータに記憶される前に、ターゲットデータブロックの論理アドレス及び第2の書き込み時点が変更できないように、ターゲットデータブロックの論理アドレス及び第2の書き込み時点においてロック動作を実行するように更に構成される。
第3の態様又は第3の態様の第1の可能な実現方式から第3の態様の第4の可能な実現方式を参照して、本発明の第5の可能な実現方式では、プロセッサは、予め設定された時点が到達した場合、又はファイルマイグレーション命令が受信された場合、ストレージデバイスによりターゲットファイルのメタデータのスナップショットを取得するように具体的に構成される。
本発明の実施例では、ストレージデバイスは、ターゲットファイルのメタデータのスナップショットを取得し、スナップショットは、複数のデータブロックの論理アドレス及び複数のデータブロックの第1の書き込み時点を含み、第1の書き込み時点は、スナップショットに記録された、データブロックをストレージデバイスに書き込む時点を示し、複数のデータブロックの論理アドレス及び複数のデータブロックの第1の書き込み時点から、ターゲットデータブロックの論理アドレス及びターゲットデータブロックの第1の書き込み時点を識別し、論理アドレスに従って、ターゲットファイルのメタデータから論理アドレスに対応する第2の書き込み時点を取得し、第2の書き込み時点は、ターゲットデータブロックをストレージデバイスに書き込む最新の時点を示し、第1の書き込み時点が第2の書き込み時点と同じであると決定された場合、これは、スナップショットが生成された後にターゲットデータブロックが変更されないことを示し、ターゲットデータブロックが予め割り当てられた連続的なストレージ空間にマイグレーションされる。このように、全体のターゲットファイルが連続的なストレージ空間にマイグレーションされることができ、これにより、ディスクデフラグの目的を達成する。
本発明の実施例の技術的対策を明確に説明するために、以下に、本発明の実施例を説明するために必要な添付図面について簡単に紹介する。明らかに、以下の説明において、添付図面は、本発明の単にいくつかの実施例を示しているに過ぎず、当業者は、創造的取り組みを行うことなく、依然としてこれらの添付図面から他の図面を導き得る。
本発明の実施例によるストレージシステムの構成図 本発明の実施例によるコントローラのハードウェアの構成 本発明の実施例によるファイルシステムの論理構成の概略図 本発明の実施例によるファイルのメタデータのB+ツリーの概略図 本発明の実施例によるファイルマイグレーション方法の概略フローチャート 本発明の実施例によるファイルのメタデータのスナップショットのB+ツリーの概略図 本発明の実施例によるファイルの単位でのデフラグの概略フローチャート 本発明の実施例によるファイルの単位でのデフラグの概略フローチャート
本発明の実施例は、ターゲットファイルが連続的なストレージ空間にマイグレーションされることができ、これによりディスクのストレージ空間においてデフラグの目的を達成するような、ファイルマイグレーション方法、ファイルマイグレーション装置、及びストレージデバイスを提供する。
従来技術では、デフラグがファイルの単位でストレージ空間において実行される場合、一般的に、ユーザがファイルを変更することを妨げるため、ファイルは、マイグレーション処理中にロックされる必要がある。ファイルは、複数のデータブロックを含み、従って、従来技術では、ファイルは、データブロックが順次にマイグレーションされた後にのみロック解除される。このことは、ユーザによるファイルアクセスに影響を与える。本発明の実施例では、デフラグの目的が達成されることができるだけでなく、ファイルがファイルマイグレーション処理中にロックされない可能性がある。スナップショットが生成された後に変更されないデータブロックを更に取得するため、ファイルのメタデータのスナップショットが取得され、データブロックは、予め割り当てられた連続的なストレージ空間にマイグレーションされ、これにより、ファイルマイグレーション処理がユーザに対してトランスペアレントである。
本発明の実施例では、ファイルのメタデータは、ファイル情報を記述するデータを示し、ファイルに含まれるデータブロックの論理アドレス及び物理アドレス、論理アドレスと物理アドレスとの間のマッピング関係、並びにデータブロックをストレージデバイスに書き込む時点のような情報を含む。
以下に、本発明の実施例を詳細に説明し始める。
図1は、本発明の実施例によるストレージシステムの構成図である。図1に示すストレージシステムは、少なくとも1つのアプリケーションサーバ10と、少なくとも1つのストレージデバイス20とを含む。アプリケーションサーバ10は、従来技術のいずれか既知のコンピューティングデバイス、例えば、ホスト、サーバ、又はデスクトップコンピュータを含んでもよい。アプリケーション(application)11は、アプリケーションサーバ10で実行し、ユーザは、アプリケーション11を使用することにより、様々なファイル処理要求をストレージデバイス20に送出してもよい。
ストレージデバイス20は、ネットワーク上でNFS/CIFSプロトコルを使用することにより、アプリケーションサーバ10とのデータ送信を実行してもよく、ストレージデバイス20は、従来技術のファイルシステムを含むいずれか既知のストレージデバイス、例えば、ストレージアレイ又はストレージサーバでもよい。
ストレージデバイス20は、コントローラ21と、複数のディスク31とを含む。コントローラ21は、従来技術のいずれか既知のコンピューティングデバイス、例えば、サーバ又はデスクトップコンピュータを含んでもよい。ファイルシステム210及び他のアプリケーションは、コントローラにインストールされる。コントローラ21は、ファイル生成動作、ファイルオープニング動作、ファイル読み取り動作、及びファイル書き込み動作のようなファイル処理要求のための様々な動作を実行するように構成される。ストレージデバイス20に含まれる複数のディスク31は、ファイルを記憶するストレージ空間を提供するように構成される。
以下に、コントローラ21のハードウェアの構成を説明する。図2を参照すると、図2は、本発明の実施例のコントローラ21の構成図である。図2に示すように、コントローラ21は、プロセッサ(processor)118と、キャッシュ(cache)120と、メモリ(memory)122と、通信バス(略してバス)126と、通信インタフェース(Communication Interface)128とを主に含む。プロセッサ118、キャッシュ120、メモリ122、及び通信インタフェース128は、通信バス126を使用することにより相互に通信する。
通信インタフェース128は、アプリケーションサーバ10又はディスク31と通信するように構成される。
メモリ122は、プログラム124を記憶するように構成され、メモリ122は、高速RAMメモリを含んでもよく、或いは、不揮発性メモリ(non-volatile memory)、例えば、少なくとも1つのディスクメモリを更に含んでもよい。メモリ122は、ランダムアクセスメモリ(Random-Access Memory、RAM)、磁気ディスク、ハードディスク、光ディスク、ソリッドステートディスク(Solid State Disk、SSD)、又は不揮発性メモリのような、プログラムコードを記憶することができるいずれかの過渡的でない(non-transitory)機械読み取り可能な記憶媒体でもよいことが認識され得る。
プログラム124は、プログラムコードを含んでもよく、プログラムコードは、ファイルシステム210及び他のプログラムコードを含む。
キャッシュ120(Cache)は、アプリケーションサーバ10から受信したデータ又はディスク31から読み取られたデータを一時的に記憶するように構成される。キャッシュ120は、RAM、ROM、フラッシュメモリ(Flash memory)、又はソリッドステートディスク(Solid State Disk、SSD)のような、データを記憶し得るいずれかの過渡的でない(non-transitory)機械読み取り可能な記憶媒体でもよく、これは、ここでは限定されない。
更に、メモリ122及びキャッシュ120は、統合されてもよく、別々に配置されてもよく、これは、本発明のこの実施例では限定されない。
プロセッサ118は、中央処理装置CPU又は特定用途向け集積回路ASIC(Application Specific Integrated Circuit)でもよく、或いは、本発明のこの実施例を実現する1つ以上の集積回路として構成されてもよい。本発明のこの実施例では、プロセッサ118は、アプリケーションサーバ10から様々なファイル処理要求を受信し、ファイルシステム210を使用することによりファイル処理要求についてファイルマイグレーション動作、ファイル読み取り動作、及びファイル書き込み動作のような様々な動作を実行するように構成されてもよい。
ファイルシステム210は、ストレージデバイス20のデータを記憶及び整理する方法であり、データアクセス及び検索を容易にする。ファイルシステム210は、ディスクのような物理デバイスにより使用されるデータブロックの概念を置換するために、ファイルの抽象的な論理概念及びツリーディレクトリを使用する。ストレージデバイス20がデータを記憶するためにファイルシステム210を使用した後に、ユーザは、データが実際に記憶されるデータブロックのディスクアドレスを気にかける必要はなく、ファイルが属するディレクトリ及びファイル名を記憶しさえすればよい。同様に、新たなデータを書き込む前に、ユーザは、どのアドレスブロックが使用されていないかを気にかける必要はない。ディスクのストレージ空間管理(割り当て及び解放)機能は、ファイルシステム210により自動的に実現され、ユーザは、データが書き込まれたファイルを記憶しさえすればよい。ストレージデバイス20に記憶されたデータは、ファイルの形式でユーザに表示されるが、ディスク31に記憶されたファイルは、データブロックの単位で留まる点に留意すべきである。従って、1つのファイルは、複数のデータブロックを含んでもよい。
この実施例のファイルシステム210は、リダイレクト・オン・ライト(フルネーム:Redirection On Write、略してROW)ファイルシステムである。新たなユーザデータが書き込まれる場合又は元のユーザデータが変更される場合、新たなデータは、元の古いデータを上書きせず、新たなデータは、ストレージデバイス20の新たに割り当てられた空間に書き込まれる。新たなデータが成功して書き込まれた後に、古いデータのストレージ空間が解放される。しかし、新たなデータが絶えず書き込まれると、新たなストレージ空間がストレージデバイス20のディスク空間で絶えず割り当てられ、元の連続的なユーザデータは、複数の変更によって不連続になり、これにより、データのアクセス性能に影響を与える。従って、ストレージデバイス20のディスク空間のデフラグを実行するために、この実施例では、デフラグモジュールがファイルシステム210に追加される。
以下に、ファイルシステム210の論理構成を説明する。図3を参照すると、図3は、本発明の実施例のファイルシステム210の論理構成の概略図である。図3に示すように、ファイルシステム210は、デフラグモジュール214と、空間管理モジュール212とを主に含む。デフラグモジュール214は、ターゲットファイルに含まれるデータブロックをマイグレーションするように構成され、空間管理モジュール212は、マイグレーションされたデータブロックを記憶するために、1つの連続的なストレージ空間を予め割り当てるように構成される。
具体的に、デフラグモジュール214は、スナップショット取得モジュール2140と、アドレスマッピングモジュール2145と、マイグレーションモジュール2144とを含んでもよい。スナップショット取得モジュール2140は、ターゲットファイルのメタデータのスナップショットを取得するように構成される。アドレスマッピングモジュール2145は、ターゲットファイルのメタデータのスナップショット及びターゲットファイルのメタデータを記憶するように構成される。マイグレーションモジュール2144は、ターゲットファイルのメタデータを求めてアドレスマッピングモジュール2145を検索するように構成され、マイグレーションモジュール2144は、ターゲットファイルに含まれるデータを予め割り当てられた連続的なストレージ空間にマイグレーションするように更に構成される。
更に、スナップショット取得モジュール2140は、整理及び制御モジュール2143と、スナップショットアダプタ2141とを含んでもよい。整理及び制御モジュール2143は、全体のデフラグ手順を制御し、他のモジュールの作業を協調させることによりデフラグ機能を実現するように構成される。スナップショットアダプタ2141は、ターゲットファイルのメタデータのスナップショットを生成するように構成されてもよい。しかし、或るシナリオでは、ファイルシステム210がスナップショットを生成するように構成されたモジュール(例えば、スナップショットモジュール211)を既に含む場合、スナップショットアダプタ2141は、単にスナップショットモジュール211とデータ交換を実行するように構成されてもよい。例えば、スナップショットアダプタ2141は、スナップショットモジュール211に対してスナップショットを生成してスナップショットについての情報を記憶することを要求するためのスナップショット要求を送出する。
更に、任意選択で、デフラグモジュール214は、トリガー2142を更に含んでもよい。トリガー2142は、デフラグを開始するために使用され、ファイルシステム210のためのデフラグタイミング及びデフラグポリシーを提供する。具体的に、タイマがトリガー2142に設定されてもよく、デフラグタスクは、予め設定された時点が到達した場合に開始される。或いは、他のトリガー条件が設定され、デフラグタスクは、予め設定された条件が満たされた場合に開始される。更に、トリガー2142は、デフラグタスクを開始するために、ファイルマイグレーション命令、デフラグ命令又は同様の命令を受信するように更に構成される。更に、デフラグポリシーは、トリガー2142に構成される。例えば、デフラグはファイルの単位で実行されるか、デフラグはディレクトリの単位で実行されるか、或いは、デフラグは全てのファイルの単位で実行される。
任意選択で、ファイルシステム210は、ディスク31に記憶されたデータを読み書きする機能を実現するように構成されたデータIOモジュール213を更に含んでもよい。例えば、マイグレーション対象のデータブロックを決定する場合、マイグレーションモジュール2144は、データブロックをデータIOモジュール213に送出し、データIOモジュール213は、データブロックを、空間管理モジュール212により予め割り当てられた連続的なストレージ空間に書き込む。データブロックが成功して書き込まれた後に、新たなメタデータは、アドレスマッピングモジュール2145に記憶されてもよい。ここで、新たなメタデータは、データブロックの論理アドレス、データブロックが書き込まれたストレージ空間の物理アドレス、論理アドレスと物理アドレスとの間のマッピング関係、及びデータブロックを書き込む時点のような情報を含む。マイグレーションの後に、データブロックの論理アドレスが変化しないままである一方で、データブロックの物理アドレスが変化する点に留意すべきである。しかし、物理アドレスは、アプリケーションサーバ10に不可視であり、従って、データブロックのマイグレーション処理及び全体のファイルのマイグレーション処理ですら、アプリケーションサーバ10に対してトランスペアレントである。
ファイルシステム210は、本発明のこの実施例で一時的に説明していない他の機能モジュールを更に含んでもよいことが認識され得る。
図3に示す実施例では、ファイルシステム210は、スナップショットアダプタ2141と、スナップショットモジュール211との双方を含む点に留意すべきである。スナップショットモジュール211は、スナップショット生成動作を実行するように構成される。スナップショットアダプタ2141は、スナップショットモジュール211に対してスナップショットを生成してスナップショットについての情報を記憶すること等を要求するために、スナップショットモジュール211とデータ交換を実行するように構成される。しかし、或るシナリオでは、スナップショットモジュール211の機能は、スナップショットアダプタ2141に統合されてもよく、スナップショットアダプタ2141は、スナップショット生成動作を実行する。要するに、図3に示すファイルシステム210のモジュール分割は、本発明のこの実施例の単なる例示的な説明であり、前述の機能を実現することができるいずれかのモジュールは、本発明のこの実施例の保護範囲内に入るものとする。
この実施例では、アドレスマッピングモジュール2145は、論理アドレスと物理アドレスとの間のマッピング関係を管理するために、アドレスマッピングツリー(例えば、B+ツリー)を使用してもよい。図4は、ファイルシステムに対応するB+ツリーの概略図である。
ここで、ファイルシステムに対応するB+ツリーは、ストレージデバイスにおいて全てのファイルのメタデータを管理するために使用されるB+ツリーを示す点に留意すべきである。B+ツリーは、ルートノードと、様々なレベルのインデックスと、複数のリーフノードとを含む。ルートノードは、B+ツリーの入り口であり、ルートノードを通じてB+ツリーに入ってもよい。各リーフノードは、キー値(フルネーム:Key-Value、略してKV)ペアを記憶する。この実施例では、Keyフィールド及びValueフィールドの具体的な定義が以下の表に示される。
Figure 0006122557
Keyフィールドは、論理オフセット又は論理開始アドレスとも呼ばれる論理アドレスを記憶するために使用される。Valueフィールドは、2つの部分の内容を記憶する。一方の部分は書き込み時点であり、他方の部分は物理アドレスである。物理アドレスは、ディスクに記憶されており、論理アドレスが向けられたデータブロックの具体的な位置である。書き込み時点は、論理アドレスが向けられたデータブロックをディスクに書き込む時点を示す。書き込み時点の表現形式は、64ビットのシリアル番号でもよく、順序を表す数字又は文字でもよく、他の方式でもよい。書き込み時点の形式は、本発明のこの実施例では限定されない。更に、書き込み時点は、論理アドレスが向けられたデータブロックがディスクに書き込まれる前に割り当てられた時点でもよいが、必ずしもデータブロックをディスクに書き込む実際の時点であるとは限らないことが認識され得る。
図4から、Valueフィールドが物理アドレスを記憶し、各物理アドレスがファイルのメタデータ又はディレクトリのメタデータに向けられてもよいことが認識され得る。従って、ファイルのサブツリー(ファイルに対応するB+ツリー)は、ファイルシステムに対応するB+ツリーを使用することにより取得されてもよい。同様に、ファイルに対応するB+ツリーはまた、様々なレベルのインデックスと、複数のリーフノードとを含む。各リーフノードは、KVペアを記憶し、Keyフィールド及びValueフィールドの定義は、前述の表に示すものと同じである。1つのファイルは、複数のデータブロックにより形成され、従って、ファイルのサブツリーにおいてValueフィールドに記憶された物理アドレスは、1つ以上のデータブロックのメタデータに向けられてもよい。
以下に、本発明の実施例のファイルマイグレーション方法の手順を説明する。本発明のこの実施例のファイルマイグレーション方法は、図2に示すストレージデバイスに適用されてもよい。図5は、本発明の実施例のファイルマイグレーション方法のフローチャートである。図5に示すように、この方法は以下を含む。
ステップS301A:プロセッサ118は、ターゲットファイルのメタデータのスナップショットを取得する。ターゲットファイルは、複数のデータブロックを含み、スナップショットは、複数のデータブロックの論理アドレス及び複数のデータブロックの第1の書き込み時点を含み、第1の書き込み時点は、スナップショットに記録された、データブロックをストレージデバイスに書き込む時点を示す。
図4に示すB+ツリーを参照すると、ターゲットファイルのメタデータは、ファイルに対応するB+ツリーに記憶され、B+ツリーの各リーフノードは、Key-Value(KV)ペアを記憶する。Keyフィールドは、各データブロックの論理アドレスを記憶するための検索値として使用され、Valueフィールドは、各データブロックの物理アドレスと、各データブロックをストレージデバイス20に書き込む時点とを記憶するための値として使用される。
任意選択で、ステップS301Aは、予め設定された時点が到達した場合、又はファイルマイグレーション命令が受信された場合に実行されてもよい。詳細については、図3のトリガー2142及び関係する説明を参照し、ここでは詳細について再び説明しない。
ステップS301Aにおいて、プロセッサ118は、ターゲットファイルのメタデータのスナップショットを生成する必要がある。スナップショットは、具体的な書き込み時点(コピーを開始する書き込み時点)における対応するデータのイメージを示す。スナップショットが生成された後に、ターゲットファイルのメタデータについてフリーズフレーム(freeze-frame)イメージが生成されてもよい。このイメージは変更されない。図4を参照すると、ターゲットファイルのメタデータは、図4に示すファイルに対応するB+ツリーに従って整理される。図6に示すように、ターゲットファイルのメタデータのスナップショットは、ファイルに対応するフリーズフレームのB+ツリーの他のB+ツリーである。スナップショットが冒頭に生成された場合、データブロックは一時的に変更されない。従って、ターゲットファイルのメタデータに対応するB+ツリー(略して、ファイルに対応するB+ツリー)のルートノードは、スナップショットに対応するB+ツリーのルートノードと異なるが、リーフノードは共有されてもよい。
しかし、スナップショットが生成された後に、プロセッサ118は、データブロックの変更要求を受信してもよい。変更要求は、データブロックを変更するために使用される。プロセッサ118の変更方式は、1つの新たなストレージ空間を変更データブロックに割り当て、変更データブロックを新たに割り当てられたストレージ空間に書き込み、変更データブロックが成功して書き込まれた後に、変更前のデータブロックが位置するストレージ空間を解放することである。
次に、対応して、プロセッサ118は、変更要求に従ってKVを生成し、新たに生成されたKVを記憶するために、ファイルに対応するB+ツリーにおいて新たなリーフノードを追加してもよい。この場合、新たに生成されたKVのKeyフィールドは、変更データブロックの論理アドレスを依然として記憶する。Valueフィールドの物理アドレスは、変更データブロックが記憶された新たに割り当てられたストレージ空間のアドレスであり、Valueフィールドの書き込み時点は、変更データブロックを新たに割り当てられたストレージ空間に書き込む時点を示す。論理アドレスは変化しないため、書き込み時点は、論理アドレスが向けられたデータブロックの最新の書き込み時点である。新たなリーフノードは、ファイルに対応するB+ツリーのリーフノードであり、スナップショットに対応するB+ツリーと共有されないことが認識され得る。従って、ファイルに対応するB+ツリー及びスナップショットに対応するB+ツリーは、いくつかのリーフノードを共有するが、ファイルに対応するB+ツリーのValueフィールドに記憶された書き込み時点により示される意味は、スナップショットに対応するB+ツリーに記憶された書き込み時点により示される意味とは異なる。2つの書き込み時点を区別するために、この実施例では、スナップショットに対応するB+ツリーに記憶された書き込み時点は、第1の書き込み時点と呼ばれ、ファイルに対応するB+ツリーに記憶された書き込み時点は、第2の書き込み時点と呼ばれる。第1の書き込み時点は、スナップショットに記録された、データブロックをストレージデバイスに書き込む時点を示し、第2の書き込み時点は、データブロックの最新の書き込み時点を示す。
ステップS301B:プロセッサ118は、複数のデータブロックの論理アドレス及び複数のデータブロックの第1の書き込み時点から、ターゲットデータブロックの論理アドレス及びターゲットデータブロックの第1の書き込み時点を識別する。
この実施例では、説明を容易にするために、ターゲットファイルの1つのデータブロックが、マイグレーション手順を説明するための例として使用され、このデータブロックは、ターゲットデータブロックと呼ばれる。ターゲットデータブロックを除くターゲットファイルの他のデータブロックも、同じ方法を使用することによりマイグレーションされることが認識され得る。
スナップショットに対応するB+ツリーは、ターゲットファイルに含まれる各データブロックのKVを記憶するため、スナップショットに対応するB+ツリーが取得された後に、ターゲットファイルに含まれる各データブロックのKVが取得される。プロセッサ118は、ターゲットデータブロックに対応するKVを取得するために、各データブロックに対応するKVにおいてスキャニングを実行してもよい。Keyフィールドは、ターゲットデータブロックの論理アドレスを含み、Valueフィールドは、ターゲットデータブロックの第1の書き込み時点を含む。
ステップS302:プロセッサ118は、ターゲットデータブロックの論理アドレスに従って、ターゲットファイルのメタデータからターゲットデータブロックの論理アドレスに対応する第2の書き込み時点を取得する。ターゲットファイルのメタデータは、ターゲットデータブロックの論理アドレス及び第2の書き込み時点を含み、第2の書き込み時点は、ターゲットデータブロックをストレージデバイスに書き込む最新の時点を示す。
ステップS302において、ターゲットファイルのメタデータは、ファイルに対応するB+ツリーを示す。ステップS301Aにおいて、ターゲットデータブロックの論理アドレスが取得され、従って、論理アドレスに対応するKVは、論理アドレスに従ってファイルに対応するB+ツリーを検索することにより取得されてもよい。Keyフィールドは、論理アドレスを記憶するために使用され、Valueフィールドは、第2の書き込み時点を記憶するために使用される(ステップS301Aの説明を参照)。従って、第2の書き込み時点が更に取得されてもよい。
ステップS303:プロセッサ118は、第1の書き込み時点が第2の書き込み時点と同じであると決定された場合、ターゲットデータブロックを予め割り当てられた連続的なストレージ空間にマイグレーションする。
具体的に、プロセッサ118が第1の書き込み時点及び第2の書き込み時点を取得した後に、これら2つが同じであるか否かが決定されてもよい。これら2つが同じである場合、これは、スナップショットが生成された後にターゲットデータブロックが変更されないことを示し、従って、ターゲットデータブロックが予め割り当てられた連続的なストレージ空間にマイグレーションされてもよい。これら2つが異なる場合、これは、スナップショットが生成された後にターゲットデータブロックが変更され、変更データブロックが新たなストレージ空間に既に書き込まれたことを示し、このようなターゲットデータブロックは、マイグレーションされる必要はない。
従って、予め割り当てられた連続的なストレージ空間は、ステップS301Aが実行される前に割り当てられてもよく、ステップS301Aの後且つステップ303の前に割り当てられてもよい。具体的に、連続的な空間のサイズは、ターゲットファイルのマイグレーションされたデータブロックを記憶するのに十分な空間が存在し、これにより、デフラグの目的を達成するように、ターゲットファイルのサイズ未満でないことが必要である。ストレージ空間の割り当て方式は、十分なストレージ空間を一度に割り当てることでもよく、ストレージ空間を複数回割り当てることでもよい。割り当てられたストレージ空間の合計サイズは、ターゲットファイルのサイズ未満ではない。
本発明のこの実施例では、ストレージデバイスは、ターゲットファイルのメタデータのスナップショットを取得し、スナップショットは、複数のデータブロックの論理アドレス及び第1の書き込み時点を含み、第1の書き込み時点は、スナップショットに記録された、データブロックをストレージデバイスに書き込む時点を示し、複数のデータブロックの論理アドレス及び複数のデータブロックの第1の書き込み時点から、ターゲットデータブロックの論理アドレス及びターゲットデータブロックの第1の書き込み時点を識別し、論理アドレスに従って、ターゲットファイルのメタデータから論理アドレスに対応する第2の書き込み時点を取得し、第2の書き込み時点は、ターゲットデータブロックをストレージデバイスに書き込む最新の時点を示し、第1の書き込み時点が第2の書き込み時点と同じである場合、これは、スナップショットが生成された後にターゲットデータブロックが変更されないことを示し、ターゲットデータブロックを予め割り当てられた連続的なストレージ空間にマイグレーションする。これにより、ディスクデフラグの目的を達成する。更に、本発明のこの実施例では、ターゲットファイルは、マイグレーション処理中にロックされる必要はない。スナップショットが生成された後に変更されないデータブロックを取得するため、ターゲットファイルのメタデータのスナップショットが取得され、変更されないデータブロックは、予め割り当てられた連続的なストレージ空間にマイグレーションされる。或る程度、本発明のこの実施例のファイルマイグレーション処理中に、ユーザによるファイルアクセスは影響を受けない可能性があり、これにより、ファイルアクセス効率を改善する。
前述のステップS303において、予め割り当てられたストレージ空間は、大きい連続的なストレージ空間であり、予め割り当てられたストレージ空間のサイズは、ターゲットファイルのサイズ未満ではない。従って、ターゲットデータブロックが予め割り当てられたストレージ空間に書き込まれる前に、物理アドレスは、ストレージ空間においてターゲットデータブロックに割り当てられる必要があり、物理アドレスが割り当てられた後に、ターゲットデータブロックは、物理アドレスに対応するストレージ空間に書き込まれる。
次に、対応して、図5に示すファイルマイグレーション方法は以下を更に含んでもよい。
ステップS304:プロセッサ118は、ターゲットデータブロックの論理アドレスと、マイグレーション後の物理アドレスと、ターゲットデータブロックを物理アドレスに対応するストレージ空間に書き込む時点とを、ファイルに対応するB+ツリーに記憶する。
ここで、ターゲットデータブロックを物理アドレスに対応するストレージ空間に書き込む時点は、ターゲットデータブロックをストレージデバイスに書き込む最新の時点、すなわち、前述の第2の書き込み時点を示すことが認識され得る。
図6を参照すると、ステップS304は、具体的に、新たなリーフノードを生成し、新たなリーフノードをファイルに対応するB+ツリーに追加し、新たなリーフノードとファイルに対応するB+ツリーのルートノードとの間の様々なレベルのインデックスを変更することでもよい。新たなリーフノードは、新たなKVを記憶するために使用され、Keyフィールドは、論理アドレスを記憶するために使用され、Valueフィールドは、マイグレーション後の物理アドレスと、ターゲットデータブロックを物理アドレスに対応するストレージ空間に書き込む時点とを記憶するために使用される。ここで、時点は、厳密な意味での時点でなくてもよく、割り当てられたシリアル番号又は他の形式でもよい点に留意すべきである。
更に、図5に示すファイルマイグレーション方法は以下を更に含んでもよい。
論理アドレスに従ってターゲットファイルのメタデータから論理アドレスに対応する第2の書き込み時点を取得した場合、プロセッサ118は、論理アドレスに対応する第2の書き込み時点が取得された後、且つ、物理アドレスがストレージ空間においてターゲットデータブロックに割り当てられる前に、論理アドレス及び第2の書き込み時点が変更できないように、論理アドレス及び第2の書き込み時点においてロック動作を実行する。
この実施例では、論理アドレス及び第2の書き込み時点においてロック動作を実行することは、具体的に、ファイルに対応するB+ツリーで、論理アドレスに対応するKVが位置するリーフノードにおいてロック動作を実行することでもよい。ロック動作を実行する目的は、ターゲットデータブロックが変更されることを妨げることである。具体的なロック動作は、様々な既存のロックアルゴリズムを使用することにより実現されてもよく、ここでは詳細について説明しない。
対応して、この実施例は、プロセッサ118により、論理アドレス及び第2の書き込み時点においてロック解除動作を実行することを更に含んでもよい。ロック解除動作が実行された後に、ターゲットデータブロックは変更されてもよい。
ロック解除動作がステップS304の後に実行されるという条件で、ロック解除のタイミングは、この実施例では限定されない点に留意すべきである。ロック解除動作は、プロセッサ118がターゲットデータブロックを物理アドレスに対応するストレージ空間に書き込む前に実行されてもよく、或いは、プロセッサ118がターゲットデータブロックを物理アドレスに対応するストレージ空間に書き込んだ後に実行されてもよい。
論理アドレス及び第2の書き込み時点におけるロック動作の実行と、論理アドレス及び第2の書き込み時点におけるロック解除動作の実行との間の期間中に、ターゲットデータブロックのメタデータとしての論理アドレス及び第2の書き込み時点は変更できないことが認識され得る。これは、ターゲットデータブロックが変更できないことを意味する。例えば、この期間中に、プロセッサ118がターゲットデータブロックを変更するために使用される変更要求を受信した場合、変更要求の実行は、ロック解除動作が論理アドレス及び第2の書き込み時点において実行される前に一時停止される。変更要求は、本発明のこの実施例において単なる例であり、他のアクセス要求、例えば、読み取り要求の実行も一時停止される点に留意すべきである。
しかし、ターゲットファイルについて、論理アドレス及び第2の書き込み時点におけるロック動作の実行と、論理アドレス及び第2の書き込み時点におけるロック解除動作の実行との間の期間中に、ターゲットデータブロックが変更できないが、ターゲットデータブロックを除く他のデータブロックの変更要求又は他のアクセス要求は、依然として受信されてもよい。本発明のこの実施例では、ロックされる対象は、ターゲットデータブロックのメタデータであり、他のデータブロックは影響を受けない。このように、本発明のこの実施例のファイルマイグレーション方法を使用することにより、マイグレーションされるファイルのユーザアクセスはできる限り影響を受けず、これにより、ユーザ体験を改善する。
ターゲットファイルの1つのデータブロックをマイグレーションすることが、図5に示すファイルマイグレーション方法を説明する例として使用される。ターゲットファイルの全てのデータブロックのマイグレーションが同じように完了した後に、ターゲットファイルの単位でのデフラグ作業も完了する。
ディスク空間のデフラグ作業の単位は、ファイルでもよく、ディレクトリでもよい。ディレクトリの単位でのデフラグ手順は、図5に示すファイルの単位でのデフラグ手順と同様であり、ここでは詳細について再び説明しない。
更に、ストレージデバイス20に記憶された全てのファイルも、ディスク空間のデフラグ作業の単位として使用されてもよい。このシナリオでは、図5に示す方法の手順は、全てのファイルのマイグレーションが完了するまで循環的に実行されてもよい。或いは、システムリソースを低減するために、ステップS301Aにおいて、全てのファイルのメタデータ(すなわち、図4に示すファイルシステムに対応するB+ツリー)のスナップショットが取得されてもよく、全てのデータブロックのマイグレーションが完了するまで、スナップショットに記録された各ファイルの各データブロックのKVが順次に取得される。この具体的な手順は、図5に示す実施例のものと同様であり、ここでは詳細について再び説明しない。
図3を参照して、以下に、本発明の実施例によるファイルマイグレーション装置を説明する。この装置は、ストレージデバイスに位置し、ストレージデバイスは、ターゲットファイルを記憶し、ターゲットファイルは、複数のデータブロックを含む。ファイルマイグレーション装置は、図3に示すファイルシステム210と同じ構成を有する。具体的に、ファイルマイグレーション装置は、デフラグモジュール214を含み、デフラグモジュール214は、スナップショット取得モジュール2140と、アドレスマッピングモジュール2145と、マイグレーションモジュール2144とを含む。
スナップショット取得モジュール2140は、ターゲットファイルのメタデータのスナップショットを取得するように構成され、スナップショットは、複数のデータブロックの論理アドレス及び複数のデータブロックの第1の書き込み時点を含み、第1の書き込み時点は、スナップショットに記録された、データブロックをストレージデバイスに書き込む時点を示す。
アドレスマッピングモジュール2145は、ターゲットファイルのメタデータのスナップショット及びターゲットファイルのメタデータを記憶するように構成される。
スナップショット取得モジュール2140は、複数のデータブロックの論理アドレス及び複数のデータブロックの第1の書き込み時点から、ターゲットデータブロックの論理アドレス及びターゲットデータブロックの第1の書き込み時点を識別するように更に構成される。
マイグレーションモジュール2144は、ターゲットデータブロックの論理アドレスに従って、アドレスマッピングモジュールに記憶されたターゲットファイルのメタデータからターゲットデータブロックの論理アドレスに対応する第2の書き込み時点を取得するように構成され、ターゲットファイルのメタデータは、ターゲットデータブロックの論理アドレス及び第2の書き込み時点を含み、第2の書き込み時点は、ターゲットデータブロックをストレージデバイスに書き込む最新の時点を示す。
マイグレーションモジュール2144は、第1の書き込み時点が第2の書き込み時点と同じであると決定された場合、ターゲットデータブロックを予め割り当てられた連続的なストレージ空間にマイグレーションするように更に構成される。
任意選択で、ファイルマイグレーション装置は、連続的なストレージ空間を予め割り当てるように構成された空間管理モジュール212を更に含み、ストレージ空間のサイズは、ターゲットファイルのサイズ未満ではない。
任意選択で、マイグレーションモジュール2144は、ストレージ空間において物理アドレスをターゲットデータブロックに割り当てるように更に構成される。マイグレーションモジュール2144は、ストレージ空間において物理アドレスがターゲットデータブロックに割り当てられた後に、物理アドレスと、ターゲットデータブロックを物理アドレスに対応するストレージ空間に書き込む時点とを、ターゲットファイルのメタデータに記憶するように更に構成される。
任意選択で、マイグレーションモジュール2144は、ターゲットデータブロックの論理アドレスに対応する第2の書き込み時点が取得された後、且つ、物理アドレスと、ターゲットデータブロックを物理アドレスに対応するストレージ空間に書き込む時点とがターゲットファイルのメタデータに記憶される前に、ターゲットデータブロックの論理アドレス及び第2の書き込み時点が変更できないように、ターゲットデータブロックの論理アドレス及び第2の書き込み時点においてロック動作を実行するように更に構成される。
任意選択で、デフラグモジュール214は、トリガー2142を更に含む。
トリガー2142は、予め設定された時点を設定するように或いはファイルマイグレーション命令を受信するように構成される。
対応して、スナップショット取得モジュール2140は、予め設定された時点が到達した場合、又はファイルマイグレーション命令が受信された場合、ターゲットファイルのメタデータのスナップショットを取得するように具体的に構成される。
図3を参照して、以下に、どのようにモジュールがデフラグ作業を実現するために相互に協調するかを説明するための具体的な例を使用する。
図7A及び図7Bを参照すると、図7A及び図7Bは、ファイルの単位でのデフラグの概略フローチャートである。以下のステップに記載するファイルは、図5に示すファイルマイグレーション手順におけるターゲットファイルでもよく、以下のステップに記載するモジュールの定義及び機能は、図3に示すモジュールのものと同じである。図7A及び図7Bに示すように、この方法は以下を含む。
ステップS401:デフラグタスクが定期的にトリガーされる。
例えば、ユーザは、タイマを使用することによりデフラグタスクを定期的にトリガーしてもよく、或いは、ユーザは、デフラグタスクを手動で開始する。
ステップS402:トリガー2142は、整理及び制御モジュール2143に対してデフラグタスクを開始するように命令するために、命令を整理及び制御モジュール2143に送出する。
ステップS403:整理及び制御モジュール2143は、ファイルのメタデータを求めてアドレスマッピングモジュール2145に記憶されたアドレスマッピングツリーを検索することを要求するために、クエリ命令をアドレスマッピングモジュール2145に送出する。
具体的に、アドレスマッピングツリーのファイルのメタデータは、図4又は図6に示すファイルに対応するB+ツリーでもよい。
ステップS404:アドレスマッピングモジュール2145は、ファイルのメタデータについての情報を整理及び制御モジュール2143に返信する。この情報は、ファイルシステムにおけるファイルのメタデータの位置情報でもよい。
ステップS405:整理及び制御モジュール2143は、ファイルのメタデータのスナップショットを生成することを要求するために、スナップショット生成命令をスナップショットアダプタ2141に送出する。スナップショット生成命令は、ファイルのメタデータについての情報を含んでもよい。
ステップS406:スナップショットアダプタ2141は、スナップショット生成命令をスナップショットモジュール211に転送する。
ステップS407:スナップショットモジュール211は、ファイルのメタデータのスナップショットを生成してスナップショットをアドレスマッピングモジュール2145に記憶するために、アドレスマッピングモジュール2145にアクセスする。
具体的に、スナップショットモジュール211は、ファイルのメタデータについての情報に従って、アドレスマッピングモジュール2145においてファイルのメタデータを見つけて、スナップショットを生成してもよい。スナップショットを生成する方式については、図5に示すファイルマイグレーション手順のステップS301Aの説明を参照し、ここでは詳細について再び説明しない。
ステップS408:アドレスマッピングモジュール2145は、ファイルのメタデータのスナップショットが成功して生成及び記憶されたことを示すために、スナップショット生成命令の応答要求をスナップショットモジュール211に返信する。
更に、応答要求は、スナップショットについての情報を含み、スナップショットについての情報は、アドレスマッピングモジュール2145に記憶されたスナップショットのアドレスのような情報を含む。
ステップS409:スナップショットモジュール211は、ファイルのメタデータのスナップショットが成功して生成及び記憶されたことを示すために、スナップショット生成命令の応答要求をスナップショットアダプタ2141に返信する。
更に、応答要求は、ステップS408におけるスナップショットについての情報を含む。
ステップS410:スナップショットアダプタ2141は、スナップショットについての情報を記憶する。
ステップS411:スナップショットアダプタ2141は、スナップショットが成功して生成及び記憶されたことを示すために、スナップショット生成命令の応答要求を整理及び制御モジュール2143に返信する。
ステップS412:整理及び制御モジュール2143は、ファイルマイグレーション命令をマイグレーションモジュール2144に送出する。
ステップS413:マイグレーションモジュール2144は、連続的なストレージ空間を申請するために、空間申請命令を空間管理モジュール212に送出する。連続的なストレージ空間のサイズは、ファイルのサイズ未満ではない。
具体的に、このステップの実現については、図5に示すファイルマイグレーション手順のステップS303の説明を参照し、ここでは詳細について再び説明しない。
ステップS414:空間管理モジュール212は、ストレージ空間が成功して割り当てられたことを示すために、空間割り当て命令の応答要求をマイグレーションモジュール2144に返信する。
ステップS415:マイグレーションモジュール2144は、スナップショットをスキャニングすることを要求するために、スキャニング要求をスナップショットアダプタ2141に送出する。
ステップS416:スナップショットアダプタ2141は、第1のKVを取得するために、クエリ命令をアドレスマッピングモジュール2145に送出する。
具体的に、クエリ命令は、スナップショットについての情報を含む。スナップショットについての情報は、アドレスマッピングモジュール2145に記憶されたスナップショットのアドレスを含み、従って、アドレスマッピングモジュール2145は、アドレスに従ってファイルのメタデータのスナップショットをスナップショットアダプタ2141に送出してもよい。図5に示す実施例のステップS301Aにおいて、ファイルのメタデータのスナップショットは、スナップショットに対応するB+ツリーを示し、スナップショットアダプタ2141は、第1のデータブロックのKV(略して第1のKV)を取得するために、B+ツリーのルートノードから検索を開始してもよいことが理解され得る。データブロックのKVについては、図5に示すファイルマイグレーション手順のステップS301Aにおけるターゲットデータブロックに対応するKVの説明を参照し、ここでは詳細について再び説明しない。
ステップS417:スナップショットアダプタ2141は、第1のKVをマイグレーションモジュール2144に送出する。
ステップS418:マイグレーションモジュール2144は、ファイルのメタデータのKVにおいてロック動作を実行する。
ステップS419:マイグレーションモジュール2144は、ファイルのメタデータのKVを取得するために、クエリ命令をアドレスマッピングモジュール2145に送出する。
第1のKVのKeyフィールドは、論理アドレスを記憶し、従って、マイグレーションモジュール2144は、論理アドレスに対応するファイルのメタデータのKVを取得するために、論理アドレスに従ってアドレスマッピングモジュール2145に問い合わせてもよい。
詳細については、図5に示すファイルマイグレーション手順のステップS302の説明を参照し、ここでは詳細について再び説明しない。
ステップS420:アドレスマッピングモジュール2145は、取得された論理アドレスに対応するファイルのメタデータのKVをマイグレーションモジュール2144に返信する。
ステップS421:マイグレーションモジュール2144は、第1の書き込み時点が第2の書き込み時点と同じであるか否かを決定する。
詳細については、図5に示すファイルマイグレーション手順のステップS303の説明を参照し、ここでは詳細について再び説明しない。
ステップS422:第1の書き込み時点及び第2の書き込み時点が同じである場合、マイグレーションモジュール2144は、ファイルのメタデータを更新するために、更新命令をアドレスマッピングモジュール2145に送出する。
詳細については、図5に示すファイルマイグレーション手順のステップS304の説明を参照し、ここでは詳細について再び説明しない。
ステップS423:アドレスマッピングモジュール2145は、ファイルのメタデータが成功して更新されたことを示すために、更新命令の応答要求をマイグレーションモジュール2144に返信する。
ステップS424:マイグレーションモジュール2144は、ファイルのメタデータのKVにおいてロック解除動作を実行する。
詳細については、図5に示すファイルマイグレーション手順のステップS304の説明を参照し、ここでは詳細について再び説明しない。
更に、第1の書き込み時点及び第2の書き込み時点が異なる場合、ステップS425:KVにおいて動作を実行しないことを実行し、ステップS426:KVをロック解除することを実行する。
ステップS416からステップS426は、全てのKVが処理されるまで循環的に実行される点に留意すべきである。
全てのKVが処理された後に、ステップS427:スナップショットアダプタ2141がスキャニング完了命令をマイグレーションモジュール2144に送出することを実行する。
ステップS428:マイグレーションモジュール2144は、ファイルマイグレーションが完了したことを整理及び制御モジュール2143にフィードバックする。
ステップS429:整理及び制御モジュール2143は、スナップショット削除命令をスナップショットアダプタ2141に送出する。
ステップS430:スナップショットアダプタ2141は、ファイルのメタデータのスナップショットを削除するために、スナップショット削除命令をスナップショットモジュール211に転送する。
本発明のこの実施例では、ストレージデバイスは、ターゲットファイルのメタデータのスナップショットを取得し、スナップショットは、複数のデータブロックの論理アドレス及び第1の書き込み時点を含み、第1の書き込み時点は、スナップショットに記録された、データブロックをストレージデバイスに書き込む時点を示し、複数のデータブロックの論理アドレス及び複数のデータブロックの第1の書き込み時点から、ターゲットデータブロックの論理アドレス及びターゲットデータブロックの第1の書き込み時点を識別し、論理アドレスに従って、ターゲットファイルのメタデータから論理アドレスに対応する第2の書き込み時点を取得し、第2の書き込み時点は、ターゲットデータブロックをストレージデバイスに書き込む最新の時点を示し、第1の書き込み時点が第2の書き込み時点と同じである場合、これは、スナップショットが生成された後にターゲットデータブロックが変更されないことを示し、ターゲットデータブロックを予め割り当てられた連続的なストレージ空間にマイグレーションする。これにより、ディスクデフラグの目的を達成する。更に、本発明のこの実施例では、ターゲットファイルは、マイグレーション処理中にロックされる必要はない。スナップショットが生成された後に変更されないデータブロックを取得するため、ターゲットファイルのメタデータのスナップショットが取得され、変更されないデータブロックは、予め割り当てられた連続的なストレージ空間にマイグレーションされる。或る程度、本発明のこの実施例のファイルマイグレーション処理中に、ユーザによるファイルアクセスは影響を受けない可能性があり、これにより、ファイルアクセス効率を改善する。
当業者は、本発明の各態様又は各態様の可能な実現方式がシステム、方法又はコンピュータプログラムプロダクトとして具体的に実現されてもよいことを認識し得る。従って、本発明の各態様又は各態様の可能な実現方式は、ハードウェアのみの実施例、ソフトウェアのみの実施例(ファームウェア、常駐ソフトウェア等を含む)、又はソフトウェアとハードウェアとの組み合わせの実施例の形式を使用してもよい。これらは、ここでは一律に“回路”、“モジュール”又は“システム”と呼ばれる。更に、本発明の各態様又は各態様の可能な実現方式は、コンピュータプログラムプロダクトの形式になってもよい。コンピュータプログラムプロダクトは、コンピュータ読み取り可能な媒体に記憶されたコンピュータ読み取り可能なプログラムコードを示す。
コンピュータ読み取り可能な媒体は、コンピュータ読み取り可能な信号媒体又はコンピュータ読み取り可能な記憶媒体でもよい。コンピュータ読み取り可能な記憶媒体は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可能読み取り専用メモリ(EPROM又はフラッシュメモリ)、光ファイバ及びコンパクトディスク読み取り専用メモリ(CD-ROM)のような、電子、磁気、光学、電磁気、赤外線若しくは半導体システム、デバイス若しくは装置、又はこれらのいずれか適切な組み合わせを含み、これらに限定されない。
コンピュータのプロセッサは、コンピュータ読み取り可能な媒体に記憶されたコンピュータ読み取り可能なプログラムコードを読み取り、これにより、プロセッサは、フローチャートの各ステップ又はステップの組み合わせで指定された機能及び動作を実行することができ、ブロック図の各ブロック又はブロックの組み合わせで指定された機能及び動作を実現するように装置が生成される。
全てのコンピュータ読み取り可能なプログラムコードは、ユーザコンピュータで実行されてもよく、いくつかがスタンドアローンのソフトウェアパッケージとしてユーザコンピュータで実行されてもよく、いくつかがリモートコンピュータで実行されつつ、いくつかがユーザのコンピュータで実行されてもよい。或いは、全てのコードがリモートコンピュータ又はサーバで実行されてもよい。また、或る別の実現対策では、フローチャートの各ステップ又はブロック図の各ブロックで指定された機能は、図示の順序で行われなくてもよい点に留意すべきである。例えば、関与する機能に依存する図面の2つの連続するステップ又は2つのブロックは、実際に実質的に同時に実行されてもよく、これらのブロックは場合によって逆の順序で実行されてもよい。
当業者は、この明細書に開示された実施例に記載の例と組み合わせて、ユニット及びアルゴリズムのステップが電子ハードウェア又はコンピュータソフトウェアと電子ハードウェアとの組み合わせにより実現されてもよいことを認識し得る。機能がハードウェアにより実行されるかソフトウェアにより実行されるかは、技術的対策の特定の用途及び設計上の制約条件に依存する。当業者は、特定の用途毎に記載の機能を実現するために異なる方法を使用してもよいが、この実現は、本発明の範囲を超えるものとして考えられるべきではない。
前述の説明は、本発明の単に具体的な実現方式に過ぎず、本発明の保護範囲を限定することを意図するものではない。本発明に開示された技術的範囲内で当業者により容易に把握される如何なる変更又は置換も、本発明の保護範囲内に入るものとする。従って、本発明の保護範囲は、特許請求の範囲の保護範囲に従うものとする。

Claims (18)

  1. ファイルマイグレーション方法であり、前記方法は、ストレージデバイスに適用され、前記ストレージデバイスは、ターゲットファイルを記憶し、前記ターゲットファイルは、複数のデータブロックを有する方法であって、
    前記ストレージデバイスにより、前記ターゲットファイルのメタデータのスナップショットを取得するステップであり、前記スナップショットは、前記複数のデータブロックの論理アドレス及び前記複数のデータブロックの第1の書き込み時点を有し、前記第1の書き込み時点は、前記スナップショットに記録された、前記データブロックを前記ストレージデバイスに書き込む時点を示すステップと、
    前記複数のデータブロックの前記論理アドレス及び前記複数のデータブロックの前記第1の書き込み時点から、ターゲットデータブロックの論理アドレス及び前記ターゲットデータブロックの第1の書き込み時点を識別するステップと、
    前記ターゲットデータブロックの前記論理アドレスに従って、前記ターゲットファイルの前記メタデータから前記ターゲットデータブロックの前記論理アドレスに対応する第2の書き込み時点を取得するステップであり、前記ターゲットファイルの前記メタデータは、前記ターゲットデータブロックの前記論理アドレス及び前記第2の書き込み時点を有し、前記第2の書き込み時点は、前記ターゲットデータブロックを前記ストレージデバイスに書き込む最新の時点を示すステップと、
    前記第1の書き込み時点が前記第2の書き込み時点と同じであると決定された場合、前記ターゲットデータブロックを予め割り当てられた連続的なストレージ空間にマイグレーションするステップと
    を有する方法。
  2. 前記連続的なストレージ空間を予め割り当てるステップであり、前記ストレージ空間のサイズは、前記ターゲットファイルのサイズ未満ではないステップを更に有する、請求項1に記載の方法。
  3. 前記ストレージ空間において物理アドレスを前記ターゲットデータブロックに割り当てるステップを更に有し、
    前記ターゲットデータブロックを予め割り当てられた連続的なストレージ空間にマイグレーションするステップは、前記ターゲットデータブロックを前記物理アドレスに対応するストレージ空間に書き込むステップを有する、請求項1又は2に記載の方法。
  4. 前記ストレージ空間において物理アドレスを前記ターゲットデータブロックに割り当てた後に、
    前記物理アドレスと、前記ターゲットデータブロックを前記物理アドレスに対応する前記ストレージ空間に書き込む時点とを、前記ターゲットファイルの前記メタデータに記憶するステップを更に有する、請求項3に記載の方法。
  5. 前記ターゲットデータブロックの前記論理アドレスに対応する前記第2の書き込み時点が、前記ターゲットデータブロックの前記論理アドレスに従って、前記ターゲットファイルの前記メタデータから取得された場合、
    前記ターゲットデータブロックの前記論理アドレスに対応する前記第2の書き込み時点が取得された後、且つ、前記物理アドレスと、前記ターゲットデータブロックを前記物理アドレスに対応する前記ストレージ空間に書き込む前記時点とが前記ターゲットファイルの前記メタデータに記憶される前に、前記ターゲットデータブロックの前記論理アドレス及び前記第2の書き込み時点が変更できないように、前記ターゲットデータブロックの前記論理アドレス及び前記第2の書き込み時点においてロック動作を実行するステップを更に有する、請求項4に記載の方法。
  6. 前記ストレージデバイスにより、前記ターゲットファイルのメタデータのスナップショットを取得するステップは、
    前記ストレージデバイスにより、予め設定された時点が到達した場合、又はファイルマイグレーション命令が受信された場合、前記ターゲットファイルの前記メタデータの前記スナップショットを取得するステップを有する、請求項1ないし5のうちいずれか1項に記載の方法。
  7. ファイルマイグレーション装置であり、前記装置は、ストレージデバイスに位置し、前記ストレージデバイスは、ターゲットファイルを記憶し、前記ターゲットファイルは、複数のデータブロックを有し、前記装置は、デフラグモジュールを有する装置であって、
    前記デフラグモジュールは、
    前記ターゲットファイルのメタデータのスナップショットを取得するように構成されたスナップショット取得モジュールであり、前記スナップショットは、前記複数のデータブロックの論理アドレス及び前記複数のデータブロックの第1の書き込み時点を有し、前記第1の書き込み時点は、前記スナップショットに記録された、前記データブロックを前記ストレージデバイスに書き込む時点を示すスナップショット取得モジュールと、
    前記ターゲットファイルの前記メタデータの前記スナップショット及び前記ターゲットファイルの前記メタデータを記憶するように構成されたアドレスマッピングモジュールと
    を有し、
    前記スナップショット取得モジュールは、前記複数のデータブロックの前記論理アドレス及び前記複数のデータブロックの前記第1の書き込み時点から、ターゲットデータブロックの論理アドレス及び前記ターゲットデータブロックの第1の書き込み時点を識別するように更に構成され、
    前記デフラグモジュールは、
    前記ターゲットデータブロックの前記論理アドレスに従って、前記アドレスマッピングモジュールに記憶された前記ターゲットファイルの前記メタデータから前記ターゲットデータブロックの前記論理アドレスに対応する第2の書き込み時点を取得するように構成されたマイグレーションモジュールであり、前記ターゲットファイルの前記メタデータは、前記ターゲットデータブロックの前記論理アドレス及び前記第2の書き込み時点を有し、前記第2の書き込み時点は、前記ターゲットデータブロックを前記ストレージデバイスに書き込む最新の時点を示すマイグレーションモジュールを有し、
    前記マイグレーションモジュールは、前記第1の書き込み時点が前記第2の書き込み時点と同じであると決定された場合、前記ターゲットデータブロックを予め割り当てられた連続的なストレージ空間にマイグレーションするように更に構成される装置。
  8. 前記ファイルマイグレーション装置は、前記連続的なストレージ空間を予め割り当てるように構成された空間管理モジュールであり、前記ストレージ空間のサイズは、前記ターゲットファイルのサイズ未満ではない空間管理モジュールを更に有する、請求項7に記載の装置。
  9. 前記マイグレーションモジュールは、前記ストレージ空間において物理アドレスを前記ターゲットデータブロックに割り当てるように更に構成され、
    前記マイグレーションモジュールは、前記ターゲットデータブロックを前記物理アドレスに対応するストレージ空間に書き込むように構成される、請求項7又は8に記載の装置。
  10. 前記マイグレーションモジュールは、前記ストレージ空間において前記物理アドレスが前記ターゲットデータブロックに割り当てられた後に、前記物理アドレスと、前記ターゲットデータブロックを前記物理アドレスに対応する前記ストレージ空間に書き込む時点とを、前記ターゲットファイルの前記メタデータに記憶するように更に構成される、請求項9に記載の装置。
  11. 前記マイグレーションモジュールは、前記ターゲットデータブロックの前記論理アドレスに対応する前記第2の書き込み時点が取得された後、且つ、前記物理アドレスと、前記ターゲットデータブロックを前記物理アドレスに対応する前記ストレージ空間に書き込む前記時点とが前記ターゲットファイルの前記メタデータに記憶される前に、前記ターゲットデータブロックの前記論理アドレス及び前記第2の書き込み時点が変更できないように、前記ターゲットデータブロックの前記論理アドレス及び前記第2の書き込み時点においてロック動作を実行するように更に構成される、請求項10に記載の装置。
  12. 前記デフラグモジュールは、トリガーを更に有し、
    前記トリガーは、予め設定された時点を設定するように或いはファイルマイグレーション命令を受信するように構成され、
    前記スナップショット取得モジュールは、前記予め設定された時点が到達した場合、又は前記ファイルマイグレーション命令が受信された場合、前記ターゲットファイルの前記メタデータの前記スナップショットを取得するように構成される、請求項7ないし11のうちいずれか1項に記載の装置。
  13. ストレージデバイスであり、前記ストレージデバイスは、コントローラとディスクとを有し、前記コントローラは、プロセッサと通信インタフェースとを有するストレージデバイスであって、
    前記通信インタフェースは、前記ディスクと通信するように構成され、
    前記プロセッサは、
    ターゲットファイルのメタデータのスナップショットを取得し、前記スナップショットは、複数のデータブロックの論理アドレス及び前記複数のデータブロックの第1の書き込み時点を有し、前記第1の書き込み時点は、前記スナップショットに記録された、前記データブロックを前記ディスクに書き込む時点を示し、
    前記複数のデータブロックの前記論理アドレス及び前記複数のデータブロックの前記第1の書き込み時点から、ターゲットデータブロックの論理アドレス及び前記ターゲットデータブロックの第1の書き込み時点を識別し、
    前記ターゲットデータブロックの前記論理アドレスに従って、前記ターゲットファイルの前記メタデータから前記ターゲットデータブロックの前記論理アドレスに対応する第2の書き込み時点を取得し、前記ターゲットファイルの前記メタデータは、前記ターゲットデータブロックの前記論理アドレス及び前記第2の書き込み時点を有し、前記第2の書き込み時点は、前記ターゲットデータブロックを前記ディスクに書き込む最新の時点を示し、
    前記第1の書き込み時点が前記第2の書き込み時点と同じであると決定された場合、前記ターゲットデータブロックを予め割り当てられた連続的なストレージ空間にマイグレーションするように構成されるストレージデバイス。
  14. 前記プロセッサは、前記連続的なストレージ空間を予め割り当てるように更に構成され、前記ストレージ空間のサイズは、前記ターゲットファイルのサイズ未満ではない、請求項13に記載のストレージデバイス。
  15. 前記プロセッサは、前記ストレージ空間において物理アドレスを前記ターゲットデータブロックに割り当てるように更に構成され、
    前記プロセッサは、前記ターゲットデータブロックを前記物理アドレスに対応するストレージ空間に書き込むように構成される、請求項13又は14に記載のストレージデバイス。
  16. 前記プロセッサは、前記ストレージ空間において前記物理アドレスが前記ターゲットデータブロックに割り当てられた後に、前記物理アドレスと、前記ターゲットデータブロックを前記物理アドレスに対応する前記ストレージ空間に書き込む時点とを、前記ターゲットファイルの前記メタデータに記憶するように更に構成される、請求項15に記載のストレージデバイス。
  17. 前記プロセッサは、前記ターゲットデータブロックの前記論理アドレスに対応する前記第2の書き込み時点が、前記ターゲットデータブロックの前記論理アドレスに従って、前記ターゲットファイルの前記メタデータから取得された場合、前記ターゲットデータブロックの前記論理アドレスに対応する前記第2の書き込み時点が取得された後、且つ、前記物理アドレスと、前記ターゲットデータブロックを前記物理アドレスに対応する前記ストレージ空間に書き込む前記時点とが前記ターゲットファイルの前記メタデータに記憶される前に、前記ターゲットデータブロックの前記論理アドレス及び前記第2の書き込み時点が変更できないように、前記ターゲットデータブロックの前記論理アドレス及び前記第2の書き込み時点においてロック動作を実行するように更に構成される、請求項16に記載のストレージデバイス。
  18. 前記プロセッサは、予め設定された時点が到達した場合、又はファイルマイグレーション命令が受信された場合、前記ストレージデバイスにより前記ターゲットファイルの前記メタデータの前記スナップショットを取得するように構成される、請求項13ないし17のうちいずれか1項に記載のストレージデバイス。
JP2016549609A 2014-09-26 2014-09-26 ファイルマイグレーション方法及び装置、並びにストレージデバイス Active JP6122557B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/087572 WO2016045096A1 (zh) 2014-09-26 2014-09-26 一种文件迁移方法、装置和存储设备

Publications (2)

Publication Number Publication Date
JP2016535910A JP2016535910A (ja) 2016-11-17
JP6122557B2 true JP6122557B2 (ja) 2017-04-26

Family

ID=55580143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016549609A Active JP6122557B2 (ja) 2014-09-26 2014-09-26 ファイルマイグレーション方法及び装置、並びにストレージデバイス

Country Status (5)

Country Link
US (1) US10417186B2 (ja)
EP (1) EP3035197B1 (ja)
JP (1) JP6122557B2 (ja)
CN (1) CN105637491B (ja)
WO (1) WO2016045096A1 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9881040B2 (en) * 2015-08-20 2018-01-30 Vmware, Inc. Tracking data of virtual disk snapshots using tree data structures
US11726979B2 (en) 2016-09-13 2023-08-15 Oracle International Corporation Determining a chronological order of transactions executed in relation to an object stored in a storage system
CN106648909A (zh) * 2016-10-13 2017-05-10 华为技术有限公司 一种磁盘锁的管理方法、装置和系统
US10860534B2 (en) 2016-10-27 2020-12-08 Oracle International Corporation Executing a conditional command on an object stored in a storage system
US10956051B2 (en) * 2016-10-31 2021-03-23 Oracle International Corporation Data-packed storage containers for streamlined access and migration
US10275177B2 (en) * 2016-10-31 2019-04-30 Oracle International Corporation Data layout schemas for seamless data migration
CN107229429B (zh) * 2017-06-27 2020-06-16 苏州浪潮智能科技有限公司 一种存储空间管理方法及装置
CN110915161B (zh) * 2017-07-12 2023-05-02 惠普发展公司,有限责任合伙企业 计算设备、存储器设备迁移方法和系统
US11194760B1 (en) * 2017-07-28 2021-12-07 EMC IP Holding Company LLC Fast object snapshot via background processing
KR102406666B1 (ko) 2017-09-20 2022-06-08 삼성전자주식회사 스냅샷 기능을 지원하는 키-밸류 스토리지 장치 및 상기 키-밸류 스토리지 장치의 동작 방법
CN107643880B (zh) * 2017-09-27 2021-06-29 郑州云海信息技术有限公司 基于分布式文件系统的文件数据迁移的方法及装置
US10282099B1 (en) * 2017-10-27 2019-05-07 Netapp, Inc. Intelligent snapshot tiering
CN110018988B (zh) * 2017-11-08 2023-04-04 阿里巴巴集团控股有限公司 快照删除方法、处理方法、装置及系统
CN108959486B (zh) * 2018-06-22 2023-04-18 平安科技(深圳)有限公司 审计字段信息获取方法、装置、计算机设备和存储介质
US10254996B1 (en) 2018-08-10 2019-04-09 Cohesity, Inc. Fast migration of metadata
CN109359085A (zh) * 2018-08-23 2019-02-19 平安科技(深圳)有限公司 文件迁移方法、装置、计算机设备及存储介质
US10872059B2 (en) * 2018-08-25 2020-12-22 Vmware, Inc. System and method for managing snapshots of storage objects for snapshot deletions
US10877849B2 (en) * 2018-08-25 2020-12-29 Vmware, Inc. System and method for managing different types of snapshots of storage objects
CN111045857B (zh) * 2018-10-12 2023-11-28 伊姆西Ip控股有限责任公司 数据备份和恢复的方法、电子设备和计算机可读存储介质
CN109918208A (zh) * 2019-02-28 2019-06-21 新华三技术有限公司成都分公司 一种io操作处理方法及装置
CN111007990B (zh) * 2019-12-24 2023-09-19 曙光信息产业(北京)有限公司 一种对快照系统中数据块引用进行快速定位的定位方法
CN111723056B (zh) * 2020-06-09 2024-04-30 北京青云科技股份有限公司 小文件的处理方法、装置、设备和存储介质
CN111857593A (zh) * 2020-07-21 2020-10-30 星辰天合(北京)数据科技有限公司 提高快照数据和克隆数据读写速度的方法与装置
CN112214175A (zh) * 2020-10-21 2021-01-12 重庆紫光华山智安科技有限公司 数据处理方法、装置、数据节点及存储介质
CN112463058B (zh) * 2020-11-27 2023-04-07 杭州海康威视系统技术有限公司 一种碎片数据整理方法、装置及存储节点
CN112988065B (zh) * 2021-02-08 2023-11-17 北京星网锐捷网络技术有限公司 数据迁移方法、装置、设备及存储介质
CN114356224B (zh) * 2021-12-15 2024-04-19 广州致存科技有限责任公司 文件地址优化方法、终端、服务器及计算机可读存储介质
CN115629716B (zh) * 2022-12-07 2023-04-11 广东睿江云计算股份有限公司 基于磁盘镜像文件的碎片整理方法及碎片整理系统

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530850A (en) 1993-10-25 1996-06-25 International Business Machines Corporation Data storage library array with log-structured file system which allows simultaneous write and garbage collection
US7107385B2 (en) 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
JP4257785B2 (ja) * 2003-04-22 2009-04-22 株式会社日立製作所 キャッシュストレージ装置
US7822715B2 (en) * 2004-11-16 2010-10-26 Petruzzo Stephen E Data mirroring method
CN101369967A (zh) 2007-08-14 2009-02-18 华为技术有限公司 发送及接收数据的方法、基站、终端
CN101576890B (zh) 2008-05-08 2015-06-17 深圳市朗科科技股份有限公司 一种新型碎片整理方法和系统
JP5141402B2 (ja) 2008-06-26 2013-02-13 富士通株式会社 ストレージシステム,コピー制御方法およびコピー制御装置
JP5587884B2 (ja) 2008-08-06 2014-09-10 モービック・ネットワークス 無線アクセスネットワーク(ran)におけるコンテンツのキャッシング
CN101520743B (zh) * 2009-04-17 2010-12-08 杭州华三通信技术有限公司 基于写时拷贝的数据存储方法及设备
US8285959B2 (en) * 2010-01-25 2012-10-09 Netapp, Inc. Method for placement of virtual volume hot-spots in storage pools using ongoing load measurements and ranking
US8886900B2 (en) * 2010-11-22 2014-11-11 International Business Machines Corporation Legacy data management
US8639900B2 (en) * 2011-05-25 2014-01-28 International Business Machines Corporation Defragmentation of data storage pools
FR2980285B1 (fr) * 2011-09-15 2013-11-15 Maxim Integrated Products Systemes et procedes de gestion de cles cryptographiques dans un microcontroleur securise
CN103827970B (zh) * 2012-09-25 2016-05-18 株式会社东芝 对固态驱动器再配置数据的存储装置、存储控制器以及方法
US10019459B1 (en) * 2012-12-19 2018-07-10 Springpath, LLC Distributed deduplication in a distributed system of hybrid storage and compute nodes
US9891860B1 (en) * 2013-06-28 2018-02-13 EMC IP Holding Company, LLC. Managing copying of data in storage systems
CN103761053B (zh) * 2013-12-30 2017-08-25 华为技术有限公司 一种数据处理方法和装置
US9367395B1 (en) * 2014-03-31 2016-06-14 Emc Corporation Managing data inconsistencies in storage systems
CN104159249B (zh) 2014-07-30 2018-05-18 华为技术有限公司 一种业务数据管理的方法、装置及系统

Also Published As

Publication number Publication date
EP3035197B1 (en) 2019-03-20
WO2016045096A1 (zh) 2016-03-31
US10417186B2 (en) 2019-09-17
CN105637491A (zh) 2016-06-01
CN105637491B (zh) 2017-06-20
EP3035197A1 (en) 2016-06-22
EP3035197A4 (en) 2016-11-16
JP2016535910A (ja) 2016-11-17
US20160210302A1 (en) 2016-07-21

Similar Documents

Publication Publication Date Title
JP6122557B2 (ja) ファイルマイグレーション方法及び装置、並びにストレージデバイス
US11799959B2 (en) Data processing method, apparatus, and system
US20200226100A1 (en) Metadata query method and apparatus
TWI533152B (zh) 資料儲存裝置及方法
CN110321301B (zh) 一种数据处理的方法及装置
KR102440370B1 (ko) Ssd 내 핫 데이터 및 스트림을 식별하기 위한 시스템 및 방법
JP6976132B2 (ja) 記憶空間を解放するための分散データ並列方法
US10235286B1 (en) Data storage system dynamically re-marking slices for reclamation from internal file system to pool storage
US9612766B2 (en) Systems and methods for shadow migration progress estimation
JP6268116B2 (ja) データ処理装置、データ処理方法およびコンピュータプログラム
JP2013246582A (ja) ストレージ装置およびストレージ装置の制御方法
US10732904B2 (en) Method, system and computer program product for managing storage system
CN106462491B (zh) 一种存储数据的管理方法、存储管理器及存储系统
US9934248B2 (en) Computer system and data management method
US10936195B2 (en) Data storage system using in-memory structure for reclaiming space from internal file system to pool storage
US20140304226A1 (en) Storage system
CN115756838A (zh) 内存释放、内存恢复方法、装置、计算机设备及存储介质
JP2013088920A (ja) 計算機システム及びデータ管理方法
US20210133158A1 (en) Methods and systems for logging data transactions and managing hash tables
US10936502B2 (en) Shadow address space for sharing storage
US10936543B1 (en) Metadata protected sparse block set for SSD cache space management

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170224

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170331

R150 Certificate of patent or registration of utility model

Ref document number: 6122557

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