JP2019095925A - Information processing device and information processing program - Google Patents

Information processing device and information processing program Download PDF

Info

Publication number
JP2019095925A
JP2019095925A JP2017222952A JP2017222952A JP2019095925A JP 2019095925 A JP2019095925 A JP 2019095925A JP 2017222952 A JP2017222952 A JP 2017222952A JP 2017222952 A JP2017222952 A JP 2017222952A JP 2019095925 A JP2019095925 A JP 2019095925A
Authority
JP
Japan
Prior art keywords
information
data
file
group
chunk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017222952A
Other languages
Japanese (ja)
Other versions
JP7007565B2 (en
Inventor
祐司 野村
Yuji Nomura
祐司 野村
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017222952A priority Critical patent/JP7007565B2/en
Priority to US16/172,909 priority patent/US10719556B2/en
Priority to EP18203350.6A priority patent/EP3495963B1/en
Publication of JP2019095925A publication Critical patent/JP2019095925A/en
Application granted granted Critical
Publication of JP7007565B2 publication Critical patent/JP7007565B2/en
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/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/1827Management specifically adapted to NAS
    • 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
    • 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/23Updating
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Landscapes

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

Abstract

To surely reflect update contents of data onto a transfer destination.SOLUTION: A control unit 1b is configured to, when a fist operation to a data group 3a is conducted, register operation information 4a corresponding to the data group 3a in transfer control information 4; when the data group 3a is extracted as a transfer object, temporarily hold the operation information 4a as operation information 4a1, and transfer the data group 3a to a storage device 2; when a second operation to the data group 3a during transference of the data group 3a is conducted, update the operation information 4a registered in the transfer control information 4; when the transference of the data group 3a is completed, compare the operation information 4a registered in the transfer control information 4 with the held operation information 4a1; and, when these operation information do not coincide with each other, re-transfer the data group 3a to the storage device 2.SELECTED DRAWING: Figure 1

Description

本発明は、情報処理装置および情報処理プログラムに関する。   The present invention relates to an information processing apparatus and an information processing program.

オンラインストレージサービス、クラウドストレージサービスなど、ネットワークを介してストレージ領域を提供するストレージサービスが普及している。また、このようなストレージサービスと顧客のコンピュータとの間でゲートウェイとして機能するストレージゲートウェイがある。   Storage services, such as online storage services and cloud storage services, that provide storage areas via networks are widespread. There is also a storage gateway that acts as a gateway between such storage services and the customer's computer.

例えば、クラウドストレージゲートウェイは、顧客のコンピュータとクラウドストレージシステムとの間で、書き込みデータを中継する。より具体的な例としては、クラウドストレージゲートウェイは、顧客のコンピュータからファイル単位で書き込みデータとその書き込み要求を受け付け、書き込みデータをオブジェクト単位でクラウドストレージに転送する。   For example, the cloud storage gateway relays write data between the customer's computer and the cloud storage system. As a more specific example, the cloud storage gateway receives write data and its write request in file units from the customer's computer, and transfers the write data in object units to the cloud storage.

また、関連技術の例として、オンラインストレージ上にデータを保存する次のようなファイルサーバが提案されている。このファイルサーバでは、ファイルを分割したブロックの構成やファイル構成、メタ情報が格納されるデータベースが、複数の分割データベースに分割され、分割データベースを単位としてデータベース内の情報がオンラインストレージにアップロードされる。また、各分割データベースは、その内容が更新されたか否かを示すDirtyフラグを有し、Dirtyフラグに基づいて、各分割データベースの内容がオンラインストレージへのアップロード対象かが判定される。   Also, as an example of the related art, the following file server for storing data on an online storage has been proposed. In this file server, the configuration of blocks into which the file is divided, the file configuration, and the database storing the meta information are divided into a plurality of divided databases, and information in the databases is uploaded to the online storage in units of divided databases. Each divided database has a Dirty flag indicating whether its content has been updated, and based on the Dirty flag, it is determined whether the content of each divided database is to be uploaded to the online storage.

特表2014−529111号公報Japanese Patent Application Publication No. 2014-529111 特開2012−141738号公報JP 2012-141738 A

ところで、上記のストレージゲートウェイは、ストレージサービスに転送するデータを一旦ローカルストレージに格納し、ローカルストレージに格納されたデータの中から転送すべきデータを抽出する。この処理では、ローカルストレージへのデータの格納処理と、ローカルストレージからの転送すべきデータの抽出およびその転送処理とが、非同期で行われる場合がある。   By the way, the above storage gateway temporarily stores data to be transferred to the storage service in the local storage, and extracts data to be transferred from the data stored in the local storage. In this process, the process of storing data in the local storage, and the process of extracting data to be transferred from the local storage and the process of transferring the data may be performed asynchronously.

このようなストレージゲートウェイでは、ローカルストレージに格納されたデータの中から、転送すべきデータをどのようにして高効率かつ正確に抽出するか、という点に課題がある。例えば、転送すべきデータを効率よく抽出するために、上記のDirtyフラグのような更新の有無を示すフラグを、外部ストレージに転送する単位となるデータ群ごとに記録しておく方法が考えられる。しかし、この方法では、フラグに基づいてデータ群をストレージサービスに転送している間に、ローカルストレージ内の元のデータ群が更新された場合、転送処理を実行する処理モジュールはその更新の発生を認識できない。そのため、データ群の更新内容をストレージサービスに正確に反映できない可能性がある。   In such a storage gateway, there is a problem in how to extract data to be transferred from the data stored in the local storage efficiently and accurately. For example, in order to extract data to be transferred efficiently, it is conceivable to record a flag indicating the presence or absence of updating, such as the above-mentioned Dirty flag, for each data group serving as a unit to be transferred to the external storage. However, in this method, when the original data group in the local storage is updated while transferring the data group to the storage service based on the flag, the processing module that executes the transfer processing generates the update I can not recognize. Therefore, there is a possibility that the updated contents of the data group can not be accurately reflected in the storage service.

なお、このような問題点は、ストレージゲートウェイに限らず、記憶されたデータを外部のストレージ装置に転送する情報処理装置において発生し得る。
1つの側面では、本発明は、データの更新内容を転送先に確実に反映させることが可能な情報処理装置および情報処理プログラムを提供することを目的とする。
Such a problem may occur not only in the storage gateway but also in an information processing apparatus which transfers stored data to an external storage apparatus.
In one aspect, the present invention aims to provide an information processing apparatus and an information processing program capable of reliably reflecting the update content of data on a transfer destination.

1つの案では、記憶部と制御部とを有する情報処理装置が提供される。この情報処理装置において、記憶部は、外部ストレージ装置に対する転送単位ごとにそれぞれ分類された複数のデータ群と、複数のデータ群のいずれかにそれぞれ対応する1以上の操作情報が登録される転送制御情報とを記憶する。制御部は、複数のデータ群のうち第1のデータ群に対する第1の操作を行うと、第1のデータ群に対応する第1の操作情報を転送制御情報に登録し、第1のデータ群が転送対象として抽出されると、第1のデータ群に対応する第1の操作情報を保持情報として一時的に保持するとともに、第1のデータ群を外部ストレージ装置に転送し、外部ストレージ装置に対する第1のデータ群の転送中に第1のデータ群に対する第2の操作を行った場合、転送制御情報に登録された第1の操作情報を更新し、外部ストレージ装置に対する第1のデータ群の転送が完了すると、転送制御情報に登録された第1の操作情報と、保持情報とを比較し、第1の操作情報と保持情報とが一致しない場合、第1の操作情報に対応する第1のデータ群を外部ストレージ装置に再転送する。   In one scheme, an information processing apparatus having a storage unit and a control unit is provided. In the information processing apparatus, the storage unit performs transfer control in which one or more operation information corresponding to one of a plurality of data groups and one of the plurality of data groups respectively classified for each transfer unit to the external storage device is registered. Store information and When the control unit performs the first operation on the first data group among the plurality of data groups, the control unit registers the first operation information corresponding to the first data group in the transfer control information, and the first data group Is extracted as a transfer target, temporarily holds the first operation information corresponding to the first data group as holding information, and transfers the first data group to the external storage device to the external storage device. When the second operation is performed on the first data group while the first data group is being transferred, the first operation information registered in the transfer control information is updated, and the first data group to the external storage device is updated. When the transfer is completed, the first operation information registered in the transfer control information is compared with the held information, and if the first operation information and the held information do not match, the first corresponding to the first operation information is generated. External data storage Re-transferred to the location.

また、1つの案では、上記の情報処理装置と同様の処理をコンピュータに実行させる情報処理プログラムが提供される。   Further, in one solution, an information processing program that causes a computer to execute the same processing as the above-described information processing apparatus is provided.

1つの側面では、データの更新内容を転送先に確実に反映させることができる。   In one aspect, data update content can be reliably reflected in the transfer destination.

第1の実施の形態に係る情報処理システムの構成例および処理例を示す図である。FIG. 2 is a diagram illustrating an exemplary configuration and an exemplary process of an information processing system according to the first embodiment. 第2の実施の形態に係る情報処理システムの構成例を示す図である。It is a figure showing an example of composition of an information processing system concerning a 2nd embodiment. クラウドストレージゲートウェイのハードウェア構成例を示すブロック図である。It is a block diagram showing the example of hardware constitutions of a cloud storage gateway. クラウドストレージゲートウェイが備える処理機能の構成例を示すブロック図である。It is a block diagram which shows the structural example of the processing function with which a cloud storage gateway is provided. ディレクトリテーブルを説明するための図である。It is a figure for demonstrating a directory table. エントリテーブルのデータ構成例を示す図である。It is a figure which shows the data structural example of an entry table. チャンクマップテーブルのデータ構成例を示す図である。It is a figure which shows the data structural example of a chunk map table. チャンクテーブルのデータ構成例を示す図である。It is a figure which shows the data structural example of a chunk table. チャンクグループテーブルのデータ構成例を示す図である。It is a figure which shows the data structural example of a chunk group table. チャンクグループの構成例を示す図である。It is a figure which shows the structural example of a chunk group. ファイルオブジェクトおよびチャンクマップオブジェクトのデータ構造の例を示す図である。It is a figure which shows the example of the data structure of a file object and a chunk map object. チャンクグループオブジェクトのデータ構造の例を示す図である。It is a figure which shows the example of the data structure of a chunk group object. 操作ログの登録およびオブジェクトの送信についての第1の処理例を示す図である。It is a figure which shows the 1st example of processing about registration of operation log, and transmission of an object. 操作ログの登録およびオブジェクトの送信についての第2の処理例を示す図である。It is a figure which shows the 2nd process example about the registration of operation log, and transmission of an object. 操作ログテーブルのデータ構成例を示す図である。It is a figure which shows the data structural example of an operation log table. ファイル操作ログの登録処理例を示す図である。FIG. 7 is a diagram illustrating an example of a registration process of a file operation log. データ操作ログの登録処理例を示す図である。It is a figure which shows the example of a registration process of a data operation log. ファイル書き込みが要求された場合のファイルシステム処理部の処理例を示すフローチャートである。It is a flowchart which shows the process example of a file system process part when file write is requested | required. ファイル作成開始処理の例を示すフローチャートである。It is a flow chart which shows an example of file creation start processing. データ書き込み処理の例を示すフローチャートである。It is a flowchart which shows the example of a data write-in process. チャンク書き込み処理の例を示すフローチャートである。It is a flowchart which shows the example of a chunk write-in process. ファイル作成完了処理の例を示すフローチャートである。It is a flowchart which shows the example of a file creation completion process. ファイル更新が要求された場合のデータ書き込み処理の例を示すフローチャートである。It is a flow chart which shows an example of data writing processing when a file update is required. クラウド転送処理部の処理例を示すフローチャートである。It is a flowchart which shows the process example of a cloud transfer process part. ファイル操作ログに基づくクラウド転送処理の例を示すフローチャート(その1)である。It is a flowchart (the 1) which shows the example of the cloud transfer process based on a file operation log. ファイル操作ログに基づくクラウド転送処理の例を示すフローチャート(その2)である。It is a flowchart (the 2) which shows the example of the cloud transfer process based on a file operation log. データ操作ログに基づくクラウド転送処理の例を示すフローチャートである。It is a flowchart which shows the example of the cloud transfer process based on a data operation log.

以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理システムの構成例および処理例を示す図である。図1に示す情報処理システムは、情報処理装置1と、情報処理装置1の外部に接続されたストレージ装置2とを有する。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
First Embodiment
FIG. 1 is a diagram illustrating a configuration example and a processing example of the information processing system according to the first embodiment. The information processing system shown in FIG. 1 includes an information processing device 1 and a storage device 2 connected to the outside of the information processing device 1.

ストレージ装置2は、情報処理装置1から転送されたデータを記憶する。なお、ストレージ装置2の記憶領域は、単体のストレージ装置によって実現されてもよいし、複数のストレージ装置によって実現されてもよい。   The storage device 2 stores data transferred from the information processing device 1. The storage area of the storage device 2 may be realized by a single storage device or may be realized by a plurality of storage devices.

情報処理装置1は、記憶部1aと制御部1bを有する。記憶部1aは、RAM(Random Access Memory)やHDD(Hard Disk Drive)など、情報処理装置1が備える記憶装置の記憶領域によって実現される。制御部1bは、例えば、情報処理装置1が備えるプロセッサとして実現される。   The information processing apparatus 1 includes a storage unit 1a and a control unit 1b. The storage unit 1 a is realized by a storage area of a storage device provided in the information processing apparatus 1, such as a random access memory (RAM) or a hard disk drive (HDD). The control unit 1 b is realized, for example, as a processor included in the information processing apparatus 1.

記憶部1aには、ストレージ装置2に転送されるデータが、ストレージ装置2に対する転送単位ごとにデータ群3a,3b,3c,・・・として分類された状態で記憶されている。また、記憶部1aには、転送制御情報4が記憶される。この転送制御情報4には、データ群3a,3b,3c,・・・のいずれかにそれぞれ対応する1以上の操作情報が登録される。   Data to be transferred to the storage device 2 is stored in the storage unit 1a in a state of being classified as data groups 3a, 3b, 3c,... For each transfer unit to the storage device 2. Further, transfer control information 4 is stored in the storage unit 1a. In the transfer control information 4, one or more pieces of operation information respectively corresponding to any of the data groups 3a, 3b, 3c,... Are registered.

制御部1bは、あるデータ群に対して操作を行うと、そのデータ群に対応する操作情報を転送制御情報4に登録する。また、制御部1bは、転送制御情報4から操作情報を取得し、取得された操作情報に対応するデータ群をストレージ装置2に転送する。これにより、制御部1bは、データ群に対する操作と、ストレージ装置2に対するデータ群の転送処理とを、非同期で実行できる。そして、制御部1bは、転送制御情報4に登録された操作情報を取得することで、ストレージ装置2に転送すべきデータ群を判別できる。なお、制御部1bは、転送制御情報4からその登録順に操作情報を取得する。   When the control unit 1 b performs an operation on a certain data group, the control unit 1 b registers operation information corresponding to the data group in the transfer control information 4. In addition, the control unit 1 b acquires operation information from the transfer control information 4 and transfers a data group corresponding to the acquired operation information to the storage device 2. Thus, the control unit 1b can asynchronously execute the operation on the data group and the transfer process of the data group to the storage device 2. Then, the control unit 1 b can determine the data group to be transferred to the storage device 2 by acquiring the operation information registered in the transfer control information 4. The control unit 1 b acquires the operation information from the transfer control information 4 in the order of registration.

以下、制御部1bの処理の具体例について説明する。
まず、制御部1bは、データ群3aに対する第1の操作を行ったとする(ステップS1)。すると、制御部1bは、操作対象であるデータ群3aに対応する操作情報4aを、転送制御情報4に登録する(ステップS2)。なお、この第1の操作とは、例えば、データ群3aに含まれるデータの少なくとも一部を更新する操作であってもよいし、データ群3a自体を新規に記憶部1aに格納する操作であってもよい。
Hereinafter, a specific example of the process of the control unit 1b will be described.
First, it is assumed that the control unit 1b performs the first operation on the data group 3a (step S1). Then, the control unit 1b registers the operation information 4a corresponding to the data group 3a which is the operation target in the transfer control information 4 (step S2). The first operation may be, for example, an operation of updating at least a part of data included in data group 3a, or an operation of newly storing data group 3a itself in storage unit 1a. May be

その後、制御部1bは、データ群3aが転送対象として抽出されると、転送制御情報4からデータ群3aに対応する操作情報4aを取得し、取得された操作情報4aを記憶部1aの一時格納領域に一時的に保持する(ステップS3)。ここでは、保持された操作情報4aを「操作情報4a1」として区別して表す。また、これとともに、制御部1bは、取得された操作情報4aに対応するデータ群3aを、ストレージ装置2に転送する(ステップS4)。   Thereafter, when data group 3a is extracted as a transfer target, control unit 1b acquires operation information 4a corresponding to data group 3a from transfer control information 4, and temporarily stores acquired operation information 4a in storage unit 1a. Temporarily hold the area (step S3). Here, the held operation information 4a is distinguished as "operation information 4a1". At the same time, the control unit 1b transfers the data group 3a corresponding to the acquired operation information 4a to the storage device 2 (step S4).

ここで、制御部1bは、ストレージ装置2へのデータ群3aの転送中に、データ群3aに対する第2の操作を行ったとする(ステップS5)。この場合、制御部1bは、転送制御情報4に登録された、操作対象のデータ群3aに対応する操作情報4aを更新する(ステップS6)。   Here, it is assumed that the control unit 1b performs a second operation on the data group 3a while transferring the data group 3a to the storage device 2 (step S5). In this case, the control unit 1b updates the operation information 4a corresponding to the operation target data group 3a registered in the transfer control information 4 (step S6).

また、制御部1bは、ストレージ装置2へのデータ群3aの転送が完了すると、この時点で転送制御情報4に登録されている操作情報4aと、保持されている操作情報4a1とを比較する(ステップS7)。ここで、操作情報4aと操作情報4a1とが一致している場合、制御部1bは、データ群3aが更新されていないと判断して、データ転送処理を終了する。このとき、例えば、制御部1bは、操作情報4aを転送制御情報4から削除する。一方、操作情報4aと操作情報4a1とが一致していない場合、制御部1bは、データ群3aが更新されたと判断して、データ群3aをストレージ装置2に対して再転送する(ステップS8)。   Further, when the transfer of the data group 3a to the storage device 2 is completed, the control unit 1b compares the operation information 4a registered in the transfer control information 4 at this time with the operation information 4a1 stored ( Step S7). Here, when the operation information 4a and the operation information 4a1 coincide with each other, the control unit 1b determines that the data group 3a is not updated, and ends the data transfer process. At this time, for example, the control unit 1 b deletes the operation information 4 a from the transfer control information 4. On the other hand, when the operation information 4a and the operation information 4a1 do not match, the control unit 1b determines that the data group 3a has been updated, and retransfers the data group 3a to the storage device 2 (step S8). .

以上のように、制御部1bは、あるデータ群のストレージ装置2への転送中にそのデータ群に対する操作を行うと、転送制御情報4に登録された、そのデータ群に対応する操作情報を更新する。また、制御部1bは、そのデータ群のストレージ装置2の転送が完了すると、転送制御情報4から再度操作情報を取得し、取得された操作情報と、転送前に保持しておいた操作情報とを比較する。この比較により、制御部1bは、データ群の転送中にそのデータ群が更新されたか否かを判断できる。そして、制御部1bは、各操作情報が一致しない場合に、データ群が更新されたと判断して、データ群をストレージ装置2に再転送する。これにより、制御部1bは、データ群の転送中にそのデータ群が更新された場合でも、データ群の更新内容をストレージ装置2に確実に反映させることができる。   As described above, when the control unit 1 b performs an operation on a data group while transferring a certain data group to the storage device 2, the control unit 1 b updates the operation information corresponding to the data group registered in the transfer control information 4. Do. Further, when the transfer of the storage device 2 of the data group is completed, the control unit 1b acquires the operation information again from the transfer control information 4, and the acquired operation information and the operation information held before the transfer Compare By this comparison, the control unit 1b can determine whether or not the data group is updated during transfer of the data group. Then, when the pieces of operation information do not match, the control unit 1b determines that the data group has been updated, and retransfers the data group to the storage device 2. Thus, even when the data group is updated during transfer of the data group, the control unit 1b can reliably reflect the updated content of the data group on the storage device 2.

〔第2の実施の形態〕
図2は、第2の実施の形態に係る情報処理システムの構成例を示す図である。図2に示す情報処理システムは、クラウドストレージゲートウェイ100、NAS(Network Attached Storage)クライアント210およびストレージシステム220を有する。クラウドストレージゲートウェイ100は、ネットワーク231を介してNASクライアント210と接続し、また、ネットワーク232を介してストレージシステム220と接続する。ネットワークは、例えばLAN(Local Area Network)であり、ネットワークは、例えばWAN(Wide Area Network)である。
Second Embodiment
FIG. 2 is a diagram showing an exemplary configuration of an information processing system according to the second embodiment. The information processing system illustrated in FIG. 2 includes a cloud storage gateway 100, a NAS (Network Attached Storage) client 210, and a storage system 220. The cloud storage gateway 100 connects to the NAS client 210 via the network 231 and also connects to the storage system 220 via the network 232. The network is, for example, a LAN (Local Area Network), and the network is, for example, a WAN (Wide Area Network).

ストレージシステム220は、ネットワーク232を介してクラウドストレージサービスを提供する。以下の説明では、ストレージシステム220が提供するクラウドストレージサービスによってサービス利用者(ここではクラウドストレージゲートウェイ100)が利用可能な記憶領域を、「クラウドストレージ」と記載する場合がある。   The storage system 220 provides cloud storage services via the network 232. In the following description, a storage area available to a service user (here, the cloud storage gateway 100) by the cloud storage service provided by the storage system 220 may be referred to as "cloud storage".

また、本実施の形態では例として、ストレージシステム220は、データがオブジェクト単位で管理されるオブジェクトストレージによって実現される。例えば、ストレージシステム220は、制御サーバ221aとストレージ装置221bとをそれぞれ含むストレージノード221を複数有する、分散型のストレージシステムとして実現される。この場合、各ストレージノード221において、制御サーバ221aはストレージ装置221bに対するアクセスを制御し、ストレージ装置221bの記憶領域によってクラウドストレージの一部が実現される。また、サービス利用者(クラウドストレージゲートウェイ100)からのオブジェクトの格納先とされるストレージノード221は、オブジェクト固有の情報に基づいて決定される。   Also, in the present embodiment, as an example, the storage system 220 is realized by an object storage in which data is managed in object units. For example, the storage system 220 is realized as a distributed storage system having a plurality of storage nodes 221 each including a control server 221a and a storage device 221b. In this case, in each storage node 221, the control server 221a controls access to the storage device 221b, and a part of the cloud storage is realized by the storage area of the storage device 221b. Further, the storage node 221 to which the object from the service user (cloud storage gateway 100) is to be stored is determined based on the information specific to the object.

一方、NASクライアント210は、クラウドストレージゲートウェイ100を、ファイルシステムによって管理される記憶領域を提供するNASサーバとして認識する。この記憶領域とは、ストレージシステム220によって提供されるクラウドストレージによる記憶領域である。そして、NASクライアント210は、例えばNFS(Network File System)プロトコルやCIFS(Common Internet File System)プロトコルにしたがって、クラウドストレージゲートウェイ100に対してファイル単位でデータの読み書きを要求する。すなわち、NASクライアント210は、クラウドストレージゲートウェイ100のNASサーバ機能により、クラウドストレージを大容量の仮想的なネットワークファイルシステムとして利用できるようになる。   On the other hand, the NAS client 210 recognizes the cloud storage gateway 100 as a NAS server that provides a storage area managed by the file system. The storage area is a storage area by cloud storage provided by the storage system 220. Then, the NAS client 210 requests the cloud storage gateway 100 to read / write data in file units in accordance with, for example, the Network File System (NFS) protocol or the Common Internet File System (CIFS) protocol. That is, the NAS client 210 can use the cloud storage as a large-capacity virtual network file system by the NAS server function of the cloud storage gateway 100.

NASクライアント210は、例えば、データバックアップのためのバックアップソフトウェアを実行する。これによりNASクライアント210は、NASクライアント210に記憶されたファイル、またはNASクライアント210に接続されたサーバ(例えば業務サーバ)に記憶されたファイルを、NASサーバから提供される記憶領域にバックアップする。   The NAS client 210 executes, for example, backup software for data backup. Thereby, the NAS client 210 backs up the file stored in the NAS client 210 or the file stored in a server (for example, a business server) connected to the NAS client 210 to a storage area provided by the NAS server.

クラウドストレージゲートウェイ100は、図1に示した情報処理装置1の一例である。クラウドストレージゲートウェイ100は、NASクライアント210とクラウドストレージとの間で転送されるデータを中継する。例えば、クラウドストレージゲートウェイ100は、NASサーバ機能により、NASクライアント210からファイルの書き込み要求を受信し、書き込みが要求されたファイルを内部にキャッシュする。クラウドストレージゲートウェイ100は、書き込みが要求されたファイルをチャンク単位に分割して、クラウドストレージに格納する。このとき、合計サイズが一定サイズを超える複数のチャンクが「チャンクグループ」としてグループ化され、チャンクグループがオブジェクトとしてクラウドストレージに転送される。   The cloud storage gateway 100 is an example of the information processing apparatus 1 illustrated in FIG. The cloud storage gateway 100 relays data transferred between the NAS client 210 and the cloud storage. For example, the cloud storage gateway 100 receives a write request of a file from the NAS client 210 by the NAS server function, and internally caches the file for which the write is requested. The cloud storage gateway 100 divides the file requested to be written into chunks and stores the file in the cloud storage. At this time, a plurality of chunks whose total size exceeds a certain size are grouped as a "chunk group", and the chunk group is transferred to the cloud storage as an object.

また、クラウドストレージゲートウェイ100は、ファイルをキャッシュする時点で、ファイルをチャンク単位に分割し、同一内容のチャンクが重複して保存されないようにする「重複排除」を行う。さらに、分割されたチャンクのデータは圧縮された状態で格納される。例えば、クラウドストレージサービスでは、格納されるデータ量に応じて課金が行われる場合がある。重複排除やデータ圧縮を行うことで、クラウドストレージに格納されるデータ量を削減し、サービス利用コストを抑制することができる。   In addition, at the time of caching a file, the cloud storage gateway 100 divides the file into chunks and performs “duplicate elimination” so that chunks of the same content are not stored redundantly. Furthermore, data of divided chunks is stored in a compressed state. For example, in the cloud storage service, charging may be performed according to the amount of data stored. By performing deduplication and data compression, the amount of data stored in the cloud storage can be reduced, and the service usage cost can be suppressed.

図3は、クラウドストレージゲートウェイのハードウェア構成例を示すブロック図である。クラウドストレージゲートウェイ100は、例えば、図3に示すようなコンピュータとして実現される。   FIG. 3 is a block diagram showing an example of the hardware configuration of the cloud storage gateway. The cloud storage gateway 100 is realized, for example, as a computer as shown in FIG.

クラウドストレージゲートウェイ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。また、プロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。   The cloud storage gateway 100 is entirely controlled by the processor 101. The processor 101 is, for example, a central processing unit (CPU), a micro processing unit (MPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), or a programmable logic device (PLD). Also, the processor 101 may be a combination of two or more elements of a CPU, an MPU, a DSP, an ASIC, and a PLD.

プロセッサ101には、バス108を介して、RAM102と複数の周辺機器が接続されている。
RAM102は、クラウドストレージゲートウェイ100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
A RAM 102 and a plurality of peripheral devices are connected to the processor 101 via a bus 108.
The RAM 102 is used as a main storage device of the cloud storage gateway 100. The RAM 102 temporarily stores at least a part of an OS (Operating System) program and application programs to be executed by the processor 101. The RAM 102 also stores various data necessary for processing by the processor 101.

バス108に接続されている周辺機器としては、HDD103、グラフィック処理装置104、入力インタフェース105、読み取り装置106および通信インタフェース107がある。   As peripheral devices connected to the bus 108, there are an HDD 103, a graphic processing unit 104, an input interface 105, a reader 106 and a communication interface 107.

HDD103は、クラウドストレージゲートウェイ100の補助記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。   The HDD 103 is used as an auxiliary storage device of the cloud storage gateway 100. The HDD 103 stores an OS program, an application program, and various data. Note that as the auxiliary storage device, another type of non-volatile storage device such as a solid state drive (SSD) can also be used.

グラフィック処理装置104には、表示装置104aが接続されている。グラフィック処理装置104は、プロセッサ101からの命令にしたがって、画像を表示装置104aに表示させる。表示装置としては、液晶ディスプレイや有機EL(Electroluminescence)ディスプレイなどがある。   A display device 104 a is connected to the graphic processing device 104. The graphic processing device 104 causes the display device 104 a to display an image in accordance with an instruction from the processor 101. Examples of the display device include a liquid crystal display and an organic EL (Electroluminescence) display.

入力インタフェース105には、入力装置105aが接続されている。入力インタフェース105は、入力装置105aから出力される信号をプロセッサ101に送信する。入力装置105aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。   An input device 105 a is connected to the input interface 105. The input interface 105 transmits the signal output from the input device 105 a to the processor 101. The input device 105a includes a keyboard, a pointing device, and the like. Examples of pointing devices include a mouse, a touch panel, a tablet, a touch pad, and a trackball.

読み取り装置106には、可搬型記録媒体106aが脱着される。読み取り装置106は、可搬型記録媒体106aに記録されたデータを読み取ってプロセッサ101に送信する。可搬型記録媒体106aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。   The portable recording medium 106 a is attached to and detached from the reading device 106. The reading device 106 reads the data recorded on the portable recording medium 106 a and transmits the data to the processor 101. Examples of the portable recording medium 106 a include an optical disc, a magneto-optical disc, a semiconductor memory, and the like.

通信インタフェース107は、ネットワーク107aを介して他の装置との間でデータの送受信を行う。
以上のようなハードウェア構成によって、クラウドストレージゲートウェイ100の処理機能を実現することができる。なお、NASクライアント210や制御サーバ221aも、図3と同様のハードウェア構成を有するコンピュータとして実現可能である。
The communication interface 107 exchanges data with other devices via the network 107a.
By the hardware configuration as described above, the processing function of the cloud storage gateway 100 can be realized. The NAS client 210 and the control server 221a can also be realized as a computer having the same hardware configuration as that shown in FIG.

図4は、クラウドストレージゲートウェイが備える処理機能の構成例を示すブロック図である。クラウドストレージゲートウェイ100は、データ管理部110、操作ログ管理部120、NASサービス処理部131、ファイルシステム処理部132およびクラウド転送処理部133を有する。   FIG. 4 is a block diagram showing an exemplary configuration of processing functions provided in the cloud storage gateway. The cloud storage gateway 100 includes a data management unit 110, an operation log management unit 120, an NAS service processing unit 131, a file system processing unit 132, and a cloud transfer processing unit 133.

なお、データ管理部110および操作ログ管理部120は、例えば、RAM102やHDD103など、クラウドストレージゲートウェイ100が備える記憶装置の記憶領域として実現される。また、NASサービス処理部131、ファイルシステム処理部132およびクラウド転送処理部133の処理は、例えば、プロセッサ101が所定のプログラムを実行することで実現される。   The data management unit 110 and the operation log management unit 120 are realized, for example, as storage areas of storage devices included in the cloud storage gateway 100, such as the RAM 102 and the HDD 103. Further, the processing of the NAS service processing unit 131, the file system processing unit 132, and the cloud transfer processing unit 133 is realized, for example, by the processor 101 executing a predetermined program.

NASサービス処理部131は、NASサーバとしてのインタフェース処理を実行する。すなわち、NASサービス処理部131は、NASクライアント210からのファイルの読み書きや削除の要求を受け付け、要求された内容をファイルシステム処理部132に伝達する。そして、NASサービス処理部131はファイルシステム処理部132による処理結果に基づいて、NASクライアント210に応答する。   The NAS service processing unit 131 executes interface processing as a NAS server. That is, the NAS service processing unit 131 receives a request for reading, writing, and deleting a file from the NAS client 210, and transmits the requested content to the file system processing unit 132. Then, the NAS service processing unit 131 responds to the NAS client 210 based on the processing result by the file system processing unit 132.

ファイルシステム処理部132は、データ管理部110および操作ログ管理部120にアクセスしながら、NASクライアント210からの要求に応じた処理を実行する。例えば、新たなファイルの書き込みが要求された場合、ファイルシステム処理部132は、ファイルの実データをチャンク単位に分割し、分割された実データを重複を排除しながらデータ管理部110に格納する。このとき、ファイルシステム処理部132は、実データ以外のファイルに関する情報もデータ管理部110に登録する。また、ファイルシステム処理部132は、ファイルの書き込み処理が終了するまでに段階的に行った、ファイルやチャンクに関する操作のログを、操作ログ管理部120に登録していく。   While accessing the data management unit 110 and the operation log management unit 120, the file system processing unit 132 executes a process according to the request from the NAS client 210. For example, when writing of a new file is requested, the file system processing unit 132 divides the actual data of the file into chunks and stores the divided actual data in the data management unit 110 while excluding duplication. At this time, the file system processing unit 132 also registers information on files other than actual data in the data management unit 110. In addition, the file system processing unit 132 registers, in the operation log management unit 120, a log of operations relating to files and chunks, which were performed stepwise until the end of the file writing process.

データ管理部110は、ファイルシステム上のファイルのディレクトリ情報、ファイルとチャンクおよびチャンクグループとの関係を示す情報など、ファイルに関する管理情報と、ファイルに含まれる実データとを記憶する。一方、操作ログ管理部120は、クラウドストレージ240に転送すべきオブジェクトを判別するためにクラウド転送処理部133によって参照される操作ログを記憶する。   The data management unit 110 stores management information on the file, such as directory information of the file on the file system, information indicating the relationship between the file and the chunk and the chunk group, and actual data included in the file. On the other hand, the operation log management unit 120 stores the operation log referred to by the cloud transfer processing unit 133 in order to determine an object to be transferred to the cloud storage 240.

ここで、データ管理部110に記憶される情報について説明する。データ管理部110には、ディレクトリテーブル111、エントリテーブル112、チャンクマップテーブル113、チャンクテーブル114およびチャンクグループテーブル115が記憶される。これらを大別すると、ディレクトリテーブル111およびエントリテーブル112は、ファイルシステム上のディレクトリ構造に関する情報を保持し、チャンクマップテーブル113、チャンクテーブル114およびチャンクグループテーブル115は、チャンクに関する情報を保持する。   Here, the information stored in the data management unit 110 will be described. The data management unit 110 stores a directory table 111, an entry table 112, a chunk map table 113, a chunk table 114, and a chunk group table 115. The directory table 111 and the entry table 112 hold information on the directory structure on the file system, and the chunk map table 113, the chunk table 114 and the chunk group table 115 hold information on chunks.

図5は、ディレクトリテーブルを説明するための図である。図5(A)は、ディレクトリテーブル111のデータ構成例を示し、図5(B)は、ディレクトリ構造の例を示す。
ディレクトリテーブル111は、ディレクトリの階層構造を表現するための管理情報である。図5(A)に示すように、ディレクトリテーブル111には、「parent」「name」「ino」の各項目を有するレコードが登録される。各レコードは、ディレクトリ構造上の1つのディレクトリ(フォルダ)、またはディレクトリ内の1つのファイルに対応付けられている。「parent」は、親ディレクトリのinode番号を示し、「name」は、レコードに対応するディレクトリまたはファイルの名称を示し、「ino」は、レコードに対応するディレクトリまたはファイルのinode番号を示す。
FIG. 5 is a diagram for explaining the directory table. FIG. 5A shows an example of the data configuration of the directory table 111, and FIG. 5B shows an example of the directory structure.
The directory table 111 is management information for expressing the hierarchical structure of the directory. As shown in FIG. 5A, in the directory table 111, records having respective items of "parent", "name" and "ino" are registered. Each record is associated with one directory (folder) in the directory structure or one file in the directory. “Parent” indicates the inode number of the parent directory, “name” indicates the name of the directory or file corresponding to the record, and “ino” indicates the inode number of the directory or file corresponding to the record.

図5(B)は、図5(A)に例示されたレコード111a〜111gに基づくディレクトリ構造を示している。この例では、inode番号「1」のルートディレクトリの配下に、ディレクトリ名「A」、inode番号「2」のサブディレクトリと、ディレクトリ名「B」、inode番号「4」のサブディレクトリとが生成されている。ディレクトリ名「A」のサブディレクトリの配下には、ファイル名「X」、inode番号「3」のファイルが格納されている。ディレクトリ名「B」のサブディレクトリの配下には、ディレクトリ名「C」、inode番号「5」のサブディレクトリが生成されている。このサブディレクトリの配下には、ファイル名「Y」、inode番号「6」のファイルと、ファイル名「Z」、inode番号「7」のファイルとが格納されている。   FIG. 5B shows a directory structure based on the records 111a to 111g illustrated in FIG. 5A. In this example, a subdirectory with directory name “A” and inode number “2” and a subdirectory with directory name “B” and inode number “4” are created under the root directory of inode number “1”. ing. Under the subdirectory of directory name "A", files of file name "X" and inode number "3" are stored. Subdirectories of directory name "C" and inode number "5" are generated under the subdirectory of directory name "B". Under the subdirectory, a file having a file name “Y” and an inode number “6”, and a file having a file name “Z” and an inode number “7” are stored.

図6は、エントリテーブルのデータ構成例を示す図である。エントリテーブル112は、ディレクトリまたはファイルのメタデータを保持するための管理情報である。エントリテーブル112には、「ino」「mode」「nlink」「uid」「gid」「size」「atime」「mtime」「ctime」の各項目を有するレコードが登録される。各レコードは、1つのディレクトリまたはファイルに対応付けられている。   FIG. 6 is a view showing an example of the data configuration of the entry table. The entry table 112 is management information for holding directory or file metadata. In the entry table 112, records having items of “ino” “mode” “nlink” “uid” “gid” “size” “atime” “mtime” “ctime” are registered. Each record is associated with one directory or file.

「ino」は、ディレクトリまたはファイルのinode番号を示す。「mode」は、権限情報を示す。「nlink」は、ハードリンクの数を示す。「uid」は、所有者のユーザIDを示し、「gid」は、所有者のグループIDを示す。「size」は、ファイルのサイズを示す。「atime」は、最終アクセス時刻を示し、「mtime」は、最終更新時刻を示し、「ctime」は、最終状態変更時刻を示す。   "Ino" indicates the inode number of the directory or file. "Mode" indicates authority information. "Nlink" indicates the number of hard links. “Uid” indicates the owner's user ID, and “gid” indicates the owner's group ID. "Size" indicates the size of the file. “Atime” indicates the last access time, “mtime” indicates the last update time, and “ctime” indicates the last state change time.

以上のディレクトリテーブル111およびエントリテーブル112には、NASクライアント210から新規ファイルの書き込みが要求されたとき、ファイルシステム処理部132によってそのファイルに対応するレコードがそれぞれ追加される。   When writing of a new file is requested from the NAS client 210, the file system processing unit 132 adds a record corresponding to the file to the directory table 111 and the entry table 112 described above.

図7は、チャンクマップテーブルのデータ構成例を示す図である。チャンクマップテーブル113は、ファイルとチャンクとを関連付けるための管理情報である。チャンクマップテーブル113には、「ino」「offset」「size」「gno」「gindex」の各項目を有するレコードが登録される。各レコードは、ファイルの実データを分割して生成された1つのチャンクに対応付けられている。   FIG. 7 is a diagram showing an example of the data configuration of the chunk map table. The chunk map table 113 is management information for associating a file with a chunk. Records having items of “ino”, “offset”, “size”, “gno” and “gindex” are registered in the chunk map table 113. Each record is associated with one chunk generated by dividing the actual data of the file.

「ino」は、チャンクが含まれるファイルのinode番号を示す。「offset」は、ファイルの実データの先頭からチャンクの先頭までのオフセット量を示す。「ino」と「offset」の組み合わせによって、ファイル内のチャンクが一意に識別される。   "Ino" indicates the inode number of the file containing the chunk. “Offset” indicates the offset amount from the beginning of the actual data of the file to the beginning of the chunk. The combination of "ino" and "offset" uniquely identifies a chunk in the file.

「size」は、チャンクのサイズを示す。本実施の形態では例として、チャンクのサイズは可変であるものとする。例えば、ファイルシステム処理部132は、所定の演算規則にしたがい、同一データを含むチャンクが生成されやすいようにファイルの実データの分割位置を決定する。これにより、可変長のチャンクが生成される。   "Size" indicates the size of the chunk. In the present embodiment, as an example, the size of the chunk is variable. For example, the file system processing unit 132 determines the division position of the actual data of the file so that a chunk including the same data is easily generated according to a predetermined operation rule. This creates a variable-length chunk.

「gno」は、チャンク内の実データ(以下、「チャンクデータ」と記載する)が属するチャンクグループのグループ番号を示し、「gindex」は、チャンクグループにおけるチャンクデータのインデックス番号を示す。レコードに「ino」および「offset」と「gno」および「gindex」とが登録されることで、チャンクとチャンクデータとが関連付けられる。   “Gno” indicates the group number of the chunk group to which actual data in the chunk (hereinafter referred to as “chunk data”) belongs, and “gindex” indicates the index number of the chunk data in the chunk group. Chunks and chunk data are associated by registering “ino” and “offset” and “gno” and “gindex” in the record.

図7の例では、inode番号「i1」のファイルは、2つのチャンクに分割されており、inode番号「i2」のファイルは、4つのチャンクに分割されている。また、前者のファイルに含まれる2つのチャンクのデータと、後者のファイルに含まれるチャンクのうち先頭から2つのチャンクのデータとが、グループ番号「g1」のチャンクグループに属するチャンクデータとしてデータ管理部110に格納されている。さらに、後者のファイルに含まれるチャンクのうち先頭から3番目および4番目のチャンクのデータは、グループ番号「g2」のチャンクグループに属するチャンクデータとしてデータ管理部110に格納されている。   In the example of FIG. 7, the file of inode number "i1" is divided into two chunks, and the file of inode number "i2" is divided into four chunks. Also, the data management unit determines that the data of the two chunks contained in the former file and the data of the two chunks from the top of the chunks contained in the latter file belong to the chunk group of the group number "g1" It is stored in 110. Furthermore, the data of the third and fourth chunks from the top among the chunks included in the latter file are stored in the data management unit 110 as chunk data belonging to the chunk group of the group number “g2”.

図8は、チャンクテーブルのデータ構成例を示す図である。チャンクテーブル114は、個々のチャンクデータに関する情報を保持するための管理情報である。チャンクテーブル114には、「hash」「size」「refcnt」「gno」「gindex」の各項目を有するレコードが登録される。各レコードは、1つのチャンクデータに対応付けられている。   FIG. 8 is a diagram showing an example of the data configuration of the chunk table. The chunk table 114 is management information for holding information on individual chunk data. In the chunk table 114, records having items of "hash", "size", "refcnt", "gno" and "gindex" are registered. Each record is associated with one chunk data.

「hash」は、チャンクデータから算出されたハッシュ値を示す。「size」は、チャンクデータのサイズを示す。「gno」は、チャンクデータが属するチャンクグループの番号を示し、「gindex」は、チャンクグループにおけるチャンクデータのインデックス番号を示す。「gno」と「gindex」の組み合わせにより、1つのチャンクデータが識別される。   “Hash” indicates a hash value calculated from chunk data. "Size" indicates the size of chunk data. “Gno” indicates the number of the chunk group to which the chunk data belongs, and “gindex” indicates the index number of the chunk data in the chunk group. One chunk data is identified by the combination of "gno" and "gindex".

「refcnt」は、「参照カウンタ」の値を示し、この値とは、チャンクデータを参照している、ファイル内のチャンクの数を示す。すなわち、「refcnt」は、チャンクデータがいくつのチャンクの間で重複しているかを示す。   “Refcnt” indicates the value of “reference counter”, and this value indicates the number of chunks in the file that refer to chunk data. That is, “refcnt” indicates how many chunks the chunk data overlaps with.

例えば、あるファイルから生成されたチャンクのデータと、別のファイルから生成されたチャンクのデータとが同一の場合、それらのデータは共通のチャンクデータに関連付けられる。この場合、そのチャンクデータに対応する1つのレコードがチャンクテーブル114に登録され、「refcnt」には参照カウンタの値として「2」が登録される。なお、このケースでは、各チャンクに対応するレコードがチャンクマップテーブル113に登録され、それらのレコードには、上記のチャンクデータを示す共通のグループ番号(gno)およびインデックス番号(gindex)が登録される。   For example, when the data of a chunk generated from a certain file and the data of a chunk generated from another file are identical, those data are associated with common chunk data. In this case, one record corresponding to the chunk data is registered in the chunk table 114, and "2" is registered in "refcnt" as the value of the reference counter. In this case, a record corresponding to each chunk is registered in the chunk map table 113, and a common group number (gno) and an index number (gindex) indicating the above chunk data are registered in those records. .

図9は、チャンクグループテーブルのデータ構成例を示す図である。チャンクグループテーブル115は、個々のチャンクグループに関する情報を保持するとともに、チャンクグループに含まれる各チャンクデータを保持するための管理情報である。チャンクグループテーブル115には、「gno」「gindex」「data」の各項目を有するレコードが登録される。各レコードは、1つのチャンクデータに対応付けられている。   FIG. 9 is a view showing an example of the data configuration of the chunk group table. The chunk group table 115 is management information for holding information on each chunk group and holding each chunk data included in the chunk group. In the chunk group table 115, records having items of "gno", "gindex" and "data" are registered. Each record is associated with one chunk data.

「gno」は、チャンクデータが属するチャンクグループのグループ番号を示し、「gindex」は、チャンクグループにおけるチャンクデータのインデックス番号を示す。「data」は、チャンクデータそのものを示す。図9の例では、グループ番号「g1」のチャンクグループに、インデックス番号「x1」〜「x4」の4つのチャンクデータが含まれている。また、グループ番号「g2」のチャンクグループに、少なくとも、インデックス番号「x1」「x2」の2つのチャンクデータが含まれている。   “Gno” indicates the group number of the chunk group to which the chunk data belongs, and “gindex” indicates the index number of the chunk data in the chunk group. "Data" indicates chunk data itself. In the example of FIG. 9, the chunk group of the group number "g1" includes four chunk data of the index numbers "x1" to "x4". Also, at least two chunk data of index numbers “x1” and “x2” are included in the chunk group of group number “g2”.

図10は、チャンクグループの構成例を示す図である。この図10を用いて、チャンクおよびチャンクグループの生成方法について説明する。
なお、図10に示すテーブル115aは、チャンクグループテーブル115から、グループ番号「1」のチャンクグループに属するチャンクデータに対応するレコードを抽出したものである。同様に、図10に示すテーブル115bは、チャンクグループテーブル115から、グループ番号「2」のチャンクグループに属するチャンクデータに対応するレコードを抽出したものである。また、図10に示すテーブル115cは、チャンクグループテーブル115から、グループ番号「3」のチャンクグループに属するチャンクデータに対応するレコードを抽出したものである。
FIG. 10 is a diagram showing an example of the configuration of a chunk group. The chunk and chunk group generation method will be described with reference to FIG.
The table 115a illustrated in FIG. 10 is obtained by extracting, from the chunk group table 115, a record corresponding to chunk data belonging to the chunk group of the group number "1". Similarly, a table 115 b illustrated in FIG. 10 is obtained by extracting a record corresponding to chunk data belonging to the chunk group of the group number “2” from the chunk group table 115. A table 115c shown in FIG. 10 is obtained by extracting a record corresponding to chunk data belonging to a chunk group of group number "3" from the chunk group table 115.

NASクライアント210から新規のファイルの書き込みや、既存のファイルの更新が要求されると、ファイルシステム処理部132は、ファイルの実データをチャンク単位に分割する。図10の例では、ファイルの実データが13個のチャンクに分割されたものとする。各チャンクのデータを先頭から順にデータD1〜D13と表す。なお、ここでは説明を簡単にするために、データD1〜D13の内容はすべて異なる(すなわち、重複していない)ものとする。この場合、データD1〜D13にそれぞれ対応するチャンクデータが個別に格納される。   When writing of a new file or updating of an existing file is requested from the NAS client 210, the file system processing unit 132 divides actual data of the file into chunks. In the example of FIG. 10, it is assumed that the actual data of the file is divided into 13 chunks. Data of each chunk are represented as data D1 to D13 in order from the top. Here, in order to simplify the description, it is assumed that the contents of the data D1 to D13 are all different (that is, not overlapping). In this case, chunk data corresponding to each of the data D1 to D13 is stored individually.

各チャンクデータには、グループ番号(gno)と、その番号が示すチャンクグループにおけるインデックス番号(gindex)とが割り当てられる。インデックス番号は、ファイルの分割によって重複していないチャンクデータが生成された順に割り当てられる。また、同じグループ番号に割り当てられたチャンクデータの合計サイズが一定量に達すると、グループ番号がカウントアップされ、次のチャンクデータにはカウントアップ後のグループ番号が割り当てられる。   Each chunk data is assigned a group number (gno) and an index number (gindex) in the chunk group indicated by the number. Index numbers are assigned in the order in which non-overlapping chunk data is generated by file division. Also, when the total size of chunk data assigned to the same group number reaches a certain amount, the group number is counted up, and the next chunk data is assigned the group number after count up.

なお、チャンクデータの合計サイズが一定量に達していないチャンクグループの状態を、次のチャンクデータを受け入れ可能な「アクティブ」と呼ぶことにする。また、チャンクデータの合計サイズが一定量に達したチャンクグループの状態を、次のチャンクデータを受け入れ不可能な「非アクティブ」と呼ぶことにする。   The state of a chunk group in which the total size of chunk data has not reached a fixed amount is referred to as “active” that can accept the next chunk data. Also, the state of a chunk group in which the total size of chunk data has reached a certain amount is referred to as “inactive” in which the next chunk data can not be accepted.

図10の例では、まず、データD1〜D5がグループ番号「1」のチャンクグループに割り当てられる。そして、この段階で、グループ番号「1」のチャンクグループのサイズが一定量に達し、このチャンクグループが非アクティブになったとする。すると、次のデータD6には、新たなグループ番号「2」が割り当てられる。   In the example of FIG. 10, first, the data D1 to D5 are assigned to the chunk group of the group number "1". Then, at this stage, it is assumed that the size of the chunk group of the group number “1” reaches a certain amount, and this chunk group becomes inactive. Then, a new group number "2" is assigned to the next data D6.

この後、データD6〜D11が、グループ番号「2」のチャンクグループに割り当てられ、この段階でこのチャンクグループが非アクティブになったとする。すると、次のデータD6には、新たなグループ番号「3」が割り当てられる。図10の例では、データD12,D13がグループ番号「3」のチャンクグループに割り当てられるが、この段階ではこのチャンクグループはアクティブの状態である。この場合、次に生成されるチャンクデータ(図示せず)には、グループ番号「3」とインデックス番号「3」とが割り当てられることになる。   Thereafter, it is assumed that data D6 to D11 are assigned to the chunk group of the group number "2", and at this stage, this chunk group becomes inactive. Then, a new group number "3" is assigned to the next data D6. In the example of FIG. 10, the data D12 and D13 are assigned to the chunk group of the group number "3", but at this stage this chunk group is in the active state. In this case, a group number “3” and an index number “3” are assigned to chunk data (not shown) generated next.

非アクティブ化されたチャンクグループは、ファイル内の実データがクラウドストレージ240に転送される際のデータ単位となる。あるチャンクグループが非アクティブになると、そのチャンクグループから1つのオブジェクト(後述するデータオブジェクト)が生成されて、クラウドストレージ240に転送される。   The deactivated chunk group is a data unit when actual data in the file is transferred to the cloud storage 240. When a certain chunk group becomes inactive, one object (a data object described later) is generated from the chunk group and transferred to the cloud storage 240.

以下、図4に戻って説明を続ける。
クラウド転送処理部133は、ファイルシステム処理部132によるデータ管理部110に対するデータ操作とは非同期に、データ管理部110に記憶された各種のデータをクラウドストレージ240に転送する。前述のように、クラウドストレージ240に対してはオブジェクト単位でデータが転送される。
Hereinafter, the description will be continued returning to FIG.
The cloud transfer processing unit 133 transfers various data stored in the data management unit 110 to the cloud storage 240 asynchronously with the data operation on the data management unit 110 by the file system processing unit 132. As described above, data is transferred to the cloud storage 240 in object units.

図4に示すように、クラウド転送処理部133は、ファイルオブジェクト141、チャンクマップオブジェクト142、チャンクグループオブジェクト143という3種類のオブジェクトを生成して、クラウドストレージ240に転送する。ここで、図11、図12を用いて、ファイルオブジェクト141、チャンクマップオブジェクト142、チャンクグループオブジェクト143のデータ構造について説明する。   As illustrated in FIG. 4, the cloud transfer processing unit 133 generates three types of objects such as a file object 141, a chunk map object 142, and a chunk group object 143, and transfers the objects to the cloud storage 240. Here, the data structure of the file object 141, the chunk map object 142, and the chunk group object 143 will be described with reference to FIGS. 11 and 12. FIG.

図11は、ファイルオブジェクトおよびチャンクマップオブジェクトのデータ構造の例を示す図である。図11(A)は、ファイルオブジェクト141を示し、図11(B)は、チャンクマップオブジェクト142を示す。   FIG. 11 is a diagram showing an example of the data structure of the file object and the chunk map object. FIG. 11A shows a file object 141, and FIG. 11B shows a chunk map object 142.

ファイルオブジェクト141とは、ディレクトリテーブル111およびエントリテーブル112に登録された情報を、ファイル単位でクラウドストレージ240に格納するためのオブジェクトである。図11(A)に示すように、ファイルオブジェクト141は、オブジェクト名を示す項目として「parent」「name」を含む。「parent」「name」の各項目には、ディレクトリテーブル111のレコードのうち、対応するファイルのレコードに含まれる同名の項目から、登録された情報がコピーされる。したがってこの例では、「parent」「name」によってファイルオブジェクト141に対応するファイルが識別される。   The file object 141 is an object for storing information registered in the directory table 111 and the entry table 112 in the cloud storage 240 in file units. As shown in FIG. 11A, the file object 141 includes "parent" and "name" as items indicating object names. The registered information is copied to each item of "parent" and "name" from the item of the same name included in the record of the corresponding file among the records of the directory table 111. Therefore, in this example, the file corresponding to the file object 141 is identified by "parent" and "name".

また、ファイルオブジェクト141は、オブジェクト値を示す項目として「ino」「mode」「nlink」「uid」「gid」「size」「atime」「mtime」「ctime」を含む。「ino」の項目には、ディレクトリテーブル111のレコードのうち、オブジェクト名の「parent」「name」が示すファイルのレコードに含まれる「ino」の項目から、登録された情報がコピーされる。「mode」「nlink」「uid」「gid」「size」「atime」「mtime」「ctime」の各項目には、エントリテーブル112のレコードのうち、「ino」が示すファイルのレコードに含まれる同名の項目から、登録された情報がコピーされる。   Further, the file object 141 includes “ino”, “mode”, “nlink”, “uid”, “gid”, “size”, “atime”, “mtime” and “ctime” as items indicating object values. In the item of "ino", registered information is copied from the item of "ino" included in the record of the file indicated by the "parent" and "name" of the object name among the records of the directory table 111. The items of “mode” “nlink” “uid” “gid” “size” “atime” “mtime” “ctime” have the same name included in the record of the file indicated by “ino” among the records of the entry table 112 The registered information is copied from the item of.

一方、チャンクマップオブジェクト142は、チャンクマップテーブル113およびチャンクテーブル114に登録された情報を、ファイル単位でクラウドストレージ240に格納するためのオブジェクトである。図11(B)に示すように、チャンクマップオブジェクト142は、オブジェクト名を示す項目として「ino」を含む。「ino」の項目には、チャンクマップテーブル113のレコードのうち、対応するファイルを示すレコードに含まれる「ino」の項目から、登録された情報がコピーされる。したがってこの例では、「ino」によってチャンクマップオブジェクト142に対応するファイルが識別される。   On the other hand, the chunk map object 142 is an object for storing information registered in the chunk map table 113 and the chunk table 114 in the cloud storage 240 in file units. As shown in FIG. 11B, the chunk map object 142 includes “ino” as an item indicating an object name. In the item of “ino”, registered information is copied from the item of “ino” included in the record indicating the corresponding file among the records of the chunk map table 113. Thus, in this example, "ino" identifies the file corresponding to chunk map object 142.

また、チャンクマップオブジェクト142は、オブジェクト値を示す項目として「offset」「size」「hash」「gno」「gindex」を含む。「offset」「size」「gno」「gindex」の各項目には、チャンクマップテーブル113のレコードのうち、「ino」が示すファイルに対応するレコードに含まれる同名の項目から、登録された情報がコピーされる。「hash」の項目には、チャンクテーブル114のレコードのうち、「gno」「gindex」が示すチャンクグループのレコードに含まれる「hash」の項目から、登録されたハッシュ値がコピーされる。   The chunk map object 142 also includes “offset”, “size”, “hash”, “gno”, and “gindex” as items indicating object values. In each item of "offset", "size", "gno" and "gindex", information registered from the item of the same name included in the record corresponding to the file indicated by "ino" among the records of the chunk map table 113 It is copied. In the item of “hash”, the registered hash value is copied from the item of “hash” included in the record of the chunk group indicated by “gno” and “gindex” among the records of the chunk table 114.

チャンクマップテーブル113には、通常、「ino」で識別される1つのファイルに関連付けられた複数のチャンクのそれぞれに対応するレコードが含まれる。そのため、チャンクマップオブジェクト142のオブジェクト値には、ファイルに関連付けられたすべてのチャンクについて、上記各項目の登録情報が含められる。   The chunk map table 113 generally includes a record corresponding to each of a plurality of chunks associated with one file identified by "ino". Therefore, the object values of the chunk map object 142 include the registration information of each item for all chunks associated with the file.

以上のようなファイルオブジェクト141およびチャンクマップオブジェクト142が、クラウドストレージ240に転送される。これにより、ファイルの実データだけでなく、ファイルのメタデータやファイルに関連付けられたチャンクの構成情報などの管理情報も、クラウドストレージ240に保存することができる。そのため、例えば、クラウドストレージゲートウェイ100の動作が異常によって停止した場合でも、ファイルのディレクトリ構造やチャンクの構成を復元することができる。   The file object 141 and the chunk map object 142 as described above are transferred to the cloud storage 240. As a result, not only the actual data of the file but also management information such as metadata of the file and configuration information of the chunk associated with the file can be stored in the cloud storage 240. Therefore, for example, even when the operation of the cloud storage gateway 100 is abnormally stopped, the directory structure of the file and the configuration of the chunk can be restored.

図12は、チャンクグループオブジェクトのデータ構造の例を示す図である。チャンクグループオブジェクト143は、チャンクグループテーブル115に登録された、ファイルの実データを含む情報を、チャンクグループ単位でクラウドストレージ240に格納するためのオブジェクトである。図12に示すように、チャンクグループオブジェクト143には、オブジェクト名を示す項目として「gno」を含む。「gno」の項目には、チャンクグループテーブル115のレコードのうち、対応するチャンクグループを示すレコードに含まれる「gno」の項目から、登録された情報がコピーされる。したがって、この「gno」によってチャンクグループオブジェクト143に対応するチャンクグループが識別される。   FIG. 12 is a diagram showing an example of the data structure of the chunk group object. The chunk group object 143 is an object for storing information including actual data of files registered in the chunk group table 115 in the cloud storage 240 in units of chunk groups. As shown in FIG. 12, the chunk group object 143 includes “gno” as an item indicating an object name. In the item of "gno", registered information is copied from the item of "gno" included in the record indicating the corresponding chunk group among the records of the chunk group table 115. Therefore, the chunk group corresponding to the chunk group object 143 is identified by this "gno".

また、チャンクグループオブジェクト143には、オブジェクト値として「header」「datalist」が含まれる。チャンクグループテーブル115には、通常、1つのチャンクグループに含まれる複数のチャンクデータのそれぞれに対応するレコードが含まれる。図12では、オブジェクト名の「gno」が示すチャンクグループにn個のチャンクデータが含まれるものとして表している。   The chunk group object 143 also includes “header” and “datalist” as object values. The chunk group table 115 generally includes a record corresponding to each of a plurality of chunk data included in one chunk group. In FIG. 12, the chunk group indicated by the object name "gno" is represented as including n pieces of chunk data.

「datalist」の項目には、チャンクグループテーブル115のレコードのうち、オブジェクト名の「gno」が示すチャンクグループに含まれる各チャンクデータに対応するレコードから、「data」の項目に登録された情報がコピーされる。図12の例では、インデックス番号(gindex)「0」〜「n−1」にそれぞれ対応するチャンクデータ#0〜#n−1が、「datalist」の項目に設定されている。このように、「data」の項目にチャンクデータ(ファイルの実データ)がオブジェクト値として設定されることで、これらのチャンクデータがクラウドストレージ240に転送されて格納される。   In the item of "datalist", information registered in the item of "data" from the records corresponding to each chunk data included in the chunk group indicated by "gno" of the object name among the records of the chunk group table 115 is It is copied. In the example of FIG. 12, chunk data # 0 to # n-1 respectively corresponding to the index numbers (gindex) "0" to "n-1" are set in the item "datalist". As described above, chunk data (actual data of a file) is set as an object value in the item of “data”, and the chunk data is transferred to the cloud storage 240 and stored.

「header」の項目には、まず、「datalist」に設定されたチャンクデータの数、すなわち、対応するチャンクグループに含まれるチャンクデータの数が設定される。さらに、「header」の項目には、「datalist」に設定された各チャンクデータについての、チャンクグループの先頭からのオフセット量が設定される。   In the item "header", first, the number of chunk data set in "datalist", that is, the number of chunk data included in the corresponding chunk group is set. Furthermore, in the item "header", the offset amount from the top of the chunk group is set for each chunk data set in "datalist".

ここで、図4に戻り、図11、図12に示したようなオブジェクトをクラウド転送処理部133が生成する上での課題について説明する。
クラウド転送処理部133は、データ管理部110に登録された情報の中から、オブジェクトとしてクラウドストレージ240に転送すべき情報を判別する必要がある。この判別方法の例としては、クラウド転送処理部133が、データ管理部110の登録情報全体を監視する方法がある。クラウド転送処理部133は、データ管理部110の登録情報を更新するファイルシステム処理部132とは非同期に動作するので、登録情報の更新箇所の通知を、ファイルシステム処理部132から直接受け付けることは難しい。そこで、データ管理部110の登録情報全体を監視することで、クラウド転送処理部133は、登録情報の更新箇所を認識して、クラウドストレージ240に転送すべき情報を判別できる。しかし、この方法では、データ管理部110に登録情報全体を監視するための処理負荷が高く、処理効率が低いという問題がある。
Here, returning to FIG. 4, a problem in the cloud transfer processing unit 133 generating an object as illustrated in FIGS. 11 and 12 will be described.
From the information registered in the data management unit 110, the cloud transfer processing unit 133 needs to determine information to be transferred to the cloud storage 240 as an object. As an example of this determination method, there is a method in which the cloud transfer processing unit 133 monitors the entire registration information of the data management unit 110. Since the cloud transfer processing unit 133 operates asynchronously with the file system processing unit 132 that updates the registration information of the data management unit 110, it is difficult to directly receive notification of the update information of the registration information from the file system processing unit 132 . Therefore, by monitoring the entire registration information of the data management unit 110, the cloud transfer processing unit 133 can recognize the update location of the registration information and determine the information to be transferred to the cloud storage 240. However, in this method, there is a problem that the processing load for monitoring the entire registration information is high in the data management unit 110, and the processing efficiency is low.

また、前述の特許文献2には、オンラインストレージにアップデートするデータの転送単位となる分割データベースごとに、その内容が更新されたか否かを示すDirtyフラグが記録されている。この技術を利用して、データ管理部110の登録情報のうち、オブジェクトに含める情報群ごとに内容が更新されたか否かを示すフラグを設ける方法が考えられる。この方法によれば、各情報群に対応するフラグを参照するだけで転送対象とすべき情報群を判別できるので、処理効率は向上する。しかし、転送対象でないものを含めてすべての情報群のフラグを参照しなければならない点で、処理効率が高いとは言えない。   Further, in the above-mentioned Patent Document 2, for each divided database which is a transfer unit of data to be updated to the online storage, a Dirty flag indicating whether or not the content has been updated is recorded. A conceivable method is to set a flag indicating whether the content has been updated for each information group included in the object, out of the registration information of the data management unit 110, using this technology. According to this method, the processing efficiency is improved because the information group to be transferred can be determined only by referring to the flag corresponding to each information group. However, the processing efficiency can not be said to be high in that it has to refer to the flags of all the information groups including those not to be transferred.

さらに、フラグを用いた上記方法では、クラウド転送処理部133がオブジェクトの転送処理中に、オブジェクトに対応する元の情報群がファイルシステム処理部132によって更新された場合、クラウド転送処理部133はその更新の発生を認識できない。そのため、情報群の更新内容をクラウドストレージ240に正確に反映できない可能性がある、という問題もある。   Furthermore, in the above method using the flag, if the file system processing unit 132 updates the original information group corresponding to the object while the cloud transfer processing unit 133 transfers the object, the cloud transfer processing unit 133 I can not recognize the occurrence of the update. Therefore, there is also a problem that the updated contents of the information group may not be accurately reflected in the cloud storage 240.

そこで、本実施の形態では、クラウド転送処理部133が転送すべき情報を高効率かつ正確に判別できるように、操作ログ管理部120が利用される。図4に示すように、操作ログ管理部120には、操作ログテーブル121が記憶される。操作ログテーブル121には、データ管理部110の登録情報のうち、オブジェクトに含める情報群ごとに、それぞれ操作ログを示すレコードがFIFO(First In/First Out)方式で登録される。また、操作ログには、ファイル操作ログ122とデータ操作ログ123の2種類がある。   Therefore, in the present embodiment, the operation log management unit 120 is used so that the information to be transferred by the cloud transfer processing unit 133 can be determined efficiently and accurately. As shown in FIG. 4, the operation log management unit 120 stores an operation log table 121. In the operation log table 121, among the registration information of the data management unit 110, a record indicating each operation log is registered by FIFO (First In / First Out) method for each information group included in the object. Further, there are two types of operation logs: file operation log 122 and data operation log 123.

操作ログに対応する情報群には、ファイルに関する情報群と、チャンクグループに関する情報群の2種類がある。ファイルに関する情報群とは、ファイルオブジェクト141およびチャンクマップオブジェクト142を生成するための情報群であり、ファイル単位で生成され、更新される。この情報群には、ディレクトリテーブル111、エントリテーブル112、チャンクマップテーブル113およびチャンクテーブル114に登録された、1つのファイルに関する情報が含まれる。そして、この情報群に対応する操作ログが上記のファイル操作ログ122であり、ファイル操作ログ122は、ファイル単位のオブジェクトであるファイルオブジェクト141およびチャンクマップオブジェクト142の送信要否を判別するために参照される。   There are two types of information groups corresponding to operation logs: information groups related to files and information groups related to chunk groups. The information group on files is an information group for generating the file object 141 and the chunk map object 142, and is generated and updated in file units. The information group includes information on one file registered in the directory table 111, the entry table 112, the chunk map table 113, and the chunk table 114. Then, the operation log corresponding to this information group is the file operation log 122 described above, and the file operation log 122 is referred to in order to determine whether transmission of the file object 141 and the chunk map object 142 which are file unit objects is necessary. Be done.

一方、チャンクグループに関する情報群とは、チャンクグループオブジェクト143を生成するための情報群であり、チャンクグループ単位で生成され、更新される。この情報群にはそれぞれ、チャンクグループテーブル115に登録された、1つのチャンクグループに関する情報が含まれ、その中にはチャンクデータ(ファイルの実データ)も含まれる。そして、この情報群に対応する操作ログが上記のデータ操作ログ123であり、データ操作ログ123は、チャンクグループ単位のオブジェクトであるチャンクグループオブジェクト143の送信要否を判別するために参照される。   On the other hand, the information group on the chunk group is an information group for generating the chunk group object 143, and is generated and updated in units of chunk groups. Each of the information groups includes information on one chunk group registered in the chunk group table 115, and also includes chunk data (actual data of file). The operation log corresponding to this information group is the data operation log 123 described above, and the data operation log 123 is referred to in order to determine whether it is necessary to transmit the chunk group object 143 which is an object in chunk group units.

また、各操作ログには、更新カウンタの値が記録される。更新カウンタの値は、ファイルシステム処理部132が対応する情報群に対して操作を行うたびにカウントアップされる。そして、クラウドストレージ240へのオブジェクトの送信処理の前後で更新カウンタの値が比較されることで、送信処理中における元の情報群の更新発生を認識可能にする。   Further, the value of the update counter is recorded in each operation log. The value of the update counter is counted up each time the file system processing unit 132 performs an operation on the corresponding information group. Then, the value of the update counter is compared before and after the transmission process of the object to the cloud storage 240, thereby making it possible to recognize the update occurrence of the original information group during the transmission process.

なお、クラウド転送処理部133は、操作ログに記録された更新カウンタの値を、カウント値保存部133aに一時的に保存する。カウント値保存部133aは、例えばRAM102によって実現される一時記憶領域である。   The cloud transfer processing unit 133 temporarily stores the value of the update counter recorded in the operation log in the count value storage unit 133a. The count value storage unit 133a is, for example, a temporary storage area realized by the RAM 102.

図13は、操作ログの登録およびオブジェクトの送信についての第1の処理例を示す図である。図13の例では、まず、ファイルシステム処理部132が、データ管理部110内のある情報群に対する操作を行ったとする。この情報群とは、前述したファイルに関する情報群とチャンクグループに関する情報群のいずれかである。   FIG. 13 is a diagram illustrating a first processing example of registration of an operation log and transmission of an object. In the example of FIG. 13, first, it is assumed that the file system processing unit 132 performs an operation on a certain information group in the data management unit 110. This information group is one of the above-described information group related to the file and the information group related to the chunk group.

この時点で、操作対象の情報群に対応する操作ログが操作ログテーブル121に存在しない場合には、ファイルシステム処理部132は、その情報群に対応する操作ログ121aを新たに生成し、操作ログテーブル121に登録する(ステップS11)。このとき、操作ログ121aには、情報群に対する操作内容がログ情報として記録されるとともに、更新カウンタ121bの値として初期値「1」が記録される。   At this point, when the operation log corresponding to the information group to be operated does not exist in the operation log table 121, the file system processing unit 132 newly generates the operation log 121a corresponding to the information group, and the operation log It registers in the table 121 (step S11). At this time, the operation content for the information group is recorded as log information in the operation log 121a, and an initial value "1" is recorded as the value of the update counter 121b.

操作ログテーブル121には、操作ログがFIFO方式で登録される。クラウド転送処理部133は、操作ログテーブル121の先頭から順に操作ログを取得することで、オブジェクトとして送信すべき情報群を特定する。図13の例では、クラウド転送処理部133が操作ログ121aを取得したとする。このとき、クラウド転送処理部133は、操作ログ121aに記録された更新カウンタ121bの値「1」を、カウント値保存部133aに一時的に保存する(ステップS12)。そして、クラウド転送処理部133は、操作ログ121aに記録された操作内容に基づいてオブジェクトを生成し、クラウドストレージ240に送信する(ステップS13)。詳しくは後述するが、クラウド転送処理部133は、操作ログ121aに記録された操作内容に応じて、対応する情報群からどの情報を抽出してどの種類のオブジェクトを送信すればよいかを判定できる。   The operation log is registered in the operation log table 121 by the FIFO method. The cloud transfer processing unit 133 specifies the information group to be transmitted as an object by acquiring the operation log sequentially from the top of the operation log table 121. In the example of FIG. 13, it is assumed that the cloud transfer processing unit 133 has acquired the operation log 121a. At this time, the cloud transfer processing unit 133 temporarily stores the value “1” of the update counter 121 b recorded in the operation log 121 a in the count value storage unit 133 a (step S 12). Then, the cloud transfer processing unit 133 generates an object based on the operation content recorded in the operation log 121a, and transmits the object to the cloud storage 240 (step S13). Although described later in detail, the cloud transfer processing unit 133 can determine which information to extract from the corresponding information group and which type of object should be transmitted according to the operation content recorded in the operation log 121a. .

クラウドストレージ240に対するオブジェクトの送信処理が完了すると、クラウド転送処理部133は、同じ操作ログ121aを再度参照して、更新カウンタ121bの値を取得する。クラウド転送処理部133は、取得された更新カウンタ121bの値と、ステップS12でカウント値保存部133aに保存された更新カウンタの値とを比較する(ステップS14)。   When the transmission process of the object to the cloud storage 240 is completed, the cloud transfer processing unit 133 refers to the same operation log 121 a again to acquire the value of the update counter 121 b. The cloud transfer processing unit 133 compares the acquired value of the update counter 121b with the value of the update counter stored in the count value storage unit 133a in step S12 (step S14).

図13の例では、これらの値は同一である。この場合、クラウド転送処理部133は、操作ログ121aに記録された操作内容に対応するオブジェクト送信処理が完了したと判断し、操作ログ121aを操作ログテーブル121から削除する(ステップS15)。そして、クラウド転送処理部133は、操作ログテーブル121から次の操作ログを取得し、その内容に応じたオブジェクト送信処理を実行する。   In the example of FIG. 13, these values are identical. In this case, the cloud transfer processing unit 133 determines that the object transmission process corresponding to the operation content recorded in the operation log 121a is completed, and deletes the operation log 121a from the operation log table 121 (step S15). Then, the cloud transfer processing unit 133 acquires the next operation log from the operation log table 121, and executes object transmission processing according to the content.

図14は、操作ログの登録およびオブジェクトの送信についての第2の処理例を示す図である。図14の例では、図13の例と同様に、まず、ファイルシステム処理部132が、データ管理部110内のある情報群に対する操作を行い、この時点で、操作対象の情報群に対応する操作ログが操作ログテーブル121に存在しなかったものとする。この場合、ファイルシステム処理部132は、その情報群に対応する操作ログ121aを新たに生成し、操作ログテーブル121に登録する(ステップS21)。操作ログ121aには、情報群に対する操作内容がログ情報として記録されるとともに、更新カウンタ121bの値として初期値「1」が記録される。   FIG. 14 is a diagram illustrating a second processing example of registration of an operation log and transmission of an object. In the example of FIG. 14, as in the example of FIG. 13, first, the file system processing unit 132 performs an operation on a certain information group in the data management unit 110, and at this time, an operation corresponding to the information group to be operated. It is assumed that the log does not exist in the operation log table 121. In this case, the file system processing unit 132 newly generates an operation log 121a corresponding to the information group and registers the operation log 121a in the operation log table 121 (step S21). In the operation log 121a, the operation content for the information group is recorded as log information, and an initial value "1" is recorded as the value of the update counter 121b.

また、クラウド転送処理部133は、操作ログ121aを取得し、操作ログ121aに記録された更新カウンタ121bの値「1」を、カウント値保存部133aに一時的に保存する(ステップS22)。そして、クラウド転送処理部133は、操作ログ121aに記録された操作内容に基づいてオブジェクトを生成し、クラウドストレージ240に送信する(ステップS23)。   Further, the cloud transfer processing unit 133 acquires the operation log 121a, and temporarily stores the value “1” of the update counter 121b recorded in the operation log 121a in the count value storage unit 133a (step S22). Then, the cloud transfer processing unit 133 generates an object based on the operation content recorded in the operation log 121a, and transmits the object to the cloud storage 240 (step S23).

ここで、オブジェクトの送信が完了する前に、ファイルシステム処理部132が、操作ログ121aに対応する情報群に対する操作をさらに行ったとする。このとき、ファイルシステム処理部132は、操作ログテーブル121を参照し、操作対象の情報群に対応する操作ログが操作ログテーブル121に登録されているかを判定する。そして、該当する操作ログ121aが登録されていると判定すると、ファイルシステム処理部132は、操作ログ121aに対して操作内容を記録するとともに、更新カウンタ121bの値を「2」にカウントアップする(ステップS24)。   Here, it is assumed that the file system processing unit 132 further performs an operation on the information group corresponding to the operation log 121 a before the transmission of the object is completed. At this time, the file system processing unit 132 refers to the operation log table 121 and determines whether the operation log corresponding to the information group of the operation target is registered in the operation log table 121. Then, when it is determined that the corresponding operation log 121a is registered, the file system processing unit 132 records the operation content in the operation log 121a and counts up the value of the update counter 121b to "2" (see FIG. Step S24).

一方、クラウドストレージ240に対するオブジェクトの送信処理が完了すると、クラウド転送処理部133は、同じ操作ログ121aを再度参照し、更新カウンタ121bの値を取得する。クラウド転送処理部133は、取得された更新カウンタ121bの値と、ステップS22でカウント値保存部133aに保存された更新カウンタの値とを比較する(ステップS25)。   On the other hand, when the transmission process of the object to the cloud storage 240 is completed, the cloud transfer processing unit 133 refers to the same operation log 121 a again, and acquires the value of the update counter 121 b. The cloud transfer processing unit 133 compares the acquired value of the update counter 121b with the value of the update counter stored in the count value storage unit 133a in step S22 (step S25).

図14の例では、これらの値は異なる。この場合、クラウド転送処理部133は、操作ログ121aに記録された操作内容に対応するオブジェクト送信処理が完了していないと判断する。すると、クラウド転送処理部133は、操作ログテーブル121から操作ログ121aを再度取得し、取得された操作ログ121aに記録されている更新カウンタ121bの値「2」を、カウント値保存部133aに一時的に保存する(ステップS26)。そして、クラウド転送処理部133は、取得された操作ログ121aに記録された操作内容に基づいてオブジェクトを生成し、クラウドストレージ240に送信する(ステップS27)。   In the example of FIG. 14, these values are different. In this case, the cloud transfer processing unit 133 determines that the object transmission process corresponding to the operation content recorded in the operation log 121a is not completed. Then, the cloud transfer processing unit 133 acquires the operation log 121a again from the operation log table 121, and temporarily stores the value “2” of the update counter 121b recorded in the acquired operation log 121a in the count value storage unit 133a. (Step S26). Then, the cloud transfer processing unit 133 generates an object based on the operation content recorded in the acquired operation log 121a, and transmits the object to the cloud storage 240 (step S27).

クラウド転送処理部133は、カウント値保存部133aに保存された更新カウンタの値と、操作ログテーブル121から再取得された更新カウンタ121bの値とが一致するまで、ステップS24〜S27の処理を繰り返す。そして、クラウド転送処理部133は、これらの値が一致すると、操作ログ121aを操作ログテーブル121から削除する。   The cloud transfer processing unit 133 repeats the processes of steps S24 to S27 until the value of the update counter stored in the count value storage unit 133a matches the value of the update counter 121b reacquired from the operation log table 121. . Then, when these values match, the cloud transfer processing unit 133 deletes the operation log 121a from the operation log table 121.

以上の図13、図14に示した処理によれば、操作ログテーブル121には、1つの情報群に対応する操作ログは1つしか登録されない。また、ある情報群に対応するファイル操作ログが操作ログテーブル121に登録されている状態で、同じ情報群に対してさらに操作が行われた場合、その操作内容は登録済みの操作ログに記録される。さらに、操作ログに記録されたすべての操作内容に対応するオブジェクトの送信処理が完了すると、その操作ログは操作ログテーブル121から削除される。   According to the processes shown in FIGS. 13 and 14 described above, only one operation log corresponding to one information group is registered in the operation log table 121. When a file operation log corresponding to a certain information group is registered in the operation log table 121 and an operation is further performed on the same information group, the operation content is recorded in the registered operation log. Ru. Furthermore, when the transmission process of the objects corresponding to all the operation contents recorded in the operation log is completed, the operation log is deleted from the operation log table 121.

このような方法により、操作ログテーブル121の記憶容量を削減できる。また、このような操作ログがFIFO方式で操作ログテーブル121に登録されることで、クラウド転送処理部133は、操作ログテーブル121の先頭から順に操作ログを参照するだけで、オブジェクトとして送信すべき情報群を特定できる。したがって、クラウド転送処理部133の処理負荷を軽減し、その処理効率を向上させることができる。   The storage capacity of the operation log table 121 can be reduced by such a method. Further, by registering such an operation log in the operation log table 121 by the FIFO method, the cloud transfer processing unit 133 should transmit as an object only by referring to the operation log in order from the top of the operation log table 121. Identify information groups. Therefore, the processing load of the cloud transfer processing unit 133 can be reduced, and the processing efficiency can be improved.

さらに、図13、図14に示したように更新カウンタの値が利用されることで、ある情報群に含まれる情報がオブジェクトとして送信されている間に、元の情報群が更新された場合でも、その更新内容をオブジェクトとしてクラウドストレージ240に送信することができる。具体的には、クラウド転送処理部133は、図14のステップS25において、再取得された更新カウンタ121bの値とカウント値保存部133aに保存された更新カウンタの値とが一致しないことで、対応する情報群が更新されたことを認識できる。そして、クラウド転送処理部133は、ステップS27において、最新の操作ログ121aの内容に基づいて、情報群の更新内容を含めたオブジェクトを生成し、クラウドストレージ240に送信できる。このような処理により、情報群の更新内容をクラウドストレージ240に正確に反映できる。   Furthermore, even if the original information group is updated while the information included in a certain information group is transmitted as an object by using the value of the update counter as shown in FIG. 13 and FIG. The updated content can be sent as an object to the cloud storage 240. Specifically, the cloud transfer processing unit 133 responds by the fact that the value of the update counter 121b reacquired in step S25 of FIG. 14 does not match the value of the update counter stored in the count value storage unit 133a. It can be recognized that the information group to be updated has been updated. Then, in step S27, the cloud transfer processing unit 133 can generate an object including the updated content of the information group based on the content of the latest operation log 121a, and can transmit the object to the cloud storage 240. Such processing can accurately reflect the updated content of the information group on the cloud storage 240.

なお、ファイルシステム処理部132は、既存の操作ログに対して新たな操作内容を記録する際に、その操作ログにすでに記録されている操作内容に対して新たな操作内容を上書きせずに、新たな操作内容を追加的に記録する場合がある。例えば、図14のステップS24において、操作ログ121aに対応する情報群に含まれる第1の情報が更新されたとする。このとき、更新カウンタ121bの値は「2」にカウントアップされる。また、ステップS23によるオブジェクトの送信処理が完了する前に、同じ情報群に含まれる、第1の情報とは異なる第2の情報が更新されたとする。このとき、更新カウンタ121bの値は「3」にカウントアップされる。   When the file system processing unit 132 records new operation content in the existing operation log, the file system processing unit 132 does not overwrite the new operation content in the operation content already recorded in the operation log. New operation content may be additionally recorded. For example, in step S24 of FIG. 14, it is assumed that the first information included in the information group corresponding to the operation log 121a is updated. At this time, the value of the update counter 121 b is counted up to “2”. Further, it is assumed that second information different from the first information included in the same information group is updated before the transmission process of the object in step S23 is completed. At this time, the value of the update counter 121 b is counted up to “3”.

このような場合、ファイルシステム処理部132は、第1の情報を更新すると、この第1の情報を含めたオブジェクトに対応する第1の操作内容を操作ログ121aに記録する。また、ファイルシステム処理部132は、第2の情報を更新すると、この第2の情報を含めたオブジェクトに対応する第2の操作内容を、第1の操作内容を残したまま操作ログ121aに追加的に記録する。   In such a case, when the file system processing unit 132 updates the first information, the file system processing unit 132 records the first operation content corresponding to the object including the first information in the operation log 121 a. Further, when the second information is updated, the file system processing unit 132 adds the second operation content corresponding to the object including the second information to the operation log 121a while leaving the first operation content. Record.

これにより、クラウド転送処理部133は、オブジェクトの送信が完了して操作ログ121aを再取得したとき、第1の操作内容に対応するオブジェクトと、第2の操作内容に対応するオブジェクトの両方を生成し、クラウドストレージ240に送信する。すなわち、第1の操作内容が消去されずに操作ログ121aに残ることで、第2の情報の更新内容だけでなく、その更新前に更新された第1の情報の更新内容を、クラウドストレージ240に正確に反映させることができる。   Thereby, when the transmission of the object is completed and the operation log 121a is reacquired, the cloud transfer processing unit 133 generates both an object corresponding to the first operation content and an object corresponding to the second operation content. And send it to the cloud storage 240. That is, the first operation content is not deleted and remains in the operation log 121a, so that not only the update content of the second information but also the update content of the first information updated before the update is stored in the cloud storage 240 Can be accurately reflected.

次に、図15〜図17を用いて、操作ログについて具体的に説明する。
図15は、操作ログテーブルのデータ構成例を示す図である。操作ログテーブル121のレコードのうち、ファイル操作ログを示すレコードは、「counter」「type」「ino」「action」「update」の各項目を有する。また、操作ログテーブル121のレコードのうち、データ操作ログを示すレコードは、「counter」「type」「gno」「action」「update」の各項目を有する。
Next, the operation log is specifically described with reference to FIGS.
FIG. 15 is a view showing an example of the data configuration of the operation log table. Among the records of the operation log table 121, the record indicating the file operation log has items of “counter” “type” “ino” “action” “update”. Further, among the records of the operation log table 121, the record indicating the data operation log has items of “counter” “type” “gno” “action” “update”.

「counter」は、レコード(すなわち操作ログ)の識別番号を示す。この識別番号は、操作ログテーブル121に対する登録順に付与される。「type」は、操作ログがファイル操作ログとデータ操作ログのどちらであるかを示す。図15の例では、操作ログ121−1,121−3はファイル操作ログであり、操作ログ121−2,121−4はデータ操作ログである。   “Counter” indicates the identification number of the record (ie, operation log). The identification numbers are assigned in order of registration in the operation log table 121. “Type” indicates whether the operation log is a file operation log or a data operation log. In the example of FIG. 15, the operation logs 121-1 and 121-3 are file operation logs, and the operation logs 121-2 and 121-4 are data operation logs.

「ino」は、ファイル操作ログに対応するinode番号を示し、このinode番号によってファイル操作ログとファイルとが関連付けられる。「gno」は、データ操作ログに対応するチャンクグループのグループ番号を示し、このグループ番号によってデータ操作ログとチャンクグループとが関連付けられる。   “Ino” indicates an inode number corresponding to the file operation log, and the file operation log is associated with the file by the inode number. “Gno” indicates the group number of the chunk group corresponding to the data operation log, and the data operation log is associated with the chunk group by this group number.

「action」は、ファイルシステム処理部132によって行われた操作の内容を示す。「action」に記録される操作内容ごとに、送信すべきオブジェクトの種類や、データ管理部110からそのオブジェクトにコピーすべき情報が、あらかじめ決められている。したがって、クラウド転送処理部133は、「action」に記録された操作の内容から、必要なオブジェクトを生成してクラウドストレージ240に送信することができる。   “Action” indicates the content of the operation performed by the file system processing unit 132. For each operation content recorded in “action”, the type of object to be transmitted and information to be copied to the object from the data management unit 110 are determined in advance. Therefore, the cloud transfer processing unit 133 can generate a necessary object from the content of the operation recorded in “action” and transmit it to the cloud storage 240.

「update」は、前述した更新カウンタの値を示す。更新カウンタの初期値は「1」であり、この値は、ファイルシステム処理部132によって対応する情報群に対する操作が行われるたびにカウントアップされる。   "Update" indicates the value of the update counter described above. The initial value of the update counter is “1”, and this value is counted up by the file system processing unit 132 each time an operation is performed on the corresponding information group.

ここで、「action」に記録される操作の内容の詳細について説明する。まず、ファイル操作ログの「action」に記録される操作内容について説明する。この操作内容としては、「ファイル作成中」「ファイル更新」「ファイル作成完了」「ファイル削除」がある。   Here, the details of the content of the operation recorded in “action” will be described. First, the contents of the operation recorded in “action” of the file operation log will be described. The contents of this operation include "file creation", "file update", "file creation complete" and "file deletion".

「ファイル作成中」は、NASクライアント210からのファイル操作要求に応じてディレクトリテーブル111およびエントリテーブル112の登録情報が更新されたときに記録されるログ情報である。ここで言う「ファイル操作要求」とは、NASクライアント210からの新規のファイルの書き込み、そのファイルの更新、そのファイルの削除のいずれかの要求である。「ファイル作成中」が記録された時点では、ディレクトリテーブル111およびエントリテーブル112に登録された、上記ファイルに対応するレコードの情報が、ファイルオブジェクト141による転送対象となる。   “File creation in progress” is log information recorded when registration information in the directory table 111 and the entry table 112 is updated in response to a file operation request from the NAS client 210. The “file operation request” referred to here is a request for writing a new file from the NAS client 210, updating the file, or deleting the file. When “file creation in progress” is recorded, the information of the record corresponding to the file registered in the directory table 111 and the entry table 112 is to be transferred by the file object 141.

「ファイル更新」は、「ファイル作成中」に対応する操作に続いて、ファイルの実データに関する管理情報が更新されたときに記録されるログ情報である。「ファイル更新」が記録された時点では、「ファイル作成中」が記録された時点から、エントリテーブル112に登録された、上記ファイルに対応するレコードの情報の一部が更新されている。したがって、この時点では、エントリテーブル112に登録された、上記ファイルに対応するレコードの情報が、ファイルオブジェクト141による転送対象となる。   “File update” is log information recorded when management information on actual data of a file is updated following an operation corresponding to “file creation in progress”. When "file update" is recorded, part of the information of the record corresponding to the file registered in the entry table 112 is updated from the time when "file creation in progress" is recorded. Therefore, at this time, the information of the record corresponding to the file registered in the entry table 112 is to be transferred by the file object 141.

「ファイル作成完了」は、NASクライアント210からのファイル操作要求に応じた処理がすべて完了したときに記録されるログ情報である。この時点では、チャンクマップテーブル113およびチャンクテーブル114に登録された、上記ファイルに対応するレコードの情報が、チャンクマップオブジェクト142による転送対象となる。   “File creation complete” is log information recorded when all processing in response to the file operation request from the NAS client 210 is completed. At this time, the information of the record corresponding to the file registered in the chunk map table 113 and the chunk table 114 is to be transferred by the chunk map object 142.

以上の「ファイル作成中」「ファイル更新」「ファイル作成完了」は、NASクライアント210から新規ファイルの書き込みまたはファイルの更新が要求された場合に、要求に応じた処理が完了されるまでの間にファイルシステム処理部132によって段階的に行われる操作の内容を示す。   The above “file creation”, “file update”, and “file creation complete” are until the processing according to the request is completed when writing of a new file or updating of a file is requested from the NAS client 210 The contents of the operation performed stepwise by the file system processing unit 132 are shown.

一方、NASクライアント210からファイルの削除が要求された場合、「action」には「ファイル削除」が記録される。この場合、ディレクトリテーブル111、エントリテーブル112およびチャンクマップテーブル113からは、削除対象のファイルに関連付けられたレコードが削除される。そのため、「ファイル削除」が記録された場合、削除対象のファイルを示すオブジェクト名をそれぞれ指定したファイルオブジェクト141およびチャンクマップオブジェクト142の削除要求が、クラウドストレージ240に送信される。   On the other hand, when deletion of a file is requested from the NAS client 210, “file deletion” is recorded in “action”. In this case, the record associated with the file to be deleted is deleted from the directory table 111, the entry table 112, and the chunk map table 113. Therefore, when “file deletion” is recorded, a deletion request for the file object 141 and the chunk map object 142 specifying the object name indicating the file to be deleted is sent to the cloud storage 240.

図16は、ファイル操作ログの登録処理例を示す図である。NASクライアント210から新規のファイルの書き込みが要求されると、ファイルシステム処理部132は、このファイルに対応するファイル操作ログ122aを操作ログテーブル121に登録する(ステップS31)。このとき、「action」には「ファイル作成中」が記録され、「update」には更新カウンタの値「1」が記録される。   FIG. 16 is a diagram showing an example of registration processing of a file operation log. When writing of a new file is requested from the NAS client 210, the file system processing unit 132 registers the file operation log 122a corresponding to the file in the operation log table 121 (step S31). At this time, “file creation in progress” is recorded in “action”, and the value “1” of the update counter is recorded in “update”.

また、ファイルシステム処理部132は、ファイルの書き込み要求に続いて、そのファイルの実データをNASクライアント210から受信し、データ管理部110に格納していく。一方、この時点で、クラウド転送処理部133がファイル操作ログ122aを取得したとする。この場合、クラウド転送処理部133は、ファイル操作ログ122aの「ino」から対象のファイルを認識する。また、クラウド転送処理部133は、「ファイル作成中」から決定される必要な情報をデータ管理部110から読み出し、読み出した情報を含めたファイルオブジェクト141を生成して、クラウドストレージ240に送信する。   Further, following the file write request, the file system processing unit 132 receives the actual data of the file from the NAS client 210 and stores it in the data management unit 110. On the other hand, at this point in time, it is assumed that the cloud transfer processing unit 133 has acquired the file operation log 122a. In this case, the cloud transfer processing unit 133 recognizes the target file from "ino" of the file operation log 122a. In addition, the cloud transfer processing unit 133 reads necessary information determined from “file creation in progress” from the data management unit 110, generates a file object 141 including the read information, and transmits the file object 141 to the cloud storage 240.

ここで、ファイルオブジェクト141の送信が完了する前に、ファイルの実データをデータ管理部110に格納する処理が完了したとする。この場合、ファイルシステム処理部132は、ファイル操作ログ122aの「action」に「ファイル更新」を追加的に記録し、「update」の値を「2」にカウントアップする(ステップS32)。   Here, it is assumed that the process of storing the actual data of the file in the data management unit 110 is completed before the transmission of the file object 141 is completed. In this case, the file system processing unit 132 additionally records "file update" in "action" of the file operation log 122a, and counts up the value of "update" to "2" (step S32).

さらに、ファイルオブジェクト141の送信が完了する前に、NASクライアント210からの書き込み要求に応じた応答処理全体が完了したとする。あるいは、「ファイル更新」に基づくファイルオブジェクト141の送信が完了する前に、応答処理全体が完了したとする。これらの場合、ファイルシステム処理部132は、ファイル操作ログ122aの「action」に「ファイル作成完了」を追加的に記録し、「update」の値を「3」にカウントアップする(ステップS33)。   Furthermore, it is assumed that the entire response processing according to the write request from the NAS client 210 is completed before the transmission of the file object 141 is completed. Alternatively, it is assumed that the entire response processing is completed before the transmission of the file object 141 based on the “file update” is completed. In these cases, the file system processing unit 132 additionally records "file creation complete" in "action" of the file operation log 122a, and counts up the value of "update" to "3" (step S33).

なお、「action」には、例えば、「ファイル作成中」を示す値として「0x01」が登録され、「ファイル更新」を示す値として「0x02」が登録され、「ファイル作成完了」を示す値として「0x04」が登録される。そして、「action」に対して値を記録する際には、新たに記録する値と、「action」に記録済みの値との論理和が算出され、算出された値が「action」に上書きされる。例えば、ステップS32の状態では、「ファイル作成中」を示す「0x01」と「ファイル更新」を示す「0x02」との論理和「0x03」が、「action」に記録される。すなわち、この例では、「action」には「ファイル作成中」「ファイル更新」「ファイル作成完了」にそれぞれ対応するビットを有するビット列が記録される。そして、これらのいずれかの操作内容を記録する際には、操作内容に対応するビットが「0」から「1」に更新される。   In "action", for example, "0x01" is registered as a value indicating "file creation in progress", "0x02" is registered as a value indicating "file update", and as a value indicating "file creation complete" "0x04" is registered. Then, when recording a value for "action", the logical sum of the value to be newly recorded and the value recorded in "action" is calculated, and the calculated value is overwritten on "action". Ru. For example, in the state of step S32, the logical sum "0x03" of "0x01" indicating "file creation in progress" and "0x02" indicating "file update" is recorded in "action". That is, in this example, a bit string having bits respectively corresponding to “file creation in progress”, “file update”, and “file creation complete” is recorded in “action”. Then, when one of these operation contents is recorded, the bit corresponding to the operation contents is updated from “0” to “1”.

次に、「ファイル作成中」または「ファイル更新」に基づくファイルオブジェクト141の送信が完了する前に、NASクライアント210からファイルの削除が要求されたとする。あるいは、「ファイル作成完了」に基づくチャンクマップオブジェクト142の送信が完了する前に、NASクライアント210からファイルの削除が要求されたとする。これらの場合、ファイルシステム処理部132は、ファイル操作ログ122aの「action」に「ファイル削除」を記録し、「update」の値を「4」にカウントアップする(ステップS34)。   Next, it is assumed that deletion of a file is requested from the NAS client 210 before transmission of the file object 141 based on “file creation in progress” or “file update” is completed. Alternatively, it is assumed that deletion of a file is requested from the NAS client 210 before transmission of the chunk map object 142 based on “file creation complete” is completed. In these cases, the file system processing unit 132 records "file deletion" in "action" of the file operation log 122a, and counts up the value of "update" to "4" (step S34).

「ファイル削除」が記録された場合、削除対象のファイルを示すオブジェクト名がそれぞれ指定されたファイルオブジェクト141およびチャンクマップオブジェクト142が、クラウドストレージ240から削除される。このため、「ファイル削除」は、「action」に記録済みの情報を上書きして記録されればよい。   When “file deletion” is recorded, the file object 141 and the chunk map object 142 in which object names indicating files to be deleted are specified are deleted from the cloud storage 240. Therefore, “file deletion” may be recorded by overwriting information already recorded in “action”.

次に、データ操作ログの「action」に記録される操作内容について説明する。この操作内容としては、「データ書き込み中」「データ書き込み完了」「データ削除」がある。   Next, the contents of the operation recorded in “action” of the data operation log will be described. The contents of this operation include "during data writing", "data writing completed" and "data deletion".

「データ書き込み中」は、チャンクグループに含まれるチャンクデータの合計サイズが所定サイズに達していない状態、すなわち、チャンクグループがアクティブであることを示す。「データ書き込み中」が記録されている状態では、クラウドストレージ240に送信すべきオブジェクトは生成されない。クラウド転送処理部133は、データ操作ログの「action」に「データ書き込み中」が登録されている場合、そのデータ操作ログに基づく処理をスキップして、操作ログテーブル121に記録された次のデータ操作ログを取得する。   “During data writing” indicates that the total size of chunk data included in the chunk group has not reached a predetermined size, that is, the chunk group is active. In the state in which "data writing" is recorded, an object to be transmitted to the cloud storage 240 is not generated. When “data writing in progress” is registered in “action” of the data operation log, the cloud transfer processing unit 133 skips processing based on the data operation log, and the next data recorded in the operation log table 121 Get operation log.

「データ書き込み完了」は、チャンクグループに含まれるチャンクデータの合計サイズが所定サイズに達している状態、すなわち、チャンクグループが非アクティブであることを示す。この場合、チャンクグループテーブル115に登録された、チャンクグループに対応するレコードの情報が、チャンクグループオブジェクト143による転送対象となる。   “Data write complete” indicates that the total size of chunk data included in the chunk group has reached a predetermined size, that is, the chunk group is inactive. In this case, the information of the record corresponding to the chunk group registered in the chunk group table 115 is to be transferred by the chunk group object 143.

「データ削除」は、チャンクグループが削除されることを示す。この状態は、ファイルの削除や更新に伴って、チャンクグループに含まれるすべてのチャンクデータが無効になっている(すなわち、すべてのチャンクデータに対応する参照カウンタの値が「0」になっている)状態である。この場合、チャンクマップテーブル113からは、削除対象のチャンクグループに関連付けられたレコードが削除される。そのため、「データ削除」が記録された場合、削除対象のチャンクグループを示すオブジェクト名を指定したチャンクグループオブジェクト143の削除要求が、クラウドストレージ240に送信される。   "Delete data" indicates that a chunk group is to be deleted. In this state, all chunk data included in the chunk group is invalidated (that is, the value of the reference counter corresponding to all chunk data is “0” as the file is deleted or updated). ) State. In this case, from the chunk map table 113, the record associated with the chunk group to be deleted is deleted. Therefore, when “data deletion” is recorded, a deletion request for the chunk group object 143 specifying the object name indicating the chunk group to be deleted is sent to the cloud storage 240.

図17は、データ操作ログの登録処理例を示す図である。NASクライアント210からのファイルの書き込みや更新の要求に伴って新たなチャンクグループを生成すると、ファイルシステム処理部132は、このチャンクグループに対応するデータ操作ログ123aを操作ログテーブル121に登録する(ステップS41)。このとき、「action」には「データ書き込み中」が記録され、「update」には更新カウンタの初期値「1」が記録される。   FIG. 17 is a diagram showing an example of registration processing of data operation log. When a new chunk group is generated in response to a file write or update request from the NAS client 210, the file system processing unit 132 registers the data operation log 123a corresponding to this chunk group in the operation log table 121 (step S41). At this time, “during data writing” is recorded in “action”, and an initial value “1” of the update counter is recorded in “update”.

その後、上記のチャンクグループに含まれるチャンクデータの合計サイズが所定サイズに達したとする。このとき、ファイルシステム処理部132は、データ操作ログ123aの「action」に「データ書き込み完了」を上書きして記録し、「update」の値を「2」にカウントアップする(ステップS42)。   Thereafter, it is assumed that the total size of chunk data included in the above chunk group has reached a predetermined size. At this time, the file system processing unit 132 overwrites and records “data write complete” in “action” of the data operation log 123a, and counts up the value of “update” to “2” (step S42).

ここで、クラウド転送処理部133が、データ操作ログ123aを取得し、「action」に「データ書き込み完了」が記録されていることを認識したとする。この場合、クラウド転送処理部133は、データ操作ログ123aの「gno」から対象のチャンクグループを認識する。また、クラウド転送処理部133は、チャンクグループテーブル115に登録された該当チャンクグループのレコードから情報を読み出し、読み出した情報を含めたチャンクグループオブジェクト143を生成して、クラウドストレージ240に送信する。   Here, it is assumed that the cloud transfer processing unit 133 acquires the data operation log 123 a and recognizes that “data write completion” is recorded in “action”. In this case, the cloud transfer processing unit 133 recognizes the target chunk group from “gno” of the data operation log 123a. In addition, the cloud transfer processing unit 133 reads information from the record of the corresponding chunk group registered in the chunk group table 115, generates a chunk group object 143 including the read information, and transmits the chunk group object 143 to the cloud storage 240.

ここで、チャンクグループオブジェクト143の送信が完了する前に、データ操作ログ123aに対応するチャンクグループに含まれるすべてのチャンクデータが無効になったとする。この場合、ファイルシステム処理部132は、データ操作ログ123aの「action」に「データ削除」を上書きして記録し、「update」の値を「3」にカウントアップする(ステップS43)。クラウド転送処理部133は、チャンクグループオブジェクト143の送信完了後にデータ操作ログ123aを再取得することで、該当チャンクグループが不要になったことを認識できる。そして、クラウド転送処理部133は、このチャンクグループに対応するチャンクグループオブジェクト143をクラウドストレージ240から削除できる。これにより、チャンクグループの削除に伴うチャンクグループテーブル115における更新内容を、クラウドストレージ240に反映させることができる。   Here, it is assumed that all chunk data included in the chunk group corresponding to the data operation log 123a becomes invalid before the transmission of the chunk group object 143 is completed. In this case, the file system processing unit 132 overwrites "data deletion" in "action" of the data operation log 123a and records the result, and counts up the value of "update" to "3" (step S43). The cloud transfer processing unit 133 can recognize that the corresponding chunk group has become unnecessary by reacquiring the data operation log 123a after the transmission of the chunk group object 143 is completed. Then, the cloud transfer processing unit 133 can delete the chunk group object 143 corresponding to this chunk group from the cloud storage 240. Thereby, the update content in the chunk group table 115 accompanying deletion of a chunk group can be reflected on the cloud storage 240.

次に、クラウドストレージゲートウェイ100の処理について、フローチャートを用いて説明する。まず、図18〜図22を用いて、NASクライアント210から新規のファイルの書き込みが要求された場合の処理について説明する。   Next, processing of the cloud storage gateway 100 will be described using a flowchart. First, processing when writing of a new file is requested from the NAS client 210 will be described using FIG. 18 to FIG.

図18は、ファイル書き込みが要求された場合のファイルシステム処理部の処理例を示すフローチャートである。
[ステップS101]ファイルシステム処理部132は、NASクライアント210からのファイルの書き込み要求を、NASサービス処理部131を介して受信する。このとき、ファイルの書き込み先を示すディレクトリ情報、ファイル名、ファイルサイズが指定される。ファイルシステム処理部132は、書き込み要求を受信すると、ファイル作成開始処理を実行する。
FIG. 18 is a flowchart illustrating an example of processing of the file system processing unit when file writing is requested.
[Step S101] The file system processing unit 132 receives a file write request from the NAS client 210 via the NAS service processing unit 131. At this time, directory information indicating a file write destination, a file name, and a file size are designated. When receiving the write request, the file system processing unit 132 executes file creation start processing.

[ステップS102]ファイルシステム処理部132は、書き込みが要求されたファイルの実データを、NASサービス処理部131を介して受信すると、データ書き込み処理を実行する。   [Step S102] When the file system processing unit 132 receives, through the NAS service processing unit 131, actual data of the file for which writing has been requested, the file system processing unit 132 executes data writing processing.

[ステップS103]データ書き込み処理が完了すると、ファイルシステム処理部132は、書き込み完了を示す応答情報を、NASサービス処理部131を介してNASクライアント210に送信する。これとともに、ファイルシステム処理部132は、ファイル作成完了処理を実行する。   [Step S103] When the data writing process is completed, the file system processing unit 132 transmits response information indicating the completion of the writing to the NAS client 210 via the NAS service processing unit 131. At the same time, the file system processing unit 132 executes file creation completion processing.

図19は、ファイル作成開始処理の例を示すフローチャートである。この図19の処理は、図18のステップS101の処理に対応する。
[ステップS111]ファイルシステム処理部132は、ディレクトリテーブル111に対して、書き込みが要求されたファイルに対応するレコードを追加する。
FIG. 19 is a flowchart illustrating an example of the file creation start process. The process of FIG. 19 corresponds to the process of step S101 of FIG.
[Step S111] The file system processing unit 132 adds, to the directory table 111, a record corresponding to the file requested to be written.

[ステップS112]ファイルシステム処理部132は、エントリテーブル112に対して、書き込みが要求されたファイルに対応するレコードを追加する。追加されたレコードにおいては、例えば、「ino」「size」の各項目に情報が登録される。   [Step S112] The file system processing unit 132 adds, to the entry table 112, a record corresponding to the file requested to be written. In the added record, for example, information is registered in each item of "ino" and "size".

[ステップS113]ファイルシステム処理部132は、操作ログテーブル121に対して、書き込みが要求されたファイルに対応するファイル操作ログを追加する。追加されたファイル操作ログにおいては、「action」の項目に「ファイル作成中」が記録され、「update」の項目に更新カウンタの値として「1」が記録される。   [Step S113] The file system processing unit 132 adds, to the operation log table 121, the file operation log corresponding to the file requested to be written. In the added file operation log, “file creation in progress” is recorded in the item of “action”, and “1” is recorded in the item of “update” as the value of the update counter.

図20は、データ書き込み処理の例を示すフローチャートである。この図20の処理は、図18のステップS102の処理に対応する。
[ステップS121]ファイルシステム処理部132は、NASクライアント210から受信したファイルの実データを、チャンク単位に分割する。
FIG. 20 is a flowchart showing an example of the data writing process. The process of FIG. 20 corresponds to the process of step S102 of FIG.
[Step S121] The file system processing unit 132 divides the actual data of the file received from the NAS client 210 into chunks.

[ステップS122]ファイルシステム処理部132は、ステップS124のループ端までの処理を、分割によって生成された各チャンクについて実行する。
[ステップS123]ファイルシステム処理部132は、処理対象のチャンクについて、チャンク書き込み処理を実行する。
[Step S122] The file system processing unit 132 executes the processing up to the loop end of step S124 for each chunk generated by division.
[Step S123] The file system processing unit 132 executes chunk write processing for the chunk to be processed.

[ステップS124]ファイルシステム処理部132は、ステップS123の処理をすべてのチャンクについて実行すると、ステップS125の処理を実行する。
[ステップS125]ファイルシステム処理部132は、エントリテーブル112に登録された、書き込みが要求されたファイルに対応するレコードを更新する。この処理では、例えば、「mode」「nlink」「uid」「gid」「atime」「mtime」「ctime」の各項目に情報が登録される。
[Step S124] When the file system processing unit 132 executes the process of step S123 for all chunks, the file system processing unit 132 executes the process of step S125.
[Step S125] The file system processing unit 132 updates the record corresponding to the file requested to be written, which is registered in the entry table 112. In this process, for example, information is registered in each item of “mode” “nlink” “uid” “gid” “atime” “mtime” “ctime”.

[ステップS126]ファイルシステム処理部132は、操作ログテーブル121を参照し、書き込みが要求されたファイルに対応するファイル操作ログが存在するかを判定する。ファイルシステム処理部132は、該当するファイル操作ログが見つかった場合、ステップS128の処理を実行し、該当するファイル操作ログが存在しない場合、ステップS127の処理を実行する。   [Step S126] The file system processing unit 132 refers to the operation log table 121 and determines whether there is a file operation log corresponding to the file requested to be written. When the corresponding file operation log is found, the file system processing unit 132 executes the processing of step S128. When the corresponding file operation log does not exist, the file system processing unit 132 executes the processing of step S127.

[ステップS127]ファイルシステム処理部132は、操作ログテーブル121に対して、書き込みが要求されたファイルに対応するファイル操作ログを追加する。このとき、追加されたファイル操作ログにおいては、「action」の項目に「ファイル更新」が記録され、「update」の項目に更新カウンタの値として「1」が記録される。   [Step S127] The file system processing unit 132 adds the file operation log corresponding to the file requested to be written to the operation log table 121. At this time, in the added file operation log, “file update” is recorded in the item “action”, and “1” is recorded in the item “update” as the value of the update counter.

[ステップS128]ファイルシステム処理部132は、操作ログテーブル121から見つかったファイル操作ログを更新する。具体的には、「action」の項目に「ファイル更新」が追加的に記録され、「update」の項目に記録された更新カウンタの値がカウントアップされる。   [Step S128] The file system processing unit 132 updates the file operation log found from the operation log table 121. Specifically, “file update” is additionally recorded in the “action” item, and the value of the update counter recorded in the “update” item is counted up.

図21は、チャンク書き込み処理の例を示すフローチャートである。この図21の処理は、図20のステップS123の処理に対応する。
[ステップS131]ファイルシステム処理部132は、処理対象のチャンクのデータを基にハッシュ値を算出する。
FIG. 21 is a flowchart illustrating an example of the chunk write process. The process of FIG. 21 corresponds to the process of step S123 of FIG.
[Step S131] The file system processing unit 132 calculates a hash value based on data of the chunk to be processed.

[ステップS132]ファイルシステム処理部132は、チャンクマップテーブル113に対して、処理対象のチャンクに対応するレコードを追加する。このとき、追加されるレコードにおいては、「ino」「offset」「size」の各項目に情報が登録される。   [Step S132] The file system processing unit 132 adds a record corresponding to the chunk to be processed to the chunk map table 113. At this time, in the record to be added, information is registered in each item of “ino”, “offset”, and “size”.

[ステップS133]ファイルシステム処理部132は、チャンクテーブル114を参照し、「hash」の項目にステップS131で算出されたハッシュ値が登録されたレコードが存在するかを判定する。ファイルシステム処理部132は、該当するレコードが見つかった場合、ステップS134の処理を実行し、該当するレコードが存在しない場合、ステップS135の処理を実行する。   [Step S133] The file system processing unit 132 refers to the chunk table 114, and determines whether there is a record in which the hash value calculated in step S131 is registered in the item of “hash”. When the corresponding record is found, the file system processing unit 132 executes the process of step S134, and when the corresponding record does not exist, the file system processing unit 132 executes the process of step S135.

[ステップS134]ファイルシステム処理部132は、ステップS133でチャンクテーブル114から見つかったレコードを参照し、「refcnt」の項目に記録された参照カウンタの値をカウントアップする。また、ファイルシステム処理部132は、ステップS132でチャンクマップテーブル113に追加したレコードの「gno」「gindex」の各項目に、チャンクテーブル114から見つかったレコードの「gno」「gindex」の各項目に登録された情報を登録する。   [Step S134] The file system processing unit 132 refers to the record found from the chunk table 114 in step S133, and counts up the value of the reference counter recorded in the item “refcnt”. Further, the file system processing unit 132 adds the items “gno” and “gindex” of the record added to the chunk map table 113 in step S 132 to the items “gno” and “gindex” of the record found from the chunk table 114. Register the registered information.

[ステップS135]ファイルシステム処理部132は、チャンクグループテーブル115を参照し、最後尾のレコードに登録されたグループ番号(すなわち、現時点で最大のグループ番号)を取得する。   [Step S135] The file system processing unit 132 refers to the chunk group table 115, and acquires the group number registered in the last record (that is, the largest group number at this time).

[ステップS136]ファイルシステム処理部132は、ステップS135で取得されたグループ番号のチャンクグループに含まれるチャンクデータの合計サイズが、所定値以上であるかを判定する。ファイルシステム処理部132は、合計サイズが所定値以上である場合、ステップS137の処理を実行し、合計サイズが所定値未満である場合、ステップS139の処理を実行する。   [Step S136] The file system processing unit 132 determines whether the total size of chunk data included in the chunk group of the group number acquired in step S135 is equal to or greater than a predetermined value. The file system processing unit 132 executes the process of step S137 when the total size is equal to or greater than the predetermined value, and executes the process of step S139 when the total size is less than the predetermined value.

[ステップS137]ファイルシステム処理部132は、ステップS135で取得されたグループ番号をカウントアップすることで、新たなグループ番号を生成する。
[ステップS138]ファイルシステム処理部132は、操作ログテーブル121に対してデータ操作ログを追加する。このとき、追加されたデータ操作ログにおいては、「gno」の項目に、ステップS137で生成されたグループ番号が記録され、「action」の項目に「データ書き込み中」が記録され、「update」の項目に、更新カウンタの値として「1」が記録される。
[Step S137] The file system processing unit 132 generates a new group number by counting up the group number acquired in Step S135.
[Step S138] The file system processing unit 132 adds a data operation log to the operation log table 121. At this time, in the added data operation log, the group number generated in step S 137 is recorded in the item “gno”, “during data writing” is recorded in the item “action”, and “update” In the item, “1” is recorded as the value of the update counter.

[ステップS139]ファイルシステム処理部132は、チャンクテーブル114に対してレコードを追加する。このとき、追加されるレコードにおいては、「hash」の項目に、ステップS131で算出されたハッシュ値が記録され、「size」の項目に、対応するチャンクのサイズが記録され、「refcnt」の項目に、参照カウンタの値として「1」が記録される。また、ステップS136でYesと判定された場合、「gno」の項目には、ステップS137で生成されたグループ番号が記録され、「gindex」の項目には、先頭のチャンクを示すインデックス番号が記録される。一方、ステップS136でNoと判定された場合、「gno」の項目には、ステップS135で取得されたグループ番号が記録される。また、「gindex」の項目には、このグループ番号に対応するチャンクグループに含まれている最後尾のチャンクデータの次の順番を示すインデックス番号が記録される。   [Step S139] The file system processing unit 132 adds a record to the chunk table 114. At this time, in the record to be added, the hash value calculated in step S131 is recorded in the item "hash", the size of the corresponding chunk is recorded in the item "size", and the item "refcnt" And “1” is recorded as the value of the reference counter. In addition, if it is determined Yes in step S136, the group number generated in step S137 is recorded in the item of “gno”, and an index number indicating the first chunk is recorded in the item of “gindex”. Ru. On the other hand, when it is determined No in step S136, the group number acquired in step S135 is recorded in the item of "gno". In the item "gindex", an index number indicating the next order of the last chunk data included in the chunk group corresponding to the group number is recorded.

[ステップS140]ファイルシステム処理部132は、チャンクグループテーブル115に対してレコードを追加する。このとき、追加されるレコードにおいては、「gno」「gindex」の各項目に、ステップS139で同名の項目に記録された情報と同じ情報が記録され、「data」の項目に、チャンクデータが圧縮された状態で記録される。   [Step S140] The file system processing unit 132 adds a record to the chunk group table 115. At this time, in the record to be added, the same information as the information recorded in the item with the same name in step S139 is recorded in each item of “gno” and “gindex”, and the chunk data is compressed in the item of “data” Are recorded as they are.

[ステップS141]ファイルシステム処理部132は、ステップS139でレコードに記録したグループ番号のチャンクグループに含まれるチャンクデータの合計サイズが、所定値以上であるかを判定する。ファイルシステム処理部132は、合計サイズが所定値以上である場合、ステップS142の処理を実行し、合計サイズが所定値未満である場合、チャンク書き込み処理を終了する。   [Step S141] The file system processing unit 132 determines whether the total size of chunk data included in the chunk group of the group number recorded in the record at Step S139 is equal to or greater than a predetermined value. The file system processing unit 132 executes the processing of step S142 when the total size is equal to or larger than the predetermined value, and ends the chunk writing process when the total size is smaller than the predetermined value.

[ステップS142]このケースでは、操作ログテーブル121には、ステップS139,S140でレコードに記録したグループ番号が記録され、かつ、「action」の項目に「データ書き込み中」が記録されたデータ操作ログが存在している。ファイルシステム処理部132は、このデータ操作ログについて、「action」の項目に「データ書き込み完了」を上書きして記録し、「update」の項目に記録された更新カウンタの値をカウントアップする。   [Step S142] In this case, the operation log table 121 records the group number recorded in the record in steps S139 and S140, and the data operation log in which "data writing" is recorded in the item of "action". Exists. The file system processing unit 132 overwrites “data write complete” in the item “action” and records the data operation log, and counts up the value of the update counter recorded in the item “update”.

図22は、ファイル作成完了処理の例を示すフローチャートである。この図22の処理は、図18のステップS103の処理に対応する。
[ステップS151]ファイルシステム処理部132は、操作ログテーブル121を参照し、書き込みが要求されたファイルに対応するファイル操作ログが存在するかを判定する。ファイルシステム処理部132は、該当するファイル操作ログが見つかった場合、ステップS153の処理を実行し、該当するファイル操作ログが存在しない場合、ステップS152の処理を実行する。
FIG. 22 is a flowchart showing an example of the file creation completion process. The process of FIG. 22 corresponds to the process of step S103 of FIG.
[Step S151] The file system processing unit 132 refers to the operation log table 121 and determines whether a file operation log corresponding to the file requested to be written exists. When the corresponding file operation log is found, the file system processing unit 132 executes the processing of step S153. When the corresponding file operation log does not exist, the file system processing unit 132 executes the processing of step S152.

[ステップS152]ファイルシステム処理部132は、操作ログテーブル121に対して、書き込みが要求されたファイルに対応するファイル操作ログを追加する。このとき、追加されたファイル操作ログにおいては、「action」の項目に「ファイル作成完了」が記録され、「update」の項目に更新カウンタの値として「1」が記録される。   [Step S152] The file system processing unit 132 adds, to the operation log table 121, the file operation log corresponding to the file requested to be written. At this time, in the added file operation log, “file creation complete” is recorded in the item “action”, and “1” is recorded in the item “update” as the value of the update counter.

[ステップS153]ファイルシステム処理部132は、操作ログテーブル121から見つかったファイル操作ログを更新する。具体的には、「action」の項目に「ファイル作成完了」が追加的に記録され、「update」の項目に記録された更新カウンタの値がカウントアップされる。   [Step S153] The file system processing unit 132 updates the file operation log found from the operation log table 121. Specifically, “file creation complete” is additionally recorded in the “action” item, and the value of the update counter recorded in the “update” item is counted up.

次に、NASクライアント210から既存のファイルの更新が要求された場合の処理について説明する。ファイルの更新が要求された場合、ファイルシステム処理部132は基本的に、図18に示したステップS101,S102,S103のような3段階の処理を実行する。以下、各段階における、新規ファイルの書き込みが要求された場合との処理の違いについて説明する。   Next, processing when an update of an existing file is requested from the NAS client 210 will be described. When a file update is requested, the file system processing unit 132 basically executes three steps of processing such as steps S101, S102, and S103 shown in FIG. Hereinafter, the difference in processing from when writing of a new file is requested in each stage will be described.

まず、ステップS101に対応する第1段階の処理では、次のような処理が実行される。ファイルシステム処理部132は、エントリテーブル112に登録された、更新が要求されたファイルに対応するレコードを更新する。この更新では、「size」の項目に記録された値が、更新後のファイルのサイズによって更新される。   First, in the processing of the first stage corresponding to step S101, the following processing is executed. The file system processing unit 132 updates the record corresponding to the file requested to be updated, registered in the entry table 112. In this update, the value recorded in the "size" item is updated with the size of the updated file.

次に、ファイルシステム処理部132は、操作ログテーブル121を参照して、更新が要求されたファイルに対応するファイル操作ログが存在するかを判定する。該当するファイル操作ログが存在した場合、ファイルシステム処理部132は、そのファイル操作ログの「action」の項目に「ファイル作成中」を記録し、「update」の項目に記録された値をカウントアップする。一方、該当するファイル操作ログが存在しない場合、ファイルシステム処理部132は、操作ログテーブル121に対して、書き込みが要求されたファイルに対応するファイル操作ログを追加する。追加されたファイル操作ログにおいては、「action」の項目に「ファイル作成中」が記録され、「update」の項目に更新カウンタの値として「1」が記録される。   Next, the file system processing unit 132 refers to the operation log table 121 to determine whether a file operation log corresponding to the file requested to be updated exists. If the corresponding file operation log exists, the file system processing unit 132 records “file creation in progress” in the “action” item of the file operation log, and counts up the value recorded in the “update” item. Do. On the other hand, when the corresponding file operation log does not exist, the file system processing unit 132 adds, to the operation log table 121, the file operation log corresponding to the file requested to be written. In the added file operation log, “file creation in progress” is recorded in the item of “action”, and “1” is recorded in the item of “update” as the value of the update counter.

次に、ステップS102に対応する第2段階の処理では、次の図23に示すようなデータ書き込み処理が実行される。
図23は、ファイル更新が要求された場合のデータ書き込み処理の例を示すフローチャートである。
Next, in the second stage processing corresponding to step S102, data writing processing as shown in the next FIG. 23 is executed.
FIG. 23 is a flowchart showing an example of the data writing process when a file update is requested.

[ステップS161]ファイルシステム処理部132は、チャンクマップテーブル113に登録された、更新前のファイル(旧ファイル)に対応するレコードの位置を、RAM102に保存する。   [Step S161] The file system processing unit 132 stores, in the RAM 102, the position of the record corresponding to the file before update (old file) registered in the chunk map table 113.

[ステップS162]ファイルシステム処理部132は、NASクライアント210から受信した更新後のファイルの実データを処理対象として、図20の処理を実行する。これにより、更新後のファイルの実データがチャンク単位に分割され、各チャンクについての情報がチャンクマップテーブル113、チャンクテーブル114およびチャンクグループテーブル115に登録される。   [Step S162] The file system processing unit 132 executes the processing of FIG. 20 with the actual data of the file after update received from the NAS client 210 as the processing target. As a result, the actual data of the updated file is divided into chunks, and information on each chunk is registered in the chunk map table 113, the chunk table 114, and the chunk group table 115.

[ステップS163]ファイルシステム処理部132は、ステップS161で保存された位置が示すレコードの内容に基づいて、ステップS169のループ端までの処理を、旧ファイルの各チャンクについて実行する。   [Step S163] The file system processing unit 132 executes, for each chunk of the old file, the processing up to the loop end in step S169 based on the contents of the record indicated by the position stored in step S161.

[ステップS164]ファイルシステム処理部132は、チャンクテーブル114に登録された、処理対象のチャンクに対応するチャンクデータが格納されたレコードを参照し、「refcnt」の項目に記録された参照カウンタの値をカウントダウンする。   [Step S164] The file system processing unit 132 refers to the record stored in the chunk table 114 and storing the chunk data corresponding to the chunk to be processed, and the value of the reference counter recorded in the item “refcnt” Count down.

[ステップS165]ファイルシステム処理部132は、ステップS164で参照したレコードからグループ番号(gno)を取得する。ファイルシステム処理部132は、チャンクテーブル114から、このグループ番号が示すチャンクグループに属するすべてのチャンクデータに対応する参照カウンタの値を取得する。   [Step S165] The file system processing unit 132 acquires a group number (gno) from the record referred to in Step S164. The file system processing unit 132 acquires, from the chunk table 114, the values of reference counters corresponding to all chunk data belonging to the chunk group indicated by the group number.

[ステップS166]ファイルシステム処理部132は、ステップS165で取得された参照カウンタの値がすべて「0」の場合、ステップS167の処理を実行し、それらの値のうち少なくとも1つが「1」以上の場合、ステップS168の処理を実行する。   [Step S166] When all the values of the reference counter acquired in Step S165 are “0”, the file system processing unit 132 executes the process of Step S167, and at least one of those values is “1” or more. In the case, the process of step S168 is performed.

[ステップS167]このケースでは、ステップS165で取得されたグループ番号が示すチャンクグループに含まれるすべてのチャンクデータが、いずれのチャンクからも参照されていない無効な状態となっている。このため、ファイルシステム処理部132は、チャンクグループテーブル115から、このチャンクグループに対応するレコードを削除する。これにより、チャンクグループが削除される。   [Step S167] In this case, all chunk data included in the chunk group indicated by the group number acquired in step S165 is in an invalid state in which any chunk does not refer to any chunk data. Therefore, the file system processing unit 132 deletes the record corresponding to this chunk group from the chunk group table 115. This will delete the chunk group.

また、ファイルシステム処理部132は、操作ログテーブル121に対して、このチャンクグループの情報をクラウドストレージ240から削除するためのデータ操作ログを登録する。すなわち、このデータ操作ログにおいては、「action」の項目に「データ削除」が記録され、「update」の項目に、更新カウンタの値として「1」が記録される。なお、すでに該当チャンクグループに対応するデータ操作ログが登録されている場合、ファイルシステム処理部132は、そのデータ操作ログの「action」の項目に「データ削除」を上書きして記録し、「update」の項目に記録された値をカウントアップする。   Further, the file system processing unit 132 registers, in the operation log table 121, a data operation log for deleting the information of the chunk group from the cloud storage 240. That is, in this data operation log, “data deletion” is recorded in the item “action”, and “1” is recorded in the item “update” as the value of the update counter. In addition, when the data operation log corresponding to the applicable chunk group is already registered, the file system processing unit 132 overwrites “data deletion” in the item “action” of the data operation log and records it, “update” Count up the value recorded in the item of.

[ステップS168]ファイルシステム処理部132は、チャンクマップテーブル113から、ステップS161で保存された位置が示すレコードを削除する。
また、ステップS166で「No」と判定され、かつ、ステップS164でカウントダウン後の参照カウンタの値が「0」になった場合、ファイルシステム処理部132は、この参照カウンタを含むレコードをチャンクテーブル114から削除してもよい。また、ステップS166で「Yes」と判定された場合、ファイルシステム処理部132は、チャンクテーブル114から、ステップS167で削除されたチャンクグループに属するすべてのチャンクデータのレコードを削除してもよい。
[Step S168] The file system processing unit 132 deletes the record indicated by the position stored in step S161 from the chunk map table 113.
If the result of the determination in step S166 is "No" and the value of the reference counter after the countdown becomes "0" in step S164, the file system processing unit 132 selects the record including the reference counter in the chunk table 114. You may delete it from In addition, if “Yes” is determined in step S166, the file system processing unit 132 may delete records of all chunk data belonging to the chunk group deleted in step S167 from the chunk table 114.

[ステップS169]ファイルシステム処理部132は、ステップS164〜S168の処理を旧ファイルのすべてのチャンクについて実行すると、データ書き込み処理を終了する。   [Step S169] When the file system processing unit 132 executes the processing of steps S164 to S168 for all chunks of the old file, the file writing processing is ended.

最後に、ステップS103に対応する第3段階の処理では、ファイルシステム処理部132は、更新が要求されたファイルに対応するファイル操作ログを処理対象として、図22と同様の処理を実行する。   Finally, in the third step processing corresponding to step S103, the file system processing unit 132 executes processing similar to that of FIG. 22 with the file operation log corresponding to the file requested for updating as the processing target.

以上の手順により、NASクライアント210から既存のファイルの更新が要求された場合のファイルシステム処理部132の処理が完了する。
なお、NASクライアント210からファイルの削除が要求された場合には、次のような処理が実行される。ファイルシステム処理部132は、削除対象のファイルに含まれる各チャンクを処理対象として、図23のステップS164〜S168の処理を実行する。これにより、削除対象のファイルに関連付けられたチャンクデータの参照カウンタの値が更新される。また、すべてのチャンクデータの参照カウンタが「0」になったチャンクグループが出現した場合、そのチャンクグループに関する情報群をクラウドストレージ240から削除するためのデータ操作ログが、操作ログテーブル121に登録される。
By the above-described procedure, the processing of the file system processing unit 132 when the update of the existing file is requested from the NAS client 210 is completed.
When deletion of a file is requested from the NAS client 210, the following processing is executed. The file system processing unit 132 executes the processing of steps S164 to S168 in FIG. 23 with each chunk included in the file to be deleted as the processing target. As a result, the value of the reference counter of the chunk data associated with the file to be deleted is updated. Also, when a chunk group for which the reference counter for all chunk data has become “0” appears, a data operation log for deleting the information group related to the chunk group from the cloud storage 240 is registered in the operation log table 121 Ru.

その後、ファイルシステム処理部132は、ディレクトリテーブル111およびエントリテーブル112から、削除対象のファイルに対応するレコードを削除する。さらに、ファイルシステム処理部132は、次のようなファイル操作ログの登録処理を実行する。   Thereafter, the file system processing unit 132 deletes the record corresponding to the file to be deleted from the directory table 111 and the entry table 112. Furthermore, the file system processing unit 132 executes the following file operation log registration process.

この登録処理では、削除対象のファイルに対応するファイル操作ログが操作ログテーブル121に存在しない場合、ファイルシステム処理部132は、削除対象のファイルのinode番号を指定したファイル操作ログを操作ログテーブル121に登録する。このファイル操作ログにおいては、「action」の項目に「ファイル削除」が記録され、「update」の項目に「1」が記録される。一方、削除対象のファイルに対応するファイル操作ログが操作ログテーブル121に存在する場合、ファイルシステム処理部132は、このファイル操作ログにおける「action」の項目に「ファイル削除」が上書きして記録され、「update」の項目の値がカウントアップされる。このような登録処理により、削除対象のファイルに関する情報群をクラウドストレージ240から削除するためのファイル操作ログが、操作ログテーブル121に登録される。   In this registration process, when the file operation log corresponding to the file to be deleted does not exist in the operation log table 121, the file system processing unit 132 manipulates the file operation log specifying the inode number of the file to be deleted. Register on In the file operation log, “file deletion” is recorded in the “action” item, and “1” is recorded in the “update” item. On the other hand, when the file operation log corresponding to the file to be deleted exists in the operation log table 121, the file system processing unit 132 overwrites “file deletion” in the item “action” in the file operation log and is recorded. , The value of the item "update" is counted up. Through such registration processing, a file operation log for deleting the information group related to the file to be deleted from the cloud storage 240 is registered in the operation log table 121.

次に、クラウド転送処理部133の処理について説明する。図24は、クラウド転送処理部の処理例を示すフローチャートである。
[ステップS201]クラウド転送処理部133は、操作ログテーブル121から先頭の操作ログ(すなわち、「counter」の項目に記録された値が最も小さいレコード)を取得する。
Next, processing of the cloud transfer processing unit 133 will be described. FIG. 24 is a flowchart illustrating an example of processing of the cloud transfer processing unit.
[Step S201] The cloud transfer processing unit 133 acquires, from the operation log table 121, the first operation log (that is, the record with the smallest value recorded in the item “counter”).

[ステップS202]クラウド転送処理部133は、取得された操作ログの「type」の項目に基づいて、操作ログの種別を判定する。クラウド転送処理部133は、取得された操作ログがファイル操作ログの場合、ステップS203の処理を実行し、取得された操作ログがデータ操作ログの場合、ステップS204の処理を実行する。   [Step S202] The cloud transfer processing unit 133 determines the type of the operation log based on the item “type” of the acquired operation log. When the acquired operation log is a file operation log, the cloud transfer processing unit 133 executes the process of step S203. When the acquired operation log is a data operation log, the cloud transfer processing unit 133 executes the process of step S204.

[ステップS203]クラウド転送処理部133は、ファイル操作ログに基づくクラウド転送処理を実行する。
[ステップS204]クラウド転送処理部133は、データ操作ログに基づくクラウド転送処理を実行する。
[Step S203] The cloud transfer processing unit 133 executes cloud transfer processing based on the file operation log.
[Step S204] The cloud transfer processing unit 133 executes cloud transfer processing based on the data operation log.

図25、図26は、ファイル操作ログに基づくクラウド転送処理の例を示すフローチャートである。この図25、図26の処理は、図24のステップS203の処理に対応する。   25 and 26 are flowcharts showing an example of the cloud transfer process based on the file operation log. The processes of FIGS. 25 and 26 correspond to the process of step S203 of FIG.

[ステップS211]クラウド転送処理部133は、ファイル操作ログから「update」の項目に記録された更新カウンタの値を抽出し、カウント値保存部133aに保存する。この値の抽出元となるファイル操作ログは、図24のステップS202の次にステップS211が実行される場合、図24のステップS202で取得されたファイル操作ログである、一方、後述する図26のステップS227の次にステップS211が実行される場合、ステップS227で再取得されたファイル操作ログである。   [Step S211] The cloud transfer processing unit 133 extracts the value of the update counter recorded in the item “update” from the file operation log, and stores the value in the count value storage unit 133a. The file operation log from which this value is extracted is the file operation log acquired in step S202 in FIG. 24 when step S211 is executed after step S202 in FIG. If step S211 is executed after step S227, the file operation log is the file operation log reacquired in step S227.

[ステップS212]クラウド転送処理部133は、取得された操作ログの「action」の項目に「ファイル作成中」が含まれている場合、ステップS213の処理を実行し、「ファイル作成中」が含まれていない場合、ステップS214の処理を実行する。   [Step S 212] If the item “action” in the acquired operation log includes “file creation in progress”, the cloud transfer processing unit 133 executes the process in step S 213 and “file creation in progress” is included. If not, the process of step S214 is performed.

[ステップS213]クラウド転送処理部133は、取得されたファイル操作ログに対応するファイルの「parent」「name」をオブジェクト名とするファイルオブジェクトを生成する。このとき、ファイルオブジェクトのオブジェクト値の各項目には、ディレクトリテーブル111およびエントリテーブル112に登録された、上記ファイルに対応するレコードから情報がコピーされる。クラウド転送処理部133は、生成されたファイルオブジェクトをクラウドストレージ240に送信する。   [Step S213] The cloud transfer processing unit 133 generates a file object whose object name is “parent” or “name” of the file corresponding to the acquired file operation log. At this time, information is copied from the record corresponding to the file registered in the directory table 111 and the entry table 112 in each item of the object value of the file object. The cloud transfer processing unit 133 transmits the generated file object to the cloud storage 240.

[ステップS214]クラウド転送処理部133は、取得された操作ログの「action」の項目に「ファイル更新」が含まれている場合、ステップS215の処理を実行し、「ファイル更新」が含まれていない場合、図26のステップS221の処理を実行する。   [Step S214] If the item “action” in the acquired operation log includes “file update”, the cloud transfer processing unit 133 executes the process of step S215, and “file update” is included. If not, the process of step S221 of FIG. 26 is executed.

[ステップS215]クラウド転送処理部133は、取得されたファイル操作ログに対応するファイルの「parent」「name」をオブジェクト名とするファイルオブジェクトを生成する。このとき、ファイルオブジェクトのオブジェクト値の各項目には、ディレクトリテーブル111およびエントリテーブル112に登録された、上記ファイルに対応するレコードから情報がコピーされる。   [Step S215] The cloud transfer processing unit 133 generates a file object whose object name is “parent” or “name” of the file corresponding to the acquired file operation log. At this time, information is copied from the record corresponding to the file registered in the directory table 111 and the entry table 112 in each item of the object value of the file object.

クラウド転送処理部133は、生成されたファイルオブジェクトをクラウドストレージ240に送信する。このケースでは、クラウドストレージ240に対して、同じファイルに対応するファイルオブジェクトの更新が要求されることになる。   The cloud transfer processing unit 133 transmits the generated file object to the cloud storage 240. In this case, the cloud storage 240 is required to update the file object corresponding to the same file.

以下、図26を参照して説明を続ける。
[ステップS221]クラウド転送処理部133は、取得された操作ログの「action」の項目に「ファイル作成完了」が含まれている場合、ステップS222の処理を実行し、「ファイル作成完了」が含まれていない場合、ステップS223の処理を実行する。
Hereinafter, the description will be continued with reference to FIG.
[Step S221] If the item of “action” in the acquired operation log includes “file creation complete”, the cloud transfer processing unit 133 executes the process of step S222, and “file creation complete” is included. If not, the process of step S223 is performed.

[ステップS222]クラウド転送処理部133は、取得されたファイル操作ログに対応するファイルのinode番号をオブジェクト名とするチャンクマップオブジェクトを生成する。このとき、チャンクマップオブジェクトのオブジェクト値の各項目には、チャンクマップテーブル113およびチャンクテーブル114に登録された、上記ファイルに対応するレコードから情報がコピーされる。クラウド転送処理部133は、生成されたチャンクマップオブジェクトをクラウドストレージ240に送信する。   [Step S222] The cloud transfer processing unit 133 generates a chunk map object whose object name is the inode number of the file corresponding to the acquired file operation log. At this time, information is copied from the record corresponding to the file registered in the chunk map table 113 and the chunk table 114 in each item of the object value of the chunk map object. The cloud transfer processing unit 133 transmits the generated chunk map object to the cloud storage 240.

なお、例えば、このステップS222に進んだ時点で「Action」の項目に「ファイル作成完了」とともに「ファイル作成」や「ファイル更新」が記録されている場合には、直前のステップS212またはステップS215において、「ファイル作成」や「ファイル更新」に基づいてファイルオブジェクトがクラウドストレージ240に送信される。このように、「ファイル作成」や「ファイル更新」という操作内容を上書きせずに「ファイル作成完了」が記録されることで、「ファイル作成」や「ファイル更新」という操作内容に応じた必要な情報を、データ管理部110からクラウドストレージ240に対して確実に転送できる。   In addition, for example, when “file creation completed” and “file creation” or “file update” are recorded in the “Action” item at the time of proceeding to step S222, it is determined in the immediately preceding step S212 or step S215. File objects are sent to the cloud storage 240 based on “file creation” and “file update”. As described above, by recording "file creation complete" without overwriting the operation content such as "file creation" or "file update", it is necessary to meet the operation content such as "file creation" or "file update". Information can be reliably transferred from the data management unit 110 to the cloud storage 240.

[ステップS223]クラウド転送処理部133は、取得された操作ログの「action」の項目に「ファイル削除」が含まれている場合、ステップS224の処理を実行し、「ファイル削除」が含まれていない場合、ステップS225の処理を実行する。   [Step S223] When the item of “action” in the acquired operation log includes “file deletion”, the cloud transfer processing unit 133 executes the process of step S224 and includes “file deletion”. If not, the process of step S225 is performed.

[ステップS224]クラウド転送処理部133は、取得されたファイル操作ログに対応するファイルの識別情報をオブジェクト名とするファイルオブジェクトおよびチャンクマップオブジェクトを生成する。これらのファイルオブジェクトおよびチャンクマップオブジェクトは、該当ファイルに対応する格納済みのファイルオブジェクトおよびチャンクマップオブジェクトを、クラウドストレージ240から削除するように要求するためのオブジェクトである。クラウド転送処理部133は、生成されたファイルオブジェクトおよびチャンクマップオブジェクトをクラウドストレージ240に送信する。   [Step S224] The cloud transfer processing unit 133 generates a file object and a chunk map object whose object name is the identification information of the file corresponding to the acquired file operation log. These file objects and chunk map objects are objects for requesting deletion of the stored file objects and chunk map objects corresponding to the corresponding file from the cloud storage 240. The cloud transfer processing unit 133 transmits the generated file object and chunk map object to the cloud storage 240.

[ステップS225]クラウド転送処理部133は、操作ログテーブル121を参照し、図24のステップS202と同じファイル操作ログから、「update」の項目に記録された更新カウンタの値を再取得する。   [Step S225] The cloud transfer processing unit 133 refers to the operation log table 121, and reacquires the value of the update counter recorded in the item “update” from the same file operation log as step S202 in FIG.

[ステップS226]クラウド転送処理部133は、ステップS211でカウント値保存部133aに保存された更新カウンタの値と、ステップS225で再取得された更新カウンタの値とを比較する。クラウド転送処理部133は、これらの値が同一の場合、ステップS228の処理を実行し、これらの値が異なる場合、ステップS227の処理を実行する。   [Step S226] The cloud transfer processing unit 133 compares the value of the update counter stored in the count value storage unit 133a in step S211 with the value of the update counter reacquired in step S225. When these values are the same, the cloud transfer processing unit 133 executes the process of step S228, and when the values are different, the cloud transfer processing unit 133 executes the process of step S227.

[ステップS227]クラウド転送処理部133は、ステップS225での参照先のファイル操作ログを操作ログテーブル121から再取得する。この後、図25のステップS211に進み、再取得されたファイル操作ログに基づいて処理が継続される。すなわち、ステップS226において更新カウンタの値が一致するまで、ステップS227,S211〜S215,S221〜S226の処理が繰り返される。   [Step S227] The cloud transfer processing unit 133 reacquires the file operation log of the reference destination in step S225 from the operation log table 121. Thereafter, the process proceeds to step S211 in FIG. 25, and the process is continued based on the re-acquired file operation log. That is, the processes of steps S227, S211 to S215, and S221 to S226 are repeated until the values of the update counter match in step S226.

[ステップS228]クラウド転送処理部133は、ステップS225で参照されたファイル操作ログを操作ログテーブル121から削除する。
図27は、データ操作ログに基づくクラウド転送処理の例を示すフローチャートである。この図27の処理は、図24のステップS204の処理に対応する。
[Step S228] The cloud transfer processing unit 133 deletes the file operation log referenced in step S225 from the operation log table 121.
FIG. 27 is a flowchart illustrating an example of cloud transfer processing based on a data operation log. The process of FIG. 27 corresponds to the process of step S204 of FIG.

[ステップS231]クラウド転送処理部133は、データ操作ログから「update」の項目に記録された更新カウンタの値を抽出し、カウント値保存部133aに保存する。この値の抽出元となるデータ操作ログは、図24のステップS202の次にステップS231が実行される場合、図24のステップS202で取得されたデータ操作ログである、一方、後述するステップS239の次にステップS231が実行される場合、ステップS239で再取得されたデータ操作ログである。   [Step S231] The cloud transfer processing unit 133 extracts the value of the update counter recorded in the item of “update” from the data operation log, and stores the value in the count value storage unit 133a. The data operation log as the extraction source of this value is the data operation log acquired in step S202 of FIG. 24 when step S231 is executed after step S202 of FIG. Next, when step S231 is executed, it is the data operation log reacquired in step S239.

[ステップS232]クラウド転送処理部133は、取得されたデータ操作ログの「action」の項目に「データ書き込み中」が記録されている場合、ステップS233の処理を実行し、それ以外の情報が記録されている場合、ステップS234の処理を実行する。   [Step S232] When “during data writing” is recorded in the item of “action” of the acquired data operation log, the cloud transfer processing unit 133 executes the process of step S233, and records the other information If yes, the process of step S234 is performed.

[ステップS233]クラウド転送処理部133は、取得されたデータ操作ログの作成から一定時間が経過しているかを判定する。クラウド転送処理部133が、一定時間が経過している場合、ステップS235の処理を実行し、一定時間が経過していない場合、処理を終了する。   [Step S233] The cloud transfer processing unit 133 determines whether a predetermined time has elapsed since the creation of the acquired data operation log. When the fixed time has elapsed, the cloud transfer processing unit 133 executes the process of step S235, and when the fixed time has not elapsed, the process ends.

[ステップS234]クラウド転送処理部133は、取得されたデータ操作ログの「action」の項目に「データ書き込み完了」が記録されている場合、ステップS235の処理を実行する。一方、クラウド転送処理部133は、当該項目に「データ削除」が記録されている場合、ステップS236の処理を実行する。   [Step S234] If “data write completion” is recorded in the item of “action” of the acquired data operation log, the cloud transfer processing unit 133 executes the process of step S235. On the other hand, when “data deletion” is recorded in the item, the cloud transfer processing unit 133 executes the process of step S236.

[ステップS235]クラウド転送処理部133は、取得されたデータ操作ログに記録されたグループ番号をオブジェクト名とするチャンクグループオブジェクトを生成する。このとき、クラウド転送処理部133は、上記グループ番号に対応するチャンクグループテーブル115のレコードからチャンクデータを取得し、チャンクグループオブジェクトの「datalist」の項目に格納する。また、クラウド転送処理部133は、これらのチャンクデータに基づいて、チャンクグループオブジェクトの「header」の項目に必要な情報を格納する。クラウド転送処理部133は、生成されたチャンクグループオブジェクトをクラウドストレージ240に送信する。   [Step S235] The cloud transfer processing unit 133 generates a chunk group object whose object name is the group number recorded in the acquired data operation log. At this time, the cloud transfer processing unit 133 acquires chunk data from the record of the chunk group table 115 corresponding to the group number, and stores the chunk data in the item “datalist” of the chunk group object. In addition, the cloud transfer processing unit 133 stores information necessary for the item of “header” of the chunk group object based on the chunk data. The cloud transfer processing unit 133 transmits the generated chunk group object to the cloud storage 240.

[ステップS236]クラウド転送処理部133は、取得されたデータ操作ログに記録されたグループ番号をオブジェクト名とするチャンクグループオブジェクトを生成する。このチャンクグループオブジェクトは、該当グループ番号に対応する格納済みのチャンクグループオブジェクトを、クラウドストレージ240から削除するように要求するためのオブジェクトである。クラウド転送処理部133は、生成されたチャンクグループオブジェクトをクラウドストレージ240に送信する。   [Step S236] The cloud transfer processing unit 133 generates a chunk group object whose object name is the group number recorded in the acquired data operation log. The chunk group object is an object for requesting deletion of the stored chunk group object corresponding to the corresponding group number from the cloud storage 240. The cloud transfer processing unit 133 transmits the generated chunk group object to the cloud storage 240.

[ステップS237]クラウド転送処理部133は、操作ログテーブル121を参照し、図24のステップS202と同じデータ操作ログから、「update」の項目に記録された更新カウンタの値を再取得する。   [Step S237] The cloud transfer processing unit 133 refers to the operation log table 121, and reacquires the value of the update counter recorded in the item “update” from the same data operation log as step S202 in FIG.

[ステップS238]クラウド転送処理部133は、ステップS231でカウント値保存部133aに保存された更新カウンタの値と、ステップS237で再取得された更新カウンタの値とを比較する。クラウド転送処理部133は、これらの値が同一の場合、ステップS240の処理を実行し、これらの値が異なる場合、ステップS239の処理を実行する。   [Step S238] The cloud transfer processing unit 133 compares the value of the update counter stored in the count value storage unit 133a in step S231 with the value of the update counter reacquired in step S237. The cloud transfer processing unit 133 executes the process of step S240 when these values are the same, and executes the process of step S239 when the values are different.

[ステップS239]クラウド転送処理部133は、ステップS237での参照先のデータ操作ログを操作ログテーブル121から再取得する。この後、ステップS231に進み、再取得されたデータ操作ログに基づいて処理が継続される。すなわち、ステップS238において更新カウンタの値が一致するまで、ステップS239,S231〜S238の処理が繰り返される。   [Step S239] The cloud transfer processing unit 133 reacquires, from the operation log table 121, the data operation log referred to in step S237. Thereafter, the process proceeds to step S231, and the process is continued based on the re-acquired data operation log. That is, the process of steps S239 and S231 to S238 is repeated until the value of the update counter matches in step S238.

[ステップS240]クラウド転送処理部133は、ステップS237で参照されたデータ操作ログを操作ログテーブル121から削除する。
なお、上記の各実施の形態に示した装置(情報処理装置1、クラウドストレージゲートウェイ100)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク(BD)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
[Step S240] The cloud transfer processing unit 133 deletes the data operation log referenced in step S237 from the operation log table 121.
The processing functions of the devices (the information processing device 1 and the cloud storage gateway 100) described in the above embodiments can be realized by a computer. In that case, a program describing the processing content of the function that each device should have is provided, and the above processing function is realized on the computer by executing the program on the computer. The program in which the processing content is described can be recorded on a computer readable recording medium. Examples of the computer-readable recording medium include a magnetic storage device, an optical disc, a magneto-optical recording medium, and a semiconductor memory. The magnetic storage device includes a hard disk drive (HDD), a flexible disk (FD), a magnetic tape, and the like. The optical disc includes a CD (Compact Disc), a DVD (Digital Versatile Disc), a Blu-ray Disc (BD), and the like. Magneto-optical recording media include MO (Magneto-Optical disk) and the like.

プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CDなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。   In the case of distributing the program, for example, portable recording media, such as DVDs and CDs, on which the program is recorded are sold. Alternatively, the program may be stored in the storage device of the server computer, and the program may be transferred from the server computer to another computer via a network.

プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。   The computer executing the program stores, for example, the program recorded on the portable recording medium or the program transferred from the server computer in its own storage device. Then, the computer reads the program from its storage device and executes processing according to the program. The computer can also read the program directly from the portable recording medium and execute processing according to the program. Also, each time a program is transferred from a server computer connected via a network, the computer can sequentially execute processing in accordance with the received program.

以上の各実施の形態に関し、さらに以下の付記を開示する。
(付記1) 外部ストレージ装置に対する転送単位ごとにそれぞれ分類された複数のデータ群と、前記複数のデータ群のいずれかにそれぞれ対応する1以上の操作情報が登録される転送制御情報とを記憶する記憶部と、制御部とを有し、
前記制御部は、
前記複数のデータ群のうち第1のデータ群に対する第1の操作を行うと、前記第1のデータ群に対応する第1の操作情報を前記転送制御情報に登録し、
前記第1のデータ群が転送対象として抽出されると、前記第1のデータ群に対応する前記第1の操作情報を保持情報として一時的に保持するとともに、前記第1のデータ群を前記外部ストレージ装置に転送し、
前記外部ストレージ装置に対する前記第1のデータ群の転送中に前記第1のデータ群に対する第2の操作を行った場合、前記転送制御情報に登録された前記第1の操作情報を更新し、
前記外部ストレージ装置に対する前記第1のデータ群の転送が完了すると、前記転送制御情報に登録された前記第1の操作情報と、前記保持情報とを比較し、
前記第1の操作情報と前記保持情報とが一致しない場合、前記第1の操作情報に対応する前記第1のデータ群を前記外部ストレージ装置に再転送する、
情報処理装置。
The following appendices will be further disclosed regarding the above-described embodiments.
(Supplementary Note 1) A plurality of data groups respectively classified for each transfer unit to the external storage apparatus, and transfer control information in which one or more operation information corresponding to any of the plurality of data groups are registered are stored. A storage unit and a control unit;
The control unit
When a first operation is performed on a first data group among the plurality of data groups, the first operation information corresponding to the first data group is registered in the transfer control information;
When the first data group is extracted as a transfer target, the first operation information corresponding to the first data group is temporarily held as holding information, and the first data group is externally transmitted. Transfer to the storage device,
If a second operation is performed on the first data group while the first data group is being transferred to the external storage device, the first operation information registered in the transfer control information is updated;
When transfer of the first data group to the external storage device is completed, the first operation information registered in the transfer control information is compared with the held information;
When the first operation information does not match the held information, the first data group corresponding to the first operation information is retransferred to the external storage device.
Information processing device.

(付記2) 前記第1の操作情報の登録では、前記第1の操作情報に所定のカウント値を設定し、
前記第1の操作情報の更新では、前記カウント値を更新し、
前記第1の操作情報と前記保持情報との比較では、前記第1の操作情報に含まれる前記カウント値と前記保持情報に含まれる前記カウント値とを比較する、
付記1記載の情報処理装置。
(Supplementary Note 2) In the registration of the first operation information, a predetermined count value is set in the first operation information,
In the update of the first operation information, the count value is updated,
In the comparison between the first operation information and the held information, the count value included in the first operation information is compared with the count value included in the held information.
The information processing apparatus according to appendix 1.

(付記3) 前記第1の操作情報の登録では、前記第1の操作情報に前記第1の操作を示す第1の操作内容を設定し、
前記第1のデータ群の転送では、前記第1の操作情報に設定された前記第1の操作内容に基づいて前記第1のデータ群の中から抽出されたデータを前記外部ストレージ装置に転送し、
前記第1の操作情報の更新では、前記第1の操作情報に前記第2の操作を示す第2の操作内容を設定し、
前記第1のデータ群の再転送では、前記第1の操作情報に設定された前記第2の操作内容に基づいて前記第1のデータ群の中から抽出されたデータを前記外部ストレージ装置に転送する、
付記1または2に記載の情報処理装置。
(Supplementary Note 3) In the registration of the first operation information, a first operation content indicating the first operation is set in the first operation information,
In the transfer of the first data group, data extracted from the first data group is transferred to the external storage device based on the first operation content set in the first operation information. ,
In the update of the first operation information, a second operation content indicating the second operation is set in the first operation information,
In the retransfer of the first data group, data extracted from the first data group is transferred to the external storage device based on the second operation content set in the first operation information. Do,
The information processing apparatus according to appendix 1 or 2.

(付記4) 前記第1の操作情報の更新では、前記第1の操作情報に対して前記第2の操作内容を追加的に設定し、
前記第1のデータ群の再転送では、前記第1の操作情報に前記第1の操作内容と前記第2の操作内容とが設定されている場合、前記第1の操作内容に基づいて前記第1のデータ群の中から抽出されたデータと、前記第2の操作内容に基づいて前記第1のデータ群の中から抽出されたデータとを前記外部ストレージ装置に転送する、
付記3に記載の情報処理装置。
(Supplementary Note 4) In the update of the first operation information, the second operation content is additionally set to the first operation information,
In the retransfer of the first data group, when the first operation content and the second operation content are set in the first operation information, the first operation content is set based on the first operation content. Transferring data extracted from one data group and data extracted from the first data group based on the second operation content to the external storage device;
The information processing apparatus according to appendix 3.

(付記5) 前記第1のデータ群の再転送では、前記転送制御情報に登録された前記第1の操作情報を前記保持情報として一時的に保持し、
前記制御部は、さらに、前記第1のデータ群の再転送が完了すると、前記転送制御情報に登録された前記第1の操作情報と、前記保持情報とを比較し、前記第1の操作情報と前記保持情報とが一致した場合、前記第1の操作情報を前記転送制御情報から削除する、
付記1乃至4のいずれか1つに記載の情報処理装置。
(Supplementary Note 5) In retransfer of the first data group, the first operation information registered in the transfer control information is temporarily held as the holding information,
Further, when the retransfer of the first data group is completed, the control unit compares the first operation information registered in the transfer control information with the stored information, and the first operation information Deleting the first operation information from the transfer control information when the stored information matches
The information processing apparatus according to any one of appendices 1 to 4.

(付記6) 前記転送制御情報からは、前記操作情報が登録順に取得される、
付記1乃至5のいずれか1つに記載の情報処理装置。
(付記7) 前記複数のデータ群はそれぞれ、外部情報処理装置から前記外部ストレージ装置に対して書き込みが要求されたファイルに関する管理データ群であり、
前記第1の操作と前記第2の操作は、前記外部情報処理装置から前記第1のデータ群に対応する第1のファイルの書き込みが要求されてから書き込み処理の完了を前記外部情報処理装置に応答するまでの間に、前記第1のファイルに対応する前記管理データ群に対して段階的に実行される操作である、
付記1乃至6のいずれか1つに記載の情報処理装置。
(Supplementary Note 6) The operation information is acquired in the order of registration from the transfer control information.
The information processing apparatus according to any one of appendices 1 to 5.
(Supplementary Note 7) Each of the plurality of data groups is a management data group related to a file for which writing is requested from the external information processing apparatus to the external storage apparatus,
In the first operation and the second operation, the external information processing apparatus is requested to write the first file corresponding to the first data group from the external information processing apparatus, and then the external information processing apparatus completes the write processing. It is an operation that is performed stepwise on the management data group corresponding to the first file until it responds.
The information processing apparatus according to any one of appendices 1 to 6.

(付記8) 前記制御部は、さらに、前記外部情報処理装置から書き込みが要求された各ファイルのデータを分割して分割領域に割り当て、前記分割領域にそれぞれ含まれる分割データを、重複を排除した状態で前記記憶部に格納し、
前記第1のデータ群に対応する前記管理データ群は、前記第1のファイルを分割して生成された前記分割領域と、生成された前記分割領域にそれぞれ含まれる前記分割データの前記記憶部における格納場所との対応関係を示すデータと、前記第1のファイルのメタデータとを含み、
前記第1の操作は、前記メタデータの書き込み操作であり、前記第2の操作は、前記対応関係を示すデータの書き込み操作である、
付記7に記載の情報処理装置。
(Supplementary Note 8) The control unit further divides data of each file requested to be written from the external information processing apparatus and allocates the divided data to divided areas, and eliminates overlapping of divided data included in each of the divided areas. Stored in the storage unit in the state,
The management data group corresponding to the first data group includes the division area generated by dividing the first file and the storage unit of the division data included in each of the generated division areas. Data including a correspondence relationship with a storage location, and metadata of the first file,
The first operation is a write operation of the metadata, and the second operation is a write operation of data indicating the correspondence.
The information processing apparatus according to appendix 7.

(付記9) 前記制御部は、さらに、外部情報処理装置から前記外部ストレージ装置に対して書き込みが要求されたファイルのデータを分割して分割領域に割り当て、前記分割領域にそれぞれ含まれる分割データを、重複を排除した状態で前記記憶部に格納し、
前記分割データの格納では、1以上の前記分割データをグループ化して生成された分割データ群を、それぞれ前記複数のデータ群に含まれるデータ群の1つとして前記記憶部に格納する、
付記1乃至6のいずれか1つに記載の情報処理装置。
(Supplementary Note 9) The control unit further divides data of a file for which writing is requested from the external information processing device to the external storage device, and assigns the divided data to divided regions, and the divided data included in the divided regions , Storing the data in the storage unit in a state where the duplication is eliminated,
In storing the divided data, divided data groups generated by grouping one or more pieces of divided data are stored in the storage unit as one of data groups included in the plurality of data groups, respectively.
The information processing apparatus according to any one of appendices 1 to 6.

(付記10) コンピュータに、
記憶部に記憶された、外部ストレージ装置に対する転送単位ごとにそれぞれ分類された複数のデータ群のうち、第1のデータ群に対する第1の操作を行うと、前記記憶部に記憶された、前記複数のデータ群のいずれかにそれぞれ対応する1以上の操作情報が登録される転送制御情報に対して、前記第1のデータ群に対応する第1の操作情報を登録し、
前記第1のデータ群が転送対象として抽出されると、前記第1のデータ群に対応する前記第1の操作情報を保持情報として一時的に保持するとともに、前記第1のデータ群を前記外部ストレージ装置に転送し、
前記外部ストレージ装置に対する前記第1のデータ群の転送中に前記第1のデータ群に対する第2の操作を行った場合、前記転送制御情報に登録された前記第1の操作情報を更新し、
前記外部ストレージ装置に対する前記第1のデータ群の転送が完了すると、前記転送制御情報に登録された前記第1の操作情報と、前記保持情報とを比較し、
前記第1の操作情報と前記保持情報とが一致しない場合、前記第1の操作情報に対応する前記第1のデータ群を前記外部ストレージ装置に再転送する、
処理を実行させる情報処理プログラム。
(Supplementary note 10)
The plurality of data groups stored in the storage unit when the first operation is performed on the first data group among the plurality of data groups stored in the storage unit and classified according to transfer units to the external storage device The first operation information corresponding to the first data group is registered in transfer control information in which one or more operation information corresponding to any of the data groups are registered,
When the first data group is extracted as a transfer target, the first operation information corresponding to the first data group is temporarily held as holding information, and the first data group is externally transmitted. Transfer to the storage device,
If a second operation is performed on the first data group while the first data group is being transferred to the external storage device, the first operation information registered in the transfer control information is updated;
When transfer of the first data group to the external storage device is completed, the first operation information registered in the transfer control information is compared with the held information;
When the first operation information does not match the held information, the first data group corresponding to the first operation information is retransferred to the external storage device.
An information processing program that executes processing.

(付記11) 前記第1の操作情報の登録では、前記第1の操作情報に所定のカウント値を設定し、
前記第1の操作情報の更新では、前記カウント値を更新し、
前記第1の操作情報と前記保持情報との比較では、前記第1の操作情報に含まれる前記カウント値と前記保持情報に含まれる前記カウント値とを比較する、
付記10に記載の情報処理プログラム。
(Supplementary Note 11) In the registration of the first operation information, a predetermined count value is set in the first operation information,
In the update of the first operation information, the count value is updated,
In the comparison between the first operation information and the held information, the count value included in the first operation information is compared with the count value included in the held information.
The information processing program according to appendix 10.

(付記12) 前記第1の操作情報の登録では、前記第1の操作情報に前記第1の操作を示す第1の操作内容を設定し、
前記第1のデータ群の転送では、前記第1の操作情報に設定された前記第1の操作内容に基づいて前記第1のデータ群の中から抽出されたデータを前記外部ストレージ装置に転送し、
前記第1の操作情報の更新では、前記第1の操作情報に前記第2の操作を示す第2の操作内容を設定し、
前記第1のデータ群の再転送では、前記第1の操作情報に設定された前記第2の操作内容に基づいて前記第1のデータ群の中から抽出されたデータを前記外部ストレージ装置に転送する、
付記10または11に記載の情報処理プログラム。
(Supplementary Note 12) In the registration of the first operation information, a first operation content indicating the first operation is set in the first operation information,
In the transfer of the first data group, data extracted from the first data group is transferred to the external storage device based on the first operation content set in the first operation information. ,
In the update of the first operation information, a second operation content indicating the second operation is set in the first operation information,
In the retransfer of the first data group, data extracted from the first data group is transferred to the external storage device based on the second operation content set in the first operation information. Do,
The information processing program according to appendix 10 or 11.

(付記13) 前記第1のデータ群の再転送では、前記転送制御情報に登録された前記第1の操作情報を前記保持情報として一時的に保持し、
前記コンピュータに、
前記第1のデータ群の再転送が完了すると、前記転送制御情報に登録された前記第1の操作情報と、前記保持情報とを比較し、前記第1の操作情報と前記保持情報とが一致した場合、前記第1の操作情報を前記転送制御情報から削除する、
処理をさらに実行させる、
付記10乃至12のいずれか1つに記載の情報処理プログラム。
(Supplementary Note 13) In retransfer of the first data group, the first operation information registered in the transfer control information is temporarily held as the holding information,
On the computer
When retransfer of the first data group is completed, the first operation information registered in the transfer control information is compared with the held information, and the first operation information matches the held information. When it occurs, the first operation information is deleted from the transfer control information,
Make the process run further,
The information processing program according to any one of appendices 10 to 12.

(付記14) 前記複数のデータ群はそれぞれ、外部情報処理装置から前記外部ストレージ装置に対して書き込みが要求されたファイルに関する管理データ群であり、
前記第1の操作と前記第2の操作は、前記外部情報処理装置から前記第1のデータ群に対応する第1のファイルの書き込みが要求されてから書き込み処理の完了を前記外部情報処理装置に応答するまでの間に、前記第1のファイルに対応する前記管理データ群に対して段階的に実行される操作である、
付記10乃至13のいずれか1つに記載の情報処理プログラム。
(Supplementary Note 14) Each of the plurality of data groups is a management data group related to a file for which writing is requested from the external information processing apparatus to the external storage apparatus,
In the first operation and the second operation, the external information processing apparatus is requested to write the first file corresponding to the first data group from the external information processing apparatus, and then the external information processing apparatus completes the write processing. It is an operation that is performed stepwise on the management data group corresponding to the first file until it responds.
The information processing program according to any one of appendices 10 to 13.

(付記15) 前記外部情報処理装置から書き込みが要求された各ファイルのデータを分割して分割領域に割り当て、前記分割領域にそれぞれ含まれる分割データを、重複を排除した状態で前記記憶部に格納する、
処理を前記コンピュータにさらに実行させ、
前記第1のデータ群に対応する前記管理データ群は、前記第1のファイルを分割して生成された前記分割領域と、生成された前記分割領域にそれぞれ含まれる前記分割データの前記記憶部における格納場所との対応関係を示すデータと、前記第1のファイルのメタデータとを含み、
前記第1の操作は、前記メタデータの書き込み操作であり、前記第2の操作は、前記対応関係を示すデータの書き込み操作である、
付記14に記載の情報処理プログラム。
(Supplementary Note 15) Data of each file requested to be written from the external information processing apparatus is divided and allocated to divided areas, and divided data included in each of the divided areas is stored in the storage unit in a state where duplication is excluded Do,
Further causing the computer to execute the process;
The management data group corresponding to the first data group includes the division area generated by dividing the first file and the storage unit of the division data included in each of the generated division areas. Data including a correspondence relationship with a storage location, and metadata of the first file,
The first operation is a write operation of the metadata, and the second operation is a write operation of data indicating the correspondence.
The information processing program according to appendix 14.

1 情報処理装置
1a 記憶部
1b 制御部
2 ストレージ装置
3a,3b,3c データ群
4 転送制御情報
4a,4a1 操作情報
1 information processing apparatus 1a storage unit 1b control unit 2 storage device 3a, 3b, 3c data group 4 transfer control information 4a, 4a1 operation information

Claims (10)

外部ストレージ装置に対する転送単位ごとにそれぞれ分類された複数のデータ群と、前記複数のデータ群のいずれかにそれぞれ対応する1以上の操作情報が登録される転送制御情報とを記憶する記憶部と、制御部とを有し、
前記制御部は、
前記複数のデータ群のうち第1のデータ群に対する第1の操作を行うと、前記第1のデータ群に対応する第1の操作情報を前記転送制御情報に登録し、
前記第1のデータ群が転送対象として抽出されると、前記第1のデータ群に対応する前記第1の操作情報を保持情報として一時的に保持するとともに、前記第1のデータ群を前記外部ストレージ装置に転送し、
前記外部ストレージ装置に対する前記第1のデータ群の転送中に前記第1のデータ群に対する第2の操作を行った場合、前記転送制御情報に登録された前記第1の操作情報を更新し、
前記外部ストレージ装置に対する前記第1のデータ群の転送が完了すると、前記転送制御情報に登録された前記第1の操作情報と、前記保持情報とを比較し、
前記第1の操作情報と前記保持情報とが一致しない場合、前記第1の操作情報に対応する前記第1のデータ群を前記外部ストレージ装置に再転送する、
情報処理装置。
A storage unit for storing a plurality of data groups respectively classified for each transfer unit to the external storage device, and transfer control information in which one or more operation information corresponding to any of the plurality of data groups are registered; And a control unit,
The control unit
When a first operation is performed on a first data group among the plurality of data groups, the first operation information corresponding to the first data group is registered in the transfer control information;
When the first data group is extracted as a transfer target, the first operation information corresponding to the first data group is temporarily held as holding information, and the first data group is externally transmitted. Transfer to the storage device,
If a second operation is performed on the first data group while the first data group is being transferred to the external storage device, the first operation information registered in the transfer control information is updated;
When transfer of the first data group to the external storage device is completed, the first operation information registered in the transfer control information is compared with the held information;
When the first operation information does not match the held information, the first data group corresponding to the first operation information is retransferred to the external storage device.
Information processing device.
前記第1の操作情報の登録では、前記第1の操作情報に所定のカウント値を設定し、
前記第1の操作情報の更新では、前記カウント値を更新し、
前記第1の操作情報と前記保持情報との比較では、前記第1の操作情報に含まれる前記カウント値と前記保持情報に含まれる前記カウント値とを比較する、
請求項1に記載の情報処理装置。
In the registration of the first operation information, a predetermined count value is set in the first operation information,
In the update of the first operation information, the count value is updated,
In the comparison between the first operation information and the held information, the count value included in the first operation information is compared with the count value included in the held information.
An information processing apparatus according to claim 1.
前記第1の操作情報の登録では、前記第1の操作情報に前記第1の操作を示す第1の操作内容を設定し、
前記第1のデータ群の転送では、前記第1の操作情報に設定された前記第1の操作内容に基づいて前記第1のデータ群の中から抽出されたデータを前記外部ストレージ装置に転送し、
前記第1の操作情報の更新では、前記第1の操作情報に前記第2の操作を示す第2の操作内容を設定し、
前記第1のデータ群の再転送では、前記第1の操作情報に設定された前記第2の操作内容に基づいて前記第1のデータ群の中から抽出されたデータを前記外部ストレージ装置に転送する、
請求項1または2に記載の情報処理装置。
In the registration of the first operation information, a first operation content indicating the first operation is set in the first operation information,
In the transfer of the first data group, data extracted from the first data group is transferred to the external storage device based on the first operation content set in the first operation information. ,
In the update of the first operation information, a second operation content indicating the second operation is set in the first operation information,
In the retransfer of the first data group, data extracted from the first data group is transferred to the external storage device based on the second operation content set in the first operation information. Do,
The information processing apparatus according to claim 1.
前記第1の操作情報の更新では、前記第1の操作情報に対して前記第2の操作内容を追加的に設定し、
前記第1のデータ群の再転送では、前記第1の操作情報に前記第1の操作内容と前記第2の操作内容とが設定されている場合、前記第1の操作内容に基づいて前記第1のデータ群の中から抽出されたデータと、前記第2の操作内容に基づいて前記第1のデータ群の中から抽出されたデータとを前記外部ストレージ装置に転送する、
請求項3に記載の情報処理装置。
In the update of the first operation information, the second operation content is additionally set to the first operation information,
In the retransfer of the first data group, when the first operation content and the second operation content are set in the first operation information, the first operation content is set based on the first operation content. Transferring data extracted from one data group and data extracted from the first data group based on the second operation content to the external storage device;
The information processing apparatus according to claim 3.
前記第1のデータ群の再転送では、前記転送制御情報に登録された前記第1の操作情報を前記保持情報として一時的に保持し、
前記制御部は、さらに、前記第1のデータ群の再転送が完了すると、前記転送制御情報に登録された前記第1の操作情報と、前記保持情報とを比較し、前記第1の操作情報と前記保持情報とが一致した場合、前記第1の操作情報を前記転送制御情報から削除する、
請求項1乃至4のいずれか1項に記載の情報処理装置。
In retransfer of the first data group, the first operation information registered in the transfer control information is temporarily held as the holding information,
Further, when the retransfer of the first data group is completed, the control unit compares the first operation information registered in the transfer control information with the stored information, and the first operation information Deleting the first operation information from the transfer control information when the stored information matches
The information processing apparatus according to any one of claims 1 to 4.
前記転送制御情報からは、前記操作情報が登録順に取得される、
請求項1乃至5のいずれか1項に記載の情報処理装置。
The operation information is acquired from the transfer control information in the order of registration.
The information processing apparatus according to any one of claims 1 to 5.
前記複数のデータ群はそれぞれ、外部情報処理装置から前記外部ストレージ装置に対して書き込みが要求されたファイルに関する管理データ群であり、
前記第1の操作と前記第2の操作は、前記外部情報処理装置から前記第1のデータ群に対応する第1のファイルの書き込みが要求されてから書き込み処理の完了を前記外部情報処理装置に応答するまでの間に、前記第1のファイルに対応する前記管理データ群に対して段階的に実行される操作である、
請求項1乃至6のいずれか1項に記載の情報処理装置。
Each of the plurality of data groups is a management data group related to a file for which writing is requested from the external information processing apparatus to the external storage apparatus,
In the first operation and the second operation, the external information processing apparatus is requested to write the first file corresponding to the first data group from the external information processing apparatus, and then the external information processing apparatus completes the write processing. It is an operation that is performed stepwise on the management data group corresponding to the first file until it responds.
The information processing apparatus according to any one of claims 1 to 6.
前記制御部は、さらに、前記外部情報処理装置から書き込みが要求された各ファイルのデータを分割して分割領域に割り当て、前記分割領域にそれぞれ含まれる分割データを、重複を排除した状態で前記記憶部に格納し、
前記第1のデータ群に対応する前記管理データ群は、前記第1のファイルを分割して生成された前記分割領域と、生成された前記分割領域にそれぞれ含まれる前記分割データの前記記憶部における格納場所との対応関係を示すデータと、前記第1のファイルのメタデータとを含み、
前記第1の操作は、前記メタデータの書き込み操作であり、前記第2の操作は、前記対応関係を示すデータの書き込み操作である、
請求項7に記載の情報処理装置。
The control unit further divides data of each file requested to be written from the external information processing apparatus and assigns the divided data to divided areas, and stores the divided data respectively included in the divided areas in a state where duplication is excluded. Store in the department,
The management data group corresponding to the first data group includes the division area generated by dividing the first file and the storage unit of the division data included in each of the generated division areas. Data including a correspondence relationship with a storage location, and metadata of the first file,
The first operation is a write operation of the metadata, and the second operation is a write operation of data indicating the correspondence.
The information processing apparatus according to claim 7.
前記制御部は、さらに、外部情報処理装置から前記外部ストレージ装置に対して書き込みが要求されたファイルのデータを分割して分割領域に割り当て、前記分割領域にそれぞれ含まれる分割データを、重複を排除した状態で前記記憶部に格納し、
前記分割データの格納では、1以上の前記分割データをグループ化して生成された分割データ群を、それぞれ前記複数のデータ群に含まれるデータ群の1つとして前記記憶部に格納する、
請求項1乃至6のいずれか1項に記載の情報処理装置。
The control unit further divides data of a file for which writing is requested from the external information processing apparatus to the external storage device, assigns the divided data to divided areas, and eliminates duplication of divided data respectively included in the divided areas. Stored in the storage unit in the
In storing the divided data, divided data groups generated by grouping one or more pieces of divided data are stored in the storage unit as one of data groups included in the plurality of data groups, respectively.
The information processing apparatus according to any one of claims 1 to 6.
コンピュータに、
記憶部に記憶された、外部ストレージ装置に対する転送単位ごとにそれぞれ分類された複数のデータ群のうち、第1のデータ群に対する第1の操作を行うと、前記記憶部に記憶された、前記複数のデータ群のいずれかにそれぞれ対応する1以上の操作情報が登録される転送制御情報に対して、前記第1のデータ群に対応する第1の操作情報を登録し、
前記第1のデータ群が転送対象として抽出されると、前記第1のデータ群に対応する前記第1の操作情報を保持情報として一時的に保持するとともに、前記第1のデータ群を前記外部ストレージ装置に転送し、
前記外部ストレージ装置に対する前記第1のデータ群の転送中に前記第1のデータ群に対する第2の操作を行った場合、前記転送制御情報に登録された前記第1の操作情報を更新し、
前記外部ストレージ装置に対する前記第1のデータ群の転送が完了すると、前記転送制御情報に登録された前記第1の操作情報と、前記保持情報とを比較し、
前記第1の操作情報と前記保持情報とが一致しない場合、前記第1の操作情報に対応する前記第1のデータ群を前記外部ストレージ装置に再転送する、
処理を実行させる情報処理プログラム。
On the computer
The plurality of data groups stored in the storage unit when the first operation is performed on the first data group among the plurality of data groups stored in the storage unit and classified according to transfer units to the external storage device The first operation information corresponding to the first data group is registered in transfer control information in which one or more operation information corresponding to any of the data groups are registered,
When the first data group is extracted as a transfer target, the first operation information corresponding to the first data group is temporarily held as holding information, and the first data group is externally transmitted. Transfer to the storage device,
If a second operation is performed on the first data group while the first data group is being transferred to the external storage device, the first operation information registered in the transfer control information is updated;
When transfer of the first data group to the external storage device is completed, the first operation information registered in the transfer control information is compared with the held information;
When the first operation information does not match the held information, the first data group corresponding to the first operation information is retransferred to the external storage device.
An information processing program that executes processing.
JP2017222952A 2017-11-20 2017-11-20 Information processing equipment and information processing programs Active JP7007565B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017222952A JP7007565B2 (en) 2017-11-20 2017-11-20 Information processing equipment and information processing programs
US16/172,909 US10719556B2 (en) 2017-11-20 2018-10-29 Information processing apparatus and computer-readable storage medium storing information processing program
EP18203350.6A EP3495963B1 (en) 2017-11-20 2018-10-30 Information processing apparatus and information processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017222952A JP7007565B2 (en) 2017-11-20 2017-11-20 Information processing equipment and information processing programs

Publications (2)

Publication Number Publication Date
JP2019095925A true JP2019095925A (en) 2019-06-20
JP7007565B2 JP7007565B2 (en) 2022-01-24

Family

ID=64100601

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017222952A Active JP7007565B2 (en) 2017-11-20 2017-11-20 Information processing equipment and information processing programs

Country Status (3)

Country Link
US (1) US10719556B2 (en)
EP (1) EP3495963B1 (en)
JP (1) JP7007565B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022112094A (en) * 2021-01-21 2022-08-02 株式会社日立製作所 File storage system and file management method by file storage system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11681798B2 (en) * 2019-10-31 2023-06-20 Kyndryl, Inc. Security screening of a universal serial bus device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003203029A (en) * 2001-11-02 2003-07-18 Nec Corp Switching method, device and program
JP2007310701A (en) * 2006-05-19 2007-11-29 Hitachi Ltd Database system, storage device, initial duplication method, and log application method
JP2012141738A (en) * 2010-12-28 2012-07-26 Hitachi Solutions Ltd Information management method and information providing computer
US20130054530A1 (en) * 2011-08-29 2013-02-28 Oracle International Corporation Live file system migration
JP2014529111A (en) * 2011-06-30 2014-10-30 アマゾン・テクノロジーズ・インコーポレーテッド Shadowing storage gateway

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0384545A (en) 1989-08-29 1991-04-10 Fuji Photo Film Co Ltd Silver halide color photographic sensitive material and color image forming method
US6044444A (en) * 1996-05-28 2000-03-28 Emc Corporation Remote data mirroring having preselection of automatic recovery or intervention required when a disruption is detected
JPH10161916A (en) * 1996-11-28 1998-06-19 Hitachi Ltd Detection of update conflict accompanying duplication of data base
US7546482B2 (en) * 2002-10-28 2009-06-09 Emc Corporation Method and apparatus for monitoring the storage of data in a computer system
US7506812B2 (en) * 2004-09-07 2009-03-24 Semtek Innovative Solutions Corporation Transparently securing data for transmission on financial networks
JP2008515120A (en) 2004-09-30 2008-05-08 ネオパス ネットワークス,インク. Storage policy monitoring for storage networks
JP2008181461A (en) 2007-01-26 2008-08-07 Hitachi Ltd Apparatus and method for controlling data migration between nas devices
JP5284905B2 (en) 2009-08-12 2013-09-11 富士通株式会社 Data migration method and program
US9811532B2 (en) * 2010-05-03 2017-11-07 Panzura, Inc. Executing a cloud command for a distributed filesystem
US8380949B2 (en) 2010-05-20 2013-02-19 International Business Machines Corporation Managing write operations to an extent of tracks migrated between storage devices
US9805054B2 (en) * 2011-11-14 2017-10-31 Panzura, Inc. Managing a global namespace for a distributed filesystem
US9405686B2 (en) * 2013-03-13 2016-08-02 Cloud Physics, Inc Cache allocation system and method using a sampled cache utility curve in constant space
US20160063050A1 (en) 2014-08-28 2016-03-03 Joerg Schoen Database Migration Consistency Checker
US10242012B1 (en) * 2015-09-30 2019-03-26 EMC IP Holding Company LLC Managing truncation of files of file systems
US10228871B2 (en) * 2016-02-22 2019-03-12 Netapp Inc. Enabling data integrity checking and faster application recovery in synchronous replicated datasets
US10067874B2 (en) * 2016-06-07 2018-09-04 International Business Machines Corporation Optimizing the management of cache memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003203029A (en) * 2001-11-02 2003-07-18 Nec Corp Switching method, device and program
JP2007310701A (en) * 2006-05-19 2007-11-29 Hitachi Ltd Database system, storage device, initial duplication method, and log application method
JP2012141738A (en) * 2010-12-28 2012-07-26 Hitachi Solutions Ltd Information management method and information providing computer
JP2014529111A (en) * 2011-06-30 2014-10-30 アマゾン・テクノロジーズ・インコーポレーテッド Shadowing storage gateway
US20130054530A1 (en) * 2011-08-29 2013-02-28 Oracle International Corporation Live file system migration

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022112094A (en) * 2021-01-21 2022-08-02 株式会社日立製作所 File storage system and file management method by file storage system
JP7241105B2 (en) 2021-01-21 2023-03-16 株式会社日立製作所 FILE STORAGE SYSTEM AND FILE MANAGEMENT METHOD BY FILE STORAGE SYSTEM

Also Published As

Publication number Publication date
EP3495963A1 (en) 2019-06-12
US20190155960A1 (en) 2019-05-23
EP3495963B1 (en) 2021-02-24
US10719556B2 (en) 2020-07-21
JP7007565B2 (en) 2022-01-24

Similar Documents

Publication Publication Date Title
US8250033B1 (en) Replication of a data set using differential snapshots
US8209498B2 (en) Method and system for transferring duplicate files in hierarchical storage management system
JP5878548B2 (en) Deduplication storage system, method and program for facilitating synthetic backup inside thereof
JP6033241B2 (en) Backup and restore strategies for data deduplication
US9092446B2 (en) Storage system and file management method
US20160110109A1 (en) Using scratch extents to facilitate copying operations in an append-only storage system
KR20170054299A (en) Reference block aggregating into a reference set for deduplication in memory management
US11151030B1 (en) Method for prediction of the duration of garbage collection for backup storage systems
US10789228B2 (en) Data presence/absence determination apparatus and computer-readable storage medium storing program for determination of data presence/absence
US20130212070A1 (en) Management apparatus and management method for hierarchical storage system
JP2019204278A (en) Information processing system, information processing device, and program
US20220138169A1 (en) On-demand parallel processing of objects using data connector components
US10437682B1 (en) Efficient resource utilization for cross-site deduplication
WO2022098744A1 (en) Data connector component for implementing data requests
WO2023009769A1 (en) Flexible tiering of snapshots to archival storage in remote object stores
US9619322B2 (en) Erasure-coding extents in an append-only storage system
US11422721B2 (en) Data storage scheme switching in a distributed data storage system
JP7007565B2 (en) Information processing equipment and information processing programs
US11429286B2 (en) Information processing apparatus and recording medium storing information processing program
US9967310B2 (en) Using an RPC framework to facilitate out-of-band data transfers
EP3998533B1 (en) On-demand parallel processing of objects using data connector components
WO2021189315A1 (en) Proxy server crash recovery in object storage system using enhanced meta structure
WO2021189314A1 (en) Data server crash recovery in object storage system using enhanced meta structure
US20230222057A1 (en) Automatic movement of deduped data to archival tiers of cloud storage based on access patterns
WO2021189312A1 (en) Meta server crash recovery in object storage system using enhanced meta structure

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200807

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20200825

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200825

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210622

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210818

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211220

R150 Certificate of patent or registration of utility model

Ref document number: 7007565

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150