Computer system, file storage controller, and data sharing method

Each file storage apparatus of a plurality of file storage apparatuses stores a file system, and associates and stores paths of elements in the file system and archive destinations of the elements in an archive storage apparatus. When the file system is operated, each file storage apparatus transmits archive data of an element as an operation target, and operation information including operation details to the archive storage apparatus. The archive storage apparatus receives the archive data and the operation information, stores the archive data, and stores consistency information including the operation information and archive versions indicating a reception order of the operation information. A first file storage apparatus executes a synchronization process of acquiring the consistency information from the archive storage apparatus, correcting inconsistency between the acquired consistency information and consistency information including archive versions earlier than the acquired consistency information, and reflecting the file system on the consistency information.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a U.S. National Stage entry of PCT Application No. PCT/JP2015/052623, filed on Jan. 30, 2015, the contents of the foregoing are incorporated by reference.

TECHNICAL FIELD

The present invention relates to a technique for sharing data between a plurality of file storage apparatuses.

BACKGROUND ART

There is a known computer system, in which storage apparatuses respectively installed at a plurality of sites are coupled to an archive storage apparatus to realize data sharing between the storage apparatuses.

For example, PTL 1 discloses a technique, in which only a storage apparatus at one predetermined site among storage apparatuses at a plurality of sites transmits archive data to an archive storage apparatus.

Furthermore, for example, PTL 2 discloses a technique, in which to prevent a plurality of storage apparatuses from updating data in an archive storage apparatus at the same time, transmission of archive data from the storage apparatuses other than the storage apparatus at a transmission source of archive data is locked in relation to data being updated by the archive storage apparatus. In the technique, when client devices of the other storage apparatuses update data of the client devices, the client devices reflect the archive data in the archive storage apparatus on the data of the client devices and update the data after the reflection.

CITATION LIST

Patent Literature

SUMMARY OF INVENTION

Technical Problem

However, according to the technique of PTL 1, the storage apparatuses at the other sites cannot transmit the archive data, and only the data from one site is shared by the storage apparatuses at a plurality of sites through the archive storage apparatus.

In addition, according to the technique of PTL 2, when a client further updates the data updated by another storage apparatus, the storage apparatus of the client needs to reflect the archive data from the archive storage apparatus, and this causes the client to wait.

Therefore, a waiting time of a client for updating data is a problem in a computer system that can transmit archive data from a plurality of storage apparatuses.

Solution to Problem

To solve the problem, a computer system according to the present invention includes: a plurality of file storage apparatuses; and an archive storage apparatus coupled to the plurality of file storage apparatuses. The file storage apparatus is configured to store a file system and associate and store paths of elements in the file system and archive destinations of the elements in the archive storage apparatus. When the file system is operated, each file storage apparatus is configured to transmit, to the archive storage apparatus, archive data of an element as a target of the operation and operation information including a path to the target and details of the operation. The archive storage apparatus is configured to receive the archive data and the operation information, store the archive data, and store consistency information including the operation information and archive versions indicating an order of reception of the operation information. A first file storage apparatus of the plurality of file storage apparatuses is configured to execute a synchronization process of acquiring the consistency information from the archive storage apparatus, correcting inconsistency between the acquired consistency information and consistency information including archive versions earlier than the acquired consistency information, and reflecting the file system on the consistency information.

Advantageous Effects of Invention

The computer system of the present invention can reduce the waiting time for operating the file system and can maintain consistency of data according to the order of reception of the archive data in the archive storage apparatus.

DESCRIPTION OF EMBODIMENTS

Note that although an expression “aaa table” may be used to describe various pieces of information in the following description, the various pieces of information may be expressed by data structures other than the table. To indicate that the various pieces of information do not depend on the data structure, the “aaa table” can be called “aaa information”. Furthermore, when a program or software is the subject in the description, it is understood that a processor or the like actually executes the program or the software.

Although expressions, such as “identifier”, “name”, and “ID” regarding identification information, are used to describe details of each piece of information, the expressions can be replaced with each other. Many types of identification information may be used in place of at least one of these.

Furthermore, although a “program” may serve as the subject in describing a process in the following description, the subject of the process may be a processor because the processor executes the program to execute a predetermined process while appropriately using a storage resource (for example, memory) and/or a communication interface device (for example, communication port). Conversely, it can be interpreted that a process in which the processor is the subject can be performed by executing one or more programs. Although the processor is typically a microprocessor, such as a CPU (Central Processing Unit), the processor may include a hardware circuit that executes part of the process (for example, encryption/decryption or compression/decompression).

Furthermore, in the following description, reference signs may be used to describe the same types of elements without distinguishing the elements, and identifiers (for example, at least one of numbers and signs) allocated to the elements may be used in place of the reference signs of the elements to describe the same types of elements without distinguishing the elements.

FIG. 1is a diagram describing an example of an outline of the present Embodiment.

A computer system of the present Embodiment includes: NAS (Network Attached Storage) devices102,112, and122as an example of a plurality of file storage apparatuses; and a CAS (Content Aware Storage) device140as an example of an archive storage apparatus. The plurality of NAS devices102,112, and122provide a file sharing service in cooperation with the CAS device140. The file sharing service is a service in which the NAS devices102,112, and122store file systems103,113, and123, respectively, and data in the file systems103,113, and123are synchronized with the CAS device140to thereby share the data. The NAS devices102,112, and122can execute operations for files and directories that are elements in the file systems103,113, and123, respectively. In this case, instead of locking elements on the CAS device140corresponding to the elements in the file systems103,113, and123as operation targets and permitting the operations after synchronizing the data, the elements are operated based on the data in the file systems103,113, and123. By permitting the operations of the elements in the file systems103,113, and123without the lock and the synchronization, the time for waiting for unlocking in the other NAS devices103,113, and123and the time for waiting for the synchronization of the data are eliminated, and the operations for the elements can be executed in a short time. Then, the operated elements are archived in the CAS device140asynchronously with the operations. Note that the archive here denotes copying of the data in the file or the directory on the file system to the CAS device140. The data copied at this point will be called archive data.

The CAS device140includes namespaces, such as a file sharing namespace141and a management namespace144. The namespaces are non-tiered areas for storing objects. The CAS device140stores, as objects, the archive data in the file sharing namespace141.

The CAS device140stores, as an object, a consistency checklist group410that is a set of consistency checklists in the management namespace144. The consistency checklists are an example of consistency information including, for example, operation information including details of the operations performed for the file systems103,113, and123by the NAS devices102,112, and122and archive versions indicating the order of reception of the operation information by the CAS device140. The details of the operations include targets and types of the operations. Note that, for example, the operation information corresponds to an operation list and the like described later, and the archive versions correspond to version IDs501and the like described later.

The CAS device140stores, as an object, the version list in the management namespace144. The version list is a list for managing the version IDs501included in the consistency checklist in the order of version. For example, the version list corresponds to a version management table411and the like described later.

The NAS devices102,112, and122transmit and receive various pieces of data to and from the CAS device140. Transmission of information and data to the CAS device140, that is, uploading of data to the CAS device140, will be referred to as PUT in some cases. Furthermore, reception of various pieces of data from the CAS device140, that is, downloading of data of an object in the CAS device140, will be referred to as GET in some cases. Each object is provided with an object ID such as a URL, for example. The NAS devices102,112, and122designate the object ID to access the archive data.

Note that the NAS devices102,112, and122store association of paths to the files and the directories of the file systems103,113, and123with the object IDs of the objects in the file sharing namespace141of the CAS device140.

The CAS device140generates consistency checklists by providing operation lists received from the NAS devices with version IDs indicating the order of reception of the operation lists and stores the consistency checklists. Note that the operation lists are information PUT to the CAS device140along with the archive data. In this way, the state of the file sharing namespace141different in each version is managed.

When the file system of a certain NAS device is operated, the NAS device PUTS the archive data of the file and the directory as operation targets to the CAS device140.

Furthermore, the NAS devices102,112, and122in the computer system execute a synchronization process of acquiring the consistency checklists from the CAS device140regularly or at a predetermined timing and sequentially reflecting the details of the operations included in the acquired consistency checklists on the file systems of the NAS devices102,112, and122based on the objects in the file sharing namespace141. Here, the operations included in the PUT archive data and operation lists are operated without locking and synchronizing the objects of the operation targets on the CAS device140. Therefore, as the plurality of NAS devices102,112, and122operate related elements at the same time, the operations are not consistent in some cases. Therefore, the NAS devices102,112, and122execute the synchronization process by reflecting the operations while correcting the inconsistency in the consistency checklists. The data in the file systems finished with the synchronization process coincide with the archive data in the file sharing namespace141. As a result, the file systems103,113, and123of the plurality of NAS devices102,112, and122can share the data in the file sharing namespace141.

Furthermore, each of the NAS devices102,112, and122stores a current version. The current version is a version ID included in the latest consistency checklist among the consistency checklists finished with the reflection. For example, the current version corresponds to Current Consistency Number described later.

In a specific example described below, it is assumed that each NAS device102stores a file system including a directory dir00and files file00and file01under the directory dir00in an initial state. It is assumed that the version ID provided to the latest consistency checklist stored in the management namespace144is “V1”. It is assumed that in the initial state, the Current Consistency Numbers104included in the NAS devices102,112, and122are all “V1”. This indicates that the data in the file sharing namespace141are all reflected on the file systems103,113, and123of the NAS devices102,112, and122, that is, the synchronization process is finished. Hereinafter, a data sharing method of the present Embodiment will be described based on the specific example.

The specific example will be described. (1) A client performs an operation for the file system103. The details of the operation are, for example, “change name” (Rename /dir00→dir01) in the directory dir00of the file system103of the NAS device102that is the operation target.

(2) Subsequently, the client performs an operation for the file system113. Details of the operation are, for example, “update file” (Modify /dir00/file01) in the file01under dir00of the file system113of the NAS device112that is the operation target.

(3) The NAS device102designates the object ID of dir00that is the operation target and PUTS the archive data of dir00after the operation to the CAS device140. As a result, dir00of the file sharing namespace141is changed to dir01.

(4) The NAS device102designates the object ID of the consistency checklist group410of the management namespace144and PUTS the operation list indicating the change name of dir00to the CAS device140. The Current Consistency Number (V1) of the NAS device at the time of the operation is managed as the registered version in the operation list. The CAS device140stores, in the management namespace144, the consistency checklist as the consistency checklist group410in which the version ID (V2) is provided to the operation list.

(5) The NAS device112designates the object ID of the target of the file sharing namespace141of the CAS device140and PUTS the archive data of file01after the operation of the file system103of the NAS device112to the CAS device140. As a result, file01of the file sharing namespace141is updated. Note that in the “update file”, the file may be overwritten by the transmitted archive data, or difference data before and after the update may be managed to perform generation management of the files, for example.

(6) The NAS device112designates the object ID of the consistency checklist group410of the management namespace144and PUTS the operation list indicating the update file of file01to the CAS device140. The Current Consistency Number (V1) of the NAS device at the time of the operation is managed as the registered version in the operation list. The CAS device140stores, in the management namespace144, the consistency checklist as the consistency checklist group410in which the version ID (V3) is provided to the operation list.

(7) When a preset condition is met, the NAS device122executes a synchronization process. (7) and (8) describe the synchronization process of the NAS device122. In this case, the NAS device122designates the object ID of the consistency checklist group410to GET the consistency checklist from the management namespace144of the CAS device140. Specifically, for example, the NAS device122GETs the consistency checklist including the version ID next to the Current Consistency Number (V1) of the NAS device122. Here, the consistency checklist of V2is GET.

Here, the NAS device122compares the Current Consistency Number (V1) of the NAS device122with the registered version (V1) in the consistency checklist. Here, the registered version and the Current Consistency Number of the NAS device122have the same version number, and this indicates that the state of the file system103of the NAS device102at the time of the operation and the state of the file system123of the NAS device122are the same. Therefore, the coherence of data can be maintained even when the obtained consistency checklist is reflected on the file system123.

Then, the NAS device122reflects the details of the operation of the consistency checklist with the version ID V2on the file system123. The NAS device122changes the Current Consistency Number (V1) of the NAS device122to the version ID (V2) of the consistency checklist reflected in (7).

(8) Subsequently, the NAS device122GETs the consistency checklist from the management namespace144of the CAS device140. Specifically, for example, the NAS device122GETs the consistency checklist with the version ID next to the Current Consistency Number (V2) of the NAS device122. Here, the consistency checklist of V3is obtained.

Here, the NAS device122compares the Current Consistency Number (V2) of the NAS device122with the registered version (V1) in the consistency checklist. Here, the registered version is a version number older than the Current Consistency Number of the NAS device122, and the file system123of the NAS device122is in a state (V2) newer than the state (V1) of the file system113of the NAS device112at the time of the operation. That is, the consistency checklist of V2and the consistency checklist of V3are inconsistent, and the reflection in this state may not be able to maintain the coherence of the file system123. Therefore, the details of the consistency checklist operation of V3are included in the already reflected details of the operation of the consistency checklist of V2. Specifically, for example, when the details of the operation of the consistency checklist of V3are update file of file01under dir00(Modify /dir00/file01), and the details of the operation of the consistency checklist of V2are change name of dir00(Rename /dir00→dir01), the operation target of the consistency checklist of V3is rewritten with “dir01/file01” based on the operation target “dir01” of the consistency checklist of V2. As a result, the detail of the operation of the consistency checklist of V3after the reflection is update file of file01under dir01(Modify /dir01/file01).

The NAS device122can rewrite the target of the consistency checklist operation of V3with the operation target of V2after reflecting the details of the operation of V2to thereby reflect the V3operation on the operation target after the rewriting. The NAS device122changes the Current Consistency Number (V3) of the NAS device122to the version ID (V3) of the consistency checklist used in the synchronization process.

The process described above can reduce the waiting time for the operations of the file systems in a computer system10including the plurality of NAS devices102,112, and122and can maintain the coherence of data according to the order of reception of the archive data in the CAS device140. Furthermore, when the registered version of the obtained consistency checklist is older than the Current Consistency Number of the NAS device, the acquired target of the consistency checklist operation can be rewritten with the operation target of the consistency checklist already reflected on the file system to thereby maintain the coherence of data even when the file system operated from a version earlier than the state of the current version is reflected.

FIG. 2is an example of a configuration diagram of the computer system according to the present Embodiment.

The computer system10includes one or a plurality of sub computer systems100,110, and120arranged at respective sites and a data center system130. The CAS device140is installed on the data center system130.

Note that the sub computer systems at the respective sites may have similar configurations. Hereinafter, the configuration of the sub computer system100arranged at a site A will be representatively described. For the sub computer systems110and120not described, the following description can be read by providing signs of constituent elements in the respective systems.

The sub computer system100includes a client101and the NAS device102. The client101and the NAS device102are coupled through a network105such as a LAN (Local Area Network) in the site. The client101is one or a plurality of computers. The client101uses the file sharing service provided by the NAS device102through, for example, the network105using a file sharing protocol such as an NFS (Network File System) and a CIFS (Common Internet File System).

The NAS devices102,112, and122at the respective sites are coupled to the CAS device140of the data center system130through networks150,151, and152, such as a WAN (Wide Area Network), for example. For example, the NAS devices102,112, and112access the CAS device140by using a protocol such as an HTTP (Hypertext Transfer Protocol), for example.

Note that although the computer system10includes three sites (A, B, and C) in the example described in the present Embodiment, the number of sites in the computer system10may be any number.

Note that the types of the networks105,115,125,150,151, and152are not limited to the networks described above, and various networks can be used.

FIG. 3is a configuration diagram of the NAS device. Note that althoughFIG. 3shows the configuration of the NAS device102at the site A, and only the NAS device102at the site A will be described below, the NAS devices112and122at the other sites B and C also have similar configurations.

The NAS device102includes an NAS controller201and a storage apparatus202. The NAS controller201includes a memory203, a CPU205, network interfaces (I/Fs)206and207, and an interface204. These are coupled to each other through a communication path such as a bus, for example. The CPU402executes programs stored in the memory403. The network I/F206is an interface for communicating with the client101through the network105. The network I/F207is an interface for communicating with the data center system130through the network150. The I/F204is an interface coupled to an I/F219for mutual communication with the storage apparatus202.

The memory203stores programs and information for controlling the NAS device102. Specifically, the memory203stores, for example, the Current Consistency Number104, a reflected consistency checklist209, a file sharing program210, an archive program211, an operation list creation program212, a synchronization program213, a recovery program216, a file system program214, and an operating system (OS)215. Note that the programs and the information stored in the memory203may be stored in the storage apparatus202. In this case, the CPU205reads them to the memory203to execute them.

The Current Consistency Number104indicates up to which version of the consistency checklist is reflected on the file system of the NAS device102. The reflected consistency checklist209is a consistency checklist acquired from the CAS device140, in which the reflection on the file system is finished. The reflected consistency checklist209is saved for a certain period or a certain amount to avoid waste of acquiring the consistency checklist again from the CAS device140.

The file sharing program210is a program for providing an interface using a file sharing protocol between the NAS device102and the client101. The archive program211is a program for archiving, in the CAS device140, the directory or the file operated on the client101. The operation list creation program212is a program for creating an operation list including the details of the operation for the file or the directory of the NAS device102. The synchronization program213is a program for reflecting the operation of the consistency checklist acquired from the CAS device140on the file system of the NAS device102. The file system program214is a program for controlling the file system103. The recovery program216is a program for executing a recovery process of the NAS device102.

The storage apparatus202includes a memory218, a CPU217, and the I/F219. These are coupled to each other through a communication path such as a bus. The I/F219is an interface used for the coupling with the NAS controller201. Programs and data are stored in the memory218and disks220. The CPU217executes the programs in the memory218based on the commands from the NAS controller201. The storage apparatus202may provide a storage function in a block format, such as an FC-SAN (Fibre Channel Storage Area Network), to the NAS controller201.

FIG. 4is a configuration diagram of the CAS device140. The CAS device140includes a CAS controller401and a storage apparatus402. The CAS controller401includes a memory403, a CPU404, a network I/F405, and an I/F406. These are coupled to each other through a communication path such as a bus, for example. The CPU404executes programs stored in the memory403. The network I/F405is an interface for communicating with the NAS devices102,112, and122through the networks150,151, and152. The I/F406is an interface coupled to the I/F415to communicate with the storage apparatus402.

Programs and information for controlling the CAS device140are stored in the memory403. Specifically, for example, an object operation program407, a namespace management program408, an object version management program409, the consistency checklist group410, the version management table411, and an operating system (OS)415are stored in the memory203. Note that the programs and the information stored in the memory403may be stored in the storage apparatus402. In this case, the CPU404reads them to the memory203to execute them.

The object operation program407is a program for processing requests (for example, PUT request and GET request) from the NAS devices102,112, and122. The namespace management program408is a program for creating and managing a namespace. The object version management program409is a program for providing a version ID to the operation list transmitted along with the archive data to form a consistency checklist to manage the version. The consistency checklist group410is a set of consistency checklists generated based on the operation lists transmitted from the NAS and stored in the management namespace144. The version management table411is a table for managing the version IDs501of the consistency checklist group410.

The storage apparatus402includes a memory412, a CPU413, disks414, and an I/F415. These are coupled to each other through a communication path such as a bus, for example. The I/F415is an interface used for the coupling with the CAS controller401. Programs and data are stored in the memory412and the disks414. The CPU413executes the programs in the memory412based on commands from the CAS controller401. The storage apparatus202may provide a storage function in a block format, such as an FC-SAN, to the CAS controller401.

FIG. 5is an example of an operation list500. The operation list500is a list created by each NAS controller201in the archive process and transmitted to the CAS controller401. The operation list500is created for each detail of the operation for the file system of the NAS device102(or112or122) of the sub computer system. The details of the operation include the type and the target of the operation. An NAS identifier502that is an identifier of the NAS device102(or112or122) of the sub computer system, a registered version503that is the Current Consistency Number104stored in the memory203of the NAS device at the operation, an update path504indicating a path to the operation target, and an operation type505that is a type of the operation are stored in the operation list500. Note that examples of the operation type505include create file for newly creating a file, change name of a file or a directory, update file for updating an existing file, delete file for deleting an existing file, and the like.

FIG. 6is an example of the consistency checklist group410. Each record of the consistency checklist group410is the consistency checklist. Each consistency checklist is managed for each archive version indicating the order of reception of the operation list500transmitted along with the archive data. In other words, changes in the state of the file sharing namespace141successively updated by the archive data from the NAS devices102,112, and122are managed based on the versions.

The consistency checklist includes: the version ID501indicating the archive version; the NAS identifier502that is the identifier of the NAS device of the transmission source of the operation list500; the registered version503indicating the Current Consistency Number104at the time of the operation for the file system of the NAS device; the update path504indicating the path to the operation target; the operation type505that is the type of the operation; an update date and time506indicating the date and time of the reception of the archive data of the file or the directory of the operation; and a rotation flag507that is a flag for managing the group of the consistency checklists.

FIG. 7is an example of the version management table411.

The version management table411is a table for managing the version IDs501in the consistency checklists. The version management table411includes an entry for each version ID501of the consistency checklist. Each entry includes: the version ID501; a size1102of the consistency checklist with the version ID501; a content hash value1103indicating a hash value of the consistency checklist with the version ID501; the update date and time506indicating the date and time of the reception of the archive data of the version; and the rotation flag507of the consistency checklist with the version ID.

FIG. 8is an example of a flow chart of an archive process600. The CPU205of the NAS controller201executes the archive program211in each of the NAS devices102,112, and122to execute the archive process600. Note that the archive process600may be executed when a predetermined condition is satisfied. For example, the archive process600may be regularly or irregularly executed or may be executed when the client performs an operation for the file system of the client.

When the archive process is regularly executed, for example, the archive program211refers to an operation log for the file system to execute the archive process for each operation. The operation log includes the path of the file or the directory as the operation target, the details of the operation, the date and time of the operation, and the like. In this case, the archive program211executes the archive process from the oldest date and time of the operation.

The archive program211PUTS the archive data of the operated file or directory to the CAS controller401(S601). Specifically, for example, the archive program211designates the object ID corresponding to the operation target based on correspondence information not shown associating the paths of the files or the directories in the file system stored in the memory203and the object IDs in the file sharing namespace141and PUTS the archive data to the CAS controller401.

The object version management program409of the CAS controller401receives the archive data of the operated file or directory and stores the archive data in the object of the file sharing namespace141corresponding to the directory or the file (S602). Then, the object version management program409transmits a response of PUT to the NAS controller201.

The archive program211receives the response and transfers the process to the operation list creation program212. The operation list creation program212creates the operation list500(S603). Specifically, for example, the operation list creation program212creates the operation list500including the update path504that is the path to the operation target, the operation type505, the Current Consistency Number502of the NAS device at the execution of the operation, and the NAS identifier502of the NAS device based on the operation log and stores the operation list500in the memory203. Then, the process is transferred to the archive program211.

The archive program211PUTS the operation list500to the CAS controller401(S604).

The object version management program409of the CAS controller401receives the operation list500and provides the version ID501indicating the order of reception of the operation list500, the update date and time506that is the reception date and time of the archive data, and the rotation flag507to create a consistency checklist. Then, the object version management program409adds the created consistency checklist to the consistency checklist group410, stores the consistency checklist group410in the memory403, transmits a response of PUT to the NAS controller201, and ends the process.

The archive process600can reduce the waiting time for operating the file system in the computer system10including the plurality of NAS devices102,112, and122and can generate the consistency checklists for maintaining the coherence of data according to the order of reception of the archive data in the CAS device140. Specifically, the CAS device140receives the archive data and the operation lists indicating the details of the operations and generates and stores the consistency checklists in which the version IDs are provided to the operation lists. That is, the consistency lists can store the order of reception of the archive data from the plurality of NAS devices102,112, and122. Therefore, by using the consistency checklists in the synchronization process, the clients of the NAS devices102,112, and122can operate the file systems of the clients without waiting for the execution of the synchronization process. That is, the waiting time for the clients to operate the file systems can be reduced.

FIG. 9is an example of a flow chart of a synchronization process700. The CPU205of the NAS controller201executes the synchronization program213in each of the NAS devices102,112, and122to execute the synchronization process700. Note that the synchronization process700may be executed at any timing. For example, the synchronization process700is executed based on a condition set in advance. For example, the synchronization process700may be regularly or irregularly executed at a timing set in advance, may be executed when the client transmits a read request for a file or a directory in the file system included in the NAS device102of the sub computer system, or may be executed based on other conditions. Note that the configurations may be performed by the client at each site or may be performed by a management apparatus not shown coupled to the NAS device. Furthermore, the configurations may be performed by the management apparatus coupled to the CAS device.

The synchronization program213transmits a GET request of the version management table411to the CAS controller401(S701). For example, the object ID of the object in the management namespace144storing the version management table411is designated in the GET request.

The object version management program409of the CAS controller401receives the GET request and transmits the version management table411of the designated object to the NAS controller301(S702).

The synchronization program213GETs the version management table213. Then, the synchronization program213compares the version ID501of the version management table213with the Current Consistency Number104in the memory203of the NAS device (S703).

The synchronization program213determines whether there is an unacquired version of the consistency checklist (S704). Specifically, for example, the synchronization program213determines, for the unacquired version, whether the version management table213includes the version ID501newer than the Current Consistency Number104in the memory203of the NAS device.

If there is no unacquired version (No in S704), the synchronization program213ends the process. On the other hand, if there is an unacquired version (Yes in S704), the synchronization program213advances the process to S705.

The synchronization program213transmits, to the CAS controller401, a GET request of the consistency checklist with the version ID501next to the Current Consistency Number in the memory203of the NAS device (S705).

The object version management program409receives the GET request and transmits the consistency checklist with the designated version ID501to the NAS controller301(S707).

The synchronization program708receives the consistency checklist and determines whether the NAS identifier502included in the received consistency checklist is the identifier of the NAS device of the sub computer system (S708). Hereinafter, the received consistency checklist will be called a target list in the description of the flow.

If the NAS identifier502included in the target list indicates an NAS device other than the NAS device of the sub computer system (No in S708), the synchronization program708executes a consistency process (S709) and returns the process to S704. Note that the Current Consistency Number in the memory203is updated to the version ID of the consistency checklist in the consistency process. On the other hand, if the NAS identifier502included in the target list indicates the NAS device of the sub computer system (Yes in S708), the synchronization program708advances the process to S805(FIG. 9; A). Note that the Current Consistency Number in the memory203is updated to the version ID of the consistency checklist in the consistency process.

The synchronization process700can sequentially reflect the operations on the file systems, from the consistency checklist with the oldest version ID. As a result, the file systems103,113, and123on the NAS devices102,112, and122can be operated according to the order of reception of the archive data in the CAS device140, and the coherence of data can be maintained.

Although the version IDs can be compared to determine the order of the consistency checklists PUT to the CAS device140inFIG. 9, the update date and time506of the consistency checklists may be used to determine the order.

Specifically, the CAS device140manages the versions of the state of the file sharing namespace141according to the order of reception of the archive data. The NAS device sequentially reflects the state on the file system of the NAS device in the synchronization process700. Therefore, the coherence of data between the file systems and the file sharing namespace141can be maintained regardless of the timing of the execution of the synchronization process700.

Furthermore, the client can also access the files or the directories in the latest state by configuring to execute the synchronization process700when there is a read request for the file system.

FIG. 10is an example of a flow chart of a consistency process800. The consistency process800is a process of S709of the synchronization process700. Note that the synchronization program213executes the consistency process based on the consistency checklist (target list) received in S708.

The synchronization program213compares the registered version503of the target list with the Current Consistency Number104in the memory203of47the NAS device and determines whether the registered version503of the target list is older than the Current Consistency Number104of the NAS device (S801).

If the registered version503is newer than the Current Consistency Number104of the NAS device (No in S801), the synchronization program708advances the process to S804. On the other hand, if the registered version503is the same or older than the Current Consistency Number104of the NAS device (Yes in S801), the synchronization program213advances the process to S802.

The synchronization program213acquires the reflected consistency checklist209including the registered version503newer than the registered version503of the target list from the memory203(S802). Note that the reflected consistency checklist209is a consistency checklist in which the operation is reflected on the file system.

The synchronization program213adds the details of the operation of the reflected consistency checklist209to the details of the operation of the target list (S803). For example, the synchronization program213rewrites the operation target of the target list with the operation target of the reflected consistency checklist acquired in S802.

The synchronization program213executes the operation (operation type505, update path504) of the target list (S804).

The synchronization program213stores the target list in the memory203as the reflected consistency checklist209(S805).

The synchronization program213updates the Current Consistency Number104of the NAS device to the version ID of the target list (S806).

The consistency process800can reflect the consistency information on the file system based on the registered version503of the target list and the Current Consistency Number104of the NAS device. As a result, the operations can be sequentially reflected from the file systems in which the operations are performed. Specifically, when the registered version503of the target list is older than the Current Consistency Number104of the NAS device, the details of the operation of the reflected consistency checklist newer than the Current Consistency Number104of the NAS device can be included in the details of the operation of the target list. For example, this is equivalent to rewriting the already reflected file name (path) that is the operation target with the operation target of the target list. This can prevent a trouble, such as the path to the operation target of the target list cannot be found due to the already performed operation, and can maintain the coherence of data. Note that although the already reflected operation target is rewritten with the operation target of the target list in the example illustrated in the present Embodiment, any mode can be adopted as long as the already reflected details of the operation are included in the details of the operation of the target list.

Furthermore, the NAS device can store the already reflected consistency checklist in the NAS device to reduce the load caused by GETTING the same consistency checklist from the CAS device140again.

FIG. 11is a flow chart of a recovery process900. The CPU205of the NAS controller201executes the recovery program216in each of the NAS devices102,112, and122to execute the recovery process900. Note that the recovery process900is a process executed when there is a failure in the NAS device102. For example, the failure denotes stopping of the operation of the NAS device102due to a power failure or a network failure.

The recovery program216recovers the NAS device102(S901). For example, when the network failure is removed, the recovery program216restarts the NAS device102.

The recovery program216transmits a GET request of the version management table411to the CAS controller401(S902).

The object version management program409of the CAS controller401receives the GET request and transmits the version management table411to the NAS controller301(S903).

The recovery program216receives the version management table213. Then, the recovery program216compares the version ID501of the version management table213with the Current Consistency Number104in the memory203of the NAS device (S904).

The recovery program216determines whether the Current Consistency Number104in the memory203of the NAS device is included in the version management table213(S905).

If the Current Consistency Number104in the memory203of the NAS device is included in the version management table213(Yes in S905), the recovery program216executes the synchronization process700(S907) and ends the process. On the other hand, if the Current Consistency Number104in the memory203of the NAS device is included in the version management table213(No in S905), the recovery program216advances the process to S908.

The recovery program216determines whether the number of unacquired consistency checklists is equal to or smaller than a first threshold set in advance (S906). For example, the number of unacquired consistency checklists is the number of consistency checklists including the version IDs501newer than the Current Consistency Number104in the memory203of the NAS device in the version management table213.

If the number of unacquired consistency checklists is equal to or smaller than the first threshold (Yes in S906), the recovery program216executes the synchronization process700based on the unacquired consistency checklists (S907) and ends the process. On the other hand, if the number of unacquired consistency checklists is larger than the first threshold (No in S906), the recovery program216advances the process to S908.

The recovery program216GETs the archive data in all objects of the file sharing namespace141of the CAS device140, restores the archive data in the file system (S908), and ends the process.

The recovery process900allows the NAS device to reflect the file system through the synchronization process700even if there is a failure in the NAS device. Furthermore, when the unreflected versions exceed the threshold set in advance, restoring the archive data in the CAS device is more efficient than executing the synchronization process700. In such a case, the load on the computer system can be reduced by restoring the archive data.

FIG. 12is a flow chart of a consistency checklist rotation process1000.

The CPU205of the NAS controller201of an arbitrary NAS device102,112, or122executes the operation list creation program212to execute the consistency checklist rotation process1000. Note that the consistency checklist rotation process may be executed at any timing. For example, the consistency checklist rotation process may be regularly executed or may be executed after the archive process or the synchronization process700.

The operation list creation program212transmits a GET request of the version management table411to the CAS controller401(S1001).

The object version management program409of the CAS controller401receives the GET request and transmits the version management table411to the NAS controller301(S1002).

The operation list creation program212receives the version management table213. Then, the operation list creation program212determines whether the number of version IDs501included in the version management table213is equal to or larger than a second threshold set in advance (S1003).

If the number of version IDs501is smaller than the second threshold (No in S1003), the operation list creation program212ends the process.

On the other hand, if the number of version IDs501is equal to or larger than the second threshold (Yes in S1003), the maximum number of consistency checklists in the group in the consistency checklist group is set to the second threshold, and a setting request of rotation flags for the version IDs exceeding the maximum number is transmitted to the CAS controller401(S1004). For example, when the second threshold is 100, and the version IDs included in the received version management table213is V1to V102, the operation list creation program212determines that the number of version IDs501is equal to or larger than the second threshold. Then, the operation list creation program212transmits a setting request of rotation flags for V101and V102to the CAS controller401.

The object version management program409of the CAS controller401receives the setting request, sets the rotation flags507for the version IDs exceeding the maximum number in the consistency checklists and the version management table213(S1005), and ends the process. In the example, the object version management program409sets “1” for the rotation flags of V101and V102of the consistency checklists and the version management table213.

As a result of the consistency checklist rotation process1000, the CAS controller401manages the group of the consistency checklists including the version IDs provided with the rotation flags and later version IDs (in the example, the consistency checklists including the version IDs of version V101and later versions) as a new consistency checklist group different from the existing consistency checklist group410. The new consistency checklist group is handled as an object different from the existing consistency checklist group410, and a new object ID is provided.

Furthermore, the CAS controller401manages the version IDs provided with the rotation flags and later version IDs in a new version management list. The new version management table is handled as an object different from the existing version management table411, and a new object ID is provided. Note that the new consistency checklist group is provided with an object ID different from the existing consistency checklist group410. Note that the CAS controller401may move the consistency checklists provided with the rotation flags and already included in the existing consistency checklist group to a new consistency checklist group.

Although the rotation flags are set to rotate the consistency checklists inFIG. 12, the method is not limited to this. For example, the CAS controller401may provide a special version ID in response to the rotation request from the NAS device or may change the state to a special state such as “deleted version”.

The consistency checklist rotation process1000prevents the entries of the versions of the version management table411in the version management table from exceeding the maximum number. This can reduce the load of GETTING the version management lists in the synchronization process700.

Furthermore, the maximum number of the number of consistency checklists in the consistency checklist group is determined by the consistency checklist rotation process1000, and the management load of the consistency checklist group can be reduced.

Although the consistency checklist rotation process1000is executed by an arbitrary NAS device, the method is not limited to this. A predetermined NAS device may execute the consistency checklist rotation process1000, or an NAS device that has noticed the fact that the version IDs included in the consistency checklist group410has exceeded the maximum number may execute the consistency checklist rotation process1000. Furthermore, the CAS device may execute the process.

Although some Embodiments have been described above, the present invention is not limited to the Embodiments, and it is obvious that various changes can be made without departing from the scope of the present invention.

REFERENCE SIGNS LIST