JP2019095925A - Information processing device and information processing program - Google Patents
Information processing device and information processing program Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/1827—Management specifically adapted to NAS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols 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
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.
ところで、上記のストレージゲートウェイは、ストレージサービスに転送するデータを一旦ローカルストレージに格納し、ローカルストレージに格納されたデータの中から転送すべきデータを抽出する。この処理では、ローカルストレージへのデータの格納処理と、ローカルストレージからの転送すべきデータの抽出およびその転送処理とが、非同期で行われる場合がある。 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の実施の形態〕
図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
ストレージ装置2は、情報処理装置1から転送されたデータを記憶する。なお、ストレージ装置2の記憶領域は、単体のストレージ装置によって実現されてもよいし、複数のストレージ装置によって実現されてもよい。
The
情報処理装置1は、記憶部1aと制御部1bを有する。記憶部1aは、RAM(Random Access Memory)やHDD(Hard Disk Drive)など、情報処理装置1が備える記憶装置の記憶領域によって実現される。制御部1bは、例えば、情報処理装置1が備えるプロセッサとして実現される。
The
記憶部1aには、ストレージ装置2に転送されるデータが、ストレージ装置2に対する転送単位ごとにデータ群3a,3b,3c,・・・として分類された状態で記憶されている。また、記憶部1aには、転送制御情報4が記憶される。この転送制御情報4には、データ群3a,3b,3c,・・・のいずれかにそれぞれ対応する1以上の操作情報が登録される。
Data to be transferred to the
制御部1bは、あるデータ群に対して操作を行うと、そのデータ群に対応する操作情報を転送制御情報4に登録する。また、制御部1bは、転送制御情報4から操作情報を取得し、取得された操作情報に対応するデータ群をストレージ装置2に転送する。これにより、制御部1bは、データ群に対する操作と、ストレージ装置2に対するデータ群の転送処理とを、非同期で実行できる。そして、制御部1bは、転送制御情報4に登録された操作情報を取得することで、ストレージ装置2に転送すべきデータ群を判別できる。なお、制御部1bは、転送制御情報4からその登録順に操作情報を取得する。
When the
以下、制御部1bの処理の具体例について説明する。
まず、制御部1bは、データ群3aに対する第1の操作を行ったとする(ステップS1)。すると、制御部1bは、操作対象であるデータ群3aに対応する操作情報4aを、転送制御情報4に登録する(ステップS2)。なお、この第1の操作とは、例えば、データ群3aに含まれるデータの少なくとも一部を更新する操作であってもよいし、データ群3a自体を新規に記憶部1aに格納する操作であってもよい。
Hereinafter, a specific example of the process of the
First, it is assumed that the
その後、制御部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,
ここで、制御部1bは、ストレージ装置2へのデータ群3aの転送中に、データ群3aに対する第2の操作を行ったとする(ステップS5)。この場合、制御部1bは、転送制御情報4に登録された、操作対象のデータ群3aに対応する操作情報4aを更新する(ステップS6)。
Here, it is assumed that the
また、制御部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
以上のように、制御部1bは、あるデータ群のストレージ装置2への転送中にそのデータ群に対する操作を行うと、転送制御情報4に登録された、そのデータ群に対応する操作情報を更新する。また、制御部1bは、そのデータ群のストレージ装置2の転送が完了すると、転送制御情報4から再度操作情報を取得し、取得された操作情報と、転送前に保持しておいた操作情報とを比較する。この比較により、制御部1bは、データ群の転送中にそのデータ群が更新されたか否かを判断できる。そして、制御部1bは、各操作情報が一致しない場合に、データ群が更新されたと判断して、データ群をストレージ装置2に再転送する。これにより、制御部1bは、データ群の転送中にそのデータ群が更新された場合でも、データ群の更新内容をストレージ装置2に確実に反映させることができる。
As described above, when the
〔第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
ストレージシステム220は、ネットワーク232を介してクラウドストレージサービスを提供する。以下の説明では、ストレージシステム220が提供するクラウドストレージサービスによってサービス利用者(ここではクラウドストレージゲートウェイ100)が利用可能な記憶領域を、「クラウドストレージ」と記載する場合がある。
The
また、本実施の形態では例として、ストレージシステム220は、データがオブジェクト単位で管理されるオブジェクトストレージによって実現される。例えば、ストレージシステム220は、制御サーバ221aとストレージ装置221bとをそれぞれ含むストレージノード221を複数有する、分散型のストレージシステムとして実現される。この場合、各ストレージノード221において、制御サーバ221aはストレージ装置221bに対するアクセスを制御し、ストレージ装置221bの記憶領域によってクラウドストレージの一部が実現される。また、サービス利用者(クラウドストレージゲートウェイ100)からのオブジェクトの格納先とされるストレージノード221は、オブジェクト固有の情報に基づいて決定される。
Also, in the present embodiment, as an example, the
一方、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クライアント210は、例えば、データバックアップのためのバックアップソフトウェアを実行する。これによりNASクライアント210は、NASクライアント210に記憶されたファイル、またはNASクライアント210に接続されたサーバ(例えば業務サーバ)に記憶されたファイルを、NASサーバから提供される記憶領域にバックアップする。
The
クラウドストレージゲートウェイ100は、図1に示した情報処理装置1の一例である。クラウドストレージゲートウェイ100は、NASクライアント210とクラウドストレージとの間で転送されるデータを中継する。例えば、クラウドストレージゲートウェイ100は、NASサーバ機能により、NASクライアント210からファイルの書き込み要求を受信し、書き込みが要求されたファイルを内部にキャッシュする。クラウドストレージゲートウェイ100は、書き込みが要求されたファイルをチャンク単位に分割して、クラウドストレージに格納する。このとき、合計サイズが一定サイズを超える複数のチャンクが「チャンクグループ」としてグループ化され、チャンクグループがオブジェクトとしてクラウドストレージに転送される。
The
また、クラウドストレージゲートウェイ100は、ファイルをキャッシュする時点で、ファイルをチャンク単位に分割し、同一内容のチャンクが重複して保存されないようにする「重複排除」を行う。さらに、分割されたチャンクのデータは圧縮された状態で格納される。例えば、クラウドストレージサービスでは、格納されるデータ量に応じて課金が行われる場合がある。重複排除やデータ圧縮を行うことで、クラウドストレージに格納されるデータ量を削減し、サービス利用コストを抑制することができる。
In addition, at the time of caching a file, the
図3は、クラウドストレージゲートウェイのハードウェア構成例を示すブロック図である。クラウドストレージゲートウェイ100は、例えば、図3に示すようなコンピュータとして実現される。
FIG. 3 is a block diagram showing an example of the hardware configuration of the cloud storage gateway. The
クラウドストレージゲートウェイ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
プロセッサ101には、バス108を介して、RAM102と複数の周辺機器が接続されている。
RAM102は、クラウドストレージゲートウェイ100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
A
The
バス108に接続されている周辺機器としては、HDD103、グラフィック処理装置104、入力インタフェース105、読み取り装置106および通信インタフェース107がある。
As peripheral devices connected to the
HDD103は、クラウドストレージゲートウェイ100の補助記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
The
グラフィック処理装置104には、表示装置104aが接続されている。グラフィック処理装置104は、プロセッサ101からの命令にしたがって、画像を表示装置104aに表示させる。表示装置としては、液晶ディスプレイや有機EL(Electroluminescence)ディスプレイなどがある。
A
入力インタフェース105には、入力装置105aが接続されている。入力インタフェース105は、入力装置105aから出力される信号をプロセッサ101に送信する。入力装置105aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
An
読み取り装置106には、可搬型記録媒体106aが脱着される。読み取り装置106は、可搬型記録媒体106aに記録されたデータを読み取ってプロセッサ101に送信する。可搬型記録媒体106aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
The
通信インタフェース107は、ネットワーク107aを介して他の装置との間でデータの送受信を行う。
以上のようなハードウェア構成によって、クラウドストレージゲートウェイ100の処理機能を実現することができる。なお、NASクライアント210や制御サーバ221aも、図3と同様のハードウェア構成を有するコンピュータとして実現可能である。
The
By the hardware configuration as described above, the processing function of the
図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
なお、データ管理部110および操作ログ管理部120は、例えば、RAM102やHDD103など、クラウドストレージゲートウェイ100が備える記憶装置の記憶領域として実現される。また、NASサービス処理部131、ファイルシステム処理部132およびクラウド転送処理部133の処理は、例えば、プロセッサ101が所定のプログラムを実行することで実現される。
The
NASサービス処理部131は、NASサーバとしてのインタフェース処理を実行する。すなわち、NASサービス処理部131は、NASクライアント210からのファイルの読み書きや削除の要求を受け付け、要求された内容をファイルシステム処理部132に伝達する。そして、NASサービス処理部131はファイルシステム処理部132による処理結果に基づいて、NASクライアント210に応答する。
The NAS
ファイルシステム処理部132は、データ管理部110および操作ログ管理部120にアクセスしながら、NASクライアント210からの要求に応じた処理を実行する。例えば、新たなファイルの書き込みが要求された場合、ファイルシステム処理部132は、ファイルの実データをチャンク単位に分割し、分割された実データを重複を排除しながらデータ管理部110に格納する。このとき、ファイルシステム処理部132は、実データ以外のファイルに関する情報もデータ管理部110に登録する。また、ファイルシステム処理部132は、ファイルの書き込み処理が終了するまでに段階的に行った、ファイルやチャンクに関する操作のログを、操作ログ管理部120に登録していく。
While accessing the
データ管理部110は、ファイルシステム上のファイルのディレクトリ情報、ファイルとチャンクおよびチャンクグループとの関係を示す情報など、ファイルに関する管理情報と、ファイルに含まれる実データとを記憶する。一方、操作ログ管理部120は、クラウドストレージ240に転送すべきオブジェクトを判別するためにクラウド転送処理部133によって参照される操作ログを記憶する。
The
ここで、データ管理部110に記憶される情報について説明する。データ管理部110には、ディレクトリテーブル111、エントリテーブル112、チャンクマップテーブル113、チャンクテーブル114およびチャンクグループテーブル115が記憶される。これらを大別すると、ディレクトリテーブル111およびエントリテーブル112は、ファイルシステム上のディレクトリ構造に関する情報を保持し、チャンクマップテーブル113、チャンクテーブル114およびチャンクグループテーブル115は、チャンクに関する情報を保持する。
Here, the information stored in the
図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
図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
図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
「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
図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
各チャンクデータには、グループ番号(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
以下、図4に戻って説明を続ける。
クラウド転送処理部133は、ファイルシステム処理部132によるデータ管理部110に対するデータ操作とは非同期に、データ管理部110に記憶された各種のデータをクラウドストレージ240に転送する。前述のように、クラウドストレージ240に対してはオブジェクト単位でデータが転送される。
Hereinafter, the description will be continued returning to FIG.
The cloud
図4に示すように、クラウド転送処理部133は、ファイルオブジェクト141、チャンクマップオブジェクト142、チャンクグループオブジェクト143という3種類のオブジェクトを生成して、クラウドストレージ240に転送する。ここで、図11、図12を用いて、ファイルオブジェクト141、チャンクマップオブジェクト142、チャンクグループオブジェクト143のデータ構造について説明する。
As illustrated in FIG. 4, the cloud
図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
ファイルオブジェクト141とは、ディレクトリテーブル111およびエントリテーブル112に登録された情報を、ファイル単位でクラウドストレージ240に格納するためのオブジェクトである。図11(A)に示すように、ファイルオブジェクト141は、オブジェクト名を示す項目として「parent」「name」を含む。「parent」「name」の各項目には、ディレクトリテーブル111のレコードのうち、対応するファイルのレコードに含まれる同名の項目から、登録された情報がコピーされる。したがってこの例では、「parent」「name」によってファイルオブジェクト141に対応するファイルが識別される。
The
また、ファイルオブジェクト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
一方、チャンクマップオブジェクト142は、チャンクマップテーブル113およびチャンクテーブル114に登録された情報を、ファイル単位でクラウドストレージ240に格納するためのオブジェクトである。図11(B)に示すように、チャンクマップオブジェクト142は、オブジェクト名を示す項目として「ino」を含む。「ino」の項目には、チャンクマップテーブル113のレコードのうち、対応するファイルを示すレコードに含まれる「ino」の項目から、登録された情報がコピーされる。したがってこの例では、「ino」によってチャンクマップオブジェクト142に対応するファイルが識別される。
On the other hand, the
また、チャンクマップオブジェクト142は、オブジェクト値を示す項目として「offset」「size」「hash」「gno」「gindex」を含む。「offset」「size」「gno」「gindex」の各項目には、チャンクマップテーブル113のレコードのうち、「ino」が示すファイルに対応するレコードに含まれる同名の項目から、登録された情報がコピーされる。「hash」の項目には、チャンクテーブル114のレコードのうち、「gno」「gindex」が示すチャンクグループのレコードに含まれる「hash」の項目から、登録されたハッシュ値がコピーされる。
The
チャンクマップテーブル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
以上のようなファイルオブジェクト141およびチャンクマップオブジェクト142が、クラウドストレージ240に転送される。これにより、ファイルの実データだけでなく、ファイルのメタデータやファイルに関連付けられたチャンクの構成情報などの管理情報も、クラウドストレージ240に保存することができる。そのため、例えば、クラウドストレージゲートウェイ100の動作が異常によって停止した場合でも、ファイルのディレクトリ構造やチャンクの構成を復元することができる。
The
図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
また、チャンクグループオブジェクト143には、オブジェクト値として「header」「datalist」が含まれる。チャンクグループテーブル115には、通常、1つのチャンクグループに含まれる複数のチャンクデータのそれぞれに対応するレコードが含まれる。図12では、オブジェクト名の「gno」が示すチャンクグループにn個のチャンクデータが含まれるものとして表している。
The
「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,
「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
From the information registered in the
また、前述の特許文献2には、オンラインストレージにアップデートするデータの転送単位となる分割データベースごとに、その内容が更新されたか否かを示すDirtyフラグが記録されている。この技術を利用して、データ管理部110の登録情報のうち、オブジェクトに含める情報群ごとに内容が更新されたか否かを示すフラグを設ける方法が考えられる。この方法によれば、各情報群に対応するフラグを参照するだけで転送対象とすべき情報群を判別できるので、処理効率は向上する。しかし、転送対象でないものを含めてすべての情報群のフラグを参照しなければならない点で、処理効率が高いとは言えない。
Further, in the above-mentioned
さらに、フラグを用いた上記方法では、クラウド転送処理部133がオブジェクトの転送処理中に、オブジェクトに対応する元の情報群がファイルシステム処理部132によって更新された場合、クラウド転送処理部133はその更新の発生を認識できない。そのため、情報群の更新内容をクラウドストレージ240に正確に反映できない可能性がある、という問題もある。
Furthermore, in the above method using the flag, if the file
そこで、本実施の形態では、クラウド転送処理部133が転送すべき情報を高効率かつ正確に判別できるように、操作ログ管理部120が利用される。図4に示すように、操作ログ管理部120には、操作ログテーブル121が記憶される。操作ログテーブル121には、データ管理部110の登録情報のうち、オブジェクトに含める情報群ごとに、それぞれ操作ログを示すレコードがFIFO(First In/First Out)方式で登録される。また、操作ログには、ファイル操作ログ122とデータ操作ログ123の2種類がある。
Therefore, in the present embodiment, the operation
操作ログに対応する情報群には、ファイルに関する情報群と、チャンクグループに関する情報群の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
一方、チャンクグループに関する情報群とは、チャンクグループオブジェクト143を生成するための情報群であり、チャンクグループ単位で生成され、更新される。この情報群にはそれぞれ、チャンクグループテーブル115に登録された、1つのチャンクグループに関する情報が含まれ、その中にはチャンクデータ(ファイルの実データ)も含まれる。そして、この情報群に対応する操作ログが上記のデータ操作ログ123であり、データ操作ログ123は、チャンクグループ単位のオブジェクトであるチャンクグループオブジェクト143の送信要否を判別するために参照される。
On the other hand, the information group on the chunk group is an information group for generating the
また、各操作ログには、更新カウンタの値が記録される。更新カウンタの値は、ファイルシステム処理部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
なお、クラウド転送処理部133は、操作ログに記録された更新カウンタの値を、カウント値保存部133aに一時的に保存する。カウント値保存部133aは、例えばRAM102によって実現される一時記憶領域である。
The cloud
図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
この時点で、操作対象の情報群に対応する操作ログが操作ログテーブル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
操作ログテーブル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
クラウドストレージ240に対するオブジェクトの送信処理が完了すると、クラウド転送処理部133は、同じ操作ログ121aを再度参照して、更新カウンタ121bの値を取得する。クラウド転送処理部133は、取得された更新カウンタ121bの値と、ステップS12でカウント値保存部133aに保存された更新カウンタの値とを比較する(ステップS14)。
When the transmission process of the object to the
図13の例では、これらの値は同一である。この場合、クラウド転送処理部133は、操作ログ121aに記録された操作内容に対応するオブジェクト送信処理が完了したと判断し、操作ログ121aを操作ログテーブル121から削除する(ステップS15)。そして、クラウド転送処理部133は、操作ログテーブル121から次の操作ログを取得し、その内容に応じたオブジェクト送信処理を実行する。
In the example of FIG. 13, these values are identical. In this case, the cloud
図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
また、クラウド転送処理部133は、操作ログ121aを取得し、操作ログ121aに記録された更新カウンタ121bの値「1」を、カウント値保存部133aに一時的に保存する(ステップS22)。そして、クラウド転送処理部133は、操作ログ121aに記録された操作内容に基づいてオブジェクトを生成し、クラウドストレージ240に送信する(ステップS23)。
Further, the cloud
ここで、オブジェクトの送信が完了する前に、ファイルシステム処理部132が、操作ログ121aに対応する情報群に対する操作をさらに行ったとする。このとき、ファイルシステム処理部132は、操作ログテーブル121を参照し、操作対象の情報群に対応する操作ログが操作ログテーブル121に登録されているかを判定する。そして、該当する操作ログ121aが登録されていると判定すると、ファイルシステム処理部132は、操作ログ121aに対して操作内容を記録するとともに、更新カウンタ121bの値を「2」にカウントアップする(ステップS24)。
Here, it is assumed that the file
一方、クラウドストレージ240に対するオブジェクトの送信処理が完了すると、クラウド転送処理部133は、同じ操作ログ121aを再度参照し、更新カウンタ121bの値を取得する。クラウド転送処理部133は、取得された更新カウンタ121bの値と、ステップS22でカウント値保存部133aに保存された更新カウンタの値とを比較する(ステップS25)。
On the other hand, when the transmission process of the object to the
図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
クラウド転送処理部133は、カウント値保存部133aに保存された更新カウンタの値と、操作ログテーブル121から再取得された更新カウンタ121bの値とが一致するまで、ステップS24〜S27の処理を繰り返す。そして、クラウド転送処理部133は、これらの値が一致すると、操作ログ121aを操作ログテーブル121から削除する。
The cloud
以上の図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
さらに、図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
なお、ファイルシステム処理部132は、既存の操作ログに対して新たな操作内容を記録する際に、その操作ログにすでに記録されている操作内容に対して新たな操作内容を上書きせずに、新たな操作内容を追加的に記録する場合がある。例えば、図14のステップS24において、操作ログ121aに対応する情報群に含まれる第1の情報が更新されたとする。このとき、更新カウンタ121bの値は「2」にカウントアップされる。また、ステップS23によるオブジェクトの送信処理が完了する前に、同じ情報群に含まれる、第1の情報とは異なる第2の情報が更新されたとする。このとき、更新カウンタ121bの値は「3」にカウントアップされる。
When the file
このような場合、ファイルシステム処理部132は、第1の情報を更新すると、この第1の情報を含めたオブジェクトに対応する第1の操作内容を操作ログ121aに記録する。また、ファイルシステム処理部132は、第2の情報を更新すると、この第2の情報を含めたオブジェクトに対応する第2の操作内容を、第1の操作内容を残したまま操作ログ121aに追加的に記録する。
In such a case, when the file
これにより、クラウド転送処理部133は、オブジェクトの送信が完了して操作ログ121aを再取得したとき、第1の操作内容に対応するオブジェクトと、第2の操作内容に対応するオブジェクトの両方を生成し、クラウドストレージ240に送信する。すなわち、第1の操作内容が消去されずに操作ログ121aに残ることで、第2の情報の更新内容だけでなく、その更新前に更新された第1の情報の更新内容を、クラウドストレージ240に正確に反映させることができる。
Thereby, when the transmission of the object is completed and the
次に、図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
「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
ここで、「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
「ファイル更新」は、「ファイル作成中」に対応する操作に続いて、ファイルの実データに関する管理情報が更新されたときに記録されるログ情報である。「ファイル更新」が記録された時点では、「ファイル作成中」が記録された時点から、エントリテーブル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
「ファイル作成完了」は、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クライアント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クライアント210からファイルの削除が要求された場合、「action」には「ファイル削除」が記録される。この場合、ディレクトリテーブル111、エントリテーブル112およびチャンクマップテーブル113からは、削除対象のファイルに関連付けられたレコードが削除される。そのため、「ファイル削除」が記録された場合、削除対象のファイルを示すオブジェクト名をそれぞれ指定したファイルオブジェクト141およびチャンクマップオブジェクト142の削除要求が、クラウドストレージ240に送信される。
On the other hand, when deletion of a file is requested from the
図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
また、ファイルシステム処理部132は、ファイルの書き込み要求に続いて、そのファイルの実データをNASクライアント210から受信し、データ管理部110に格納していく。一方、この時点で、クラウド転送処理部133がファイル操作ログ122aを取得したとする。この場合、クラウド転送処理部133は、ファイル操作ログ122aの「ino」から対象のファイルを認識する。また、クラウド転送処理部133は、「ファイル作成中」から決定される必要な情報をデータ管理部110から読み出し、読み出した情報を含めたファイルオブジェクト141を生成して、クラウドストレージ240に送信する。
Further, following the file write request, the file
ここで、ファイルオブジェクト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
さらに、ファイルオブジェクト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
なお、「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
「ファイル削除」が記録された場合、削除対象のファイルを示すオブジェクト名がそれぞれ指定されたファイルオブジェクト141およびチャンクマップオブジェクト142が、クラウドストレージ240から削除される。このため、「ファイル削除」は、「action」に記録済みの情報を上書きして記録されればよい。
When “file deletion” is recorded, the
次に、データ操作ログの「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
「データ書き込み完了」は、チャンクグループに含まれるチャンクデータの合計サイズが所定サイズに達している状態、すなわち、チャンクグループが非アクティブであることを示す。この場合、チャンクグループテーブル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
「データ削除」は、チャンクグループが削除されることを示す。この状態は、ファイルの削除や更新に伴って、チャンクグループに含まれるすべてのチャンクデータが無効になっている(すなわち、すべてのチャンクデータに対応する参照カウンタの値が「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
図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
その後、上記のチャンクグループに含まれるチャンクデータの合計サイズが所定サイズに達したとする。このとき、ファイルシステム処理部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
ここで、クラウド転送処理部133が、データ操作ログ123aを取得し、「action」に「データ書き込み完了」が記録されていることを認識したとする。この場合、クラウド転送処理部133は、データ操作ログ123aの「gno」から対象のチャンクグループを認識する。また、クラウド転送処理部133は、チャンクグループテーブル115に登録された該当チャンクグループのレコードから情報を読み出し、読み出した情報を含めたチャンクグループオブジェクト143を生成して、クラウドストレージ240に送信する。
Here, it is assumed that the cloud
ここで、チャンクグループオブジェクト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
次に、クラウドストレージゲートウェイ100の処理について、フローチャートを用いて説明する。まず、図18〜図22を用いて、NASクライアント210から新規のファイルの書き込みが要求された場合の処理について説明する。
Next, processing of the
図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
[ステップS102]ファイルシステム処理部132は、書き込みが要求されたファイルの実データを、NASサービス処理部131を介して受信すると、データ書き込み処理を実行する。
[Step S102] When the file
[ステップS103]データ書き込み処理が完了すると、ファイルシステム処理部132は、書き込み完了を示す応答情報を、NASサービス処理部131を介してNASクライアント210に送信する。これとともに、ファイルシステム処理部132は、ファイル作成完了処理を実行する。
[Step S103] When the data writing process is completed, the file
図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
[ステップS112]ファイルシステム処理部132は、エントリテーブル112に対して、書き込みが要求されたファイルに対応するレコードを追加する。追加されたレコードにおいては、例えば、「ino」「size」の各項目に情報が登録される。
[Step S112] The file
[ステップS113]ファイルシステム処理部132は、操作ログテーブル121に対して、書き込みが要求されたファイルに対応するファイル操作ログを追加する。追加されたファイル操作ログにおいては、「action」の項目に「ファイル作成中」が記録され、「update」の項目に更新カウンタの値として「1」が記録される。
[Step S113] The file
図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
[ステップS122]ファイルシステム処理部132は、ステップS124のループ端までの処理を、分割によって生成された各チャンクについて実行する。
[ステップS123]ファイルシステム処理部132は、処理対象のチャンクについて、チャンク書き込み処理を実行する。
[Step S122] The file
[Step S123] The file
[ステップS124]ファイルシステム処理部132は、ステップS123の処理をすべてのチャンクについて実行すると、ステップS125の処理を実行する。
[ステップS125]ファイルシステム処理部132は、エントリテーブル112に登録された、書き込みが要求されたファイルに対応するレコードを更新する。この処理では、例えば、「mode」「nlink」「uid」「gid」「atime」「mtime」「ctime」の各項目に情報が登録される。
[Step S124] When the file
[Step S125] The file
[ステップS126]ファイルシステム処理部132は、操作ログテーブル121を参照し、書き込みが要求されたファイルに対応するファイル操作ログが存在するかを判定する。ファイルシステム処理部132は、該当するファイル操作ログが見つかった場合、ステップS128の処理を実行し、該当するファイル操作ログが存在しない場合、ステップS127の処理を実行する。
[Step S126] The file
[ステップS127]ファイルシステム処理部132は、操作ログテーブル121に対して、書き込みが要求されたファイルに対応するファイル操作ログを追加する。このとき、追加されたファイル操作ログにおいては、「action」の項目に「ファイル更新」が記録され、「update」の項目に更新カウンタの値として「1」が記録される。
[Step S127] The file
[ステップS128]ファイルシステム処理部132は、操作ログテーブル121から見つかったファイル操作ログを更新する。具体的には、「action」の項目に「ファイル更新」が追加的に記録され、「update」の項目に記録された更新カウンタの値がカウントアップされる。
[Step S128] The file
図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
[ステップS132]ファイルシステム処理部132は、チャンクマップテーブル113に対して、処理対象のチャンクに対応するレコードを追加する。このとき、追加されるレコードにおいては、「ino」「offset」「size」の各項目に情報が登録される。
[Step S132] The file
[ステップS133]ファイルシステム処理部132は、チャンクテーブル114を参照し、「hash」の項目にステップS131で算出されたハッシュ値が登録されたレコードが存在するかを判定する。ファイルシステム処理部132は、該当するレコードが見つかった場合、ステップS134の処理を実行し、該当するレコードが存在しない場合、ステップS135の処理を実行する。
[Step S133] The file
[ステップS134]ファイルシステム処理部132は、ステップS133でチャンクテーブル114から見つかったレコードを参照し、「refcnt」の項目に記録された参照カウンタの値をカウントアップする。また、ファイルシステム処理部132は、ステップS132でチャンクマップテーブル113に追加したレコードの「gno」「gindex」の各項目に、チャンクテーブル114から見つかったレコードの「gno」「gindex」の各項目に登録された情報を登録する。
[Step S134] The file
[ステップS135]ファイルシステム処理部132は、チャンクグループテーブル115を参照し、最後尾のレコードに登録されたグループ番号(すなわち、現時点で最大のグループ番号)を取得する。
[Step S135] The file
[ステップS136]ファイルシステム処理部132は、ステップS135で取得されたグループ番号のチャンクグループに含まれるチャンクデータの合計サイズが、所定値以上であるかを判定する。ファイルシステム処理部132は、合計サイズが所定値以上である場合、ステップS137の処理を実行し、合計サイズが所定値未満である場合、ステップS139の処理を実行する。
[Step S136] The file
[ステップS137]ファイルシステム処理部132は、ステップS135で取得されたグループ番号をカウントアップすることで、新たなグループ番号を生成する。
[ステップS138]ファイルシステム処理部132は、操作ログテーブル121に対してデータ操作ログを追加する。このとき、追加されたデータ操作ログにおいては、「gno」の項目に、ステップS137で生成されたグループ番号が記録され、「action」の項目に「データ書き込み中」が記録され、「update」の項目に、更新カウンタの値として「1」が記録される。
[Step S137] The file
[Step S138] The file
[ステップS139]ファイルシステム処理部132は、チャンクテーブル114に対してレコードを追加する。このとき、追加されるレコードにおいては、「hash」の項目に、ステップS131で算出されたハッシュ値が記録され、「size」の項目に、対応するチャンクのサイズが記録され、「refcnt」の項目に、参照カウンタの値として「1」が記録される。また、ステップS136でYesと判定された場合、「gno」の項目には、ステップS137で生成されたグループ番号が記録され、「gindex」の項目には、先頭のチャンクを示すインデックス番号が記録される。一方、ステップS136でNoと判定された場合、「gno」の項目には、ステップS135で取得されたグループ番号が記録される。また、「gindex」の項目には、このグループ番号に対応するチャンクグループに含まれている最後尾のチャンクデータの次の順番を示すインデックス番号が記録される。
[Step S139] The file
[ステップS140]ファイルシステム処理部132は、チャンクグループテーブル115に対してレコードを追加する。このとき、追加されるレコードにおいては、「gno」「gindex」の各項目に、ステップS139で同名の項目に記録された情報と同じ情報が記録され、「data」の項目に、チャンクデータが圧縮された状態で記録される。
[Step S140] The file
[ステップS141]ファイルシステム処理部132は、ステップS139でレコードに記録したグループ番号のチャンクグループに含まれるチャンクデータの合計サイズが、所定値以上であるかを判定する。ファイルシステム処理部132は、合計サイズが所定値以上である場合、ステップS142の処理を実行し、合計サイズが所定値未満である場合、チャンク書き込み処理を終了する。
[Step S141] The file
[ステップ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
図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
[ステップS152]ファイルシステム処理部132は、操作ログテーブル121に対して、書き込みが要求されたファイルに対応するファイル操作ログを追加する。このとき、追加されたファイル操作ログにおいては、「action」の項目に「ファイル作成完了」が記録され、「update」の項目に更新カウンタの値として「1」が記録される。
[Step S152] The file
[ステップS153]ファイルシステム処理部132は、操作ログテーブル121から見つかったファイル操作ログを更新する。具体的には、「action」の項目に「ファイル作成完了」が追加的に記録され、「update」の項目に記録された更新カウンタの値がカウントアップされる。
[Step S153] The file
次に、NASクライアント210から既存のファイルの更新が要求された場合の処理について説明する。ファイルの更新が要求された場合、ファイルシステム処理部132は基本的に、図18に示したステップS101,S102,S103のような3段階の処理を実行する。以下、各段階における、新規ファイルの書き込みが要求された場合との処理の違いについて説明する。
Next, processing when an update of an existing file is requested from the
まず、ステップS101に対応する第1段階の処理では、次のような処理が実行される。ファイルシステム処理部132は、エントリテーブル112に登録された、更新が要求されたファイルに対応するレコードを更新する。この更新では、「size」の項目に記録された値が、更新後のファイルのサイズによって更新される。
First, in the processing of the first stage corresponding to step S101, the following processing is executed. The file
次に、ファイルシステム処理部132は、操作ログテーブル121を参照して、更新が要求されたファイルに対応するファイル操作ログが存在するかを判定する。該当するファイル操作ログが存在した場合、ファイルシステム処理部132は、そのファイル操作ログの「action」の項目に「ファイル作成中」を記録し、「update」の項目に記録された値をカウントアップする。一方、該当するファイル操作ログが存在しない場合、ファイルシステム処理部132は、操作ログテーブル121に対して、書き込みが要求されたファイルに対応するファイル操作ログを追加する。追加されたファイル操作ログにおいては、「action」の項目に「ファイル作成中」が記録され、「update」の項目に更新カウンタの値として「1」が記録される。
Next, the file
次に、ステップ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
[ステップS162]ファイルシステム処理部132は、NASクライアント210から受信した更新後のファイルの実データを処理対象として、図20の処理を実行する。これにより、更新後のファイルの実データがチャンク単位に分割され、各チャンクについての情報がチャンクマップテーブル113、チャンクテーブル114およびチャンクグループテーブル115に登録される。
[Step S162] The file
[ステップS163]ファイルシステム処理部132は、ステップS161で保存された位置が示すレコードの内容に基づいて、ステップS169のループ端までの処理を、旧ファイルの各チャンクについて実行する。
[Step S163] The file
[ステップS164]ファイルシステム処理部132は、チャンクテーブル114に登録された、処理対象のチャンクに対応するチャンクデータが格納されたレコードを参照し、「refcnt」の項目に記録された参照カウンタの値をカウントダウンする。
[Step S164] The file
[ステップS165]ファイルシステム処理部132は、ステップS164で参照したレコードからグループ番号(gno)を取得する。ファイルシステム処理部132は、チャンクテーブル114から、このグループ番号が示すチャンクグループに属するすべてのチャンクデータに対応する参照カウンタの値を取得する。
[Step S165] The file
[ステップ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
[ステップ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
また、ファイルシステム処理部132は、操作ログテーブル121に対して、このチャンクグループの情報をクラウドストレージ240から削除するためのデータ操作ログを登録する。すなわち、このデータ操作ログにおいては、「action」の項目に「データ削除」が記録され、「update」の項目に、更新カウンタの値として「1」が記録される。なお、すでに該当チャンクグループに対応するデータ操作ログが登録されている場合、ファイルシステム処理部132は、そのデータ操作ログの「action」の項目に「データ削除」を上書きして記録し、「update」の項目に記録された値をカウントアップする。
Further, the file
[ステップS168]ファイルシステム処理部132は、チャンクマップテーブル113から、ステップS161で保存された位置が示すレコードを削除する。
また、ステップS166で「No」と判定され、かつ、ステップS164でカウントダウン後の参照カウンタの値が「0」になった場合、ファイルシステム処理部132は、この参照カウンタを含むレコードをチャンクテーブル114から削除してもよい。また、ステップS166で「Yes」と判定された場合、ファイルシステム処理部132は、チャンクテーブル114から、ステップS167で削除されたチャンクグループに属するすべてのチャンクデータのレコードを削除してもよい。
[Step S168] The file
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
[ステップS169]ファイルシステム処理部132は、ステップS164〜S168の処理を旧ファイルのすべてのチャンクについて実行すると、データ書き込み処理を終了する。
[Step S169] When the file
最後に、ステップS103に対応する第3段階の処理では、ファイルシステム処理部132は、更新が要求されたファイルに対応するファイル操作ログを処理対象として、図22と同様の処理を実行する。
Finally, in the third step processing corresponding to step S103, the file
以上の手順により、NASクライアント210から既存のファイルの更新が要求された場合のファイルシステム処理部132の処理が完了する。
なお、NASクライアント210からファイルの削除が要求された場合には、次のような処理が実行される。ファイルシステム処理部132は、削除対象のファイルに含まれる各チャンクを処理対象として、図23のステップS164〜S168の処理を実行する。これにより、削除対象のファイルに関連付けられたチャンクデータの参照カウンタの値が更新される。また、すべてのチャンクデータの参照カウンタが「0」になったチャンクグループが出現した場合、そのチャンクグループに関する情報群をクラウドストレージ240から削除するためのデータ操作ログが、操作ログテーブル121に登録される。
By the above-described procedure, the processing of the file
When deletion of a file is requested from the
その後、ファイルシステム処理部132は、ディレクトリテーブル111およびエントリテーブル112から、削除対象のファイルに対応するレコードを削除する。さらに、ファイルシステム処理部132は、次のようなファイル操作ログの登録処理を実行する。
Thereafter, the file
この登録処理では、削除対象のファイルに対応するファイル操作ログが操作ログテーブル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
次に、クラウド転送処理部133の処理について説明する。図24は、クラウド転送処理部の処理例を示すフローチャートである。
[ステップS201]クラウド転送処理部133は、操作ログテーブル121から先頭の操作ログ(すなわち、「counter」の項目に記録された値が最も小さいレコード)を取得する。
Next, processing of the cloud
[Step S201] The cloud
[ステップS202]クラウド転送処理部133は、取得された操作ログの「type」の項目に基づいて、操作ログの種別を判定する。クラウド転送処理部133は、取得された操作ログがファイル操作ログの場合、ステップS203の処理を実行し、取得された操作ログがデータ操作ログの場合、ステップS204の処理を実行する。
[Step S202] The cloud
[ステップS203]クラウド転送処理部133は、ファイル操作ログに基づくクラウド転送処理を実行する。
[ステップS204]クラウド転送処理部133は、データ操作ログに基づくクラウド転送処理を実行する。
[Step S203] The cloud
[Step S204] The cloud
図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
[ステップS212]クラウド転送処理部133は、取得された操作ログの「action」の項目に「ファイル作成中」が含まれている場合、ステップS213の処理を実行し、「ファイル作成中」が含まれていない場合、ステップS214の処理を実行する。
[Step S 212] If the item “action” in the acquired operation log includes “file creation in progress”, the cloud
[ステップS213]クラウド転送処理部133は、取得されたファイル操作ログに対応するファイルの「parent」「name」をオブジェクト名とするファイルオブジェクトを生成する。このとき、ファイルオブジェクトのオブジェクト値の各項目には、ディレクトリテーブル111およびエントリテーブル112に登録された、上記ファイルに対応するレコードから情報がコピーされる。クラウド転送処理部133は、生成されたファイルオブジェクトをクラウドストレージ240に送信する。
[Step S213] The cloud
[ステップS214]クラウド転送処理部133は、取得された操作ログの「action」の項目に「ファイル更新」が含まれている場合、ステップS215の処理を実行し、「ファイル更新」が含まれていない場合、図26のステップS221の処理を実行する。
[Step S214] If the item “action” in the acquired operation log includes “file update”, the cloud
[ステップS215]クラウド転送処理部133は、取得されたファイル操作ログに対応するファイルの「parent」「name」をオブジェクト名とするファイルオブジェクトを生成する。このとき、ファイルオブジェクトのオブジェクト値の各項目には、ディレクトリテーブル111およびエントリテーブル112に登録された、上記ファイルに対応するレコードから情報がコピーされる。
[Step S215] The cloud
クラウド転送処理部133は、生成されたファイルオブジェクトをクラウドストレージ240に送信する。このケースでは、クラウドストレージ240に対して、同じファイルに対応するファイルオブジェクトの更新が要求されることになる。
The cloud
以下、図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
[ステップS222]クラウド転送処理部133は、取得されたファイル操作ログに対応するファイルのinode番号をオブジェクト名とするチャンクマップオブジェクトを生成する。このとき、チャンクマップオブジェクトのオブジェクト値の各項目には、チャンクマップテーブル113およびチャンクテーブル114に登録された、上記ファイルに対応するレコードから情報がコピーされる。クラウド転送処理部133は、生成されたチャンクマップオブジェクトをクラウドストレージ240に送信する。
[Step S222] The cloud
なお、例えば、このステップ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
[ステップS223]クラウド転送処理部133は、取得された操作ログの「action」の項目に「ファイル削除」が含まれている場合、ステップS224の処理を実行し、「ファイル削除」が含まれていない場合、ステップS225の処理を実行する。
[Step S223] When the item of “action” in the acquired operation log includes “file deletion”, the cloud
[ステップS224]クラウド転送処理部133は、取得されたファイル操作ログに対応するファイルの識別情報をオブジェクト名とするファイルオブジェクトおよびチャンクマップオブジェクトを生成する。これらのファイルオブジェクトおよびチャンクマップオブジェクトは、該当ファイルに対応する格納済みのファイルオブジェクトおよびチャンクマップオブジェクトを、クラウドストレージ240から削除するように要求するためのオブジェクトである。クラウド転送処理部133は、生成されたファイルオブジェクトおよびチャンクマップオブジェクトをクラウドストレージ240に送信する。
[Step S224] The cloud
[ステップS225]クラウド転送処理部133は、操作ログテーブル121を参照し、図24のステップS202と同じファイル操作ログから、「update」の項目に記録された更新カウンタの値を再取得する。
[Step S225] The cloud
[ステップS226]クラウド転送処理部133は、ステップS211でカウント値保存部133aに保存された更新カウンタの値と、ステップS225で再取得された更新カウンタの値とを比較する。クラウド転送処理部133は、これらの値が同一の場合、ステップS228の処理を実行し、これらの値が異なる場合、ステップS227の処理を実行する。
[Step S226] The cloud
[ステップS227]クラウド転送処理部133は、ステップS225での参照先のファイル操作ログを操作ログテーブル121から再取得する。この後、図25のステップS211に進み、再取得されたファイル操作ログに基づいて処理が継続される。すなわち、ステップS226において更新カウンタの値が一致するまで、ステップS227,S211〜S215,S221〜S226の処理が繰り返される。
[Step S227] The cloud
[ステップS228]クラウド転送処理部133は、ステップS225で参照されたファイル操作ログを操作ログテーブル121から削除する。
図27は、データ操作ログに基づくクラウド転送処理の例を示すフローチャートである。この図27の処理は、図24のステップS204の処理に対応する。
[Step S228] The cloud
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
[ステップ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
[ステップS233]クラウド転送処理部133は、取得されたデータ操作ログの作成から一定時間が経過しているかを判定する。クラウド転送処理部133が、一定時間が経過している場合、ステップS235の処理を実行し、一定時間が経過していない場合、処理を終了する。
[Step S233] The cloud
[ステップ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
[ステップS235]クラウド転送処理部133は、取得されたデータ操作ログに記録されたグループ番号をオブジェクト名とするチャンクグループオブジェクトを生成する。このとき、クラウド転送処理部133は、上記グループ番号に対応するチャンクグループテーブル115のレコードからチャンクデータを取得し、チャンクグループオブジェクトの「datalist」の項目に格納する。また、クラウド転送処理部133は、これらのチャンクデータに基づいて、チャンクグループオブジェクトの「header」の項目に必要な情報を格納する。クラウド転送処理部133は、生成されたチャンクグループオブジェクトをクラウドストレージ240に送信する。
[Step S235] The cloud
[ステップS236]クラウド転送処理部133は、取得されたデータ操作ログに記録されたグループ番号をオブジェクト名とするチャンクグループオブジェクトを生成する。このチャンクグループオブジェクトは、該当グループ番号に対応する格納済みのチャンクグループオブジェクトを、クラウドストレージ240から削除するように要求するためのオブジェクトである。クラウド転送処理部133は、生成されたチャンクグループオブジェクトをクラウドストレージ240に送信する。
[Step S236] The cloud
[ステップS237]クラウド転送処理部133は、操作ログテーブル121を参照し、図24のステップS202と同じデータ操作ログから、「update」の項目に記録された更新カウンタの値を再取得する。
[Step S237] The cloud
[ステップS238]クラウド転送処理部133は、ステップS231でカウント値保存部133aに保存された更新カウンタの値と、ステップS237で再取得された更新カウンタの値とを比較する。クラウド転送処理部133は、これらの値が同一の場合、ステップS240の処理を実行し、これらの値が異なる場合、ステップS239の処理を実行する。
[Step S238] The cloud
[ステップS239]クラウド転送処理部133は、ステップS237での参照先のデータ操作ログを操作ログテーブル121から再取得する。この後、ステップS231に進み、再取得されたデータ操作ログに基づいて処理が継続される。すなわち、ステップS238において更新カウンタの値が一致するまで、ステップS239,S231〜S238の処理が繰り返される。
[Step S239] The cloud
[ステップS240]クラウド転送処理部133は、ステップS237で参照されたデータ操作ログを操作ログテーブル121から削除する。
なお、上記の各実施の形態に示した装置(情報処理装置1、クラウドストレージゲートウェイ100)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク(BD)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
[Step S240] The cloud
The processing functions of the devices (the
プログラムを流通させる場合には、例えば、そのプログラムが記録された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
(付記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
(付記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
(付記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
(付記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
(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
(付記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
(付記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
(付記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
Claims (10)
前記制御部は、
前記複数のデータ群のうち第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に記載の情報処理装置。 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の操作情報に前記第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の操作情報に前記第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乃至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.
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)
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)
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)
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)
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 |
-
2017
- 2017-11-20 JP JP2017222952A patent/JP7007565B2/en active Active
-
2018
- 2018-10-29 US US16/172,909 patent/US10719556B2/en active Active
- 2018-10-30 EP EP18203350.6A patent/EP3495963B1/en active Active
Patent Citations (5)
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)
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 |