WO2017056145A1 - Storage system, storage device, and storage control method - Google Patents

Storage system, storage device, and storage control method Download PDF

Info

Publication number
WO2017056145A1
WO2017056145A1 PCT/JP2015/077272 JP2015077272W WO2017056145A1 WO 2017056145 A1 WO2017056145 A1 WO 2017056145A1 JP 2015077272 W JP2015077272 W JP 2015077272W WO 2017056145 A1 WO2017056145 A1 WO 2017056145A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage device
lock
specific object
directory
specific
Prior art date
Application number
PCT/JP2015/077272
Other languages
French (fr)
Japanese (ja)
Inventor
彰義 土谷
光雄 早坂
昌忠 ▲高▼田
横井 一仁
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2015/077272 priority Critical patent/WO2017056145A1/en
Publication of WO2017056145A1 publication Critical patent/WO2017056145A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Definitions

  • the present invention relates to a storage system.
  • NAS Network Attached Storage
  • CAS Content Addressed Storage
  • the NAS at each site acquires information on directory operations performed at other sites in order to maintain the consistency of the directory structure, and reflects the operation in its own file system. With this process, the directory tree can be synchronized among a plurality of NAS.
  • Patent Document 1 describes a method in which CAS manages a directory operation transaction.
  • the first client system changes the contents of the directory, the change is reflected in the directory stored in the CAS, and a commit operation to the CAS is executed.
  • the CAS treats only the update that has been committed as a valid update, so that the second client system can obtain only the version that has been committed. Therefore, when a failure occurs during the update of the directory by the first client system, the commit operation has not been performed, so the directory that was being updated cannot be acquired from the second client system.
  • Patent Document 2 describes a file and directory synchronization method using an update list.
  • the first NAS updates a file or directory
  • it transfers the updated list of files and directories to the CAS as an update list.
  • the second NAS obtains this update list from the CAS, and sets a synchronization required flag for the files and directories described in the update list.
  • the second NAS acquires the latest version of the file or directory from the CAS.
  • Patent Document 3 describes a technique for acquiring a lock when NAS updates a directory in order to exclude updating of the same directory between NASs.
  • the NAS updates the directory it first acquires a lock, then updates the CAS directory, and finally releases the lock.
  • the directory structure may be inconsistent. For example, after a first update is performed on a specific directory in the CAS, the specific NAS may perform a second update and a failure may occur in the specific NAS before sending an update list.
  • the NAS that accesses the specific directory between the first update and the second update and acquires the first update does not subsequently acquire the second update.
  • a NAS that does not access the specific directory between the first update and the second update and has not acquired the first update subsequently acquires the second update. In this way, NAS that is synchronized with the second update and NAS that are not so are mixed, and the consistency of the directory structure between NAS may be lost.
  • a storage system includes an object storage device and a storage device connected to the object storage device.
  • the storage apparatus receives an update request for requesting an update of a specific object in the storage apparatus, the storage apparatus requests the object storage apparatus to lock the specific object in the object storage apparatus, and the specific object in the storage apparatus
  • the updated specific object is transmitted to the object storage device, and the object storage device is requested to release the lock of the specific object, and the object storage device stores the specific object for each version.
  • the storage device refers to a specific object in the storage device
  • the storage device determines whether or not the specific object in the object storage device is locked.
  • the storage apparatus acquires from the object storage apparatus the specific object of the immediately previous version that is the version immediately before the determined lock, and the specific object in the storage apparatus Is matched with the specific object of the previous version.
  • FIG. 1 shows an overview of a computer system according to an embodiment of the present invention. It is a block diagram which shows schematic structure of a computer system.
  • 2 is a block diagram showing a configuration of a NAS 300.
  • FIG. 2 is a block diagram showing a configuration of CAS400.
  • FIG. A configuration example of file / directory management information 500 in the NAS 300 is shown.
  • the structural example of the directory lock management information 600 in NAS300 is shown.
  • 2 shows a configuration example of object management information 700 in CAS 400.
  • 10 shows a configuration example of lock state management information 800 in the CAS 400 of the first and second embodiments.
  • 12 is an example of a flowchart for explaining details of a directory synchronization process 900 according to the first and third embodiments.
  • 5 is an example of a flowchart for explaining details of a synchronization version determination process 1000 according to the first embodiment.
  • 10 is an example of a flowchart for explaining details of CAS data acquisition processing 1100 according to the first and third embodiments.
  • 6 is an example of a flowchart for explaining details of rollback processing 1200;
  • 12 is an example of a flowchart for explaining details of directory creation processing 1300;
  • 12 is an example of a flowchart for explaining details of directory deletion processing 1400;
  • 12 is an example of a flowchart for explaining details of update list acquisition / application processing 1500;
  • 12 is an example of a flowchart for explaining details of object storage processing 1600;
  • 12 is an example of a flowchart for explaining details of an object reading process 1700 in the first and third embodiments.
  • 12 is an example of a flowchart for explaining details of directory lock processing 1800.
  • 12 is a flowchart for explaining details of directory synchronization processing 1900 according to the second embodiment.
  • 12 is an example of a flowchart for explaining details of CAS data acquisition processing 2000 according to the second embodiment.
  • 12 is an example of a flowchart for explaining details of an object reading process 2100 according to the second embodiment.
  • 10 shows a configuration example of lock state management information 2200 in CAS 400 of the third embodiment.
  • 12 is an example of a flowchart for explaining details of directory lock processing 2300;
  • FIG. 10 is an example of a flowchart for explaining details of a synchronization version determination process 2400 in the third embodiment.
  • information may be described in terms of “xxx information” or the like, but the information may be expressed in any data structure. That is, such information can be called by other names such as “xxx table”, “xxx database”, and the like.
  • the configuration of each information is an example, and one piece of information may be divided into two or more pieces of information, or all or a part of two pieces or more pieces of information may be one piece of information. Good.
  • an ID is used as element identification information, but other types of identification information may be used instead of or in addition to the ID.
  • the process may be described using “program” as the subject, but the program is executed by a processor (for example, a CPU (Central Processing Unit)), so that a predetermined process can be appropriately performed. Since processing is performed using a storage resource (for example, a memory) and / or an interface device (for example, a communication port), the subject of processing may be a processor.
  • the process described with the program as the subject may be a process or system performed by a processor or an apparatus having the processor.
  • the processor may include a hardware circuit that performs a part or all of the processing.
  • the program may be installed in a computer-like device from a program source.
  • the program source may be, for example, a storage medium that can be read by a program distribution server or a computer.
  • the program distribution server may include a processor (for example, CPU) and a storage resource, and the storage resource may further store a distribution program and a program to be distributed. Then, the processor of the program distribution server executes the distribution program, so that the processor of the program distribution server may distribute the distribution target program to other computers.
  • a processor for example, CPU
  • the storage resource may further store a distribution program and a program to be distributed. Then, the processor of the program distribution server executes the distribution program, so that the processor of the program distribution server may distribute the distribution target program to other computers.
  • two or more programs may be realized as one program, or one program may be realized as two or more programs.
  • the embodiment of the present invention may be implemented by software operating on a general-purpose computer, or may be implemented by dedicated hardware or a combination of software and hardware.
  • the communication network of the NAS and CAS is not limited to the use of the WAN, and a communication network such as a LAN (Local Area Network) can also be employed.
  • the embodiment of the present invention is not limited to adopting the NFS (Network File System) protocol, but can also employ other file sharing protocols including CIFS (Common Internet File System), HTTP (Hypertext Transfer Protocol), and the like. is there.
  • the term “object” is used as a general term for files and directories.
  • the process for a directory may be a process for an object.
  • the process for the file can be executed similarly to the process for the directory.
  • FIG. 1 shows an outline of a computer system according to an embodiment of the present invention.
  • This computer system is distributed in the data center and bases X, Y, and Z.
  • NAS 300X and a client PC (Personal Computer) 201X connected to the NAS 300X via an internal network such as a LAN (Local Area Network) are arranged.
  • the end user operates files and directories via the client PC.
  • NAS 300Y and client PC 201Y connected to NAS 300Y via a network are arranged at site Y
  • NAS 300Z and client PC (not shown) connected to NAS 300Z via the network are arranged at site Z.
  • the alphabet of the symbol is omitted.
  • ⁇ CAS400 is located in the data center.
  • the NAS 300 is connected to the CAS 400 via an external network such as a WAN (Wide Area Network).
  • a system including CAS 400 and at least one NAS 300 may be referred to as a storage system.
  • the NAS 300 transfers the updated object to the CAS 400 and transfers an “update list” that describes the path of the updated object to the CAS 400.
  • the CAS 400 stores the transferred update list file for each version.
  • the NAS 300 can notify other NAS of local object updates using this update list.
  • the other NAS 300 detects the update of the object by acquiring this update list from the CAS 400.
  • the NAS 300 acquires the update list, the NAS 300 sets a “synchronization required flag” to the object described in the update list. Thereafter, when the user of the NAS 300 accesses an object for which the synchronization required flag is set, the NAS 300 can synchronize the object with the latest version on the CAS 400.
  • NAS 300 stores a file system including directories and files as elements.
  • the NAS 300 executes directory update operations such as directory creation, deletion, migration, and rename.
  • the target of the update operation may be a file.
  • the end user of the NAS 300X requests creation of / A / C (S1).
  • the NAS 300X locks the target directory on the CAS 400. While locked, other NAS 300 cannot update the target directory.
  • the NAS 300X locks the directory A (S2).
  • the NAS 300X performs a directory update operation requested by the end user on the local file system 318X.
  • the NAS 300X creates a directory C under the existing directory A in the local file system 318X (S3).
  • the NAS 300X creates an update list indicating the executed directory update operation.
  • the NAS 300X since the NAS 300X has created the directory C under the directory A, the NAS 300X creates an update list in which the directory A and the directory C are described (S4).
  • the NAS 300X transfers the updated directory data and the update list indicating the updated directory to the CAS 400.
  • the NAS 300X unlocks the directory A.
  • the NAS 300X has failed to transfer the update list due to the occurrence of a failure after transferring the directory to the CAS 400 (S5) (S6). At this time, the directory A is not unlocked but remains locked.
  • NAS300 synchronizes with the latest version of CAS400.
  • the NAS 300Y since the synchronization required flag is set in the directory A, the NAS 300Y synchronizes with the latest version of the directory A.
  • a directory C is created in the NAS 300Y.
  • the directory A synchronization processing is not executed. Therefore, the directory C is not created in the NAS 300Z. Therefore, consistency is lost between NAS300Y and NAS300Z.
  • the NAS 300Y When the user of the NAS 300Y accesses the directory A (S6), the NAS 300Y confirms the locked state of the directory A with the CAS 400 (S8). At this time, the directory A remains locked due to the occurrence of a failure in the NAS 300X.
  • the NAS 300Y inquires of the CAS 400 about the time when the directory A is locked (S9).
  • the locked time in this example is 10:00:00.
  • the NAS 300Y synchronizes with the latest version that is older than the locked time. In this example, the NAS 300Y synchronizes with the directory A at 9:50:00, which is older than 10:00:00 and is the latest (S10).
  • the NAS 300Y can be synchronized with the state before the directory C is created, and can maintain consistency with the NAS 300Z.
  • the NAS 300 regards the unlock in the directory update as the close of the update transaction, reflects the update closed by the transaction to the file system 318, and does not reflect the update not closed by the transaction to the file system 318.
  • the NAS300X in which the failure has occurred performs rollback processing by itself to return the file system 318X to the state before directory creation. Thereby, the consistency of the directory structure can be maintained among all the NAS 300.
  • FIG. 2 is a block diagram showing a schematic configuration of the computer system.
  • the computer system of the present embodiment is distributed in at least one base and one data center, and the base and the data center are connected via the WAN 203.
  • the base and the data center are connected via the WAN 203.
  • Each site includes client PC201, NAS300, LAN202.
  • the client PC 201 is a computer used by an end user in order to use the file sharing service provided by the NAS 300.
  • a client program that communicates with the NAS runs. Based on the operation of the end user, the client PC 201 issues a request for creating, deleting, moving, renaming, reading data, writing, and the like to the NAS 300.
  • the LAN 202 is a network that connects the client PC 201 and the NAS 300 to each other.
  • NAS300 is a computer that provides file sharing services to end users. The configuration of the NAS 300 will be described later.
  • the WAN 203 is a network connecting the network 202 of each base and the data center.
  • the NAS 300 and CAS 400 communicate via this network.
  • a communication protocol such as HTTP (Hypertext TransfercolProtocoly) or HTTPS (Hypertext Transfer Protocol ⁇ Secure) is used.
  • the data center has CAS400.
  • the configuration of CAS 400 will be described later.
  • the CAS 400 may take a cluster configuration including a plurality of nodes.
  • FIG. 3 is a block diagram showing the configuration of the NAS 300.
  • the NAS 300 includes a NAS controller 301 and a storage device 322.
  • the NAS controller 301 includes an I / F (Interface) 302, a CPU 303, a network I / F 304, and a memory 305. Each unit of the NAS controller 301 is connected to each other by an internal communication path (for example, a bus).
  • an internal communication path for example, a bus
  • the I / F 302 is used for connection to the storage device 322, and the NAS controller 301 reads / writes data from / to the storage device 322 via the I / F 302.
  • the CPU 303 executes data read / write processing on the storage device 322 according to the program and data in the memory 305.
  • the network I / F 304 is connected to the client PC 201 and CAS 400 via the LAN or WAN, and communicates with the client PC 201 or CAS 400.
  • the memory 305 stores programs and data for controlling the NAS 300.
  • the memory 305 includes a directory synchronization program 306, a directory lock program 307, an update list acquisition / application program 308, a migration program 309, a rollback program 310, a file sharing program 311, a file system program 312, Stores directory management information 500, acquired directory lock management information 600, and CAS information 313.
  • the directory synchronization program 306 is a program that synchronizes the directory with the directory on the CAS 400 when the end user accesses the directory for which the synchronization required flag is set.
  • the directory synchronization program includes a directory synchronization process 900, a synchronization version determination process 1000, and a CAS data acquisition process 1100. Details of each process will be described later.
  • the directory lock program 307 is a program for acquiring and releasing a directory lock on the CAS 400.
  • the directory lock program 307 includes a directory lock process and a directory lock release process.
  • the directory lock acquisition process is executed by the CPU 303 of the NAS 300 in response to a call from the directory creation process 1300 or the directory deletion process 1400.
  • the object ID specified by the argument is used as an argument, and the CAS 400 is requested to execute the directory lock process 1800 in the first and second embodiments and the directory lock process 2300 in the third embodiment. Acquires the directory lock for the specified directory. Details of the directory lock processing 1800 and the directory lock processing 2300 will be described later.
  • the directory lock release process is executed by the CPU 303 of the NAS 300 in response to a call from the directory creation process 1300 or the directory deletion process 1400.
  • the directory lock release process requests the CAS 400 to execute the directory unlock process using the object ID specified by the argument as an argument, thereby releasing the directory lock of the directory specified by the argument. Details of the CAS400 directory lock release processing will be described later.
  • the update list acquisition / application program 308 acquires the update list from the CAS 400, sets the synchronization required flag for the object whose path is described in the acquired update list, and the directory for which the synchronization required flag is set is about to be updated. This is a program that calls the directory synchronization processing 900 if the directory is a directory.
  • the update list acquisition / application program 308 includes an update list acquisition / application process 1500. Details of the processing will be described later.
  • the migration program 309 includes migration processing.
  • the migration process requests the CAS400 to execute the object storage process 1600, so that the files and directories updated in the NAS300 file system 318 are stored in the CAS400 and the path names of these files and directories are described.
  • the update list is also a program that saves this update list in CAS 400 by requesting CAS 400 to execute object storage processing 1600. Note that the migration process also deletes files and directories on the CAS 400 for files and directories deleted on the file system 318. Details of the object storage processing 1600 will be described later.
  • the rollback program 310 is a program that is executed when the migration process fails and returns the update to the file system 318 that failed the migration process to the state before the update.
  • the rollback program includes a rollback process 1200. Details of the rollback processing 1200 will be described later.
  • the file sharing program 311 and part or all of the file system 318 are “shared” and are disclosed to the client PC 201 to provide a file sharing service to the end user.
  • the file sharing service communicates with a client PC using a protocol such as CIFS (Common Internet File System) or NFS (Network File System).
  • the file system program 312 is a program for managing the file system 318 stored in the disk 317 in the storage device 322.
  • the NAS 300 uses the file system program 312 to operate the root directory 319, the file 320, and the directory 321 created in the file system 318. That is, another program stored in the memory 305 calls the file system program 312 and operates the root directory 319, the file 320, and the directory 321 created in the file system 318. For example, when creating a directory, a directory creation process 1300 of the file system program 312 is executed. Further, when deleting a directory, a directory deletion process 1400 of the file system program 312 is executed.
  • the root directory is a name of the highest directory in the hierarchical directory structure.
  • the file / directory management information 500 is information for managing files and directories stored in the file system 318. Details of a data configuration example of the file / directory management information 500 will be described later.
  • the file / directory management information 500 may be stored in the disk 317.
  • the directory lock management information 600 is information for managing whether the NAS 300 has acquired the directory lock of each directory by itself. Details of the data configuration example of the directory lock management information 600 will be described later.
  • the directory lock management information 600 may be stored on the disk 317.
  • CAS information 313 is information for NAS 300 to communicate with CAS 400.
  • information such as a URL (Uniform Resource Locator) and a protocol used for communication.
  • the CAS information 313 may be information of a plurality of CAS 400.
  • the CAS information 313 may be stored in the disk 317.
  • the storage device 322 includes an I / F 314, a memory 315, a CPU 316, and a disk 317. Each unit of the storage device 322 is connected to each other by an internal communication path (for example, a bus).
  • the I / F 314 is connected to the NAS controller 301 and communicates with the NAS controller 301.
  • the memory 315 stores a program and data for controlling the storage device 322.
  • the CPU 316 performs processing such as writing to and reading from the disk 317 according to the program and data in the memory 315.
  • the disk 317 is a non-volatile storage medium such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive).
  • a file system 318 is constructed on the disk 317 by the file system program 312. As a result, the disk 317 stores directories and files.
  • the disk 317 may be a plurality of disks.
  • the file system 318 is managed by the file system program 312 and stores files 320 and directories 321 created / updated by the end user.
  • the file system 318 has a hierarchical structure with the root directory 319 as the highest level. That is, a plurality of directories can be created under the directory. There may be a plurality of file systems 318.
  • the NAS controller 301 may be referred to as a controller.
  • the disk 317 may be referred to as a storage device.
  • FIG. 4 is a block diagram showing the configuration of CAS400.
  • the CAS 400 includes a CAS controller 401 and a storage device 402.
  • the CAS controller 401 includes a network I / F 403, an I / F (Interface) 404, a CPU 405, and a memory 406. Each part of the CAS controller 401 is connected to each other by an internal communication path (for example, a bus).
  • an internal communication path for example, a bus
  • the network I / F 403 is connected to the NAS 300 via the WAN and used to communicate with the NAS 300.
  • the I / F 404 is used for connection with the storage device 402.
  • the CAS controller 401 reads / writes data from / to the storage device 402 via the I / F 404.
  • the CPU 405 executes processing of the object operation program 407 and the file system program 408 according to the program and data in the memory.
  • the memory 406 stores a program and data for controlling the CAS 400.
  • the memory 406 includes an object operation program 407, a file system program 415, object management information 700, and lock state management information 800.
  • the object operation program 407 executes processing such as reading / writing of files and directories stored in the file system 413, acquisition of a list of versions, locking, unlocking, lock confirmation, acquisition of lock time, etc. according to a request from the NAS 300, and the result To the NAS300.
  • the object operation program 407 includes an object storage process 1600, an object read process 1700, a directory lock process 1800, a directory unlock process, a version list acquisition process, a lock confirmation process, and a lock time acquisition process. Details of each process will be described later.
  • the file system program 408 is a program for managing the file system 413.
  • the file system program 408 reads / writes the object stored in the file system 413 based on the request from the object operation program 407.
  • the object management information 700 is information for managing files and directories stored in the file system 413 in response to a request from the NAS 300. Details of a data configuration example of the object management information 700 will be described later.
  • the object management information 700 may be stored on the disk 412.
  • the lock status management information 800 is information for managing the lock status of each directory. Details of the data configuration example of the lock state management information 800 will be described later.
  • the lock state management information 800 may be stored in the disk 412.
  • the storage device 402 includes an I / F 409, a memory 410, a CPU 411, and a disk 412. Each unit of the storage device 402 is connected to each other by an internal communication path (for example, a bus).
  • an internal communication path for example, a bus
  • the I / F 409 is connected to the CAS controller 401 and communicates with the CAS controller 401.
  • the memory 410 stores a program and data for controlling the storage device 322.
  • the CPU 411 performs processing such as writing to and reading from the disk 412 according to the program and data in the memory 410.
  • the disk 412 is a non-volatile storage medium such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive).
  • a file system 413 managed by the file system program 408 is constructed on the disk 412. As a result, the disk 412 stores directories and files.
  • the disk 412 may be a plurality of disks.
  • the file system 413 is managed by the file system program 408.
  • the file system 413 stores files and directories in response to requests from the NAS 300.
  • a plurality of file systems 413 may be provided.
  • FIG. 5 shows a configuration example of the file / directory management information 500 in the NAS 300.
  • the file / directory management information 500 includes an entry for each object.
  • the file / directory management information 500 includes a path name 501, a type 502, an object ID 503, and a synchronization required flag 504 as one entry.
  • the path name 501 is the path name of the object in the file system 318.
  • Type 502 is the type of the object indicated by the path name 501. For example, a file or a directory.
  • the object ID 503 is an identifier on the CAS 400 of the object indicated by the path name 501. That is, when the NAS 300 operates an object on the CAS 400, the NAS 300 requests the CAS 400 as processing for the object ID 503.
  • the path name 501 and the object ID 503 may be the same.
  • the file / directory management information 500 may not have the object ID 503. If the path name 501 and the object ID 503 are the same character string, the process of converting the path name 501 to the object ID 503 with reference to the file / directory management information 500 in the following description can be omitted.
  • the synchronization required flag 504 is information indicating whether or not it is necessary to synchronize with the object in the CAS 400. If the synchronization required flag 504 is ON, synchronization is required, and if the synchronization required flag is OFF, it indicates that synchronization is not required.
  • Each program stored in the memory 305 of the NAS 300 refers to the file / directory management information 500 and converts the path name in the file system 318 to an object ID that is an object identifier in the CAS 400.
  • synchronous version confirmation processing 1000 included in the directory synchronization program 306, on-CAS data acquisition processing 1100, directory lock acquisition processing included in the directory lock program 307, directory lock release processing, and update list acquisition / application The update list acquisition / application process 1500 included in the program 308 and the migration process included in the migration program 309 perform this conversion.
  • the update list acquisition / application process 1500 included in the update list acquisition / application program 308 and the directory synchronization process included in the directory synchronization program 306 update the synchronization required flag 504.
  • FIG. 6 shows a configuration example of the directory lock management information 600 in the NAS 300.
  • the directory lock management information 600 includes an entry for each object.
  • the directory lock management information 600 includes a base name 601, an object ID 602, a lock state 603 by the own NAS (local NAS 300), and a lock count 604 as one entry.
  • the site name 601 is the name of the site where the NAS 300 is installed. In the example of FIG. 6, since it is the NAS 300 installed at the base X, the base name 601 of each entry is X.
  • the object ID 602 is an object identifier on the CAS 400.
  • the lock state 603 by the own NAS is information indicating whether or not the directory indicated by the object ID 602 is locked by the NAS 300 installed at the site name 601.
  • the lock state 603 by the own NAS indicates that the directory indicated by the object ID 602 is locked if the lock has been acquired by the NAS 300 installed in the site name 601 and is not locked otherwise.
  • the directory lock process and the directory lock release process included in the directory lock program 307 update the lock state 603 of the directory lock management information 600 by the own NAS.
  • the lock count 604 is the number of update processes that are being executed (locked) by the NAS 300 corresponding to the site name 601 for the directory indicated by the object ID 602.
  • the directory creation process 1300 and the directory deletion process 1400 update the lock count 604 of the directory lock management information 600.
  • object update processing such as directory creation processing 1300 and directory deletion processing 1400
  • when updating multiple child directories under the parent directory locks the parent directory in each update of multiple child directories.
  • the update process can execute the update of a plurality of child directories in parallel.
  • the update process locks the parent directory first, then increases the parent directory lock count 604 before updating the child directory, and after updating the child directory, decreases the parent directory lock count 604, When the lock count 604 reaches 0, the parent directory is unlocked.
  • the NAS 300 that performs the update process can execute a plurality of updates all together, and can prevent other NAS 300 from updating those directories.
  • the time required for updating a plurality of objects can be reduced and the performance can be improved as compared with the case of locking each update.
  • Each program stored in the memory 305 of the NAS 300 refers to the directory lock management information 600 to confirm the lock state 603 and the lock count 304 of the directory by its own NAS.
  • the directory creation processing 1300 and the directory deletion processing 1400 included in the file system program 312 refer to the directory lock management information 600 and confirm the lock state of the processing target directory.
  • FIG. 7 shows a configuration example of the object management information 700 in the CAS 400.
  • the object management information 700 includes an entry for each version.
  • the object management information 700 includes an object ID 701, a version 702, a creation time 703, and a path name 704 as one entry.
  • the object ID 701 is an identifier that the CAS 400 provides to the NAS 300 as information that specifies the object to be processed.
  • Version 702 is an identifier for uniquely identifying one of a plurality of generations of the object ID 701. One or more versions 702 exist for one object ID 701.
  • the creation time 703 is the time when the version 702 of the object ID 701 is created in the file system 413 of the CAS 400 at the request of the NAS 300.
  • the path name 704 is a path name of a file / directory where the data indicated by the object ID 701 and the version 702 is stored. This path name is a path name in the file system 413 in the CAS 400.
  • the object storage processing 1600 included in the object operation program 407 recognizes the latest version of the object specified in the NAS 300 based on the object management information 700 and adds an entry to the object operation program 407.
  • the object reading process 1700 included in the object operation program 407 acquires the path name 704 corresponding to the object ID and version specified by the NAS 300 from the object management information 700.
  • FIG. 8 shows a configuration example of the lock state management information 800 in the CAS 400 according to the first and second embodiments.
  • the lock state management information 800 includes an entry for each object.
  • the lock state management information 800 includes an object ID 801, a lock file 802, a lock state 803, a lock time 804, and a relock time 805 as one entry.
  • the object ID 801 is an identifier for identifying an object.
  • the lock file 802 is a path name of a file created to indicate that the object indicated by the object ID 801 is locked. This path name is a path name in the file system 413 in the CAS 400.
  • the lock state 803 is information indicating whether or not the object indicated by the object ID 801 is locked.
  • the lock time 804 is the time when the object indicated by the object ID 801 is locked.
  • the lock time 804 is set only when the object is locked.
  • the re-lock time 805 indicates the time when the object indicated by the object ID 801 is locked at the time indicated by the lock time 804 and the object is subsequently re-locked after the lock expires.
  • the relock time 805 is set only when the object is relocked.
  • the lock expires when the time equal to or greater than the preset lock time threshold elapses from the latest lock time, which is the time at which the latest lock was acquired among the lock time 804 and the relock time 805, and all NAS 300 acquires the lock Allow to do.
  • the most recent time among the times relocked after the expiration of the lock is recorded as the relock time 805.
  • the lock time 804 is the time when the lock is first performed
  • the relock time 805 is the latest time when the lock is not unlocked after the lock time 804.
  • the lock confirmation process and the lock time acquisition process included in the object operation program 407 acquire the lock state 803 and the lock time 804 of the specified object by referring to the lock state management information 800. Further, the directory lock process 1800 and the directory unlock process included in the object operation program 407 refer to and update the lock state management information 800.
  • FIG. 9 is an example of a flowchart for explaining details of the directory synchronization processing 900 according to the first and third embodiments.
  • the directory synchronization processing 900 is triggered by either the call from the update list acquisition / application processing 1500 or the access by the end user of the NAS 300 to the directory for which the synchronization required flag 504 of the file / directory management information 500 is ON. , Executed by the CPU 303 of the NAS300.
  • the directory synchronization program 306 calls the synchronization version determination process 1000 using the path name to be processed received as an argument as an argument, and acquires a synchronized version (S901).
  • the directory synchronization program 306 calls the CAS data acquisition processing 1100 using the path name of the processing target received as an argument and the version obtained as the processing result of the synchronization version confirmation process (S901) as an argument in the CAS 400.
  • the processing target directory is acquired (S902).
  • the directory synchronization program 306 executes directory reading processing on the NAS using the path name of the processing target received as an argument, and reads the processing target directory stored in the file system 318 by the NAS 300 (S903).
  • the directory reading process on the NAS uses the file system program 312 to read the directory specified by the argument from the file system 318.
  • the directory synchronization program 306 compares the directory obtained as a result of the CAS data acquisition process (S902) with the directory obtained as a result of the NAS directory read process (S903). As a result, the directory synchronization program 306 extracts the directory entry that has been created or deleted in the directory acquired from the CAS 400, and performs the same operation on the directory of the file system 318 of the NAS 300 (S904). In order to perform this operation, the directory synchronization program 306 calls the file system program 312.
  • the directory synchronization program 306 receives the path to be processed received as an argument in the file / directory management information 500
  • the synchronization necessity flag 504 of the entry having the path name 501 that matches the name is changed to OFF (S906).
  • the directory synchronization program 306 receives the path name of the processing target received as an argument in the file / directory management information 500 The synchronization necessity flag 504 of the entry having the path name 501 that matches with is kept ON (S907).
  • the NAS 300 cancels the synchronization required flag when the object in the file system matches the latest version in the CAS 400, and makes the object in the file system match the version immediately before the update in the CAS 400. If the synchronization necessity flag is maintained, an object that is not the latest version can be resynchronized by the subsequent directory synchronization processing.
  • FIG. 10 is an example of a flowchart for explaining details of the synchronization version determination process 1000 according to the first embodiment.
  • the synchronization version confirmation process 1000 is executed by the CPU 303 of the NAS 300 in response to a call from the directory synchronization process 900.
  • the directory synchronization program 306 refers to the file / directory management information 500, converts the path name of the processing target received as an argument into an object ID, and confirms the lock to the CAS 400 using the object ID of this conversion result as an argument. Request execution of processing (S1001).
  • CAS 400 executes lock confirmation processing using the object ID received from NAS 300 as an argument (S1002).
  • the lock state 803 of the entry having the object ID 801 that matches the object ID received as an argument in the lock state management information 800 is returned to the NAS 300.
  • the directory synchronization program 306 determines the result of the synchronization version confirmation processing 1000 as the latest version and returns it to the caller (S1004).
  • the directory synchronization program 306 uses the object ID corresponding to the path name of the processing target received as an argument as an argument Then, the CAS 400 is requested to execute the lock time acquisition process (S1005).
  • CAS 400 executes the lock time acquisition process using the object ID received from NAS 300 as an argument (S1006).
  • the lock time 804 of the entry having the object ID 801 that matches the object ID received as an argument in the lock state management information 800 is returned to the NAS 300.
  • the directory synchronization program 306 requests the CAS 400 to execute the version list acquisition process of the processing target directory, using the object ID corresponding to the processing target path name received as the argument (S1007).
  • CAS 400 executes version list acquisition processing using the object ID received from NAS 300 as an argument (S1008).
  • the object management information 700 is searched, and all entries corresponding to the object ID received as an argument by the object ID 701 are extracted and returned to the NAS 300. That is, the version list is information on all versions of the object identified by the object ID.
  • a device connected to the CAS 400 may acquire a version list in order to select a specific version from a plurality of snapshot versions in the CAS 400.
  • the directory synchronization program 306 includes the creation time of each version included in the version list acquired as the processing result of the version list acquisition processing (S1008), the lock time acquired as the processing result of the lock time acquisition processing (S1006), , And the latest version among the versions having the creation time older than the lock time (version immediately before the lock time) is searched.
  • the result of the synchronization version determination process 1000 is determined as the version obtained as the search result and returned to the caller (S1009).
  • the NAS 300 acquires the object of the latest version from the CAS 400, thereby acquiring the object in the file system 318. Can be synchronized to the version that has been updated. If it is determined that the object to be processed is locked, the NAS 300 obtains the object of the version immediately before the update from the CAS 400, so that the update of the object in the file system 318 has been completed. You can avoid syncing to no version. With these operations, the consistency of the file systems 318 of the plurality of NAS 300 can be maintained. The NAS 300 can determine the creation time of the version immediately before the update by acquiring the lock time from the CAS 400. Further, the NAS 300 can identify the version immediately before the update by acquiring the version list from the CAS 400.
  • FIG. 11 is an example of a flowchart for explaining details of the on-CAS data acquisition processing 1100 according to the first and third embodiments.
  • the CAS data acquisition process 1100 is executed by the CPU 303 of the NAS 300 in response to a call from the directory synchronization process 900 in the first and third embodiments.
  • the directory synchronization program 306 refers to the file / directory management information 500 and sets the processing target path name received as the argument to the object. Conversion to ID is performed, and this object ID is used as an argument to request execution of object reading processing to CAS 400 (S1102).
  • the directory synchronization program 306 converts the path name of the processing target received as the argument into an object ID using the file / directory management information 500 Then, using the object ID and the version received as an argument, the CAS 400 is requested to execute the object reading process (S1103).
  • CAS 400 executes version list acquisition processing using the object ID and version received from NAS 300 as arguments (S1104). Details of the object reading process will be described later.
  • the directory synchronization program 306 stores the data obtained as a result of the object reading process (S1104) in the memory 305 of the NAS 300 (S1105).
  • the directory synchronization program 306 returns the memory address of the data storage destination of the processing result of S1105 to the caller (S1106).
  • FIG. 12 is an example of a flowchart for explaining details of the rollback processing 1200.
  • the rollback process 1200 is executed by the CPU 303 of the NAS 300 when the migration process fails.
  • the rollback target process specified as an argument is the creation of a file or directory (when S1201 is Yes)
  • the rollback program 310 is specified with an argument using the file system program 312.
  • the file or directory having the specified path name is deleted from the file system 318 (S1202).
  • the rollback program 310 uses the file system program 312. A file or directory having the path name specified by the argument is created in the file system 318 (S1204).
  • the rollback program 310 uses the system program 312, the file system 318 moves the file or directory having the path name after the movement designated by the argument to the path name before the movement designated by the argument (S1206).
  • rollback process specified as an argument is not a file, directory creation, deletion, or move (if S1201 is No, S1203 is No, and S1205 is No), roll The back program 310 ends without performing any processing.
  • the rollback program 310 uses the file system program 312 and the file system 318 uses the file name of the path name after the rename specified by the argument. Or return the directory to the pathname before the rename specified in the argument.
  • the NAS 300 that has failed in the migration processing at the time of updating can maintain the consistency of the file systems 318 of the plurality of NAS 300 by restoring the update in the file system 318.
  • FIG. 13 is an example of a flowchart for explaining details of the directory creation processing 1300.
  • the directory creation process 1300 is executed by the CPU 303 of the NAS 300 upon receiving a directory creation request from the client PC 201.
  • the file system program 312 of the NAS 300 receives a directory creation request (S1301).
  • the file system program 312 confirms the lock state 603 by the own NAS of the parent directory of the creation target directory in the directory lock management information 600 (S1302).
  • the procedure of this process is as follows. First, the file system program 312 obtains the path name of the parent directory (one directory above) from the path name of the creation target directory received as an argument. Next, the file system program 312 refers to the file / directory management information 500 and converts the path name of the parent directory into an object ID. Next, the file system program 312 refers to the lock state 603 by the own NAS of the directory lock management information 600 for the object ID of the conversion result, and confirms whether or not the own NAS has acquired the directory lock of the object ID.
  • the file system program 312 locks the entry 604 in the directory lock management information 600 having the object ID 602 that matches the object ID of the parent directory. Is increased by one and the process proceeds to S1308 (S1303). The processing after S1308 will be described later.
  • the file system program 312 executes the following processing from S1304 to S1307.
  • the file system program 312 calls the directory lock acquisition process of the directory lock program 307 using the object ID of the parent directory as an argument (S1304).
  • the directory lock program 307 requests the CAS 400 to execute the directory lock processing 1800 using the object ID received as an argument as an argument. Details of the directory lock processing 1800 will be described later.
  • the directory lock program 307 locks the entry 603 having the object ID 602 that matches the object ID received as an argument in the directory lock management information 600 by the own NAS. Is changed to “Lock acquired”.
  • the directory lock program 307 returns the result of the directory lock processing 1800 to the caller.
  • the file system program 312 returns to S1304 and re-executes the directory lock acquisition process of the directory lock program 307.
  • the file system program 312 may set the upper limit number for the re-execution number in advance, and if the failure is repeated more than the upper limit number, the directory creation process may be failed.
  • the file system program 312 reads the entry having the object ID 602 that matches the object ID of the parent directory in the directory lock management information 600.
  • the lock count 604 is increased by 1 (S1306).
  • the file system program 312 calls the update list acquisition / application processing 1500 (S1307). Details of the update list acquisition / application process 1500 will be described later.
  • the file system program 312 creates the directory specified by the argument, and returns the success or failure of creation to the end user (S1308). At this time, the file system program 312 creates an entry of the created directory for the file / directory management information 500 and the directory lock management information 600. In addition, the file system program 312 creates an update list that describes the created directory and the path name of the parent directory. The format of the update list may be any information as long as the creation of the directory can be notified to other NAS.
  • the file system program 312 calls the directory lock acquisition process of the directory lock program 307 using the object ID of the created directory as an argument (S1309).
  • the file system program 312 increases the lock count 604 of the entry having the object ID 602 that matches the object ID of the created directory in the directory lock management information 600 by one (S1310).
  • the file system program 312 calls the migration process of the migration program 309 using the path names of the parent directory, the created directory, and the update list as arguments (S1311). As a result, the file system program 312 transfers the parent directory, the created directory, and the update list to the CAS 400.
  • the migration program 309 refers to the file / directory management information 500 and converts the processing target path name received as an argument into an object ID.
  • the migration program 309 reads the file or directory indicated by the path name received as an argument into the memory 305 using the file system program 312.
  • the migration program 309 requests the CAS 400 to execute the object storage process 1600 using the object ID of the conversion result and the file or directory data read into the memory as arguments. Details of the object storage processing 1600 will be described later.
  • the migration program 309 returns the processing result of the object storage processing 1600 to the caller.
  • the file system program 312 decrements the lock count 604 of the directory lock management information 600 by 1 for each of the parent directory object ID and the created directory object ID (S1312).
  • the file system program 312 refers to the directory lock management information 600, and if any of the lock counts 604 is not 0 for the object ID of the parent directory and the object ID of the created directory (when S1313 is No) ), Go to S1315.
  • the file system program 312 refers to the directory lock management information 600, and when the lock count 604 of at least one of the parent directory object ID and the created directory object ID is 0 (Yes in S1313)
  • the directory lock release process of the directory lock program 307 is called with the object ID as an argument.
  • the file system program 312 calls the directory lock release process only for the one where the lock count 604 is 0. If both have a lock count 604 of 0, the file system program 312 calls a directory lock release process for both (S1314).
  • the directory lock program 307 requests the CAS 400 to execute the directory unlock processing of the object operation program 407 using the object ID specified by the argument as an argument.
  • the CAS 400 object operation program 407 executes directory unlock processing.
  • the object operation program 407 acquires the path name of the lock file 802 corresponding to the object ID received by the argument from the lock state management information 800, and deletes the file indicated by this path name from the file system 413.
  • the object operation program 407 changes the lock state 803 to unlocked, and initializes information on the lock file 802, the lock time 804, and the relock time 805.
  • the object operation program 407 returns a result to the NAS 300.
  • the directory lock program 307 When the directory lock program 307 receives the result of the directory unlock processing from the CAS 400, the lock state 603 by the own NAS of the entry corresponding to the object ID received as an argument in the directory lock management information 600 is displayed as “unlocked”. And return the result to the caller.
  • FIG. 14 is an example of a flowchart for explaining details of the directory deletion processing 1400.
  • the directory deletion process 1400 is executed by the CPU 303 of the NAS 300 when receiving a directory deletion request from the client PC 201.
  • the file system program 312 of the NAS 300 receives a directory deletion request (S1401).
  • the file system program 312 confirms the lock status of the parent directory of the directory to be deleted by the own NAS (S1402).
  • the procedure of this process is as follows. First, the file system program 312 obtains the path name of the parent directory from the path name of the deletion target directory received as an argument. Next, with reference to the file / directory management information 500, the path name of the parent directory is converted into an object ID. Next, the file system program 312 checks whether or not the lock state 603 by the own NAS of the entry corresponding to the object ID of the parent directory in the directory lock management information 600 has been acquired.
  • the file system program 312 in the directory lock management information 600 has the lock count 604 of the entry having the object ID 602 that matches the object ID of the parent directory. Is increased by one and the process proceeds to S1408 (S1403). The processing after S1308 will be described later.
  • the file system program 312 executes the following processing from S1404 to S1407.
  • the file system program 312 calls the directory lock acquisition process of the directory lock program 307 using the object ID of the parent directory as an argument (S1304). Details of the directory lock acquisition process are as described above.
  • the file system program 312 returns to S1404 and re-executes the directory lock acquisition process of the directory lock program 307.
  • the file system program 312 may set the upper limit number for the re-execution number in advance, and if the failure is repeated more than the upper limit number, the directory creation process may be failed.
  • the file system program 312 reads the entry having the object ID 602 that matches the object ID of the parent directory in the directory lock management information 600.
  • the lock count 604 is increased by 1 (S1406).
  • the file system program 312 calls the update list acquisition / application processing 1500 (S1407). Details of the update list acquisition / application process 1500 will be described later.
  • the file system program 312 deletes the directory specified by the argument and returns the success or failure of the deletion to the end user (S1408). At this time, the file system program 312 deletes the entry of the deleted directory from the file / directory management information 500 and the directory lock management information 600. In addition, the file system program 312 creates an update list describing the deleted directory and the path name of the parent directory. The format of the update list may be any information as long as the deletion of the directory can be notified to other NAS.
  • the file system program 312 calls the migration process of the migration program 309 using the path names of the parent directory, the deleted directory, and the update list as arguments (S1409). As a result, the file system program 312 transfers the parent directory, the deleted directory, and the update list to the CAS 400.
  • the details of the migration process are as described above.
  • the file system program 312 decrements the lock count 604 of the entry having the object ID 602 that matches the object ID of the parent directory in the directory lock management information 600 by one (S1410).
  • FIG. 15 is an example of a flowchart for explaining the details of the update list acquisition / application process 1500.
  • the update list acquisition / application process 1500 is executed by the CPU 303 of the NAS 300 in response to a call from the directory creation process 1300 and the directory deletion process. Note that the update list acquisition / application process may be periodically executed regardless of the directory creation process 1300 and the directory deletion process.
  • the update list acquisition / application program 308 acquires the update list from the CAS 400 by requesting the CAS 400 to execute the object reading process 1700 using the object ID and version of the update list as arguments (S1501). .
  • the update list acquisition / application program 308 acquires the object ID of the update list from the file / directory management information 500.
  • the update list acquisition / application program 308 requests the CAS 400 to execute the object read processing 1700 multiple times when there are multiple versions of the update list that have not been acquired. get.
  • the update list acquisition / application program 308 records the version of the update list acquired at the time of execution of the previous update list acquisition / application processing 1500 for performance improvement, and acquires it sequentially from the subsequent version. Also good.
  • the update list acquisition / application program 308 uses this process so that only one processing request to CAS400 can be made. Thus, all update lists of unacquired versions may be acquired.
  • CAS 400 executes the object reading process using the object ID and version specified by the arguments as arguments based on the request from NAS 300, and returns the result to NAS 300 (S1502). Details of the object reading process 1700 of the CAS 400 will be described later.
  • the update list acquisition / application program 308 sets a synchronization required flag to the file or directory indicated by the path name of the file or directory described in the update list obtained as a result of the object reading process (S1502). (S1503). Specifically, the update list acquisition / application program 308 turns on the synchronization required flag 504 of the entry corresponding to each of all the path names described in the update list in the file / directory management information 500.
  • the directory synchronization processing 900 is called using the path name of the directory as an argument (S1505).
  • the update target directory is a parent directory of the directory creation process 1300 and the directory deletion process 1400.
  • the update list acquisition / application program 308 executes the update list acquisition / application processing 1500 as it is when the synchronization required flag 504 of the update target directory is OFF (when S1504 is No). finish.
  • the NAS 300 sets the synchronization required flag for the object shown in the update list, and executes the directory synchronization processing when the synchronization required flag is set for the object to be updated.
  • the object to be updated Prior to updating the object to be updated, the object to be updated can be matched to the appropriate version in CAS 400.
  • FIG. 16 is an example of a flowchart for explaining the details of the object saving process 1600.
  • the object storage process 1600 is executed in the CPU 405 of the CAS 400 in response to a request from the migration process of the migration program 309 of the NAS 300.
  • the object operation program 407 writes the data received from the NAS 300 as a file or directory in the file system 413 (S1601).
  • the object operation program 407 searches whether the object ID received as an argument from the NAS 300 already exists in the object management information 700 (S1602).
  • the object operation program 407 displays the version of the data requested to be saved from the NAS 300 by the object management information.
  • the next version of the latest version of the object ID registered in 700 is set (S1604).
  • the object operation program 407 sets the version to 1 (S1604).
  • the version at this time may be any version as long as it can be identified as the first version.
  • the object operation program 407 adds an entry to the object management information 700.
  • the object operation program 407 registers the value received as an argument from the NAS 300 in the object ID 701 of the entry, registers the value determined in S1604 or S1605 in the version 702 of the entry, and creates the current time of the entry. Register the path name of the file or directory in which the file system 413 data was stored in S1601 in S1601, and register the processing result in the path name 704 of the entry, and return the processing result to the NAS 300 that is the request source (S1606)
  • FIG. 17 is an example of a flowchart for explaining details of the object reading process 1700 in the first and third embodiments.
  • the object read processing 1700 is triggered by a request from one of the CAS data acquisition processing 1100 of the NAS 300 directory synchronization program 306 and the update list acquisition / application processing 1500 of the update list acquisition / application program 308. It is executed in the CPU 405.
  • the object operation program 407 extracts an entry having an object ID 701 that matches the object ID received from the NAS 300 as an argument from the object management information 700 over all versions (S1701).
  • the object operation program 407 searches for the entry of the specified version from the processing result of S1701 (S1704).
  • the object operation program 407 searches for the latest version entry from the processing result of S1701 (S1705).
  • the object operation program 407 calls the file system program 408 using the path name 704 of the entry obtained as the processing result of S1704 or S1705 as an argument, and the file or directory data indicated by the path name 704 is read from the file system 413. Read (S1706).
  • the object operation program 407 returns the read file or directory data to the requesting NAS 300 (S1706).
  • FIG. 18 is an example of a flowchart for explaining the details of the directory lock processing 1800.
  • the directory lock processing 1800 is executed by the CPU 405 of the CAS 400 in response to a request from the directory lock acquisition processing of the directory lock program 307 of the NAS 300.
  • the object operation program 407 searches the lock state management information 800 for an entry having an object ID 801 that matches the object ID received as an argument from the NAS 300 (S1801).
  • the object operation program 407 executes the processing from S1803 to S1807.
  • the object operation program 407 calls the file system program 408 and creates a lock file in the file system 413 to indicate the lock of the object (S1803). Any method may be used for determining the path name of the lock file. For example, the object operation program 407 saves the object ID received as an argument from the NAS 300 with a character string “.lock” as a file name in the same directory as the object to be locked.
  • the object operation program 407 updates the lock file 802 of the entry corresponding to the object ID to be processed in the lock state management information 800 with the path name of the file created in S1803 (S1804).
  • the object operation program 407 updates the lock state 803 of the entry corresponding to the object ID to be processed in the lock state management information 800 to be locked (S1805).
  • the object operation program 407 updates the lock time 804 of the entry corresponding to the object ID to be processed in the lock state management information 800 to the current time (S1806).
  • the object operation program 407 returns a lock success to the requesting NAS 300 (S1807).
  • the lock state 803 of the entry obtained as the search result of S1801 is already locked (when S1802 is Yes), and the elapsed time from the latest lock time based on the entry obtained as the search result of S1801 is the lock time. If it is equal to or greater than the threshold value (when S1808 is Yes), the object operation program 407 executes the following processes of S1809 and S1807.
  • the lock time threshold may be any value.
  • the object operation program 407 regards the lock time 804 as the latest lock time, and the relock time 804 is registered in the entry. If it is, the relock time 805 is regarded as the latest lock time.
  • the object operation program 407 updates the relock time 805 of the entry corresponding to the object ID to be processed in the lock state management information 800 to the current time (S1809).
  • the processing target lock thus far expires, and the processing target is subsequently re-locked.
  • the object operation program 407 returns a lock success to the requesting NAS 300 (S1807).
  • the lock state 803 of the entry obtained as the search result of S1801 is locked (when S1802 is Yes), and at least the elapsed time from the latest lock time based on the entry obtained as the search result of S1801 is When it is shorter than the lock time threshold value (when S1808 is No), the object operation program 407 returns a lock failure to the NAS 300 that is the request source (S1810).
  • the NAS 300 can acquire the object of the immediately previous version from the CAS 400 based on the lock time of the object. Further, the CAS 400 can determine the lock expiration based on the latest time among the lock time and the relock time.
  • CAS In the method of managing directory update transactions with CAS, CAS needs to have a dedicated function for transaction management, and a general public cloud cannot be used.
  • the NAS 300 selects and synchronizes the object versions, so that the directory structure of the file system 318 can be made consistent among a plurality of NAS 300 even if the CAS 400 does not have a special function. Can keep.
  • Example 2 of the present invention will be described. Hereinafter, differences from the first embodiment will be mainly described, and description of common points with the first embodiment will be omitted or simplified.
  • Example 2 when the synchronization target directory is locked by CAS 400, CAS 400 searches for the latest version among the versions older than the lock time.
  • Example 2 it is not necessary for the NAS 300 to acquire the version list of the directory to be synchronized from the CAS 400, so the amount of communication can be reduced and performance improvement can be expected.
  • Example 2 if CAS400 does not have the function of “search for the latest version from versions older than the specified time and send the search result version data back to NAS300”, use Example 2. I can't. Therefore, when the CAS 400 has this function, the second embodiment is used, and when it is not, the second embodiment may be used.
  • the configuration of the computer system of the second embodiment is the same as the configuration of the computer system of the first embodiment shown in FIG. 2, FIG. 3, and FIG.
  • the second embodiment differs from the first embodiment in details of the directory synchronization process shown in FIG. 9, the CAS data acquisition process shown in FIG. 11, and the object reading process shown in FIG. Therefore, in the second embodiment, the directory synchronization process, the CAS data acquisition process, and the object reading process use processes described below.
  • FIG. 19 is a flowchart for explaining the details of the directory synchronization processing 1900 in the second embodiment.
  • the directory synchronization processing 1900 is triggered by either the call of the update list acquisition / application processing 1500 or the access by the end user of the NAS 300 to the directory for which the synchronization required flag 504 of the file / directory management information 500 is ON. It is executed by CPU303 of NAS300.
  • the directory synchronization program 306 calls the CAS data acquisition process 2000 using the path name to be processed received as an argument as an argument (S1901). As a result of the CAS data acquisition process 2000, the directory synchronization program 306 obtains directory data and version.
  • the directory synchronization program 306 executes a directory reading process on the NAS using the path name of the processing target received as an argument, and reads the processing target directory stored in the file system 318 by the NAS 300 (S1902).
  • the directory reading process on the NAS reads the directory indicated by the path name received as an argument from the file system 318 by calling the file system program 312.
  • the directory synchronization program 306 compares the directory obtained as a result of the CAS data acquisition process (S1901) with the directory obtained as a result of the NAS directory read process (S1902), and obtains it from CAS400. A directory entry created or deleted in the directory is extracted, and the same creation or deletion is performed in the corresponding directory in the file system 318 of the NAS 300 (S1903). In order to perform this creation and deletion, the directory synchronization program 306 calls the file system program 312.
  • the directory synchronization program 306 includes the entries in the file / directory management information 500.
  • the synchronization required flag 504 of the entry having the path name 501 that matches the processing target path name received as an argument is changed to OFF (S1905).
  • the directory synchronization program 306 uses the arguments in the file / directory management information 500 entries.
  • the synchronization necessity flag 504 of the entry having the path name 501 that matches the path name to be processed received as is kept ON (S1906).
  • FIG. 20 is an example of a flowchart for explaining details of the on-CAS data acquisition processing 2000 according to the second embodiment.
  • the CAS data acquisition process 2000 is executed by the CPU 303 of the NAS 300 in response to a call from the directory synchronization process 900 in the second embodiment.
  • the directory synchronization program 306 refers to the file / directory management information 500, converts the path name of the processing target received as an argument into an object ID, and lock confirmation processing to the CAS 400 using the object ID of this conversion result as an argument Is requested to execute (S2001).
  • CAS400 executes lock confirmation processing based on the request from NAS300 (S2002). Details of the CAS 400 lock confirmation processing are as described in the first embodiment.
  • the directory synchronization program 306 reads the object 2700 into the CAS 400 using the object ID as an argument without specifying the time. Is requested to execute (S2004).
  • the directory synchronization program 306 requests the CAS 400 to execute the lock time acquisition process using the object ID as an argument (S2005). This object ID is the same as the object ID used as an argument in S2001.
  • CAS 400 executes lock time acquisition processing based on a request from NAS 300 (S2006). Details of the lock time acquisition processing of the CAS 400 are as described in the first embodiment.
  • the directory synchronization program 306 requests the CAS 400 to execute the object reading process 2100 with the lock time obtained as a result of the lock time acquisition process (S2006) and the object ID as arguments (S2007).
  • This object ID is the same as the object ID used as an argument in S2001.
  • CAS 400 executes object reading processing 2100 according to the request from NAS 300 (S2008). Details of the object reading process 2100 will be described later.
  • the directory synchronization program 306 stores the data obtained as a result of the object reading process (S2008) in the memory 305 of the NAS 300 (S2009).
  • the directory synchronization program 306 returns the address in the memory 305 that stores the data in S2009 and the directory version acquired from the CAS 400 to the caller (S2010). Note that this version may be only information indicating whether or not the latest version has been acquired.
  • the NAS 300 can acquire the object of the version immediately before the update from the CAS 400 by sending a request including the lock time to the CAS 400.
  • FIG. 21 is an example of a flowchart for explaining details of the object reading process 2100 according to the second embodiment.
  • the object reading process 2100 is triggered by a request from one of the CAS data acquisition process 2000 of the NAS 300 directory synchronization program 306 and the update list acquisition / application process 1500 of the update list acquisition / application program 308. It is executed in the CPU 405.
  • the object operation program 407 extracts an entry having an object ID 701 that matches the object ID received as an argument from the NAS 300 in all object management information 700 over all versions (S2101).
  • the object operation program 407 searches for an entry of the specified version from the processing result of S2101 (S2103).
  • the object operation program 407 performs the process of S2101. Based on the result, an entry having a creation time 703 older than the specified time and having the latest version 702 is searched (S2105).
  • the object operation program 407 performs the processing of S2101. From the result, an entry having the latest version 702 is searched (S2106).
  • the object operation program 407 calls the file system program 408 to read from the file system 413 the file or directory data indicated by the entry path name 704 obtained as a search result of S2103, S2105, or S2106 (S2107). ).
  • the object operation program 407 returns the data read in S2107 to the NAS 300 that is the request source (S2108).
  • the CAS 400 when the update target object of the NAS 300 is locked, the CAS 400 identifies the object of the version immediately before the update based on the lock time, and transmits it to the NAS 300. Can be synchronized with the previous version.
  • Example 3 of the present invention will be described. Hereinafter, differences from the first embodiment will be mainly described, and description of common points with the first embodiment will be omitted or simplified.
  • the NAS 300 unlocks the directory to be synchronized if one of the directories is unlocked. If not, sync to a newer version than the lock time. For example, when moving the target directory from below the parent directory A to a different directory B, first lock the two directories A and B, then move the target directory, and then move 2 on the CAS400. Update two directories A and B, and finally unlock the two directories A and B. In this case, Example 3 is useful. When acquiring locks of a plurality of directories, a directory A having a child directory B may be deleted.
  • the unlocked directory is synchronized with the moved version, as in the directory synchronization process 1900 described above. You should avoid synchronizing locked directories with the previous version.
  • the NAS 300 can synchronize all of the plurality of directories with the locked version, that is, the updated version. .
  • the third embodiment may be used.
  • the first embodiment or the second embodiment may be used.
  • Example 3 may be used in combination with Example 2.
  • the configuration of the computer system of the third embodiment is the same as the configuration of the computer system of the first embodiment shown in FIG. 2, FIG. 3, and FIG.
  • the third embodiment differs from the first embodiment in the details of the configuration of the lock state management information shown in FIG. 8, the synchronization version confirmation process shown in FIG. 10, and the directory lock process shown in FIG. Therefore, in the third embodiment, the lock state management information, the synchronization version determination process, and the directory lock process use processes described below.
  • FIG. 22 shows a configuration example of the lock state management information 2200 in the CAS 400 of the third embodiment.
  • the lock state management information 2200 includes an object ID 801, a lock file 802, a lock state 803, a lock time 804, a relock time 805, and a related lock target 2201 as one entry.
  • the object ID 801, the lock file 802, the lock state 803, the lock time 804, and the relock time 805 are the same as the lock state management information 800 in the first and second embodiments.
  • the related lock target 2201 indicates the object ID of the object that the NAS 300 that locks the object indicated by the object ID 801 of the entry is simultaneously locking and updating. This information is designated by the NAS 300 as an argument for directory lock processing.
  • the related lock target 2201 is set only when one NAS 300 simultaneously locks a plurality of objects. That is, an entry in which the lock state 803 is locked and the related lock target 2201 is not set indicates that there is no directory that is simultaneously locked and updated. For example, in the example of FIG. 22, an entry whose object ID 801 is pqr indicates that the object is locked, but there is no directory that is simultaneously locked and updated.
  • the related directory 2201 may set two or more object IDs.
  • FIG. 23 is an example of a flowchart for explaining the details of the directory lock processing 2300.
  • the directory lock process 2300 is executed in the CPU 405 of the CAS 400 in response to a request from the directory lock acquisition process of the directory lock program 307 of the NAS 300.
  • the object operation program 407 searches the lock state management information 800 for an entry having an object ID 801 that matches the object ID received as an argument from the NAS 300 (S2301).
  • the object operation program 407 executes the following processing from S2303 to S2308.
  • the object operation program 407 calls the file system program 408 and creates a lock file for indicating lock to the file system 413 (S2303).
  • the method for determining the path name of the lock file may be any method as in the first embodiment.
  • the object operation program 407 updates the lock file 802 of the entry corresponding to the object ID to be processed in the lock state management information 800 with the path name of the lock file created in S2303 (S2304).
  • the object operation program 407 updates the lock state 803 of the entry corresponding to the object ID to be processed in the lock state management information 800 to be locked (S2305).
  • the object operation program 407 updates the lock time 804 of the entry corresponding to the object ID to be processed in the lock state management information 800 to the current time (S1806).
  • the object operation program 407 updates the related lock target 2201 of the entry corresponding to the processing target object ID 801 in the lock state management information 800 to the information received as an argument from the NAS 300 (S1807). That is, when the NAS 300 does not specify the related lock target, the object operation program 407 does not set information in the related lock target 2201 of the entry. On the other hand, when the NAS 300 specifies the related lock target, the object operation program 407 sets the specified information in the related lock target 2201 of the entry.
  • the object operation program 407 returns a lock success to the requesting NAS 300 (S2308).
  • the entry lock state 803 obtained as the search result of S2301 is already locked (when S1802 is Yes), and the elapsed time and the relock time from the lock time 804 of the entry obtained as the search result of S2301
  • the object operation program 407 executes the processing of S2310, S2307, and S2308.
  • This threshold value may be any value.
  • the object operation program 407 updates the relock time 805 of the entry corresponding to the object ID to be processed in the lock state management information 800 to the current time (S2310).
  • the object operation program 407 updates the related lock target 2201 of the entry corresponding to the object ID to be processed in the lock state management information 800 to the information received as an argument from the NAS 300 (S2307).
  • the object operation program 407 changes to a state in which no information is set in the related lock target 2201 of the entry.
  • the object operation program 407 updates the related lock target 2201 of the entry to the designated information.
  • the object operation program 407 returns a lock success to the requesting NAS 300 (S2308).
  • the entry lock state 803 obtained as a search result of S2301 is locked (when S1802 is Yes), and either the lock time 804 or the relock time 805 of the entry obtained as a search result of S2301
  • the object operation program 407 returns a lock failure to the NAS 300 that is the request source (S2311).
  • FIG. 24 is an example of a flowchart for explaining details of the synchronization version determination process 2400 in the third embodiment.
  • the synchronization version confirmation process 2400 is executed by the CPU 303 of the NAS 300 in response to a call from the directory synchronization process 900.
  • the directory synchronization program 306 refers to the file / directory management information 500, converts the path name of the processing target received as an argument into an object ID, and lock confirmation processing to the CAS 400 using the object ID of this conversion result as an argument Is requested to execute (S2401).
  • CAS 400 executes lock processing confirmation processing using the object ID received from NAS 300 as an argument (S2402).
  • the details of the lock confirmation processing are as described in the first embodiment.
  • the directory synchronization program 306 determines the result of the synchronization version confirmation process 2400 as the latest version and returns it to the caller (S2404).
  • the directory synchronization program 306 requests the CAS 400 to execute the lock time acquisition process using the object ID corresponding to the processing target path name received as an argument (S2405).
  • CAS 400 executes the lock time acquisition process using the object ID received from NAS 300 as an argument (S2406).
  • the details of the lock time acquisition processing are as described in the first embodiment.
  • the directory synchronization program 306 requests the CAS 400 to execute related lock target acquisition processing using the object ID corresponding to the processing target path name received as an argument (S2407).
  • CAS 400 executes related lock target acquisition processing using the object ID received from NAS 300 as an argument (S2408).
  • the related lock target acquisition processing returns the related lock target 2201 of the entry having the object ID 801 that matches the object ID received as an argument in the lock state management information 2200 to the NAS 300.
  • the directory synchronization program 306 executes the following processes from S2409 to S2413 for all object IDs obtained as a result of the related lock target acquisition process (S2408).
  • the directory synchronization program 306 selects one of the object IDs obtained as a result of the related lock target acquisition process (S2408) (S2409), and executes the lock confirmation process to the CAS 400 using the selected object ID as an argument. Request (S2410).
  • CAS 400 executes lock processing confirmation processing using the object ID received from NAS 300 as an argument (S2411).
  • the details of the lock confirmation processing are as described in the first embodiment.
  • the directory synchronization program 306 determines the result of the synchronization version confirmation process 2400 as the latest version and returns it to the caller (S2404).
  • step S2414 306 requests the CAS 400 to execute the version list acquisition process of the processing target directory, using the object ID corresponding to the processing target path name received as the argument.
  • CAS 400 executes version list acquisition processing using the object ID received from NAS 300 as an argument (S2415). Details of the version list processing are as described in the first embodiment.
  • the directory synchronization program 306 creates the creation time of each version included in the version list acquired as the processing result of the version list acquisition processing (S2415), the lock time acquired as the processing result of the lock time acquisition processing (S2406), , And the latest version among the versions having the creation time older than the lock time is searched from the version list.
  • the directory synchronization program 306 determines the result of the synchronization version determination process 2400 as the version obtained as the search result, and returns it to the caller (S2416).
  • the NAS 300 fails to unlock all the objects in the update that locks the plurality of objects
  • the other NAS 300 considers that the update has not been completed, and the file
  • the consistency of the file systems 318 of the plurality of NAS 300 can be maintained.
  • the other NAS 300 considers that the update has been completed, and synchronizes the plurality of objects in the file system 318 with the latest version. The consistency of the file system 318 of the NAS 300 can be maintained.
  • the CAS 400 can recognize a plurality of objects that are locked together. Further, when the CAS 400 includes information on another object locked together in the information indicating the lock of the object, the NAS 300 can acquire information on a plurality of objects locked together from the CAS 400.
  • the update request may be a request for an update operation from the client PC 201.
  • the first lock time may be a lock time.
  • the second lock time may be a relock time.
  • the update information may be an update list.
  • the synchronization information may be a synchronization required flag.
  • the version information may be a version list.
  • the related object may be an object shown in the related lock target 2201 corresponding to the specific object.
  • the controller may be the NAS controller 301.
  • the storage device may be the storage device 322.
  • the specific object lock information may be a lock state 803 corresponding to the specific object.
  • the related object lock information may be a lock state 803 corresponding to the related object.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The purpose of the present invention is to maintain consistency between objects in a storage device and objects in an object storage device, even if a failure occurs when the storage device is updating an object in the object storage device. The object storage device stores each version of each of one or more specific objects. When the storage device refers to a specific object stored therein, the storage device determines whether or not the specific object in the object storage device corresponding to the referred-to specific object in the storage device is locked, and if it is determined that the specific object in the object storage device is locked, then the storage device retrieves the last unlocked version of the specific object in the object storage device, and restores the specific object in the storage device to match the retrieved last unlocked version.

Description

[規則26に基づく補充 08.10.2015] ストレージシステム、ストレージ装置、およびストレージシステムの制御方法[Supplement based on Rule 26 08.10.2015] Storage system, storage device, and storage system control method
 本発明は、ストレージシステムに関する。 The present invention relates to a storage system.
 企業の支店などの複数の拠点の夫々に配置されたNAS(Network Attached Storage)が、CAS(Content Addressed Storage)を介して、同一のファイルやディレクトリを共有するシステムが知られている。各拠点のユーザは、NASに複数のディレクトリを作成し、また階層化させることで、ファイルを分類して保存する。したがって、複数の拠点が同一のファイルにアクセス可能とするためには、このディレクトリ構造の一貫性を維持する必要がある。 There is known a system in which NAS (Network Attached Storage) arranged in each of a plurality of bases such as a company branch shares the same file or directory via CAS (Content Addressed Storage). Users at each site create and store multiple directories on the NAS to classify and store files. Therefore, in order for a plurality of sites to access the same file, it is necessary to maintain the consistency of this directory structure.
 各拠点のNASは、ディレクトリ構造の一貫性を維持するために、他拠点で行われたディレクトリ操作の情報を取得し、その操作を自己のファイルシステムに反映する。この処理により、複数のNASの間でディレクトリツリーを同期させることができる。 The NAS at each site acquires information on directory operations performed at other sites in order to maintain the consistency of the directory structure, and reflects the operation in its own file system. With this process, the directory tree can be synchronized among a plurality of NAS.
 特許文献1には、ディレクトリ操作のトランザクションをCASが管理する手法が述べられている。第一クライアントシステムがディレクトリの内容を変更すると、その変更をCASに格納されているディレクトリに反映するとともに、CASへのコミット操作を実行する。CASは、コミット操作された更新のみを有効な更新として扱うことで、第二クライアントシステムはコミット操作されたバージョンのみを取得することができる。したがって、第一クライアントシステムによるディレクトリの更新途中に障害が発生した場合、コミット操作がなされていないため、更新途中であったディレクトリは、第二クライアントシステムから取得することができない。 Patent Document 1 describes a method in which CAS manages a directory operation transaction. When the first client system changes the contents of the directory, the change is reflected in the directory stored in the CAS, and a commit operation to the CAS is executed. The CAS treats only the update that has been committed as a valid update, so that the second client system can obtain only the version that has been committed. Therefore, when a failure occurs during the update of the directory by the first client system, the commit operation has not been performed, so the directory that was being updated cannot be acquired from the second client system.
 特許文献2には、更新リストを用いた、ファイルやディレクトリの同期方法が述べられている。第一NASは、ファイルやディレクトリを更新すると、更新したファイルやディレクトリの一覧を更新リストとしてCASに転送する。第二NASは、この更新リストをCASから取得し、更新リストに記載されているファイルやディレクトリに同期要フラグを設定する。この後、第二NASのエンドユーザが、この同期要フラグが設定されたファイルやディレクトリにアクセスした際、第二NASは、CASから、当該ファイルやディレクトリの最新バージョンを取得する。 Patent Document 2 describes a file and directory synchronization method using an update list. When the first NAS updates a file or directory, it transfers the updated list of files and directories to the CAS as an update list. The second NAS obtains this update list from the CAS, and sets a synchronization required flag for the files and directories described in the update list. Thereafter, when the end user of the second NAS accesses the file or directory in which the synchronization required flag is set, the second NAS acquires the latest version of the file or directory from the CAS.
 特許文献3には、NAS間での同一のディレクトリの更新を排他するため、NASがディレクトリを更新する際、ロックを取得する手法が述べられている。NASがディレクトリを更新する際、まずロックを取得し、次にCASのディレクトリを更新し、最後にロックを解放する。 Patent Document 3 describes a technique for acquiring a lock when NAS updates a directory in order to exclude updating of the same directory between NASs. When the NAS updates the directory, it first acquires a lock, then updates the CAS directory, and finally releases the lock.
米国特許第8825597号明細書U.S. Pat. No. 8,825,597 米国特許出願公開第2012/0259813号明細書US Patent Application Publication No. 2012/0259813 国際公開第2014/128819号International Publication No. 2014/128819
 NASがCASにおける更新対象のディレクトリのロックを取得する処理手順を用いたとしても、ディレクトリ構造の一貫性を喪失する可能性がある。例えば、CAS内特定のディレクトリに対し、第一の更新が実行された後、特定NASが第二の更新を実行し、更新リストを送信する前に特定NASに障害が発生する場合がある。第一の更新と第二の更新の間に特定ディレクトリへアクセスし、第一の更新を取得したNASは、その後、第二の更新を取得しない。第一の更新と第二の更新の間に特定ディレクトリへアクセスせず、第一の更新を取得していないNASは、その後、第二の更新を取得する。このように、第二の更新に同期するNASと、そうでないNASとが、混在する状態になり、NAS間のディレクトリ構造の一貫性を喪失する場合がある。 Even if the NAS uses the processing procedure to acquire the lock of the directory to be updated in CAS, the directory structure may be inconsistent. For example, after a first update is performed on a specific directory in the CAS, the specific NAS may perform a second update and a failure may occur in the specific NAS before sending an update list. The NAS that accesses the specific directory between the first update and the second update and acquires the first update does not subsequently acquire the second update. A NAS that does not access the specific directory between the first update and the second update and has not acquired the first update subsequently acquires the second update. In this way, NAS that is synchronized with the second update and NAS that are not so are mixed, and the consistency of the directory structure between NAS may be lost.
 上記課題を解決するために、本発明の一態様であるストレージシステムは、オブジェクトストレージ装置と、前記オブジェクトストレージ装置に接続されるストレージ装置と、を備える。前記ストレージ装置は、前記ストレージ装置内の特定オブジェクトの更新を要求する更新要求を受けた場合、前記オブジェクトストレージ装置内の特定オブジェクトのロックを前記オブジェクトストレージ装置に要求し、前記ストレージ装置内の特定オブジェクトを更新し、前記更新された特定オブジェクトを前記オブジェクトストレージ装置へ送信し、前記特定オブジェクトのロックの解放を前記オブジェクトストレージ装置に要求し、前記オブジェクトストレージ装置は、前記特定オブジェクトをバージョン毎に格納し、前記ストレージ装置は、前記ストレージ装置内の特定オブジェクトを参照する場合、前記オブジェクトストレージ装置内の特定オブジェクトがロックされているか否かを判定し、前記オブジェクトストレージ装置内の特定オブジェクトがロックされていると判定された場合、前記ストレージ装置は、前記判定されたロックの直前のバージョンである直前バージョンの特定オブジェクトを前記オブジェクトストレージ装置から取得し、前記ストレージ装置内の特定オブジェクトを前記直前バージョンの特定オブジェクトに一致させる。 In order to solve the above problems, a storage system according to one aspect of the present invention includes an object storage device and a storage device connected to the object storage device. When the storage apparatus receives an update request for requesting an update of a specific object in the storage apparatus, the storage apparatus requests the object storage apparatus to lock the specific object in the object storage apparatus, and the specific object in the storage apparatus The updated specific object is transmitted to the object storage device, and the object storage device is requested to release the lock of the specific object, and the object storage device stores the specific object for each version. When the storage device refers to a specific object in the storage device, the storage device determines whether or not the specific object in the object storage device is locked. When it is determined that the fixed object is locked, the storage apparatus acquires from the object storage apparatus the specific object of the immediately previous version that is the version immediately before the determined lock, and the specific object in the storage apparatus Is matched with the specific object of the previous version.
 ストレージ装置がオブジェクトストレージ装置内のオブジェクトを更新する途中で、障害が発生した場合でも、ストレージ装置内のオブジェクトとオブジェクトストレージ装置内のオブジェクトとの一貫性を保つことができる。 Even if a failure occurs while the storage device is updating an object in the object storage device, it is possible to maintain consistency between the object in the storage device and the object in the object storage device.
本発明の実施形態の計算機システムの概要を示す。1 shows an overview of a computer system according to an embodiment of the present invention. 計算機システムの概略構成を示すブロック図である。It is a block diagram which shows schematic structure of a computer system. NAS300の構成を示すブロック図である。2 is a block diagram showing a configuration of a NAS 300. FIG. CAS400の構成を示すブロック図である。2 is a block diagram showing a configuration of CAS400. FIG. NAS300内のファイル・ディレクトリ管理情報500の構成例を示す。A configuration example of file / directory management information 500 in the NAS 300 is shown. NAS300内のディレクトリロック管理情報600の構成例を示す。The structural example of the directory lock management information 600 in NAS300 is shown. CAS400内のオブジェクト管理情報700の構成例を示す。2 shows a configuration example of object management information 700 in CAS 400. 実施例1、2のCAS400内のロック状態管理情報800の構成例を示す。10 shows a configuration example of lock state management information 800 in the CAS 400 of the first and second embodiments. 実施例1、3におけるディレクトリ同期処理900の詳細を説明するためのフローチャートの一例である。12 is an example of a flowchart for explaining details of a directory synchronization process 900 according to the first and third embodiments. 実施例1における同期バージョン確定処理1000の詳細を説明するためのフローチャートの一例である。5 is an example of a flowchart for explaining details of a synchronization version determination process 1000 according to the first embodiment. 実施例1、3におけるCAS上データ取得処理1100の詳細を説明するためのフローチャートの一例である。10 is an example of a flowchart for explaining details of CAS data acquisition processing 1100 according to the first and third embodiments. ロールバック処理1200の詳細を説明するためのフローチャートの一例である。6 is an example of a flowchart for explaining details of rollback processing 1200; ディレクトリ作成処理1300の詳細を説明するためのフローチャートの一例である。12 is an example of a flowchart for explaining details of directory creation processing 1300; ディレクトリ削除処理1400の詳細を説明するためのフローチャートの一例である。12 is an example of a flowchart for explaining details of directory deletion processing 1400; 更新リスト取得・適用処理1500の詳細を説明するためのフローチャートの一例である。12 is an example of a flowchart for explaining details of update list acquisition / application processing 1500; オブジェクト保存処理1600の詳細を説明するためのフローチャートの一例である。12 is an example of a flowchart for explaining details of object storage processing 1600; 実施例1、3におけるオブジェクト読み込み処理1700の詳細を説明するためのフローチャートの一例である。12 is an example of a flowchart for explaining details of an object reading process 1700 in the first and third embodiments. ディレクトリロック処理1800の詳細を説明するためのフローチャートの一例である。12 is an example of a flowchart for explaining details of directory lock processing 1800. 実施例2におけるディレクトリ同期処理1900の詳細を説明するためのフローチャートである。12 is a flowchart for explaining details of directory synchronization processing 1900 according to the second embodiment. 実施例2におけるCAS上データ取得処理2000の詳細を説明するためのフローチャートの一例である。12 is an example of a flowchart for explaining details of CAS data acquisition processing 2000 according to the second embodiment. 実施例2におけるオブジェクト読み込み処理2100の詳細を説明するためのフローチャートの一例である。12 is an example of a flowchart for explaining details of an object reading process 2100 according to the second embodiment. 実施例3のCAS400内のロック状態管理情報2200の構成例を示す。10 shows a configuration example of lock state management information 2200 in CAS 400 of the third embodiment. ディレクトリロック処理2300の詳細を説明するためのフローチャートの一例である。12 is an example of a flowchart for explaining details of directory lock processing 2300; 実施例3における同期バージョン確定処理2400の詳細を説明するためのフローチャートの一例である。FIG. 10 is an example of a flowchart for explaining details of a synchronization version determination process 2400 in the third embodiment.
 以下、図面を参照して本発明の実施形態を説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
 以下、NAS、クライアントPC、CASを含む、計算機システムを例に、添付図面を参照して本発明の実施形態について説明する。ただし、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではない。 Hereinafter, an embodiment of the present invention will be described with reference to the accompanying drawings by taking a computer system including a NAS, a client PC, and CAS as an example. However, this embodiment is only an example for realizing the present invention, and does not limit the technical scope of the present invention.
 以下の説明では、「×××情報」等の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、このような情報は、「×××テーブル」、「×××データベース」等、他の名称で呼ばれることができる。また、以下の説明において、各情報の構成は一例であり、1つの情報は、2以上の情報に分割されてもよいし、2以上の情報の全部又は一部が1つの情報であってもよい。
また、以下の説明では、要素の識別情報として、IDが使用されるが、それに代えて又は加えて他種の識別情報が使用されてもよい。
In the following description, information may be described in terms of “xxx information” or the like, but the information may be expressed in any data structure. That is, such information can be called by other names such as “xxx table”, “xxx database”, and the like. In the following description, the configuration of each information is an example, and one piece of information may be divided into two or more pieces of information, or all or a part of two pieces or more pieces of information may be one piece of information. Good.
In the following description, an ID is used as element identification information, but other types of identification information may be used instead of or in addition to the ID.
 また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号又は参照符号における共通番号を使用し、同種の要素を区別して説明する場合は、その要素の参照符号を使用又は参照符号に代えてその要素に割り振られたIDを使用することがある。 In the following description, when a description is made without distinguishing the same type of element, a reference number or a common number in the reference number is used, and when a description is made by distinguishing the same type of element, the reference number of the element is used. Or the ID assigned to the element may be used instead of the reference sign.
 また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又はインターフェースデバイス(例えば通信ポート)等を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理又はシステムとしてもよい。また、プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサ(例えばCPU)と記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムとを記憶してよい。そして、プログラム配布サーバのプロセッサが配布プログラムを実行することで、プログラム配布サーバのプロセッサは配布対象のプログラムを他の計算機に配布してよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。 In the following description, the process may be described using “program” as the subject, but the program is executed by a processor (for example, a CPU (Central Processing Unit)), so that a predetermined process can be appropriately performed. Since processing is performed using a storage resource (for example, a memory) and / or an interface device (for example, a communication port), the subject of processing may be a processor. The process described with the program as the subject may be a process or system performed by a processor or an apparatus having the processor. The processor may include a hardware circuit that performs a part or all of the processing. The program may be installed in a computer-like device from a program source. The program source may be, for example, a storage medium that can be read by a program distribution server or a computer. When the program source is a program distribution server, the program distribution server may include a processor (for example, CPU) and a storage resource, and the storage resource may further store a distribution program and a program to be distributed. Then, the processor of the program distribution server executes the distribution program, so that the processor of the program distribution server may distribute the distribution target program to other computers. In the following description, two or more programs may be realized as one program, or one program may be realized as two or more programs.
 また、本発明の実施形態は、後述されるように、汎用コンピュータ上で動作するソフトウェアで実装しても良いし、専用ハードウェアまたはソフトウェアとハードウェアの組み合わせで実装しても良い。 In addition, as will be described later, the embodiment of the present invention may be implemented by software operating on a general-purpose computer, or may be implemented by dedicated hardware or a combination of software and hardware.
 本発明の実施形態は、NASとCASの通信ネットワークはWANの採用に限定されず、LAN(Local Area Network)等の通信ネットワークを採用することも可能である。本発明の実施形態は、NFS(Network File System)プロトコルの採用に限定されず、他のCIFS(Common Internet File System)、HTTP(Hypertext Transfer Protocol)等を含むファイル共有プロトコルを採用することも可能である。 In the embodiment of the present invention, the communication network of the NAS and CAS is not limited to the use of the WAN, and a communication network such as a LAN (Local Area Network) can also be employed. The embodiment of the present invention is not limited to adopting the NFS (Network File System) protocol, but can also employ other file sharing protocols including CIFS (Common Internet File System), HTTP (Hypertext Transfer Protocol), and the like. is there.
 また、以下の説明では、ファイルとディレクトリの総称として、オブジェクトと呼称する。以下の説明において、ディレクトリに対する処理は、オブジェクトに対する処理であってもよい。言い換えれば、ディレクトリに対する処理と同様に、ファイルに対する処理を実行することができる。 In the following description, the term “object” is used as a general term for files and directories. In the following description, the process for a directory may be a process for an object. In other words, the process for the file can be executed similarly to the process for the directory.
 図1は、本発明の実施形態の計算機システムの概要を示す。 FIG. 1 shows an outline of a computer system according to an embodiment of the present invention.
 この計算機システムは、データセンタと、拠点X、Y、Zに分散して配置されている。 This computer system is distributed in the data center and bases X, Y, and Z.
 拠点Xには、NAS300Xと、NAS300XにLAN(Local Area Network)等の内部ネットワークを介して接続されたクライアントPC(Personal Computer)201Xとが、配置されている。エンドユーザは、クライアントPCを介して、ファイルやディレクトリを操作する。同様に、拠点Yには、NAS300Yと、NAS300Yにネットワークを介して接続されたクライアントPC201Yとが、配置され、拠点Zには、NAS300Zと、NAS300Zにネットワークを介して接続されたクライアントPC(図示せず)とが、配置されている。以後、拠点X、拠点Y、拠点Zを区別する必要がない場合、符号のアルファベットを省略する。 In the base X, a NAS 300X and a client PC (Personal Computer) 201X connected to the NAS 300X via an internal network such as a LAN (Local Area Network) are arranged. The end user operates files and directories via the client PC. Similarly, NAS 300Y and client PC 201Y connected to NAS 300Y via a network are arranged at site Y, and NAS 300Z and client PC (not shown) connected to NAS 300Z via the network are arranged at site Z. Are arranged). Hereinafter, when it is not necessary to distinguish between the base X, the base Y, and the base Z, the alphabet of the symbol is omitted.
 データセンタには、CAS400が配置されている。NAS300は、WAN(Wide Area Network)等の外部ネットワークを介してCAS400に接続されている。CAS400と少なくとも一つのNAS300を含むシステムを、ストレージシステムと呼ぶことがある。 ∙ CAS400 is located in the data center. The NAS 300 is connected to the CAS 400 via an external network such as a WAN (Wide Area Network). A system including CAS 400 and at least one NAS 300 may be referred to as a storage system.
 NAS300は、内部のオブジェクトを更新すると、更新したオブジェクトをCAS400に転送すると共に、更新したオブジェクトのパスを記載した「更新リスト」をCAS400に転送する。CAS400は、転送された更新リストのファイルをバージョン毎に格納する。NAS300は、この更新リストを用いて、ローカルのオブジェクト更新を、他のNASに通知することができる。他のNAS300は、この更新リストをCAS400から取得することで、オブジェクトの更新を検出する。NAS300は、更新リストを取得すると、更新リストに記載されたオブジェクトに「同期要フラグ」を設定する。その後、NAS300のユーザが、この同期要フラグが設定されたオブジェクトにアクセスする場合、NAS300は、当該オブジェクトをCAS400上の最新バージョンに同期することができる。 When the internal object is updated, the NAS 300 transfers the updated object to the CAS 400 and transfers an “update list” that describes the path of the updated object to the CAS 400. The CAS 400 stores the transferred update list file for each version. The NAS 300 can notify other NAS of local object updates using this update list. The other NAS 300 detects the update of the object by acquiring this update list from the CAS 400. When the NAS 300 acquires the update list, the NAS 300 sets a “synchronization required flag” to the object described in the update list. Thereafter, when the user of the NAS 300 accesses an object for which the synchronization required flag is set, the NAS 300 can synchronize the object with the latest version on the CAS 400.
 NAS300は、ディレクトリ及びファイルを要素として含むファイルシステムを格納する。NAS300は、クライアントPC201からの要求に従い、ディレクトリの作成、削除、移動、リネーム等、ディレクトリの更新オペレーションを実行する。更新オペレーションの対象は、ファイルであってもよい。この例では、NAS300Xのエンドユーザが/A/Cの作成を要求している(S1)。このとき、はじめに、NAS300Xは、CAS400上の対象ディレクトリをロックする。ロック中、他のNAS300は対象ディレクトリを更新できない。この例でNAS300Xは、ディレクトリAをロックする(S2)。次に、NAS300Xは、ローカルのファイルシステム318Xに対し、エンドユーザから要求されたディレクトリ更新オペレーションを実行する。この例でNAS300Xは、ローカルのファイルシステム318Xに、既存のディレクトリAの下にディレクトリCを作成する(S3)。次に、NAS300Xは、実行したディレクトリ更新オペレーションを示す更新リストを作成する。この例でNAS300Xは、ディレクトリAの下にディレクトリCを作成したので、ディレクトリAとディレクトリCを記載した更新リストを作成する(S4)。次に、NAS300Xは、更新したディレクトリのデータと、更新したディレクトリを示す更新リストとを、CAS400に転送する。その後、NAS300XはディレクトリAをアンロックする。しかし、この例でNAS300Xは、ディレクトリをCAS400に転送した(S5)後、障害発生により、更新リストの転送に失敗している(S6)。このとき、ディレクトリAは、アンロックされず、ロックされたままとなる。 NAS 300 stores a file system including directories and files as elements. In accordance with a request from the client PC 201, the NAS 300 executes directory update operations such as directory creation, deletion, migration, and rename. The target of the update operation may be a file. In this example, the end user of the NAS 300X requests creation of / A / C (S1). At this time, first, the NAS 300X locks the target directory on the CAS 400. While locked, other NAS 300 cannot update the target directory. In this example, the NAS 300X locks the directory A (S2). Next, the NAS 300X performs a directory update operation requested by the end user on the local file system 318X. In this example, the NAS 300X creates a directory C under the existing directory A in the local file system 318X (S3). Next, the NAS 300X creates an update list indicating the executed directory update operation. In this example, since the NAS 300X has created the directory C under the directory A, the NAS 300X creates an update list in which the directory A and the directory C are described (S4). Next, the NAS 300X transfers the updated directory data and the update list indicating the updated directory to the CAS 400. Thereafter, the NAS 300X unlocks the directory A. However, in this example, the NAS 300X has failed to transfer the update list due to the occurrence of a failure after transferring the directory to the CAS 400 (S5) (S6). At this time, the directory A is not unlocked but remains locked.
 NAS300Xによる更新リストの転送が失敗したとしても、ディレクトリAに設定された同期要フラグが設定されたままであった他のNAS300は、ユーザによるディレクトリAへのアクセスに応じて、ディレクトリAの同期処理を実行する。図1の例において、このような他のNAS300Xは、拠点YのNAS300Yである。 Even if the transfer of the update list by the NAS 300X fails, the other NAS 300 that has been set with the synchronization required flag set in the directory A performs the synchronization process of the directory A according to the user's access to the directory A. Execute. In the example of FIG. 1, such another NAS 300X is the NAS 300Y of the base Y.
 もし、特許文献2の手法を用いる場合、NAS300は、CAS400の最新バージョンに同期する。この場合、NAS300Yにおいて、ユーザがディレクトリAにアクセスすると、ディレクトリAに同期要フラグが設定されているため、NAS300Yは、最新バージョンのディレクトリAに同期する。この結果、NAS300Yには、ディレクトリCが作成される。このとき、NAS300Zでは、ディレクトリAに同期要フラグが設定されていないため、ディレクトリAの同期処理は実行されない。したがって、NAS300Zには、ディレクトリCが作成されない。したがって、NAS300YとNAS300Zの間で、一貫性が喪失する。 If the method of Patent Document 2 is used, NAS300 synchronizes with the latest version of CAS400. In this case, when the user accesses the directory A in the NAS 300Y, since the synchronization required flag is set in the directory A, the NAS 300Y synchronizes with the latest version of the directory A. As a result, a directory C is created in the NAS 300Y. At this time, in the NAS 300Z, since the synchronization required flag is not set for the directory A, the directory A synchronization processing is not executed. Therefore, the directory C is not created in the NAS 300Z. Therefore, consistency is lost between NAS300Y and NAS300Z.
 そこで、図1に示す実施形態の手法により、この問題を解決する。NAS300YのユーザがディレクトリAにアクセスすると(S6)、NAS300Yは、ディレクトリAのロック状態をCAS400に確認する(S8)。このとき、ディレクトリAは、NAS300Xにおける障害発生により、ロックされたままとなっている。次に、NAS300Yは、ディレクトリAがロックされた時刻をCAS400に問い合わせる(S9)。この例でロックされた時刻は、10時00分00秒である。次に、NAS300Yは、ロックされた時刻より古く且つ最も後のバージョンに同期する。この例でNAS300Yは、10時00分00秒より古く且つ最も後の、9時50分00秒のディレクトリAに同期する(S10)。この結果、NAS300Yは、ディレクトリCが作成される前の状態に同期でき、NAS300Zとの一貫性を維持できる。ここで、NAS300は、ディレクトリの更新におけるアンロックを、更新のトランザクションのクローズと見なし、トランザクションがクローズした更新をファイルシステム318に反映し、トランザクションがクローズしていない更新をファイルシステム318に反映しない。 Therefore, this problem is solved by the method of the embodiment shown in FIG. When the user of the NAS 300Y accesses the directory A (S6), the NAS 300Y confirms the locked state of the directory A with the CAS 400 (S8). At this time, the directory A remains locked due to the occurrence of a failure in the NAS 300X. Next, the NAS 300Y inquires of the CAS 400 about the time when the directory A is locked (S9). The locked time in this example is 10:00:00. Next, the NAS 300Y synchronizes with the latest version that is older than the locked time. In this example, the NAS 300Y synchronizes with the directory A at 9:50:00, which is older than 10:00:00 and is the latest (S10). As a result, the NAS 300Y can be synchronized with the state before the directory C is created, and can maintain consistency with the NAS 300Z. Here, the NAS 300 regards the unlock in the directory update as the close of the update transaction, reflects the update closed by the transaction to the file system 318, and does not reflect the update not closed by the transaction to the file system 318.
 障害が発生したNAS300Xは、自身でロールバック処理を実行することで、ファイルシステム318Xをディレクトリ作成の前の状態に戻す。これにより、全てのNAS300の間で、ディレクトリ構造の一貫性を維持できる。 The NAS300X in which the failure has occurred performs rollback processing by itself to return the file system 318X to the state before directory creation. Thereby, the consistency of the directory structure can be maintained among all the NAS 300.
 なお、NAS300の代わりに、他のストレージ装置が用いられてもよい。CAS400の代わりに、他のオブジェクトストレージ装置が用いられてもよい。 Note that other storage devices may be used instead of the NAS 300. Instead of the CAS 400, another object storage device may be used.
 図2は、計算機システムの概略構成を示すブロック図である。 FIG. 2 is a block diagram showing a schematic configuration of the computer system.
 本実施例の計算機システムは、すくなくとも1つの拠点と、1つのデータセンタとに分散して配置され、拠点とデータセンタの間はWAN203を介して接続されている。図2では、拠点は、拠点Xと拠点Yの2拠点のみであるが、拠点数はいくつであっても良い。 The computer system of the present embodiment is distributed in at least one base and one data center, and the base and the data center are connected via the WAN 203. In FIG. 2, there are only two bases, the base X and the base Y, but any number of bases may be used.
 各拠点は、クライアントPC201、NAS300、LAN202を含む。 Each site includes client PC201, NAS300, LAN202.
 クライアントPC201は、NAS300が提供するファイル共有サービスを利用するために、エンドユーザが使用する計算機である。クライアントPC201上では、NASと通信するクライアントプログラムなどが動作する。エンドユーザの操作に基づき、クライアントPC201は、NAS300に対し、ファイルやディレクトリの作成、削除、移動、リネーム、データ読み込み、書き込み等の要求を発行する。 The client PC 201 is a computer used by an end user in order to use the file sharing service provided by the NAS 300. On the client PC 201, a client program that communicates with the NAS runs. Based on the operation of the end user, the client PC 201 issues a request for creating, deleting, moving, renaming, reading data, writing, and the like to the NAS 300.
 LAN202は、クライアントPC201と、NAS300と、を相互に接続するネットワークである。 The LAN 202 is a network that connects the client PC 201 and the NAS 300 to each other.
 NAS300は、エンドユーザに対してファイル共有サービスを提供する計算機である。NAS300の構成は後述する。 NAS300 is a computer that provides file sharing services to end users. The configuration of the NAS 300 will be described later.
 WAN203は、各拠点のネットワーク202とデータセンタを接続するネットワークである。NAS300とCAS400は、このネットワークを介し、通信する。この通信には、例えば、HTTP(Hypertext Transfer Protocol)、HTTPS(Hypertext Transfer Protocol Secure)等の通信プロトコルを用いる。 The WAN 203 is a network connecting the network 202 of each base and the data center. The NAS 300 and CAS 400 communicate via this network. For this communication, for example, a communication protocol such as HTTP (Hypertext TransfercolProtocoly) or HTTPS (Hypertext Transfer Protocol 等 Secure) is used.
 データセンタは、CAS400を有す。CAS400の構成は、後述する。なお、CAS400は、複数のノードからなるクラスタ構成を取っても良い。 The data center has CAS400. The configuration of CAS 400 will be described later. The CAS 400 may take a cluster configuration including a plurality of nodes.
 図3は、NAS300の構成を示すブロック図である。 FIG. 3 is a block diagram showing the configuration of the NAS 300.
 NAS300は、NASコントローラ301と、記憶装置322とを含む。 The NAS 300 includes a NAS controller 301 and a storage device 322.
 NASコントローラ301は、I/F(Interface)302と、CPU303と、ネットワークI/F304と、メモリ305とを含む。NASコントローラ301の各部は、内部的な通信路(例えば、バス)によって互いに接続されている。 The NAS controller 301 includes an I / F (Interface) 302, a CPU 303, a network I / F 304, and a memory 305. Each unit of the NAS controller 301 is connected to each other by an internal communication path (for example, a bus).
 I/F302は、記憶装置322との接続に利用され、NASコントローラ301は、I/F302を介して、記憶装置322に対してデータを読み書きする。 The I / F 302 is used for connection to the storage device 322, and the NAS controller 301 reads / writes data from / to the storage device 322 via the I / F 302.
 CPU303は、メモリ305内のプログラム及びデータに従って、記憶装置322に対するデータの読み書き処理を実行する。 The CPU 303 executes data read / write processing on the storage device 322 according to the program and data in the memory 305.
 ネットワークI/F304は、LANやWANを介して、クライアントPC201およびCAS400に接続され、クライアントPC201やCAS400と通信する。 The network I / F 304 is connected to the client PC 201 and CAS 400 via the LAN or WAN, and communicates with the client PC 201 or CAS 400.
 メモリ305は、NAS300の制御のためのプログラム及びデータを格納する。メモリ305は、ディレクトリ同期プログラム306と、ディレクトリロックプログラム307と、更新リスト取得・適用プログラム308と、マイグレーションプログラム309と、ロールバックプログラム310と、ファイル共有プログラム311と、ファイルシステムプログラム312と、ファイル・ディレクトリ管理情報500と、取得済みディレクトリロック管理情報600と、CAS情報313と、を格納する。 The memory 305 stores programs and data for controlling the NAS 300. The memory 305 includes a directory synchronization program 306, a directory lock program 307, an update list acquisition / application program 308, a migration program 309, a rollback program 310, a file sharing program 311, a file system program 312, Stores directory management information 500, acquired directory lock management information 600, and CAS information 313.
 ディレクトリ同期プログラム306は、同期要フラグが設定されたディレクトリにエンドユーザがアクセスした際に、当該ディレクトリをCAS400上のディレクトリと同期するプログラムである。ディレクトリ同期プログラムは、ディレクトリ同期処理900と、同期バージョン確定処理1000と、CAS上データ取得処理1100と、を含む。各処理の詳細は後述する。 The directory synchronization program 306 is a program that synchronizes the directory with the directory on the CAS 400 when the end user accesses the directory for which the synchronization required flag is set. The directory synchronization program includes a directory synchronization process 900, a synchronization version determination process 1000, and a CAS data acquisition process 1100. Details of each process will be described later.
 ディレクトリロックプログラム307は、CAS400上のディレクトリロックを取得、解放するプログラムである。ディレクトリロックプログラム307は、ディレクトリロック処理とディレクトリロック解放処理と、を含む。 The directory lock program 307 is a program for acquiring and releasing a directory lock on the CAS 400. The directory lock program 307 includes a directory lock process and a directory lock release process.
 ディレクトリロック取得処理は、ディレクトリ作成処理1300やディレクトリ削除処理1400からの呼び出しを契機に、NAS300のCPU303によって実行される。 The directory lock acquisition process is executed by the CPU 303 of the NAS 300 in response to a call from the directory creation process 1300 or the directory deletion process 1400.
 ディレクトリロック取得処理は、引数で指定されたオブジェクトIDを引数として、CAS400に対し、実施例1、2ではディレクトリロック処理1800、実施例3ではディレクトリロック処理2300の実行を要求することで、引数で指定されたディレクトリのディレクトリロックを取得する。ディレクトリロック処理1800やディレクトリロック処理2300の詳細は後述する。 In the directory lock acquisition process, the object ID specified by the argument is used as an argument, and the CAS 400 is requested to execute the directory lock process 1800 in the first and second embodiments and the directory lock process 2300 in the third embodiment. Acquires the directory lock for the specified directory. Details of the directory lock processing 1800 and the directory lock processing 2300 will be described later.
 ディレクトリロック解放処理は、ディレクトリ作成処理1300やディレクトリ削除処理1400からの呼び出しを契機に、NAS300のCPU303によって実行される。ディレクトリロック解放処理は、引数で指定されたオブジェクトIDを引数として、CAS400に対し、ディレクトリアンロック処理の実行を要求することで、引数で指定されたディレクトリのディレクトリロックを解放する。CAS400のディレクトリロック解放処理の詳細は後述する。 The directory lock release process is executed by the CPU 303 of the NAS 300 in response to a call from the directory creation process 1300 or the directory deletion process 1400. The directory lock release process requests the CAS 400 to execute the directory unlock process using the object ID specified by the argument as an argument, thereby releasing the directory lock of the directory specified by the argument. Details of the CAS400 directory lock release processing will be described later.
 更新リスト取得・適用プログラム308は、CAS400から更新リストを取得し、取得した更新リストにパスが記載されたオブジェクトに、同期要フラグを設定すると共に、同期要フラグを設定したディレクトリが、更新しようとしているディレクトリであった場合、ディレクトリ同期処理900を呼び出すプログラムである。更新リスト取得・適用プログラム308は、更新リスト取得・適用処理1500を含む。処理の詳細は、後述する。 The update list acquisition / application program 308 acquires the update list from the CAS 400, sets the synchronization required flag for the object whose path is described in the acquired update list, and the directory for which the synchronization required flag is set is about to be updated. This is a program that calls the directory synchronization processing 900 if the directory is a directory. The update list acquisition / application program 308 includes an update list acquisition / application process 1500. Details of the processing will be described later.
 マイグレーションプログラム309は、マイグレーション処理を含む。マイグレーション処理は、CAS400に対し、オブジェクト保存処理1600の実行を要求することにより、NAS300のファイルシステム318において更新されたファイルやディレクトリをCAS400に保存するとともに、これらのファイルやディレクトリのパス名を記載した更新リストについても、CAS400に対してオブジェクト保存処理1600の実行を要求することにより、この更新リストもCAS400に保存するプログラムである。なお、マイグレーション処理は、ファイルシステム318上で削除されたファイルやディレクトリについて、CAS400上のファイルやディレクトリも削除する。オブジェクト保存処理1600の処理の詳細は、後述する。 The migration program 309 includes migration processing. The migration process requests the CAS400 to execute the object storage process 1600, so that the files and directories updated in the NAS300 file system 318 are stored in the CAS400 and the path names of these files and directories are described. The update list is also a program that saves this update list in CAS 400 by requesting CAS 400 to execute object storage processing 1600. Note that the migration process also deletes files and directories on the CAS 400 for files and directories deleted on the file system 318. Details of the object storage processing 1600 will be described later.
 ロールバックプログラム310は、マイグレーション処理に失敗した場合に実行され、マイグレーション処理に失敗したファイルシステム318に対する更新を、更新前の状態に戻すプログラムである。ロールバックプログラムは、ロールバック処理1200を含む。ロールバック処理1200の詳細は、後述する。 The rollback program 310 is a program that is executed when the migration process fails and returns the update to the file system 318 that failed the migration process to the state before the update. The rollback program includes a rollback process 1200. Details of the rollback processing 1200 will be described later.
 ファイル共有プログラム311と、ファイルシステム318の一部または全部を「共有」として、クライアントPC201に対して公開することで、エンドユーザにファイル共有サービスを提供するプログラムである。ファイル共有サービスは、例えば、CIFS(Common Internet File System)やNFS(Network File System)等のプロトコルを用い、クライアントPCと通信する。 The file sharing program 311 and part or all of the file system 318 are “shared” and are disclosed to the client PC 201 to provide a file sharing service to the end user. The file sharing service communicates with a client PC using a protocol such as CIFS (Common Internet File System) or NFS (Network File System).
 ファイルシステムプログラム312は、記憶装置322内のディスク317に格納されたファイルシステム318を管理するプログラムである。NAS300は、ファイルシステムプログラム312を用い、ファイルシステム318に作成されたルートディレクトリ319、ファイル320、ディレクトリ321を操作する。つまり、メモリ305に格納された他のプログラムは、ファイルシステムプログラム312を呼び出し、ファイルシステム318に作成されたルートディレクトリ319、ファイル320、ディレクトリ321を操作する。例えば、ディレクトリを作成する際、ファイルシステムプログラム312のディレクトリ作成処理1300が実行される。また、ディレクトリを削除する際、ファイルシステムプログラム312のディレクトリ削除処理1400が実行される。なお、ルートディレクトリとは、階層化されたディレクトリ構造の最上位のディレクトリの呼称である。 The file system program 312 is a program for managing the file system 318 stored in the disk 317 in the storage device 322. The NAS 300 uses the file system program 312 to operate the root directory 319, the file 320, and the directory 321 created in the file system 318. That is, another program stored in the memory 305 calls the file system program 312 and operates the root directory 319, the file 320, and the directory 321 created in the file system 318. For example, when creating a directory, a directory creation process 1300 of the file system program 312 is executed. Further, when deleting a directory, a directory deletion process 1400 of the file system program 312 is executed. The root directory is a name of the highest directory in the hierarchical directory structure.
 ファイル・ディレクトリ管理情報500は、ファイルシステム318に格納されたファイルやディレクトリを管理するための情報である。ファイル・ディレクトリ管理情報500のデータ構成例の詳細は後述する。なお、ファイル・ディレクトリ管理情報500は、ディスク317に格納されていてもよい。 The file / directory management information 500 is information for managing files and directories stored in the file system 318. Details of a data configuration example of the file / directory management information 500 will be described later. The file / directory management information 500 may be stored in the disk 317.
 ディレクトリロック管理情報600は、NAS300が自身で各ディレクトリのディレクトリロックを取得済みか否かを管理する情報である。ディレクトリロック管理情報600のデータ構成例の詳細は後述する。なお、ディレクトリロック管理情報600は、ディスク317に格納されていてもよい。 The directory lock management information 600 is information for managing whether the NAS 300 has acquired the directory lock of each directory by itself. Details of the data configuration example of the directory lock management information 600 will be described later. The directory lock management information 600 may be stored on the disk 317.
 CAS情報313は、NAS300がCAS400と通信するための情報である。例えば、URL(Uniform Resource Locator)や通信に用いるプロトコル等の情報である。CAS情報313は、複数のCAS400の情報であっても良い。また、CAS情報313は、ディスク317に格納されていてもよい。 CAS information 313 is information for NAS 300 to communicate with CAS 400. For example, information such as a URL (Uniform Resource Locator) and a protocol used for communication. The CAS information 313 may be information of a plurality of CAS 400. The CAS information 313 may be stored in the disk 317.
 記憶装置322は、I/F314と、メモリ315と、CPU316と、ディスク317と、を含む。記憶装置322の各部は、内部的な通信路(例えば、バス)によって互いに接続されている。 The storage device 322 includes an I / F 314, a memory 315, a CPU 316, and a disk 317. Each unit of the storage device 322 is connected to each other by an internal communication path (for example, a bus).
 I/F314は、NASコントローラ301に接続され、NASコントローラ301と通信する。 The I / F 314 is connected to the NAS controller 301 and communicates with the NAS controller 301.
 メモリ315は、記憶装置322の制御のためのプログラム及びデータを格納する。 The memory 315 stores a program and data for controlling the storage device 322.
 CPU316は、メモリ315内のプログラム及びデータに従って、ディスク317に対するライトやリード等の処理を行う。 The CPU 316 performs processing such as writing to and reading from the disk 317 according to the program and data in the memory 315.
 ディスク317は、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の不揮発性記憶媒体である。ディスク317には、ファイルシステムプログラム312によりファイルシステム318が構築される。これにより、ディスク317は、ディレクトリ及びファイルを格納する。ディスク317は、複数のディスクであってもよい。 The disk 317 is a non-volatile storage medium such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive). A file system 318 is constructed on the disk 317 by the file system program 312. As a result, the disk 317 stores directories and files. The disk 317 may be a plurality of disks.
 ファイルシステム318は、ファイルシステムプログラム312により管理され、エンドユーザが作成/更新したファイル320やディレクトリ321が格納される。ファイルシステム318は、ルートディレクトリ319を最上位とした階層構造を持つ。すなわち、ディレクトリの下には、さらに複数のディレクトリを作成することができる。ファイルシステム318は、複数であっても良い。 The file system 318 is managed by the file system program 312 and stores files 320 and directories 321 created / updated by the end user. The file system 318 has a hierarchical structure with the root directory 319 as the highest level. That is, a plurality of directories can be created under the directory. There may be a plurality of file systems 318.
 なお、NASコントローラ301をコントローラと呼ぶことがある。また、ディスク317を記憶デバイスと呼ぶことがある。 Note that the NAS controller 301 may be referred to as a controller. In addition, the disk 317 may be referred to as a storage device.
 図4は、CAS400の構成を示すブロック図である。 FIG. 4 is a block diagram showing the configuration of CAS400.
 CAS400は、CASコントローラ401と、記憶装置402とを含む。 The CAS 400 includes a CAS controller 401 and a storage device 402.
 CASコントローラ401は、ネットワークI/F403と、I/F(Interface)404と、CPU405と、メモリ406とを含む。CASコントローラ401の各部は、内部的な通信路(例えば、バス)によって互いに接続されている。 The CAS controller 401 includes a network I / F 403, an I / F (Interface) 404, a CPU 405, and a memory 406. Each part of the CAS controller 401 is connected to each other by an internal communication path (for example, a bus).
 ネットワークI/F403は、WANを介して、NAS300に接続され、NAS300と通信するために使用される。 The network I / F 403 is connected to the NAS 300 via the WAN and used to communicate with the NAS 300.
 I/F404は、記憶装置402との接続に利用される。CASコントローラ401は、I/F404を介して、記憶装置402に対してデータを読み書きする。 The I / F 404 is used for connection with the storage device 402. The CAS controller 401 reads / writes data from / to the storage device 402 via the I / F 404.
 CPU405は、メモリ内のプログラム及びデータに従って、オブジェクト操作プログラム407とファイルシステムプログラム408の処理を実行する。 The CPU 405 executes processing of the object operation program 407 and the file system program 408 according to the program and data in the memory.
 メモリ406は、CAS400の制御のためのプログラム及びデータを格納する。メモリ406は、オブジェクト操作プログラム407と、ファイルシステムプログラム415と、オブジェクト管理情報700と、ロック状態管理情報800と、を含む。 The memory 406 stores a program and data for controlling the CAS 400. The memory 406 includes an object operation program 407, a file system program 415, object management information 700, and lock state management information 800.
 オブジェクト操作プログラム407は、NAS300からの要求に従い、ファイルシステム413に格納されたファイルやディレクトリの読み書き、バージョン一覧取得、ロック、アンロック、ロック確認、ロック時刻取得等の処理を実行すると共に、その結果をNAS300に返却する。オブジェクト操作プログラム407は、オブジェクト保存処理1600と、オブジェクト読み込み処理1700と、ディレクトリロック処理1800と、ディレクトリアンロック処理と、バージョン一覧取得処理と、ロック確認処理と、ロック時刻取得処理と、を含む。各処理の詳細は、後述する。 The object operation program 407 executes processing such as reading / writing of files and directories stored in the file system 413, acquisition of a list of versions, locking, unlocking, lock confirmation, acquisition of lock time, etc. according to a request from the NAS 300, and the result To the NAS300. The object operation program 407 includes an object storage process 1600, an object read process 1700, a directory lock process 1800, a directory unlock process, a version list acquisition process, a lock confirmation process, and a lock time acquisition process. Details of each process will be described later.
 ファイルシステムプログラム408は、ファイルシステム413を管理するプログラムである。ファイルシステムプログラム408は、オブジェクト操作プログラム407の要求に基づき、ファイルシステム413に格納されたオブジェクトを読み書きする。 The file system program 408 is a program for managing the file system 413. The file system program 408 reads / writes the object stored in the file system 413 based on the request from the object operation program 407.
 オブジェクト管理情報700は、NAS300からの要求でファイルシステム413に保存したファイルやディレクトリを管理するための情報である。オブジェクト管理情報700のデータ構成例の詳細は、後述する。なお、オブジェクト管理情報700は、ディスク412に格納されていてもよい。 The object management information 700 is information for managing files and directories stored in the file system 413 in response to a request from the NAS 300. Details of a data configuration example of the object management information 700 will be described later. The object management information 700 may be stored on the disk 412.
 ロック状態管理情報800は、各ディレクトリのロックの状態を管理するための情報である。ロック状態管理情報800のデータ構成例の詳細は、後述する。なお、ロック状態管理情報800は、ディスク412に格納されていてもよい。 The lock status management information 800 is information for managing the lock status of each directory. Details of the data configuration example of the lock state management information 800 will be described later. The lock state management information 800 may be stored in the disk 412.
 記憶装置402は、I/F409と、メモリ410と、CPU411と、ディスク412と、を含む。記憶装置402の各部は、内部的な通信路(例えば、バス)によって互いに接続されている。 The storage device 402 includes an I / F 409, a memory 410, a CPU 411, and a disk 412. Each unit of the storage device 402 is connected to each other by an internal communication path (for example, a bus).
 I/F409は、CASコントローラ401に接続され、CASコントローラ401と通信する。 The I / F 409 is connected to the CAS controller 401 and communicates with the CAS controller 401.
 メモリ410は、記憶装置322の制御のためのプログラム及びデータを格納する。 The memory 410 stores a program and data for controlling the storage device 322.
 CPU411は、メモリ410内のプログラム及びデータに従って、ディスク412に対するライトやリード等の処理を行う。 The CPU 411 performs processing such as writing to and reading from the disk 412 according to the program and data in the memory 410.
 ディスク412は、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の不揮発性記憶媒体である。ディスク412には、ファイルシステムプログラム408により管理されるファイルシステム413が構築される。これにより、ディスク412は、ディレクトリ及びファイルを格納する。ディスク412は、複数のディスクであってもよい。 The disk 412 is a non-volatile storage medium such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive). A file system 413 managed by the file system program 408 is constructed on the disk 412. As a result, the disk 412 stores directories and files. The disk 412 may be a plurality of disks.
 ファイルシステム413は、ファイルシステムプログラム408により管理される。ファイルシステム413には、NAS300からの要求で、ファイルやディレクトリが格納される。なお、ファイルシステム413は、複数であっても良い。 The file system 413 is managed by the file system program 408. The file system 413 stores files and directories in response to requests from the NAS 300. A plurality of file systems 413 may be provided.
 図5は、NAS300内のファイル・ディレクトリ管理情報500の構成例を示す。 FIG. 5 shows a configuration example of the file / directory management information 500 in the NAS 300.
 ファイル・ディレクトリ管理情報500は、オブジェクト毎のエントリを含む。ファイル・ディレクトリ管理情報500は、パス名501と、タイプ502と、オブジェクトID503と、同期要フラグ504と、を1エントリとして構成する。 The file / directory management information 500 includes an entry for each object. The file / directory management information 500 includes a path name 501, a type 502, an object ID 503, and a synchronization required flag 504 as one entry.
 パス名501は、ファイルシステム318でのオブジェクトのパス名である。 The path name 501 is the path name of the object in the file system 318.
 タイプ502は、パス名501が示す当該オブジェクトの種別である。例えば、ファイル、ディレクトリ等である。 Type 502 is the type of the object indicated by the path name 501. For example, a file or a directory.
 オブジェクトID503は、パス名501が示す当該オブジェクトのCAS400上での識別子である。つまり、NAS300は、CAS400上のオブジェクトを操作するとき、オブジェクトID503に対する処理として、CAS400に要求する。なお、パス名501とオブジェクトID503は、同一でも良い。パス名501とオブジェクトID503が同一である場合、ファイル・ディレクトリ管理情報500は、オブジェクトID503を持たない構成であっても良い。また、パス名501とオブジェクトID503が同一の文字列である構成の場合、以降の説明における、ファイル・ディレクトリ管理情報500を参照して、パス名501をオブジェクトID503に変換する処理を省略できる。 The object ID 503 is an identifier on the CAS 400 of the object indicated by the path name 501. That is, when the NAS 300 operates an object on the CAS 400, the NAS 300 requests the CAS 400 as processing for the object ID 503. The path name 501 and the object ID 503 may be the same. When the path name 501 and the object ID 503 are the same, the file / directory management information 500 may not have the object ID 503. If the path name 501 and the object ID 503 are the same character string, the process of converting the path name 501 to the object ID 503 with reference to the file / directory management information 500 in the following description can be omitted.
 同期要フラグ504は、CAS400内の当該オブジェクトと同期する必要があるか否かを示す情報である。同期要フラグ504がONであれば同期が必要、同期要フラグがOFFであれば同期が不要であることを示す。 The synchronization required flag 504 is information indicating whether or not it is necessary to synchronize with the object in the CAS 400. If the synchronization required flag 504 is ON, synchronization is required, and if the synchronization required flag is OFF, it indicates that synchronization is not required.
 NAS300のメモリ305に格納される各プログラムは、ファイル・ディレクトリ管理情報500を参照し、ファイルシステム318におけるパス名を、CAS400におけるオブジェクトの識別子であるオブジェクトIDに変換する。例えば、ディレクトリ同期プログラム306に含まれる、同期バージョン確定処理1000と、CAS上データ取得処理1100と、ディレクトリロックプログラム307に含まれる、ディレクトリロック取得処理と、ディレクトリロック解放処理と、更新リスト取得・適用プログラム308に含まれる、更新リスト取得・適用処理1500と、マイグレーションプログラム309に含まれる、マイグレーション処理と、がこの変換を実施する。また、更新リスト取得・適用プログラム308に含まれる更新リスト取得・適用処理1500と、ディレクトリ同期プログラム306に含まれるディレクトリ同期処理は、同期要フラグ504を更新する。 Each program stored in the memory 305 of the NAS 300 refers to the file / directory management information 500 and converts the path name in the file system 318 to an object ID that is an object identifier in the CAS 400. For example, synchronous version confirmation processing 1000 included in the directory synchronization program 306, on-CAS data acquisition processing 1100, directory lock acquisition processing included in the directory lock program 307, directory lock release processing, and update list acquisition / application The update list acquisition / application process 1500 included in the program 308 and the migration process included in the migration program 309 perform this conversion. In addition, the update list acquisition / application process 1500 included in the update list acquisition / application program 308 and the directory synchronization process included in the directory synchronization program 306 update the synchronization required flag 504.
 図6は、NAS300内のディレクトリロック管理情報600の構成例を示す。 FIG. 6 shows a configuration example of the directory lock management information 600 in the NAS 300.
 ディレクトリロック管理情報600は、オブジェクト毎のエントリを含む。ディレクトリロック管理情報600は、拠点名601と、オブジェクトID602と、自NAS(ローカルのNAS300)によるロック状態603と、ロックカウント604と、を1エントリとして構成する。 The directory lock management information 600 includes an entry for each object. The directory lock management information 600 includes a base name 601, an object ID 602, a lock state 603 by the own NAS (local NAS 300), and a lock count 604 as one entry.
 拠点名601は、NAS300が設置されている拠点の名前である。図6の例では、拠点Xに設置されたNAS300であるため、各エントリの拠点名601は、Xである。 The site name 601 is the name of the site where the NAS 300 is installed. In the example of FIG. 6, since it is the NAS 300 installed at the base X, the base name 601 of each entry is X.
 オブジェクトID602は、CAS400上でのオブジェクトの識別子である。 The object ID 602 is an object identifier on the CAS 400.
 自NASによるロック状態603は、当該オブジェクトID602が示すディレクトリが、拠点名601に設置されたNAS300により、ロックされているか否かを示す情報である。自NASによるロック状態603は、オブジェクトID602が示すディレクトリが、拠点名601に設置されたNAS300によりロック取得済みであればロック済み、そうでなければ未ロックを示す。また、ディレクトリロックプログラム307に含まれる、ディレクトリロック処理と、ディレクトリロック解放処理は、ディレクトリロック管理情報600の自NASによるロック状態603を更新する。 The lock state 603 by the own NAS is information indicating whether or not the directory indicated by the object ID 602 is locked by the NAS 300 installed at the site name 601. The lock state 603 by the own NAS indicates that the directory indicated by the object ID 602 is locked if the lock has been acquired by the NAS 300 installed in the site name 601 and is not locked otherwise. Further, the directory lock process and the directory lock release process included in the directory lock program 307 update the lock state 603 of the directory lock management information 600 by the own NAS.
 ロックカウント604は、当該オブジェクトID602が示すディレクトリに対して、拠点名601に対応するNAS300が実行中(ロック中)の更新処理の処理数である。ディレクトリ作成処理1300と、ディレクトリ削除処理1400は、ディレクトリロック管理情報600のロックカウント604を更新する。 The lock count 604 is the number of update processes that are being executed (locked) by the NAS 300 corresponding to the site name 601 for the directory indicated by the object ID 602. The directory creation process 1300 and the directory deletion process 1400 update the lock count 604 of the directory lock management information 600.
 例えば、ディレクトリ作成処理1300やディレクトリ削除処理1400等の、オブジェクトの更新処理は、親ディレクトリの下の複数の子ディレクトリの更新を実行する場合、複数の子ディレクトリの夫々の更新において、親ディレクトリのロックを取得するのではなく、親ディレクトリのロックを取得したまま、複数の子ディレクトリの更新を実行する。これにより、更新処理は、複数の子ディレクトリの更新を並列に実行することができる。更新処理は、最初に親ディレクトリをロックすると、子ディレクトリを更新する前に、親ディレクトリのロックカウント604を増加させ、子ディレクトリを更新した後に、親ディレクトリのロックカウント604を減少させ、親ディレクトリのロックカウント604が0になったときに親ディレクトリをアンロックする。これにより、更新処理を行うNAS300は複数の更新をまとめて実行すると共に、他のNAS300にそれらのディレクトリを更新させないようにすることができる。また、更新の度にロックする場合に比べて、複数のオブジェクトの更新に要する時間を削減することができ、性能を向上させることができる。 For example, object update processing, such as directory creation processing 1300 and directory deletion processing 1400, when updating multiple child directories under the parent directory, locks the parent directory in each update of multiple child directories. Rather than acquiring, update multiple child directories with the parent directory lock acquired. Thereby, the update process can execute the update of a plurality of child directories in parallel. The update process locks the parent directory first, then increases the parent directory lock count 604 before updating the child directory, and after updating the child directory, decreases the parent directory lock count 604, When the lock count 604 reaches 0, the parent directory is unlocked. As a result, the NAS 300 that performs the update process can execute a plurality of updates all together, and can prevent other NAS 300 from updating those directories. In addition, the time required for updating a plurality of objects can be reduced and the performance can be improved as compared with the case of locking each update.
 NAS300のメモリ305に格納される各プログラムは、ディレクトリロック管理情報600を参照することで、ディレクトリの自NASによるロック状態603やロックカウント304を確認する。例えば、ファイルシステムプログラム312に含まれる、ディレクトリ作成処理1300と、ディレクトリ削除処理1400は、ディレクトリロック管理情報600を参照し、処理対象ディレクトリのロック状態を確認する。 Each program stored in the memory 305 of the NAS 300 refers to the directory lock management information 600 to confirm the lock state 603 and the lock count 304 of the directory by its own NAS. For example, the directory creation processing 1300 and the directory deletion processing 1400 included in the file system program 312 refer to the directory lock management information 600 and confirm the lock state of the processing target directory.
 図7は、CAS400内のオブジェクト管理情報700の構成例を示す。 FIG. 7 shows a configuration example of the object management information 700 in the CAS 400.
 オブジェクト管理情報700は、バージョン毎のエントリを含む。オブジェクト管理情報700は、オブジェクトID701と、バージョン702と、作成時刻703と、パス名704と、を1エントリとして構成する。 The object management information 700 includes an entry for each version. The object management information 700 includes an object ID 701, a version 702, a creation time 703, and a path name 704 as one entry.
 オブジェクトID701は、処理対象のオブジェクトを指定する情報として、CAS400がNAS300に提供する識別子である。 The object ID 701 is an identifier that the CAS 400 provides to the NAS 300 as information that specifies the object to be processed.
 バージョン702は、当該オブジェクトID701の複数世代の中の一つを一意に特定するための識別子である。1つのオブジェクトID701に対して、1以上のバージョン702が存在する。 Version 702 is an identifier for uniquely identifying one of a plurality of generations of the object ID 701. One or more versions 702 exist for one object ID 701.
 作成時刻703は、当該オブジェクトID701のバージョン702が、NAS300の要求によりCAS400のファイルシステム413に作成された時刻である。 The creation time 703 is the time when the version 702 of the object ID 701 is created in the file system 413 of the CAS 400 at the request of the NAS 300.
 パス名704は、当該オブジェクトID701と当該バージョン702が示すデータが保存されているファイル・ディレクトリのパス名である。このパス名は、CAS400内のファイルシステム413でのパス名である。 The path name 704 is a path name of a file / directory where the data indicated by the object ID 701 and the version 702 is stored. This path name is a path name in the file system 413 in the CAS 400.
 オブジェクト操作プログラム407に含まれるオブジェクト保存処理1600は、オブジェクト管理情報700に基づいて、NAS300に指定されたオブジェクトの最新バージョンを認識するとともに、オブジェクト操作プログラム407へエントリを追加する。 The object storage processing 1600 included in the object operation program 407 recognizes the latest version of the object specified in the NAS 300 based on the object management information 700 and adds an entry to the object operation program 407.
 また、オブジェクト操作プログラム407に含まれるオブジェクト読み込み処理1700は、オブジェクト管理情報700から、NAS300により指定されたオブジェクトID及びバージョンに対応するパス名704を取得する。 Also, the object reading process 1700 included in the object operation program 407 acquires the path name 704 corresponding to the object ID and version specified by the NAS 300 from the object management information 700.
 図8は、実施例1、2のCAS400内のロック状態管理情報800の構成例を示す。 FIG. 8 shows a configuration example of the lock state management information 800 in the CAS 400 according to the first and second embodiments.
 ロック状態管理情報800は、オブジェクト毎のエントリを含む。ロック状態管理情報800は、オブジェクトID801と、ロックファイル802と、ロック状態803と、ロック時刻804と、再ロック時刻805と、を1エントリとして構成する。 The lock state management information 800 includes an entry for each object. The lock state management information 800 includes an object ID 801, a lock file 802, a lock state 803, a lock time 804, and a relock time 805 as one entry.
 オブジェクトID801は、オブジェクトを識別する識別子である。 The object ID 801 is an identifier for identifying an object.
 ロックファイル802は、当該オブジェクトID801が示すオブジェクトがロックされていることを示すために作成されたファイルのパス名である。このパス名は、CAS400内のファイルシステム413でのパス名である。 The lock file 802 is a path name of a file created to indicate that the object indicated by the object ID 801 is locked. This path name is a path name in the file system 413 in the CAS 400.
 ロック状態803は、当該オブジェクトID801が示すオブジェクトがロックされているか否か示す情報である。 The lock state 803 is information indicating whether or not the object indicated by the object ID 801 is locked.
 ロック時刻804は、当該オブジェクトID801が示すオブジェクトがロックされた時刻である。ロック時刻804は、当該オブジェクトがロックされた場合のみ、設定される。 The lock time 804 is the time when the object indicated by the object ID 801 is locked. The lock time 804 is set only when the object is locked.
 再ロック時刻805は、当該ロック時刻804が示す時刻に当該オブジェクトID801が示すオブジェクトがロックされ、そのロックが失効した後、続けて当該オブジェクトが再ロックされた時刻を示す。再ロック時刻805は、当該オブジェクトが再ロックされた場合のみ、設定される。 The re-lock time 805 indicates the time when the object indicated by the object ID 801 is locked at the time indicated by the lock time 804 and the object is subsequently re-locked after the lock expires. The relock time 805 is set only when the object is relocked.
 ロック時刻804および再ロック時刻805のうち最新のロックを取得した時刻である最新ロック時刻から、予め設定されたロック時間閾値以上の時間が経過するとロックが失効し、全てのNAS300が、ロックを取得することを許す。このロックの失効後に再ロックされた時刻のうち直近の時刻を、再ロック時刻805として記録する。つまり、ロック時刻804は、最初にロックされた時刻であり、再ロック時刻805は、ロック時刻804以降にアンロックされることなく再ロックされた最新の時刻である。 The lock expires when the time equal to or greater than the preset lock time threshold elapses from the latest lock time, which is the time at which the latest lock was acquired among the lock time 804 and the relock time 805, and all NAS 300 acquires the lock Allow to do. The most recent time among the times relocked after the expiration of the lock is recorded as the relock time 805. In other words, the lock time 804 is the time when the lock is first performed, and the relock time 805 is the latest time when the lock is not unlocked after the lock time 804.
 オブジェクト操作プログラム407に含まれるロック確認処理と、ロック時刻取得処理は、ロック状態管理情報800を参照することで、指定されたオブジェクトのロック状態803やロック時刻804を取得する。また、オブジェクト操作プログラム407に含まれるディレクトリロック処理1800やディレクトリアンロック処理は、ロック状態管理情報800を参照すると共に、更新する。 The lock confirmation process and the lock time acquisition process included in the object operation program 407 acquire the lock state 803 and the lock time 804 of the specified object by referring to the lock state management information 800. Further, the directory lock process 1800 and the directory unlock process included in the object operation program 407 refer to and update the lock state management information 800.
 図9は、実施例1、3におけるディレクトリ同期処理900の詳細を説明するためのフローチャートの一例である。 FIG. 9 is an example of a flowchart for explaining details of the directory synchronization processing 900 according to the first and third embodiments.
 ディレクトリ同期処理900は、更新リスト取得・適用処理1500からの呼び出しと、ファイル・ディレクトリ管理情報500の同期要フラグ504がONであるディレクトリへのNAS300のエンドユーザによるアクセスとの、何れかを契機として、NAS300のCPU303で実行される。 The directory synchronization processing 900 is triggered by either the call from the update list acquisition / application processing 1500 or the access by the end user of the NAS 300 to the directory for which the synchronization required flag 504 of the file / directory management information 500 is ON. , Executed by the CPU 303 of the NAS300.
 まず、ディレクトリ同期プログラム306は、引数として受け取った処理対象のパス名を引数として、同期バージョン確定処理1000を呼び出し、同期するバージョンを取得する(S901)。 First, the directory synchronization program 306 calls the synchronization version determination process 1000 using the path name to be processed received as an argument as an argument, and acquires a synchronized version (S901).
 次に、ディレクトリ同期プログラム306は、引数として受け取った処理対象のパス名と、同期バージョン確定処理(S901)の処理結果として得たバージョンとを引数として、CAS上データ取得処理1100を呼び出し、CAS400内の処理対象ディレクトリを取得する(S902)。 Next, the directory synchronization program 306 calls the CAS data acquisition processing 1100 using the path name of the processing target received as an argument and the version obtained as the processing result of the synchronization version confirmation process (S901) as an argument in the CAS 400. The processing target directory is acquired (S902).
 次に、ディレクトリ同期プログラム306は、引数として受け取った処理対象のパス名を引数として、NAS上ディレクトリ読み込み処理を実行し、NAS300がファイルシステム318に格納している処理対象ディレクトリを読み込む(S903)。NAS上ディレクトリ読み込み処理は、ファイルシステムプログラム312を利用し、ファイルシステム318から、引数で指定されたディレクトリを読み込む。 Next, the directory synchronization program 306 executes directory reading processing on the NAS using the path name of the processing target received as an argument, and reads the processing target directory stored in the file system 318 by the NAS 300 (S903). The directory reading process on the NAS uses the file system program 312 to read the directory specified by the argument from the file system 318.
 次に、ディレクトリ同期プログラム306は、CAS上データ取得処理(S902)の処理結果として得たディレクトリと、NAS上ディレクトリ読み込み処理(S903)の処理結果として得たディレクトリとを比較する。これにより、ディレクトリ同期プログラム306は、CAS400から取得したディレクトリにおいて作成または削除の操作がされているディレクトリエントリを抽出し、NAS300のファイルシステム318のディレクトリにおいても同様の操作を実施する(S904)。この操作の実施のため、ディレクトリ同期プログラム306は、ファイルシステムプログラム312を呼び出す。 Next, the directory synchronization program 306 compares the directory obtained as a result of the CAS data acquisition process (S902) with the directory obtained as a result of the NAS directory read process (S903). As a result, the directory synchronization program 306 extracts the directory entry that has been created or deleted in the directory acquired from the CAS 400, and performs the same operation on the directory of the file system 318 of the NAS 300 (S904). In order to perform this operation, the directory synchronization program 306 calls the file system program 312.
 次に、同期バージョン確定処理(S901)の処理結果が最新バージョンであった場合(S905がYesの場合)、ディレクトリ同期プログラム306は、ファイル・ディレクトリ管理情報500において、引数として受け取った処理対象のパス名と一致するパス名501を有するエントリの同期要フラグ504を、OFFに変更する(S906)。 Next, when the processing result of the synchronization version confirmation processing (S901) is the latest version (when S905 is Yes), the directory synchronization program 306 receives the path to be processed received as an argument in the file / directory management information 500 The synchronization necessity flag 504 of the entry having the path name 501 that matches the name is changed to OFF (S906).
 一方、同期バージョン確定処理(S901)の処理結果が最新バージョンでなかった場合(S905がNoの場合)、ディレクトリ同期プログラム306は、ファイル・ディレクトリ管理情報500において、引数として受け取った処理対象のパス名と一致するパス名501を有するエントリの同期要フラグ504を、ONのまま維持する(S907)。 On the other hand, when the processing result of the synchronization version confirmation processing (S901) is not the latest version (when S905 is No), the directory synchronization program 306 receives the path name of the processing target received as an argument in the file / directory management information 500 The synchronization necessity flag 504 of the entry having the path name 501 that matches with is kept ON (S907).
 以上の処理によれば、NAS300は、ファイルシステム内のオブジェクトをCAS400内の最新バージョンに一致させた場合に同期要フラグを解除し、ファイルシステム内のオブジェクトをCAS400内の更新の直前バージョンに一致させた場合に同期要フラグを維持することにより、最新バージョンでないオブジェクトを、その後のディレクトリ同期処理により再同期させることができる。 According to the above processing, the NAS 300 cancels the synchronization required flag when the object in the file system matches the latest version in the CAS 400, and makes the object in the file system match the version immediately before the update in the CAS 400. If the synchronization necessity flag is maintained, an object that is not the latest version can be resynchronized by the subsequent directory synchronization processing.
 図10は、実施例1における同期バージョン確定処理1000の詳細を説明するためのフローチャートの一例である。 FIG. 10 is an example of a flowchart for explaining details of the synchronization version determination process 1000 according to the first embodiment.
 同期バージョン確定処理1000は、ディレクトリ同期処理900からの呼び出しを契機として、NAS300のCPU303で実行される。 The synchronization version confirmation process 1000 is executed by the CPU 303 of the NAS 300 in response to a call from the directory synchronization process 900.
 まず、ディレクトリ同期プログラム306は、ファイル・ディレクトリ管理情報500を参照して、引数として受け取った処理対象のパス名をオブジェクトIDに変換し、この変換結果のオブジェクトIDを引数として、CAS400へ、ロック確認処理の実行を要求する(S1001)。 First, the directory synchronization program 306 refers to the file / directory management information 500, converts the path name of the processing target received as an argument into an object ID, and confirms the lock to the CAS 400 using the object ID of this conversion result as an argument. Request execution of processing (S1001).
 CAS400は、NAS300から受け取ったオブジェクトIDを引数として、ロック確認処理を実行する(S1002)。ロック確認処理は、ロック状態管理情報800において、引数として受け取ったオブジェクトIDと一致するオブジェクトID801を有するエントリのロック状態803を、NAS300に返す。 CAS 400 executes lock confirmation processing using the object ID received from NAS 300 as an argument (S1002). In the lock confirmation processing, the lock state 803 of the entry having the object ID 801 that matches the object ID received as an argument in the lock state management information 800 is returned to the NAS 300.
 ロック確認処理(S1002)の処理結果が未ロックであった場合(S1003がNoであった場合)、ディレクトリ同期プログラム306は、同期バージョン確定処理1000の結果を最新バージョンに決定し、呼び出し元に返却する(S1004)。 If the processing result of the lock confirmation processing (S1002) is not locked (if S1003 is No), the directory synchronization program 306 determines the result of the synchronization version confirmation processing 1000 as the latest version and returns it to the caller (S1004).
 一方、ロック確認処理(S1002)の処理結果がロック済みであった場合(S1003がYesであった場合)、ディレクトリ同期プログラム306は、引数として受け取った処理対象のパス名に対応するオブジェクトIDを引数として、CAS400へ、ロック時刻取得処理の実行を要求する(S1005)。 On the other hand, if the processing result of the lock confirmation processing (S1002) is already locked (if S1003 is Yes), the directory synchronization program 306 uses the object ID corresponding to the path name of the processing target received as an argument as an argument Then, the CAS 400 is requested to execute the lock time acquisition process (S1005).
 CAS400は、NAS300から受け取ったオブジェクトIDを引数として、ロック時刻取得処理を実行する(S1006)。ロック時刻取得処理は、ロック状態管理情報800において、引数として受け取ったオブジェクトIDと一致するオブジェクトID801を有するエントリのロック時刻804を、NAS300に返却する。 CAS 400 executes the lock time acquisition process using the object ID received from NAS 300 as an argument (S1006). In the lock time acquisition process, the lock time 804 of the entry having the object ID 801 that matches the object ID received as an argument in the lock state management information 800 is returned to the NAS 300.
 次に、ディレクトリ同期プログラム306は、引数として受け取った処理対象のパス名に対応するオブジェクトIDを引数として、CAS400へ処理対象のディレクトリのバージョン一覧取得処理の実行を要求する(S1007)。 Next, the directory synchronization program 306 requests the CAS 400 to execute the version list acquisition process of the processing target directory, using the object ID corresponding to the processing target path name received as the argument (S1007).
 CAS400は、NAS300から受け取ったオブジェクトIDを引数として、バージョン一覧取得処理を実行する(S1008)。バージョン一覧処理は、オブジェクト管理情報700を検索し、オブジェクトID701が、引数として受け取ったオブジェクトIDに該当するエントリをすべて抽出し、NAS300に返却する。つまり、バージョン一覧とは、オブジェクトIDで識別されるオブジェクトの全バージョンの情報である。なお、CAS400に接続された装置は、CAS400内のスナップショットの複数のバージョンから特定のバージョンを選択するためにバージョン一覧を取得してもよい。 CAS 400 executes version list acquisition processing using the object ID received from NAS 300 as an argument (S1008). In the version list process, the object management information 700 is searched, and all entries corresponding to the object ID received as an argument by the object ID 701 are extracted and returned to the NAS 300. That is, the version list is information on all versions of the object identified by the object ID. Note that a device connected to the CAS 400 may acquire a version list in order to select a specific version from a plurality of snapshot versions in the CAS 400.
 次に、ディレクトリ同期プログラム306は、バージョン一覧取得処理(S1008)の処理結果として取得したバージョン一覧に含まれる各バージョンの作成時刻と、ロック時刻取得処理(S1006)の処理結果として取得したロック時刻と、を比較し、ロック時刻より古い作成時刻を有するバージョンの中で最も後のバージョン(ロック時刻直前のバージョン)を検索する。同期バージョン確定処理1000の結果を、この検索結果として得られたバージョンに決定し、呼び出し元に返却する(S1009)。 Next, the directory synchronization program 306 includes the creation time of each version included in the version list acquired as the processing result of the version list acquisition processing (S1008), the lock time acquired as the processing result of the lock time acquisition processing (S1006), , And the latest version among the versions having the creation time older than the lock time (version immediately before the lock time) is searched. The result of the synchronization version determination process 1000 is determined as the version obtained as the search result and returned to the caller (S1009).
 以上の同期バージョン確定処理1000によれば、処理対象のオブジェクトがロックされていないと判定された場合、NAS300は、CAS400から、最新バージョンの当該オブジェクトを取得することにより、ファイルシステム318内の当該オブジェクトを、更新が完了しているバージョンに同期することができる。また、処理対象のオブジェクトがロックされていると判定された場合、NAS300は、CAS400から、更新の直前バージョンの当該オブジェクトを取得することにより、ファイルシステム318内の当該オブジェクトを、更新が完了していないバージョンに同期することを避けることができる。これらの動作により、複数のNAS300のファイルシステム318の一貫性を保つことができる。NAS300は、CAS400からロック時刻を取得することにより、更新の直前バージョンの作成時刻を判定することができる。また、NAS300は、CAS400からバージョン一覧を取得することにより、更新の直前バージョンを特定することができる。 According to the synchronous version determination process 1000 described above, when it is determined that the object to be processed is not locked, the NAS 300 acquires the object of the latest version from the CAS 400, thereby acquiring the object in the file system 318. Can be synchronized to the version that has been updated. If it is determined that the object to be processed is locked, the NAS 300 obtains the object of the version immediately before the update from the CAS 400, so that the update of the object in the file system 318 has been completed. You can avoid syncing to no version. With these operations, the consistency of the file systems 318 of the plurality of NAS 300 can be maintained. The NAS 300 can determine the creation time of the version immediately before the update by acquiring the lock time from the CAS 400. Further, the NAS 300 can identify the version immediately before the update by acquiring the version list from the CAS 400.
 図11は、実施例1、3におけるCAS上データ取得処理1100の詳細を説明するためのフローチャートの一例である。 FIG. 11 is an example of a flowchart for explaining details of the on-CAS data acquisition processing 1100 according to the first and third embodiments.
 CAS上データ取得処理1100は、実施例1、3におけるディレクトリ同期処理900からの呼び出しを契機として、NAS300のCPU303で実行される。 The CAS data acquisition process 1100 is executed by the CPU 303 of the NAS 300 in response to a call from the directory synchronization process 900 in the first and third embodiments.
 まず、引数により取得対象のバージョンが指定されていない場合(S1102がNoの場合)、ディレクトリ同期プログラム306は、ファイル・ディレクトリ管理情報500を参照して、引数として受け取った処理対象のパス名をオブジェクトIDに変換し、このオブジェクトIDを引数として、CAS400へ、オブジェクト読み込み処理の実行を要求する(S1102)。 First, when the acquisition target version is not specified by the argument (when S1102 is No), the directory synchronization program 306 refers to the file / directory management information 500 and sets the processing target path name received as the argument to the object. Conversion to ID is performed, and this object ID is used as an argument to request execution of object reading processing to CAS 400 (S1102).
 一方、引数により取得対象のバージョンが指定されている場合(S1102がYesの場合)、ディレクトリ同期プログラム306は、ファイル・ディレクトリ管理情報500により、引数として受け取った処理対象のパス名をオブジェクトIDに変換し、このオブジェクトIDと、引数として受け取ったバージョンとを引数として、CAS400へ、オブジェクト読み込み処理の実行を要求する(S1103)。 On the other hand, when the version to be acquired is specified by the argument (when S1102 is Yes), the directory synchronization program 306 converts the path name of the processing target received as the argument into an object ID using the file / directory management information 500 Then, using the object ID and the version received as an argument, the CAS 400 is requested to execute the object reading process (S1103).
 CAS400は、NAS300から受け取ったオブジェクトIDやバージョンを引数として、バージョン一覧取得処理を実行する(S1104)。オブジェクト読み込み処理の詳細は、後述する。 CAS 400 executes version list acquisition processing using the object ID and version received from NAS 300 as arguments (S1104). Details of the object reading process will be described later.
 次に、ディレクトリ同期プログラム306は、オブジェクト読み込み処理(S1104)の処理結果として得たデータを、NAS300のメモリ305に保存する(S1105)。 Next, the directory synchronization program 306 stores the data obtained as a result of the object reading process (S1104) in the memory 305 of the NAS 300 (S1105).
 次に、ディレクトリ同期プログラム306は、S1105の処理結果のデータ保存先のメモリアドレスを呼び出し元に返す(S1106)。 Next, the directory synchronization program 306 returns the memory address of the data storage destination of the processing result of S1105 to the caller (S1106).
 図12は、ロールバック処理1200の詳細を説明するためのフローチャートの一例である。 FIG. 12 is an example of a flowchart for explaining details of the rollback processing 1200.
 ロールバック処理1200は、マイグレーション処理の失敗を契機として、NAS300のCPU303で実行される。 The rollback process 1200 is executed by the CPU 303 of the NAS 300 when the migration process fails.
 まず、引数として指定されたロールバック対象の処理が、ファイルもしくはディレクトリの作成であった場合(S1201がYesの場合)、ロールバックプログラム310は、ファイルシステムプログラム312を利用して、引数で指定されたパス名のファイルもしくはディレクトリを、ファイルシステム318から削除する(S1202)。 First, if the rollback target process specified as an argument is the creation of a file or directory (when S1201 is Yes), the rollback program 310 is specified with an argument using the file system program 312. The file or directory having the specified path name is deleted from the file system 318 (S1202).
 一方、引数として指定されたロールバック対象の処理が、ファイルもしくはディレクトリの削除であった場合(S1201がNo、かつS1203がYesの場合)、ロールバックプログラム310は、ファイルシステムプログラム312を利用し、引数で指定されたパス名のファイルもしくはディレクトリを、ファイルシステム318に作成する(S1204)。 On the other hand, when the rollback target process specified as an argument is deletion of a file or directory (when S1201 is No and S1203 is Yes), the rollback program 310 uses the file system program 312. A file or directory having the path name specified by the argument is created in the file system 318 (S1204).
 また、引数として指定されたロールバック対象の処理が、ファイルもしくはディレクトリの移動であった場合(S1201がNo、かつS1203がNoの場合、かつS1205がYesの場合)、ロールバックプログラム310は、ファイルシステムプログラム312を利用し、ファイルシステム318において、引数で指定された移動後のパス名のファイルもしくはディレクトリを、引数で指定された移動前のパス名へ移動させる(S1206)。 Also, if the rollback process specified as an argument is a file or directory move (if S1201 is No, S1203 is No, and S1205 is Yes), the rollback program 310 Using the system program 312, the file system 318 moves the file or directory having the path name after the movement designated by the argument to the path name before the movement designated by the argument (S1206).
 最後に、引数として指定されたロールバック対象の処理が、ファイルもしくはディレクトリの作成、削除、移動のいずれでもない場合(S1201がNo、かつS1203がNoの場合、かつS1205がNoの場合)、ロールバックプログラム310は、何も処理せず終了する。 Finally, if the rollback process specified as an argument is not a file, directory creation, deletion, or move (if S1201 is No, S1203 is No, and S1205 is No), roll The back program 310 ends without performing any processing.
 なお、ロールバック処理1200において、ロールバック対象の処理がリネームである場合、ロールバックプログラム310は、ファイルシステムプログラム312を利用し、ファイルシステム318において、引数で指定されたリネーム後のパス名のファイルもしくはディレクトリを、引数で指定されたリネーム前のパス名に戻す。 In the rollback process 1200, when the rollback process is rename, the rollback program 310 uses the file system program 312 and the file system 318 uses the file name of the path name after the rename specified by the argument. Or return the directory to the pathname before the rename specified in the argument.
 以上のロールバック処理1200によれば、更新時のマイグレーション処理に失敗したNAS300は、ファイルシステム318において当該更新を元に戻すことにより、複数のNAS300のファイルシステム318の一貫性を保つことができる。 According to the rollback processing 1200 described above, the NAS 300 that has failed in the migration processing at the time of updating can maintain the consistency of the file systems 318 of the plurality of NAS 300 by restoring the update in the file system 318.
 図13は、ディレクトリ作成処理1300の詳細を説明するためのフローチャートの一例である。 FIG. 13 is an example of a flowchart for explaining details of the directory creation processing 1300.
 ディレクトリ作成処理1300は、クライアントPC201からのディレクトリ作成要求の受信を契機として、NAS300のCPU303で実行される。 The directory creation process 1300 is executed by the CPU 303 of the NAS 300 upon receiving a directory creation request from the client PC 201.
 まず、NAS300のファイルシステムプログラム312が、ディレクトリ作成の要求を受信する(S1301)。 First, the file system program 312 of the NAS 300 receives a directory creation request (S1301).
 次に、ファイルシステムプログラム312は、ディレクトリロック管理情報600において、作成対象ディレクトリの親ディレクトリの自NASによるロック状態603を確認する(S1302)。この処理の手順は、次の通りである。まず、ファイルシステムプログラム312は、引数で受け取った作成対象ディレクトリのパス名から、親ディレクトリ(一階層上のディレクトリ)のパス名を求める。次に、ファイルシステムプログラム312は、ファイル・ディレクトリ管理情報500を参照して、親ディレクトリのパス名をオブジェクトIDに変換する。次に、ファイルシステムプログラム312は、変換結果のオブジェクトIDについて、ディレクトリロック管理情報600の自NASによるロック状態603を参照し、自NASが当該オブジェクトIDのディレクトリロックを取得済みか否か確認する。 Next, the file system program 312 confirms the lock state 603 by the own NAS of the parent directory of the creation target directory in the directory lock management information 600 (S1302). The procedure of this process is as follows. First, the file system program 312 obtains the path name of the parent directory (one directory above) from the path name of the creation target directory received as an argument. Next, the file system program 312 refers to the file / directory management information 500 and converts the path name of the parent directory into an object ID. Next, the file system program 312 refers to the lock state 603 by the own NAS of the directory lock management information 600 for the object ID of the conversion result, and confirms whether or not the own NAS has acquired the directory lock of the object ID.
 親ディレクトリのディレクトリロックを取得済みであった場合(S1302がYesの場合)、ファイルシステムプログラム312は、ディレクトリロック管理情報600において、親ディレクトリのオブジェクトIDと一致するオブジェクトID602を有するエントリのロックカウント604を、1つ増加させ、S1308にすすむ(S1303)。S1308以降の処理は後述する。 If the directory lock of the parent directory has been acquired (if S1302 is Yes), the file system program 312 locks the entry 604 in the directory lock management information 600 having the object ID 602 that matches the object ID of the parent directory. Is increased by one and the process proceeds to S1308 (S1303). The processing after S1308 will be described later.
 一方、親ディレクトリのディレクトリロックを未取得であった場合(S1302がNoの場合)、ファイルシステムプログラム312は、次に示すS1304からS1307の処理を実行する。 On the other hand, when the directory lock of the parent directory has not been acquired (when S1302 is No), the file system program 312 executes the following processing from S1304 to S1307.
 ファイルシステムプログラム312は、親ディレクトリのオブジェクトIDを引数とし、ディレクトリロックプログラム307のディレクトリロック取得処理を呼び出す(S1304)。ディレクトリロックプログラム307は、引数として受け取ったオブジェクトIDを引数として、CAS400に対し、ディレクトリロック処理1800の実行を要求する。ディレクトリロック処理1800の詳細は後述する。次に、ディレクトリロックプログラム307は、ディレクトリロック処理1800の結果が成功であった場合、ディレクトリロック管理情報600において、引数として受け取ったオブジェクトIDと一致するオブジェクトID602を有するエントリの自NASによるロック状態603を、「ロック取得済み」に変更する。次に、ディレクトリロックプログラム307は、ディレクトリロック処理1800の結果を呼び出し元に返す。 The file system program 312 calls the directory lock acquisition process of the directory lock program 307 using the object ID of the parent directory as an argument (S1304). The directory lock program 307 requests the CAS 400 to execute the directory lock processing 1800 using the object ID received as an argument as an argument. Details of the directory lock processing 1800 will be described later. Next, when the result of the directory lock processing 1800 is successful, the directory lock program 307 locks the entry 603 having the object ID 602 that matches the object ID received as an argument in the directory lock management information 600 by the own NAS. Is changed to “Lock acquired”. Next, the directory lock program 307 returns the result of the directory lock processing 1800 to the caller.
 次に、ディレクトリロック取得処理の処理結果が失敗であった場合(S1305がNoの場合)、ファイルシステムプログラム312は、S1304に戻り、ディレクトリロックプログラム307のディレクトリロック取得処理を再実行する。ファイルシステムプログラム312は、再実行回数に予め上限回数を設定し、失敗を上限回数以上繰り返した場合、ディレクトリ作成処理を失敗としてもよい。 Next, when the processing result of the directory lock acquisition process is unsuccessful (when S1305 is No), the file system program 312 returns to S1304 and re-executes the directory lock acquisition process of the directory lock program 307. The file system program 312 may set the upper limit number for the re-execution number in advance, and if the failure is repeated more than the upper limit number, the directory creation process may be failed.
 一方、ディレクトリロック取得処理の処理結果が成功であった場合(S1305がYesの場合)、ファイルシステムプログラム312は、ディレクトリロック管理情報600において、親ディレクトリのオブジェクトIDと一致するオブジェクトID602を有するエントリのロックカウント604を、1つ増加させる(S1306)。 On the other hand, when the processing result of the directory lock acquisition process is successful (when S1305 is Yes), the file system program 312 reads the entry having the object ID 602 that matches the object ID of the parent directory in the directory lock management information 600. The lock count 604 is increased by 1 (S1306).
 次に、ファイルシステムプログラム312は、更新リスト取得・適用処理1500を呼び出す(S1307)。更新リスト取得・適用処理1500の詳細は後述する。 Next, the file system program 312 calls the update list acquisition / application processing 1500 (S1307). Details of the update list acquisition / application process 1500 will be described later.
 次に、ファイルシステムプログラム312は、引数で指定されたディレクトリを作成するとともに、作成の成否をエンドユーザに返却する(S1308)。このとき、ファイルシステムプログラム312は、ファイル・ディレクトリ管理情報500とディレクトリロック管理情報600に対し、作成したディレクトリのエントリを作成する。また、ファイルシステムプログラム312は、作成したディレクトリと親ディレクトリのパス名を記載した更新リストを作成する。なお、更新リストの形式は、ディレクトリの作成を、他のNASに通知できるものであれば、どのような情報であってもよい。 Next, the file system program 312 creates the directory specified by the argument, and returns the success or failure of creation to the end user (S1308). At this time, the file system program 312 creates an entry of the created directory for the file / directory management information 500 and the directory lock management information 600. In addition, the file system program 312 creates an update list that describes the created directory and the path name of the parent directory. The format of the update list may be any information as long as the creation of the directory can be notified to other NAS.
 次に、ファイルシステムプログラム312は、作成したディレクトリのオブジェクトIDを引数として、ディレクトリロックプログラム307のディレクトリロック取得処理を呼び出す(S1309)。 Next, the file system program 312 calls the directory lock acquisition process of the directory lock program 307 using the object ID of the created directory as an argument (S1309).
 次に、ファイルシステムプログラム312は、ディレクトリロック管理情報600において、作成したディレクトリのオブジェクトIDと一致するオブジェクトID602を有するエントリのロックカウント604を、1つ増加させる(S1310)。 Next, the file system program 312 increases the lock count 604 of the entry having the object ID 602 that matches the object ID of the created directory in the directory lock management information 600 by one (S1310).
 次に、ファイルシステムプログラム312は、親ディレクトリと、作成したディレクトリと、更新リストとの、パス名を引数として、マイグレーションプログラム309のマイグレーション処理を呼び出す(S1311)。これにより、ファイルシステムプログラム312は、親ディレクトリと、作成したディレクトリと、更新リストとを、CAS400に転送する。 Next, the file system program 312 calls the migration process of the migration program 309 using the path names of the parent directory, the created directory, and the update list as arguments (S1311). As a result, the file system program 312 transfers the parent directory, the created directory, and the update list to the CAS 400.
 マイグレーションプログラム309のマイグレーション処理の詳細は、次の通りである。マイグレーションプログラム309は、ファイル・ディレクトリ管理情報500を参照して、引数として受け取った処理対象のパス名をオブジェクトIDに変換する。次に、マイグレーションプログラム309は、ファイルシステムプログラム312を利用し、引数として受け取ったパス名が示すファイルやディレクトリをメモリ305に読み込む。次に、マイグレーションプログラム309は、前述の変換結果のオブジェクトIDと、メモリに読み込んだファイルやディレクトリのデータとを、引数として、CAS400へオブジェクト保存処理1600の実行を要求する。オブジェクト保存処理1600の詳細は後述する。次に、マイグレーションプログラム309は、オブジェクト保存処理1600の処理結果を呼び出し元に返す。 Details of the migration process of the migration program 309 are as follows. The migration program 309 refers to the file / directory management information 500 and converts the processing target path name received as an argument into an object ID. Next, the migration program 309 reads the file or directory indicated by the path name received as an argument into the memory 305 using the file system program 312. Next, the migration program 309 requests the CAS 400 to execute the object storage process 1600 using the object ID of the conversion result and the file or directory data read into the memory as arguments. Details of the object storage processing 1600 will be described later. Next, the migration program 309 returns the processing result of the object storage processing 1600 to the caller.
 次に、ファイルシステムプログラム312は、親ディレクトリのオブジェクトIDと、作成したディレクトリのオブジェクトIDとの夫々について、ディレクトリロック管理情報600のロックカウント604を1つ減少させる(S1312)。 Next, the file system program 312 decrements the lock count 604 of the directory lock management information 600 by 1 for each of the parent directory object ID and the created directory object ID (S1312).
 次に、ファイルシステムプログラム312は、ディレクトリロック管理情報600を参照し、親ディレクトリのオブジェクトIDと、作成したディレクトリのオブジェクトIDと、について、いずれのロックカウント604も0でない場合(S1313がNoの場合)、S1315に進む。 Next, the file system program 312 refers to the directory lock management information 600, and if any of the lock counts 604 is not 0 for the object ID of the parent directory and the object ID of the created directory (when S1313 is No) ), Go to S1315.
 一方、ファイルシステムプログラム312は、ディレクトリロック管理情報600を参照し、親ディレクトリのオブジェクトIDと、作成したディレクトリのオブジェクトIDと、について、少なくとも一方のロックカウント604が0である場合(S1313がYesの場合)、オブジェクトIDを引数として、ディレクトリロックプログラム307のディレクトリロック解放処理を呼び出す。このとき、どちらか一方のロックカウント604が0であれば、ファイルシステムプログラム312は、ロックカウント604が0である方のみに対してディレクトリロック解放処理を呼び出す。また、両者ともにロックカウント604が0であれば、ファイルシステムプログラム312は、両者に対して、ディレクトリロック解放処理を呼び出す(S1314)。 On the other hand, the file system program 312 refers to the directory lock management information 600, and when the lock count 604 of at least one of the parent directory object ID and the created directory object ID is 0 (Yes in S1313) The directory lock release process of the directory lock program 307 is called with the object ID as an argument. At this time, if one of the lock counts 604 is 0, the file system program 312 calls the directory lock release process only for the one where the lock count 604 is 0. If both have a lock count 604 of 0, the file system program 312 calls a directory lock release process for both (S1314).
 ディレクトリロックプログラム307のディレクトリロック解放処理の詳細は、次の通りである。ディレクトリロックプログラム307は、引数で指定されたオブジェクトIDを引数として、CAS400に対し、オブジェクト操作プログラム407のディレクトリアンロック処理の実行を要求する。 Details of the directory lock release processing of the directory lock program 307 are as follows. The directory lock program 307 requests the CAS 400 to execute the directory unlock processing of the object operation program 407 using the object ID specified by the argument as an argument.
 これを受けて、CAS400のオブジェクト操作プログラム407は、ディレクトリアンロック処理を実行する。ここでオブジェクト操作プログラム407は、ロック状態管理情報800から、引数で受け取ったオブジェクトIDに対応するロックファイル802のパス名を取得し、このパス名が示すファイルを、ファイルシステム413から削除する。次に、オブジェクト操作プログラム407は、引数で受け取ったオブジェクトIDについて、ロック状態803を未ロックに変更し、かつロックファイル802、ロック時刻804、再ロック時刻805の情報を初期化する。次に、オブジェクト操作プログラム407は、NAS300に結果を返す。 In response, the CAS 400 object operation program 407 executes directory unlock processing. Here, the object operation program 407 acquires the path name of the lock file 802 corresponding to the object ID received by the argument from the lock state management information 800, and deletes the file indicated by this path name from the file system 413. Next, for the object ID received as an argument, the object operation program 407 changes the lock state 803 to unlocked, and initializes information on the lock file 802, the lock time 804, and the relock time 805. Next, the object operation program 407 returns a result to the NAS 300.
 ディレクトリロックプログラム307は、CAS400から、ディレクトリアンロック処理の結果を受け取ると、ディレクトリロック管理情報600のうち、引数として受け取ったオブジェクトIDに対応するエントリの自NASによるロック状態603を、「ロック未取得」に変更するとともに、呼び出し元に結果を返す。 When the directory lock program 307 receives the result of the directory unlock processing from the CAS 400, the lock state 603 by the own NAS of the entry corresponding to the object ID received as an argument in the directory lock management information 600 is displayed as “unlocked”. And return the result to the caller.
 次に、次のディレクトリ作成要求がある場合(S1315がYesの場合)、ファイルシステムプログラム312は、S1301に戻る。 Next, when there is a next directory creation request (when S1315 is Yes), the file system program 312 returns to S1301.
 一方、次のディレクトリ作成要求がない場合(S1315がNoの場合)、ファイルシステムプログラム312は、ディレクトリ作成処理を終了する。 On the other hand, if there is no next directory creation request (S1315 is No), the file system program 312 ends the directory creation process.
 図14は、ディレクトリ削除処理1400の詳細を説明するためのフローチャートの一例である。 FIG. 14 is an example of a flowchart for explaining details of the directory deletion processing 1400.
 ディレクトリ削除処理1400は、クライアントPC201からのディレクトリ削除要求の受信を契機として、NAS300のCPU303で実行される。 The directory deletion process 1400 is executed by the CPU 303 of the NAS 300 when receiving a directory deletion request from the client PC 201.
 まず、NAS300のファイルシステムプログラム312が、ディレクトリ削除の要求を受信する(S1401)。 First, the file system program 312 of the NAS 300 receives a directory deletion request (S1401).
 次に、ファイルシステムプログラム312は、削除対象ディレクトリの親ディレクトリの自NASによるロック状態を確認する(S1402)。この処理の手順は、次の通りである。まず、ファイルシステムプログラム312は、引数で受け取った削除対象ディレクトリのパス名から、親ディレクトリのパス名を求める。次に、ファイル・ディレクトリ管理情報500を参照して、親ディレクトリのパス名をオブジェクトIDに変換する。次に、ファイルシステムプログラム312は、ディレクトリロック管理情報600のうち、親ディレクトリのオブジェクトIDに対応するエントリの自NASによるロック状態603が、取得済みか否か確認する。 Next, the file system program 312 confirms the lock status of the parent directory of the directory to be deleted by the own NAS (S1402). The procedure of this process is as follows. First, the file system program 312 obtains the path name of the parent directory from the path name of the deletion target directory received as an argument. Next, with reference to the file / directory management information 500, the path name of the parent directory is converted into an object ID. Next, the file system program 312 checks whether or not the lock state 603 by the own NAS of the entry corresponding to the object ID of the parent directory in the directory lock management information 600 has been acquired.
 親ディレクトリのディレクトリロックを取得済みであった場合(S1402がYesの場合)、ファイルシステムプログラム312は、ディレクトリロック管理情報600において、親ディレクトリのオブジェクトIDと一致するオブジェクトID602を有するエントリのロックカウント604を、1つ増加させ、S1408にすすむ(S1403)。S1308以降の処理は後述する。 When the directory lock of the parent directory has been acquired (when S1402 is Yes), the file system program 312 in the directory lock management information 600 has the lock count 604 of the entry having the object ID 602 that matches the object ID of the parent directory. Is increased by one and the process proceeds to S1408 (S1403). The processing after S1308 will be described later.
 一方、親ディレクトリのディレクトリロックを未取得であった場合(S1402がNoの場合)、ファイルシステムプログラム312は、次に示すS1404からS1407の処理を実行する。 On the other hand, when the directory lock of the parent directory has not been acquired (when S1402 is No), the file system program 312 executes the following processing from S1404 to S1407.
 ファイルシステムプログラム312は、親ディレクトリのオブジェクトIDを引数とし、ディレクトリロックプログラム307のディレクトリロック取得処理を呼び出す(S1304)。ディレクトリロック取得処理の詳細は、先述のとおりである。 The file system program 312 calls the directory lock acquisition process of the directory lock program 307 using the object ID of the parent directory as an argument (S1304). Details of the directory lock acquisition process are as described above.
 次に、ディレクトリロック取得処理の処理結果が失敗であった場合(S1405がNoの場合)、ファイルシステムプログラム312は、S1404に戻り、ディレクトリロックプログラム307のディレクトリロック取得処理を再実行する。ファイルシステムプログラム312は、再実行回数に予め上限回数を設定し、失敗を上限回数以上繰り返した場合、ディレクトリ作成処理を失敗としてもよい。 Next, when the processing result of the directory lock acquisition process is unsuccessful (when S1405 is No), the file system program 312 returns to S1404 and re-executes the directory lock acquisition process of the directory lock program 307. The file system program 312 may set the upper limit number for the re-execution number in advance, and if the failure is repeated more than the upper limit number, the directory creation process may be failed.
 一方、ディレクトリロック取得処理の処理結果が成功であった場合(S1405がYesの場合)、ファイルシステムプログラム312は、ディレクトリロック管理情報600において、親ディレクトリのオブジェクトIDと一致するオブジェクトID602を有するエントリのロックカウント604を、1つ増加させる(S1406)。 On the other hand, if the processing result of the directory lock acquisition process is successful (when S1405 is Yes), the file system program 312 reads the entry having the object ID 602 that matches the object ID of the parent directory in the directory lock management information 600. The lock count 604 is increased by 1 (S1406).
 次に、ファイルシステムプログラム312は、更新リスト取得・適用処理1500を呼び出す(S1407)。更新リスト取得・適用処理1500の詳細は後述する。 Next, the file system program 312 calls the update list acquisition / application processing 1500 (S1407). Details of the update list acquisition / application process 1500 will be described later.
 次に、ファイルシステムプログラム312は、引数で指定されたディレクトリを削除するとともに、削除の成否をエンドユーザに返却する(S1408)。このとき、ファイルシステムプログラム312は、ファイル・ディレクトリ管理情報500とディレクトリロック管理情報600に対し、削除したディレクトリのエントリを削除する。また、ファイルシステムプログラム312は、削除したディレクトリと親ディレクトリのパス名を記載した更新リストを作成する。なお、更新リストの形式は、ディレクトリの削除を、他のNASに通知できるものであれば、どのような情報であってもよい。 Next, the file system program 312 deletes the directory specified by the argument and returns the success or failure of the deletion to the end user (S1408). At this time, the file system program 312 deletes the entry of the deleted directory from the file / directory management information 500 and the directory lock management information 600. In addition, the file system program 312 creates an update list describing the deleted directory and the path name of the parent directory. The format of the update list may be any information as long as the deletion of the directory can be notified to other NAS.
 次に、ファイルシステムプログラム312は、親ディレクトリと、削除したディレクトリと、更新リストとの、パス名を引数として、マイグレーションプログラム309のマイグレーション処理を呼び出す(S1409)。これにより、ファイルシステムプログラム312は、親ディレクトリと、削除したディレクトリと、更新リストとを、CAS400に転送する。マイグレーション処理の詳細は、先述のとおりである。 Next, the file system program 312 calls the migration process of the migration program 309 using the path names of the parent directory, the deleted directory, and the update list as arguments (S1409). As a result, the file system program 312 transfers the parent directory, the deleted directory, and the update list to the CAS 400. The details of the migration process are as described above.
 次に、ファイルシステムプログラム312は、ディレクトリロック管理情報600において、親ディレクトリのオブジェクトIDと一致するオブジェクトID602を有するエントリのロックカウント604を、1つ減少させる(S1410)。 Next, the file system program 312 decrements the lock count 604 of the entry having the object ID 602 that matches the object ID of the parent directory in the directory lock management information 600 by one (S1410).
 次に、ファイルシステムプログラム312は、ディレクトリロック管理情報600のうち、親ディレクトリのオブジェクトIDに対応するエントリのロックカウント604が、0でない場合(S1411がNoの場合)、S1413に進む。 Next, when the lock count 604 of the entry corresponding to the object ID of the parent directory in the directory lock management information 600 is not 0 (when S1411 is No), the file system program 312 proceeds to S1413.
 一方、ファイルシステムプログラム312は、ディレクトリロック管理情報600のうち、親ディレクトリのオブジェクトIDに対応するエントリのロックカウント604が、0である場合(S1411がYesの場合)、親ディレクトリのオブジェクトIDを引数として、ディレクトリロックプログラム307のディレクトリロック解放処理を呼び出す(S1412)。ディレクトリロック解放処理の詳細は、先述の通りである。 On the other hand, when the lock count 604 of the entry corresponding to the object ID of the parent directory in the directory lock management information 600 is 0 (when S1411 is Yes), the file system program 312 uses the parent directory object ID as an argument. Then, the directory lock release process of the directory lock program 307 is called (S1412). Details of the directory lock release processing are as described above.
 次に、次のディレクトリ削除要求がある場合(S1413がYesの場合)、ファイルシステムプログラム312は、S1401に戻る。 Next, when there is a next directory deletion request (S1413 is Yes), the file system program 312 returns to S1401.
 一方、次のディレクトリ削除要求がない場合(S1413がNoの場合)、ファイルシステムプログラム312は、ディレクトリ削除処理を終了する。 On the other hand, when there is no next directory deletion request (S1413 is No), the file system program 312 ends the directory deletion process.
 図15は、更新リスト取得・適用処理1500の詳細を説明するためのフローチャートの一例である。 FIG. 15 is an example of a flowchart for explaining the details of the update list acquisition / application process 1500.
 更新リスト取得・適用処理1500は、ディレクトリ作成処理1300と、ディレクトリ削除処理と、からの呼び出しを契機として、NAS300のCPU303で実行される。なお、更新リスト取得・適用処理は、ディレクトリ作成処理1300と、ディレクトリ削除処理と、の実行にかかわらず、定期的に実行されてもよい。 The update list acquisition / application process 1500 is executed by the CPU 303 of the NAS 300 in response to a call from the directory creation process 1300 and the directory deletion process. Note that the update list acquisition / application process may be periodically executed regardless of the directory creation process 1300 and the directory deletion process.
 まず、更新リスト取得・適用プログラム308は、更新リストのオブジェクトIDと、バージョンとを、引数として、CAS400に対しオブジェクト読み込み処理1700の実行を要求することで、CAS400から更新リストを取得する(S1501)。このとき、更新リスト取得・適用プログラム308は、ファイル・ディレクトリ管理情報500から、更新リストのオブジェクトIDを取得する。また、更新リスト取得・適用プログラム308は、未取得の更新リストのバージョンが複数存在する場合、CAS400に対し、複数回のオブジェクト読み込み処理1700の実行を要求し、未取得の更新リストのバージョンを全て取得する。このとき、更新リスト取得・適用プログラム308は、性能向上のため、以前の更新リスト取得・適用処理1500実行時に取得した更新リストのバージョンを記録しておき、続きのバージョンから順に取得するようにしてもよい。また、1つのオブジェクトIDの複数バージョンを一度に取得できる処理をCAS400が提供している場合、更新リスト取得・適用プログラム308は、この処理を使用することで、CAS400への1回の処理要求のみで、未取得のバージョンの更新リストを全て取得しても良い。 First, the update list acquisition / application program 308 acquires the update list from the CAS 400 by requesting the CAS 400 to execute the object reading process 1700 using the object ID and version of the update list as arguments (S1501). . At this time, the update list acquisition / application program 308 acquires the object ID of the update list from the file / directory management information 500. The update list acquisition / application program 308 requests the CAS 400 to execute the object read processing 1700 multiple times when there are multiple versions of the update list that have not been acquired. get. At this time, the update list acquisition / application program 308 records the version of the update list acquired at the time of execution of the previous update list acquisition / application processing 1500 for performance improvement, and acquires it sequentially from the subsequent version. Also good. In addition, when CAS400 provides a process that can acquire multiple versions of one object ID at a time, the update list acquisition / application program 308 uses this process so that only one processing request to CAS400 can be made. Thus, all update lists of unacquired versions may be acquired.
 CAS400は、NAS300の要求に基づき、引数で指定されたオブジェクトIDと、バージョンと、を引数に、オブジェクト読み込み処理を実行し、その結果をNAS300に返す(S1502)。CAS400のオブジェクト読み込み処理1700の詳細は、後述する。 CAS 400 executes the object reading process using the object ID and version specified by the arguments as arguments based on the request from NAS 300, and returns the result to NAS 300 (S1502). Details of the object reading process 1700 of the CAS 400 will be described later.
 次に、更新リスト取得・適用プログラム308は、オブジェクト読み込み処理(S1502)の処理結果として得られた更新リストに記載されたファイルやディレクトリのパス名が示すファイルやディレクトリに、同期要フラグを設定する(S1503)。具体的には、更新リスト取得・適用プログラム308は、ファイル・ディレクトリ管理情報500のうち、更新リストに記載された全てのパス名の夫々に対応するエントリの同期要フラグ504を、ONにする。 Next, the update list acquisition / application program 308 sets a synchronization required flag to the file or directory indicated by the path name of the file or directory described in the update list obtained as a result of the object reading process (S1502). (S1503). Specifically, the update list acquisition / application program 308 turns on the synchronization required flag 504 of the entry corresponding to each of all the path names described in the update list in the file / directory management information 500.
 次に、更新リスト取得・適用プログラム308は、ファイル・ディレクトリ管理情報500のうち、これから自NASにより更新しようとしている更新対象ディレクトリの同期要フラグ504がONである場合(S1504がYesの場合)、当該ディレクトリのパス名を引数として、ディレクトリ同期処理900を呼び出す(S1505)。ここで、更新対象ディレクトリは、ディレクトリ作成処理1300や、ディレクトリ削除処理1400の親ディレクトリである。 Next, the update list acquisition / application program 308, in the file / directory management information 500, when the synchronization required flag 504 of the update target directory to be updated by the own NAS is ON (when S1504 is Yes) The directory synchronization processing 900 is called using the path name of the directory as an argument (S1505). Here, the update target directory is a parent directory of the directory creation process 1300 and the directory deletion process 1400.
 一方、更新リスト取得・適用プログラム308は、ファイル・ディレクトリ管理情報500のうち、更新対象ディレクトリの同期要フラグ504がOFFである場合(S1504がNoの場合)、そのまま更新リスト取得・適用処理1500を終了する。 On the other hand, in the file / directory management information 500, the update list acquisition / application program 308 executes the update list acquisition / application processing 1500 as it is when the synchronization required flag 504 of the update target directory is OFF (when S1504 is No). finish.
 以上の処理によれば、NAS300が更新リストに示されたオブジェクトに同期要フラグを設定し、更新対象のオブジェクトに対して同期要フラグが設定されている場合にディレクトリ同期処理を実行することにより、更新対象のオブジェクトを更新する前に、更新対象のオブジェクトをCAS400内の適切なバージョンに一致させることができる。 According to the above processing, the NAS 300 sets the synchronization required flag for the object shown in the update list, and executes the directory synchronization processing when the synchronization required flag is set for the object to be updated. Prior to updating the object to be updated, the object to be updated can be matched to the appropriate version in CAS 400.
 図16は、オブジェクト保存処理1600の詳細を説明するためのフローチャートの一例である。 FIG. 16 is an example of a flowchart for explaining the details of the object saving process 1600.
 オブジェクト保存処理1600は、NAS300のマイグレーションプログラム309のマイグレーション処理からの要求を契機に、CAS400のCPU405において実行される。 The object storage process 1600 is executed in the CPU 405 of the CAS 400 in response to a request from the migration process of the migration program 309 of the NAS 300.
 まず、オブジェクト操作プログラム407は、NAS300から受信したデータを、ファイルシステム413に、ファイルやディレクトリとして書き出す(S1601)。 First, the object operation program 407 writes the data received from the NAS 300 as a file or directory in the file system 413 (S1601).
 次に、オブジェクト操作プログラム407は、NAS300から引数として受け取ったオブジェクトIDが、すでにオブジェクト管理情報700に存在するか否か、検索する(S1602)。 Next, the object operation program 407 searches whether the object ID received as an argument from the NAS 300 already exists in the object management information 700 (S1602).
 オブジェクト管理情報700の検索の結果、NAS300に指定されたオブジェクトIDがすでに存在した場合(S1603がYesの場合)、オブジェクト操作プログラム407は、NAS300から保存を要求されたデータのバージョンを、オブジェクト管理情報700に登録されている当該オブジェクトIDの最新バージョンの次のバージョンとする(S1604)。 If the object ID specified in the NAS 300 already exists as a result of the search of the object management information 700 (S1603 is Yes), the object operation program 407 displays the version of the data requested to be saved from the NAS 300 by the object management information. The next version of the latest version of the object ID registered in 700 is set (S1604).
 オブジェクト管理情報700の検索の結果、NAS300に指定されたオブジェクトIDが存在しなかった場合(S1603がNoの場合)、オブジェクト操作プログラム407は、バージョンを1とする(S1604)。なお、このときのバージョンは、最初のバージョンであることが識別できるものであれば、どのようなものでもよい。 If the object ID specified in the NAS 300 does not exist as a result of the search of the object management information 700 (S1603 is No), the object operation program 407 sets the version to 1 (S1604). The version at this time may be any version as long as it can be identified as the first version.
 次に、オブジェクト操作プログラム407は、オブジェクト管理情報700へ、エントリを追加する。このとき、オブジェクト操作プログラム407は、NAS300から引数として受け取った値を当該エントリのオブジェクトID701へ登録し、S1604もしくはS1605で決定した値を当該エントリのバージョン702へ登録し、現在時刻を当該エントリの作成時刻703へ登録し、S1601でファイルシステム413データを保存したファイルやディレクトリのパス名を当該エントリのパス名704へ登録するとともに、処理結果を要求元であるNAS300に返信する(S1606) Next, the object operation program 407 adds an entry to the object management information 700. At this time, the object operation program 407 registers the value received as an argument from the NAS 300 in the object ID 701 of the entry, registers the value determined in S1604 or S1605 in the version 702 of the entry, and creates the current time of the entry. Register the path name of the file or directory in which the file system 413 data was stored in S1601 in S1601, and register the processing result in the path name 704 of the entry, and return the processing result to the NAS 300 that is the request source (S1606)
 図17は、実施例1、3におけるオブジェクト読み込み処理1700の詳細を説明するためのフローチャートの一例である。 FIG. 17 is an example of a flowchart for explaining details of the object reading process 1700 in the first and third embodiments.
 オブジェクト読み込み処理1700は、NAS300のディレクトリ同期プログラム306のCAS上データ取得処理1100と、更新リスト取得・適用プログラム308の更新リスト取得・適用処理1500との、何れかからの要求を契機に、CAS400のCPU405において実行される。 The object read processing 1700 is triggered by a request from one of the CAS data acquisition processing 1100 of the NAS 300 directory synchronization program 306 and the update list acquisition / application processing 1500 of the update list acquisition / application program 308. It is executed in the CPU 405.
 まず、オブジェクト操作プログラム407は、オブジェクト管理情報700のうち、NAS300から引数として受け取ったオブジェクトIDと一致するオブジェクトID701を有するエントリを、全てのバージョンに亘って抽出する(S1701)。 First, the object operation program 407 extracts an entry having an object ID 701 that matches the object ID received from the NAS 300 as an argument from the object management information 700 over all versions (S1701).
 次に、NAS300から引数としてバージョンが指定されている場合(S1702がYesの場合)、オブジェクト操作プログラム407は、S1701の処理結果から、指定されたバージョンのエントリを探索する(S1704)。 Next, when the version is specified as an argument from the NAS 300 (when S1702 is Yes), the object operation program 407 searches for the entry of the specified version from the processing result of S1701 (S1704).
 一方、NAS300から引数としてバージョンが指定されていない場合(S1702がNoの場合)、オブジェクト操作プログラム407は、S1701の処理結果から、最新バージョンのエントリを探索する(S1705)。 On the other hand, if the version is not specified as an argument from the NAS 300 (S1702 is No), the object operation program 407 searches for the latest version entry from the processing result of S1701 (S1705).
 次に、オブジェクト操作プログラム407は、S1704もしくはS1705の処理結果として得たエントリのパス名704を引数として、ファイルシステムプログラム408を呼び出し、パス名704が示すファイルもしくはディレクトリのデータを、ファイルシステム413から読み込む(S1706)。 Next, the object operation program 407 calls the file system program 408 using the path name 704 of the entry obtained as the processing result of S1704 or S1705 as an argument, and the file or directory data indicated by the path name 704 is read from the file system 413. Read (S1706).
 次に、オブジェクト操作プログラム407は、読み込んだファイルもしくはディレクトリのデータを、要求元であるNAS300に返信する(S1706)。 Next, the object operation program 407 returns the read file or directory data to the requesting NAS 300 (S1706).
 図18は、ディレクトリロック処理1800の詳細を説明するためのフローチャートの一例である。 FIG. 18 is an example of a flowchart for explaining the details of the directory lock processing 1800.
 ディレクトリロック処理1800は、NAS300のディレクトリロックプログラム307のディレクトリロック取得処理からの要求を契機に、CAS400のCPU405において実行される。 The directory lock processing 1800 is executed by the CPU 405 of the CAS 400 in response to a request from the directory lock acquisition processing of the directory lock program 307 of the NAS 300.
 まず、オブジェクト操作プログラム407は、ロック状態管理情報800において、NAS300から引数として受け取ったオブジェクトIDと一致するオブジェクトID801を有するエントリを検索する(S1801)。 First, the object operation program 407 searches the lock state management information 800 for an entry having an object ID 801 that matches the object ID received as an argument from the NAS 300 (S1801).
 次に、S1801の検索結果として得られたエントリのロック状態803が未ロックであった場合(S1802がNoの場合)、オブジェクト操作プログラム407は、S1803からS1807の処理を実行する。 Next, when the lock state 803 of the entry obtained as a search result of S1801 is not locked (when S1802 is No), the object operation program 407 executes the processing from S1803 to S1807.
 まず、オブジェクト操作プログラム407は、ファイルシステムプログラム408を呼び出し、当該オブジェクトのロックを示すためのロックファイルをファイルシステム413内に作成する(S1803)。このロックファイルのパス名の決定方法は、どのような方法であっても良い。例えば、オブジェクト操作プログラム407は、NAS300から引数として受け取ったオブジェクトIDの後ろに“.lock”という文字列を付与したものをファイル名とし、ロック対象のオブジェクトと同一のディレクトリに保存する。 First, the object operation program 407 calls the file system program 408 and creates a lock file in the file system 413 to indicate the lock of the object (S1803). Any method may be used for determining the path name of the lock file. For example, the object operation program 407 saves the object ID received as an argument from the NAS 300 with a character string “.lock” as a file name in the same directory as the object to be locked.
 次に、オブジェクト操作プログラム407は、ロック状態管理情報800のうち、処理対象のオブジェクトIDに対応するエントリのロックファイル802を、S1803で作成したファイルのパス名に更新する(S1804)。 Next, the object operation program 407 updates the lock file 802 of the entry corresponding to the object ID to be processed in the lock state management information 800 with the path name of the file created in S1803 (S1804).
 次に、オブジェクト操作プログラム407は、ロック状態管理情報800のうち、処理対象のオブジェクトIDに対応するエントリのロック状態803を、ロック済みに更新する(S1805)。 Next, the object operation program 407 updates the lock state 803 of the entry corresponding to the object ID to be processed in the lock state management information 800 to be locked (S1805).
 次に、オブジェクト操作プログラム407は、ロック状態管理情報800のうち、処理対象のオブジェクトIDに対応するエントリのロック時刻804を、現在時刻に更新する(S1806)。 Next, the object operation program 407 updates the lock time 804 of the entry corresponding to the object ID to be processed in the lock state management information 800 to the current time (S1806).
 次に、オブジェクト操作プログラム407は、ロック成功を、要求元であるNAS300に返信する(S1807)。 Next, the object operation program 407 returns a lock success to the requesting NAS 300 (S1807).
 一方、S1801の検索結果として得られたエントリのロック状態803がロック済みであり(S1802がYesの場合)、かつS1801の検索結果として得られたエントリに基づく最新ロック時刻からの経過時間がロック時間閾値以上である場合(S1808がYesの場合)、オブジェクト操作プログラム407は、次に示すS1809とS1807の処理を実行する。なお、このロック時間閾値は、どのような値であっても良い。ここでオブジェクト操作プログラム407は、S1801の検索結果として得られたエントリに再ロック時刻804が登録されていない場合、ロック時刻804を最新ロック時刻とみなし、当該エントリに再ロック時刻804が登録されている場合、再ロック時刻805を最新ロック時刻とみなす。 On the other hand, the lock state 803 of the entry obtained as the search result of S1801 is already locked (when S1802 is Yes), and the elapsed time from the latest lock time based on the entry obtained as the search result of S1801 is the lock time. If it is equal to or greater than the threshold value (when S1808 is Yes), the object operation program 407 executes the following processes of S1809 and S1807. The lock time threshold may be any value. Here, when the relock time 804 is not registered in the entry obtained as the search result of S1801, the object operation program 407 regards the lock time 804 as the latest lock time, and the relock time 804 is registered in the entry. If it is, the relock time 805 is regarded as the latest lock time.
 まず、オブジェクト操作プログラム407は、ロック状態管理情報800のうち、処理対象のオブジェクトIDに対応するエントリの再ロック時刻805を、現在時刻に更新する(S1809)。これにより、処理対象のここまでのロックは失効し、処理対象は続いて再ロックされる。 First, the object operation program 407 updates the relock time 805 of the entry corresponding to the object ID to be processed in the lock state management information 800 to the current time (S1809). As a result, the processing target lock thus far expires, and the processing target is subsequently re-locked.
 次に、オブジェクト操作プログラム407は、ロック成功を、要求元であるNAS300に返信する(S1807)。 Next, the object operation program 407 returns a lock success to the requesting NAS 300 (S1807).
 また、S1801の検索結果として得られたエントリのロック状態803がロック済みであり(S1802がYesの場合)、かつS1801の検索結果として得られたエントリに基づく最新ロック時刻からの経過時間の少なくともがロック時間閾値より短い場合(S1808がNoの場合)、オブジェクト操作プログラム407は、ロック失敗を、要求元であるNAS300に返信する(S1810)。 In addition, the lock state 803 of the entry obtained as the search result of S1801 is locked (when S1802 is Yes), and at least the elapsed time from the latest lock time based on the entry obtained as the search result of S1801 is When it is shorter than the lock time threshold value (when S1808 is No), the object operation program 407 returns a lock failure to the NAS 300 that is the request source (S1810).
 以上のディレクトリロック処理1800によれば、NAS300は、当該オブジェクトのロック時刻に基づいて直前バージョンの当該オブジェクトをCAS400から取得することができる。また、CAS400は、ロック時刻及び再ロック時刻のうち最新の時刻に基づいて、ロックの失効を判定することができる。 According to the above directory lock processing 1800, the NAS 300 can acquire the object of the immediately previous version from the CAS 400 based on the lock time of the object. Further, the CAS 400 can determine the lock expiration based on the latest time among the lock time and the relock time.
 ディレクトリ更新のトランザクションをCASで管理する方式では、CASがトランザクション管理のための専用機能を有する必要があり、汎用的なパブリッククラウド等を使用することができない。 In the method of managing directory update transactions with CAS, CAS needs to have a dedicated function for transaction management, and a general public cloud cannot be used.
 本実施例によれば、NAS300がオブジェクトのバージョンを選択して同期することにより、CAS400が特別な機能を有していなくても、複数のNAS300の間でファイルシステム318のディレクトリ構造の一貫性を保つことができる。 According to this embodiment, the NAS 300 selects and synchronizes the object versions, so that the directory structure of the file system 318 can be made consistent among a plurality of NAS 300 even if the CAS 400 does not have a special function. Can keep.
 次に、本発明の実施例2について説明する。以下、実施例1との相違点を主に説明し、実施例1との共通点については、説明を省略又は簡略する。 Next, Example 2 of the present invention will be described. Hereinafter, differences from the first embodiment will be mainly described, and description of common points with the first embodiment will be omitted or simplified.
 実施例2では、同期対象のディレクトリが、CAS400でロックされていた場合、CAS400がロック時刻より古いバージョンのうち最も後のバージョンを検索する。 In Example 2, when the synchronization target directory is locked by CAS 400, CAS 400 searches for the latest version among the versions older than the lock time.
 実施例2は、NAS300が同期対象のディレクトリのバージョン一覧をCAS400から取得する必要がないため、通信量が削減され、性能向上が期待できる。一方、「指定された時刻より古いバージョンの中から最も後のバージョンを検索し、検索結果のバージョンのデータをNAS300に返信する」という機能をCAS400が持っていない場合、実施例2を利用することはできない。したがって、この機能をCAS400が備えている場合は実施例2を利用し、そうでない場合は実施例2を利用すると良い。 In Example 2, it is not necessary for the NAS 300 to acquire the version list of the directory to be synchronized from the CAS 400, so the amount of communication can be reduced and performance improvement can be expected. On the other hand, if CAS400 does not have the function of “search for the latest version from versions older than the specified time and send the search result version data back to NAS300”, use Example 2. I can't. Therefore, when the CAS 400 has this function, the second embodiment is used, and when it is not, the second embodiment may be used.
 実施例2の計算機システムの構成は、図2と、図3と、図4と、に示した実施例1の計算機システムの構成と同じである。しかし、実施例2では、図9で示したディレクトリ同期処理と、図11で示したCAS上データ取得処理と、図17で示したオブジェクト読み込み処理との詳細が、実施例1と異なる。したがって、実施例2においては、ディレクトリ同期処理と、CAS上データ取得処理と、オブジェクト読み込み処理と、は、以降に記載する処理を利用する。 The configuration of the computer system of the second embodiment is the same as the configuration of the computer system of the first embodiment shown in FIG. 2, FIG. 3, and FIG. However, the second embodiment differs from the first embodiment in details of the directory synchronization process shown in FIG. 9, the CAS data acquisition process shown in FIG. 11, and the object reading process shown in FIG. Therefore, in the second embodiment, the directory synchronization process, the CAS data acquisition process, and the object reading process use processes described below.
 図19は、実施例2におけるディレクトリ同期処理1900の詳細を説明するためのフローチャートである。 FIG. 19 is a flowchart for explaining the details of the directory synchronization processing 1900 in the second embodiment.
 ディレクトリ同期処理1900は、更新リスト取得・適用処理1500の呼び出しと、ファイル・ディレクトリ管理情報500の同期要フラグ504がONであるディレクトリへのNAS300のエンドユーザによるアクセスとの、何れかを契機として、NAS300のCPU303で実行される。 The directory synchronization processing 1900 is triggered by either the call of the update list acquisition / application processing 1500 or the access by the end user of the NAS 300 to the directory for which the synchronization required flag 504 of the file / directory management information 500 is ON. It is executed by CPU303 of NAS300.
 まず、ディレクトリ同期プログラム306は、引数として受け取った処理対象のパス名を引数として、CAS上データ取得処理2000を呼び出す(S1901)。CAS上データ取得処理2000の処理結果として、ディレクトリ同期プログラム306は、ディレクトリのデータと、バージョンとを得る。 First, the directory synchronization program 306 calls the CAS data acquisition process 2000 using the path name to be processed received as an argument as an argument (S1901). As a result of the CAS data acquisition process 2000, the directory synchronization program 306 obtains directory data and version.
 次に、ディレクトリ同期プログラム306は、引数として受け取った処理対象のパス名を引数として、NAS上ディレクトリ読み込み処理を実行し、NAS300がファイルシステム318に格納している処理対象ディレクトリを読み込む(S1902)。NAS上ディレクトリ読み込み処理は、ファイルシステムプログラム312を呼び出すことで、ファイルシステム318から、引数で受け取ったパス名が示すディレクトリを読み込む。 Next, the directory synchronization program 306 executes a directory reading process on the NAS using the path name of the processing target received as an argument, and reads the processing target directory stored in the file system 318 by the NAS 300 (S1902). The directory reading process on the NAS reads the directory indicated by the path name received as an argument from the file system 318 by calling the file system program 312.
 次に、ディレクトリ同期プログラム306は、CAS上データ取得処理(S1901)の処理結果として得たディレクトリと、NAS上ディレクトリ読み込み処理(S1902)の処理結果として得たディレクトリとを比較し、CAS400から取得したディレクトリにおいて作成または削除されているディレクトリエントリを抽出し、NAS300のファイルシステム318内で対応するディレクトリにおいても同様の作成または削除を実施する(S1903)。この作成と削除の実施のため、ディレクトリ同期プログラム306は、ファイルシステムプログラム312を呼び出す。 Next, the directory synchronization program 306 compares the directory obtained as a result of the CAS data acquisition process (S1901) with the directory obtained as a result of the NAS directory read process (S1902), and obtains it from CAS400. A directory entry created or deleted in the directory is extracted, and the same creation or deletion is performed in the corresponding directory in the file system 318 of the NAS 300 (S1903). In order to perform this creation and deletion, the directory synchronization program 306 calls the file system program 312.
 次に、CAS上データ取得処理(S1901)の処理結果として得たバージョンが最新バージョンであった場合(S1904がYesの場合)、ディレクトリ同期プログラム306は、ファイル・ディレクトリ管理情報500のエントリのうち、引数として受け取った処理対象のパス名と一致するパス名501を有するエントリの同期要フラグ504を、OFFに変更する(S1905)。 Next, when the version obtained as a result of the CAS data acquisition process (S1901) is the latest version (when S1904 is Yes), the directory synchronization program 306 includes the entries in the file / directory management information 500. The synchronization required flag 504 of the entry having the path name 501 that matches the processing target path name received as an argument is changed to OFF (S1905).
 一方、CAS上データ取得処理(S1901)の処理結果として得たバージョンが最新バージョンでなかった場合(S1904がNoの場合)、ディレクトリ同期プログラム306は、ファイル・ディレクトリ管理情報500のエントリのうち、引数として受け取った処理対象のパス名と一致するパス名501を有するエントリの同期要フラグ504を、ONのまま維持する(S1906)。 On the other hand, if the version obtained as a result of the data acquisition process on CAS (S1901) is not the latest version (if S1904 is No), the directory synchronization program 306 uses the arguments in the file / directory management information 500 entries. The synchronization necessity flag 504 of the entry having the path name 501 that matches the path name to be processed received as is kept ON (S1906).
 図20は、実施例2におけるCAS上データ取得処理2000の詳細を説明するためのフローチャートの一例である。 FIG. 20 is an example of a flowchart for explaining details of the on-CAS data acquisition processing 2000 according to the second embodiment.
 CAS上データ取得処理2000は、実施例2におけるディレクトリ同期処理900からの呼び出しを契機として、NAS300のCPU303で実行される。 The CAS data acquisition process 2000 is executed by the CPU 303 of the NAS 300 in response to a call from the directory synchronization process 900 in the second embodiment.
 まず、ディレクトリ同期プログラム306は、ファイル・ディレクトリ管理情報500を参照して、引数として受け取った処理対象のパス名をオブジェクトIDに変換し、この変換結果のオブジェクトIDを引数として、CAS400へロック確認処理の実行を要求する(S2001)。 First, the directory synchronization program 306 refers to the file / directory management information 500, converts the path name of the processing target received as an argument into an object ID, and lock confirmation processing to the CAS 400 using the object ID of this conversion result as an argument Is requested to execute (S2001).
 CAS400は、NAS300からの要求に基づき、ロック確認処理を実行する(S2002)。CAS400のロック確認処理の詳細は、実施例1で説明した通りである。 CAS400 executes lock confirmation processing based on the request from NAS300 (S2002). Details of the CAS 400 lock confirmation processing are as described in the first embodiment.
 ロック確認処理(S2002)の処理結果が未ロックであった場合(S2003がNoであった場合)、ディレクトリ同期プログラム306は、時刻指定無しで、当該オブジェクトIDを引数として、CAS400へオブジェクト読み込み処理2100の実行を要求する(S2004)。 When the processing result of the lock confirmation processing (S2002) is not locked (when S2003 is No), the directory synchronization program 306 reads the object 2700 into the CAS 400 using the object ID as an argument without specifying the time. Is requested to execute (S2004).
 一方、ロック確認処理(S2002)の処理結果がロック済みであった場合(S2003がYesであった場合)、ディレクトリ同期プログラム306は、S2005とS2007を実行する。 On the other hand, when the processing result of the lock confirmation processing (S2002) has been locked (when S2003 is Yes), the directory synchronization program 306 executes S2005 and S2007.
 ます、ディレクトリ同期プログラム306は、当該オブジェクトIDを引数として、CAS400へ、ロック時刻取得処理の実行を要求する(S2005)。このオブジェクトIDは、S2001において引数としたオブジェクトIDと同一である。 The directory synchronization program 306 requests the CAS 400 to execute the lock time acquisition process using the object ID as an argument (S2005). This object ID is the same as the object ID used as an argument in S2001.
 CAS400は、NAS300からの要求に基づき、ロック時刻取得処理を実行する(S2006)。CAS400のロック時刻取得処理の詳細は、実施例1で説明した通りである。 CAS 400 executes lock time acquisition processing based on a request from NAS 300 (S2006). Details of the lock time acquisition processing of the CAS 400 are as described in the first embodiment.
 次に、ディレクトリ同期プログラム306は、ロック時刻取得処理(S2006)の処理結果として得たロック時刻と、当該オブジェクトIDとを引数として、CAS400へオブジェクト読み込み処理2100の実行を要求する(S2007)。このオブジェクトIDは、S2001において引数としたオブジェクトIDと同一である。 Next, the directory synchronization program 306 requests the CAS 400 to execute the object reading process 2100 with the lock time obtained as a result of the lock time acquisition process (S2006) and the object ID as arguments (S2007). This object ID is the same as the object ID used as an argument in S2001.
 CAS400は、NAS300からの要求に従い、オブジェクト読み込み処理2100を実行する(S2008)。オブジェクト読み込み処理2100の詳細は、後述する。 CAS 400 executes object reading processing 2100 according to the request from NAS 300 (S2008). Details of the object reading process 2100 will be described later.
 次に、ディレクトリ同期プログラム306は、オブジェクト読み込み処理(S2008)の処理結果として得たデータを、NAS300のメモリ305に保存する(S2009)。 Next, the directory synchronization program 306 stores the data obtained as a result of the object reading process (S2008) in the memory 305 of the NAS 300 (S2009).
 次に、ディレクトリ同期プログラム306は、S2009においてデータを保存したメモリ305内のアドレスと、CAS400から取得したディレクトリのバージョンとを、呼び出し元に返す(S2010)。なお、このバージョンは、最新バージョンを取得したか否かを示す情報のみでも良い。 Next, the directory synchronization program 306 returns the address in the memory 305 that stores the data in S2009 and the directory version acquired from the CAS 400 to the caller (S2010). Note that this version may be only information indicating whether or not the latest version has been acquired.
 以上のCAS上データ取得処理2000によれば、NAS300は、ロック時刻を含む要求をCAS400へ送信することにより、CAS400から更新の直前バージョンのオブジェクトを取得することができる。 According to the above CAS data acquisition process 2000, the NAS 300 can acquire the object of the version immediately before the update from the CAS 400 by sending a request including the lock time to the CAS 400.
 図21は、実施例2におけるオブジェクト読み込み処理2100の詳細を説明するためのフローチャートの一例である。 FIG. 21 is an example of a flowchart for explaining details of the object reading process 2100 according to the second embodiment.
 オブジェクト読み込み処理2100は、NAS300のディレクトリ同期プログラム306のCAS上データ取得処理2000と、更新リスト取得・適用プログラム308の更新リスト取得・適用処理1500との、何れかからの要求を契機に、CAS400のCPU405において実行される。 The object reading process 2100 is triggered by a request from one of the CAS data acquisition process 2000 of the NAS 300 directory synchronization program 306 and the update list acquisition / application process 1500 of the update list acquisition / application program 308. It is executed in the CPU 405.
 まず、オブジェクト操作プログラム407は、オブジェクト管理情報700において、NAS300から引数として受け取ったオブジェクトIDと一致するオブジェクトID701を有するエントリを、全てのバージョンに亘って抽出する(S2101)。 First, the object operation program 407 extracts an entry having an object ID 701 that matches the object ID received as an argument from the NAS 300 in all object management information 700 over all versions (S2101).
 次に、NAS300から引数としてバージョンが指定されている場合(S2102がYesの場合)、オブジェクト操作プログラム407は、S2101の処理結果から、指定されたバージョンのエントリを探索する(S2103)。 Next, when a version is specified as an argument from the NAS 300 (when S2102 is Yes), the object operation program 407 searches for an entry of the specified version from the processing result of S2101 (S2103).
 一方、NAS300から引数としてバージョンが指定されておらず(S1702がNoの場合)、かつNAS300から引数として時刻が指定されている場合(S2104がYesの場合)、オブジェクト操作プログラム407は、S2101の処理結果から、指定された時刻より古い作成時刻703を有し且つ最も後のバージョン702を有するエントリを探索する(S2105)。 On the other hand, when the version is not specified as an argument from the NAS 300 (when S1702 is No) and the time is specified as an argument from the NAS 300 (when S2104 is Yes), the object operation program 407 performs the process of S2101. Based on the result, an entry having a creation time 703 older than the specified time and having the latest version 702 is searched (S2105).
 また、NAS300から引数としてバージョンが指定されておらず(S1702がNoの場合)、かつNAS300から引数として時刻が指定されていない場合(S2104がNoの場合)、オブジェクト操作プログラム407は、S2101の処理結果から、最新のバージョン702を有するエントリを探索する(S2106)。 If the version is not specified as an argument from the NAS 300 (when S1702 is No) and the time is not specified as an argument from the NAS 300 (when S2104 is No), the object operation program 407 performs the processing of S2101. From the result, an entry having the latest version 702 is searched (S2106).
 次に、オブジェクト操作プログラム407は、ファイルシステムプログラム408を呼び出すことで、S2103、S2105、又はS2106の探索結果として得たエントリのパス名704が示すファイルやディレクトリのデータをファイルシステム413から読み込む(S2107)。 Next, the object operation program 407 calls the file system program 408 to read from the file system 413 the file or directory data indicated by the entry path name 704 obtained as a search result of S2103, S2105, or S2106 (S2107). ).
 次に、オブジェクト操作プログラム407は、S2107で読み込んだデータを、要求元であるNAS300に返信する(S2108)。 Next, the object operation program 407 returns the data read in S2107 to the NAS 300 that is the request source (S2108).
 本実施例によれば、NAS300の更新対象のオブジェクトがロックされている場合、CAS400がロック時刻に基づいて更新の直前バージョンのオブジェクトを特定し、NAS300へ送信することにより、NAS300は、ファイルシステム318内の当該オブジェクトを直前バージョンに同期させることができる。 According to the present embodiment, when the update target object of the NAS 300 is locked, the CAS 400 identifies the object of the version immediately before the update based on the lock time, and transmits it to the NAS 300. Can be synchronized with the previous version.
 次に、本発明の実施例3について説明する。以下、実施例1との相違点を主に説明し、実施例1との共通点については、説明を省略又は簡略する。 Next, Example 3 of the present invention will be described. Hereinafter, differences from the first embodiment will be mainly described, and description of common points with the first embodiment will be omitted or simplified.
 実施例3では、複数のディレクトリのロックが取得され、複数のディレクトリが更新されて、障害が発生した場合、NAS300は、そのうち1つのディレクトリがアンロックされていれば、同期対象のディレクトリがアンロックされていなくとも、ロック時刻より新しいバージョンに同期する。例えば、対象ディレクトリをその親ディレクトリAの下から、それと異なるディレクトリBの下へ移動する場合、まず2つのディレクトリA、Bをロックして、次に対象ディレクトリを移動し、次にCAS400上の2つのディレクトリA、Bを更新し、最後に2つのディレクトリA、Bをアンロックする。この場合、実施例3は有用である。複数のディレクトリのロックを取得する場合は、子のディレクトリBを持つディレクトリAを削除する場合であってもよい。 In the third embodiment, when a plurality of directories are acquired, a plurality of directories are updated, and a failure occurs, the NAS 300 unlocks the directory to be synchronized if one of the directories is unlocked. If not, sync to a newer version than the lock time. For example, when moving the target directory from below the parent directory A to a different directory B, first lock the two directories A and B, then move the target directory, and then move 2 on the CAS400. Update two directories A and B, and finally unlock the two directories A and B. In this case, Example 3 is useful. When acquiring locks of a plurality of directories, a directory A having a child directory B may be deleted.
 同時にロックした2つのディレクトリA、Bのうち、片方のディレクトリのみアンロックされた状態が発生したとき、前述のディレクトリ同期処理1900のように、アンロックされているディレクトリは移動後のバージョンに同期し、ロックされたままのディレクトリは移動前のバージョンに同期することは避ける必要がある。このとき、実施例3であれば、共にロックされていた複数のディレクトリの少なくとも一つがアンロックされていたとき、NAS300は、複数のディレクトリの全てを、ロック後、つまり更新後のバージョンに同期できる。 When one of the two directories A and B locked at the same time is unlocked, the unlocked directory is synchronized with the moved version, as in the directory synchronization process 1900 described above. You should avoid synchronizing locked directories with the previous version. At this time, in the third embodiment, when at least one of the plurality of directories locked together is unlocked, the NAS 300 can synchronize all of the plurality of directories with the locked version, that is, the updated version. .
 したがって、複数のディレクトリを同時にロックし、CAS400上の複数のディレクトリを更新し、これらのディレクトリをアンロックするという処理を採用している場合、実施例3を利用すると良い。一方、そのような処理を採用していない場合、実施例1、もしくは実施例2を利用すると良い。 Therefore, when a process of simultaneously locking a plurality of directories, updating a plurality of directories on the CAS 400, and unlocking these directories is employed, the third embodiment may be used. On the other hand, when such processing is not employed, the first embodiment or the second embodiment may be used.
 また、実施例3は、実施例2と併用しても良い。 In addition, Example 3 may be used in combination with Example 2.
 実施例3の計算機システムの構成は、図2と、図3と、図4と、に示した実施例1の計算機システムの構成と同じである。しかし、実施例3では、図8に示したロック状態管理情報の構成と、図10に示した同期バージョン確定処理と、図18に示したディレクトリロック処理との詳細が、実施例1と異なる。したがって、実施例3において、ロック状態管理情報と、同期バージョン確定処理と、ディレクトリロック処理と、は、以降に記載する処理を利用する。 The configuration of the computer system of the third embodiment is the same as the configuration of the computer system of the first embodiment shown in FIG. 2, FIG. 3, and FIG. However, the third embodiment differs from the first embodiment in the details of the configuration of the lock state management information shown in FIG. 8, the synchronization version confirmation process shown in FIG. 10, and the directory lock process shown in FIG. Therefore, in the third embodiment, the lock state management information, the synchronization version determination process, and the directory lock process use processes described below.
 図22は、実施例3のCAS400内のロック状態管理情報2200の構成例を示す。 FIG. 22 shows a configuration example of the lock state management information 2200 in the CAS 400 of the third embodiment.
 ロック状態管理情報2200は、オブジェクトID801と、ロックファイル802と、ロック状態803と、ロック時刻804と、再ロック時刻805と、関連ロック対象2201と、を1エントリとして構成する。 The lock state management information 2200 includes an object ID 801, a lock file 802, a lock state 803, a lock time 804, a relock time 805, and a related lock target 2201 as one entry.
 オブジェクトID801と、ロックファイル802と、ロック状態803と、ロック時刻804と、再ロック時刻805と、は、実施例1、2におけるロック状態管理情報800と同様である。 The object ID 801, the lock file 802, the lock state 803, the lock time 804, and the relock time 805 are the same as the lock state management information 800 in the first and second embodiments.
 関連ロック対象2201は、当該エントリのオブジェクトID801に示されるオブジェクトをロックするNAS300が、同時にロックして更新しようとしているオブジェクトのオブジェクトIDを示す。この情報は、ディレクトリロック処理の引数として、NAS300により指定される。また、関連ロック対象2201は、一つのNAS300が複数のオブジェクトを同時にロックする場合にのみ設定される。即ち、ロック状態803がロック済みであり、かつ関連ロック対象2201が設定されていないエントリは、同時にロックして更新しようとしているディレクトリが存在しないことを示す。例えば、図22の例において、オブジェクトID801がpqrであるエントリは、当該オブジェクトがロックされているが、同時にロックして更新しようとしているディレクトリが存在しないことを示す。なお、関連するディレクトリ2201は、2つ以上のオブジェクトIDを設定しても良い。 The related lock target 2201 indicates the object ID of the object that the NAS 300 that locks the object indicated by the object ID 801 of the entry is simultaneously locking and updating. This information is designated by the NAS 300 as an argument for directory lock processing. The related lock target 2201 is set only when one NAS 300 simultaneously locks a plurality of objects. That is, an entry in which the lock state 803 is locked and the related lock target 2201 is not set indicates that there is no directory that is simultaneously locked and updated. For example, in the example of FIG. 22, an entry whose object ID 801 is pqr indicates that the object is locked, but there is no directory that is simultaneously locked and updated. The related directory 2201 may set two or more object IDs.
 図23は、ディレクトリロック処理2300の詳細を説明するためのフローチャートの一例である。 FIG. 23 is an example of a flowchart for explaining the details of the directory lock processing 2300.
 ディレクトリロック処理2300は、NAS300のディレクトリロックプログラム307のディレクトリロック取得処理からの要求を契機に、CAS400のCPU405において実行される。 The directory lock process 2300 is executed in the CPU 405 of the CAS 400 in response to a request from the directory lock acquisition process of the directory lock program 307 of the NAS 300.
 まず、オブジェクト操作プログラム407は、ロック状態管理情報800から、NAS300から引数として受け取ったオブジェクトIDに一致するオブジェクトID801を有するエントリを検索する(S2301)。 First, the object operation program 407 searches the lock state management information 800 for an entry having an object ID 801 that matches the object ID received as an argument from the NAS 300 (S2301).
 次に、S2301の検索結果として得られたエントリのロック状態803が未ロックであった場合(S2302がNoの場合)、オブジェクト操作プログラム407は、次に示すS2303からS2308の処理を実行する。 Next, when the lock state 803 of the entry obtained as the search result of S2301 is not locked (when S2302 is No), the object operation program 407 executes the following processing from S2303 to S2308.
 まず、オブジェクト操作プログラム407は、ファイルシステムプログラム408を呼び出し、ファイルシステム413にロックを示すためのロックファイルを作成する(S2303)。このロックファイルのパス名の決定方法は、実施例1と同様、どのような方法であっても良い。 First, the object operation program 407 calls the file system program 408 and creates a lock file for indicating lock to the file system 413 (S2303). The method for determining the path name of the lock file may be any method as in the first embodiment.
 次に、オブジェクト操作プログラム407は、ロック状態管理情報800のうち、処理対象のオブジェクトIDに対応するエントリのロックファイル802を、S2303で作成したロックファイルのパス名に更新する(S2304)。 Next, the object operation program 407 updates the lock file 802 of the entry corresponding to the object ID to be processed in the lock state management information 800 with the path name of the lock file created in S2303 (S2304).
 次に、オブジェクト操作プログラム407は、ロック状態管理情報800のうち、処理対象のオブジェクトIDに対応するエントリのロック状態803を、ロック済みに更新する(S2305)。 Next, the object operation program 407 updates the lock state 803 of the entry corresponding to the object ID to be processed in the lock state management information 800 to be locked (S2305).
 次に、オブジェクト操作プログラム407は、ロック状態管理情報800のうち、処理対象のオブジェクトIDに対応するエントリのロック時刻804を、現在時刻に更新する(S1806)。 Next, the object operation program 407 updates the lock time 804 of the entry corresponding to the object ID to be processed in the lock state management information 800 to the current time (S1806).
 次に、オブジェクト操作プログラム407は、ロック状態管理情報800のうち、処理対象のオブジェクトID801に対応するエントリの関連ロック対象2201を、NAS300から引数として受け取った情報に更新する(S1807)。つまり、NAS300が関連ロック対象を指定していない場合、オブジェクト操作プログラム407は、当該エントリの関連ロック対象2201へ情報を設定しない。一方、NAS300が関連ロック対象を指定している場合、オブジェクト操作プログラム407は、当該エントリの関連ロック対象2201へ、指定された情報を設定する。 Next, the object operation program 407 updates the related lock target 2201 of the entry corresponding to the processing target object ID 801 in the lock state management information 800 to the information received as an argument from the NAS 300 (S1807). That is, when the NAS 300 does not specify the related lock target, the object operation program 407 does not set information in the related lock target 2201 of the entry. On the other hand, when the NAS 300 specifies the related lock target, the object operation program 407 sets the specified information in the related lock target 2201 of the entry.
 次に、オブジェクト操作プログラム407は、ロック成功を、要求元であるNAS300に返信する(S2308)。 Next, the object operation program 407 returns a lock success to the requesting NAS 300 (S2308).
 一方、S2301の検索結果として得られたエントリのロック状態803がロック済みであり(S1802がYesの場合)、かつS2301の検索結果として得られたエントリのロック時刻804からの経過時間および再ロック時刻805からの経過時間の両方がロック時間閾値以上である場合(S2309がYesの場合)、オブジェクト操作プログラム407は、S2310、S2307、S2308の処理を実行する。なお、この閾値は、どのような値であっても良い。 On the other hand, the entry lock state 803 obtained as the search result of S2301 is already locked (when S1802 is Yes), and the elapsed time and the relock time from the lock time 804 of the entry obtained as the search result of S2301 When both the elapsed times from 805 are equal to or greater than the lock time threshold value (when S2309 is Yes), the object operation program 407 executes the processing of S2310, S2307, and S2308. This threshold value may be any value.
 まず、オブジェクト操作プログラム407は、ロック状態管理情報800のうち、処理対象のオブジェクトIDに対応するエントリの再ロック時刻805を、現在時刻に更新する(S2310)。 First, the object operation program 407 updates the relock time 805 of the entry corresponding to the object ID to be processed in the lock state management information 800 to the current time (S2310).
 次に、オブジェクト操作プログラム407は、ロック状態管理情報800のうち、処理対象のオブジェクトIDに対応するエントリの関連ロック対象2201を、NAS300から引数として受け取った情報に更新する(S2307)。これにより、NAS300が関連ロック対象を指定していない場合、オブジェクト操作プログラム407は、当該エントリの関連ロック対象2201に情報が設定されていない状態に変更する。また、NAS300が関連ロック対象を指定している場合、オブジェクト操作プログラム407は、当該エントリの関連ロック対象2201を、指定された情報に更新する。 Next, the object operation program 407 updates the related lock target 2201 of the entry corresponding to the object ID to be processed in the lock state management information 800 to the information received as an argument from the NAS 300 (S2307). As a result, when the NAS 300 has not designated the related lock target, the object operation program 407 changes to a state in which no information is set in the related lock target 2201 of the entry. When the NAS 300 designates the related lock target, the object operation program 407 updates the related lock target 2201 of the entry to the designated information.
 次に、オブジェクト操作プログラム407は、ロック成功を、要求元であるNAS300に返信する(S2308)。 Next, the object operation program 407 returns a lock success to the requesting NAS 300 (S2308).
 また、S2301の検索結果として得られたエントリのロック状態803がロック済みであり(S1802がYesの場合)、かつS2301の検索結果として得られたエントリのロック時刻804と再ロック時刻805のいずれか、もしくは両者からの経過時間が閾値より短い場合(S2309がNoの場合)、オブジェクト操作プログラム407は、ロック失敗を、要求元であるNAS300に返信する(S2311)。 In addition, the entry lock state 803 obtained as a search result of S2301 is locked (when S1802 is Yes), and either the lock time 804 or the relock time 805 of the entry obtained as a search result of S2301 Alternatively, when the elapsed time from both is shorter than the threshold value (when S2309 is No), the object operation program 407 returns a lock failure to the NAS 300 that is the request source (S2311).
 図24は、実施例3における同期バージョン確定処理2400の詳細を説明するためのフローチャートの一例である。 FIG. 24 is an example of a flowchart for explaining details of the synchronization version determination process 2400 in the third embodiment.
 同期バージョン確定処理2400は、ディレクトリ同期処理900からの呼び出しを契機として、NAS300のCPU303で実行される。 The synchronization version confirmation process 2400 is executed by the CPU 303 of the NAS 300 in response to a call from the directory synchronization process 900.
 まず、ディレクトリ同期プログラム306は、ファイル・ディレクトリ管理情報500を参照して、引数として受け取った処理対象のパス名をオブジェクトIDに変換し、この変換結果のオブジェクトIDを引数として、CAS400へロック確認処理の実行を要求する(S2401)。 First, the directory synchronization program 306 refers to the file / directory management information 500, converts the path name of the processing target received as an argument into an object ID, and lock confirmation processing to the CAS 400 using the object ID of this conversion result as an argument Is requested to execute (S2401).
 CAS400は、NAS300から受け取ったオブジェクトIDを引数として、ロック処理確認処理を実行する(S2402)。ロック確認処理の詳細は、実施例1で説明した通りである。 CAS 400 executes lock processing confirmation processing using the object ID received from NAS 300 as an argument (S2402). The details of the lock confirmation processing are as described in the first embodiment.
 ロック確認処理(S2402)の処理結果が未ロックであった場合(S2403がNoであった場合)、ディレクトリ同期プログラム306は、同期バージョン確定処理2400の結果を最新バージョンに決定し、呼び出し元に返却する(S2404)。 If the result of the lock confirmation process (S2402) is not locked (if S2403 is No), the directory synchronization program 306 determines the result of the synchronization version confirmation process 2400 as the latest version and returns it to the caller (S2404).
 ロック確認処理(S2402)の処理結果がロック済みであった場合(S2403がYesであった場合)、ディレクトリ同期プログラム306は、S2405以降の処理を実行する。 When the processing result of the lock confirmation processing (S2402) has been locked (when S2403 is Yes), the directory synchronization program 306 executes the processing after S2405.
 まず、ディレクトリ同期プログラム306は、引数として受け取った処理対象のパス名に対応するオブジェクトIDを引数として、CAS400へロック時刻取得処理の実行を要求する(S2405)。 First, the directory synchronization program 306 requests the CAS 400 to execute the lock time acquisition process using the object ID corresponding to the processing target path name received as an argument (S2405).
 CAS400は、NAS300から受け取ったオブジェクトIDを引数として、ロック時刻取得処理を実行する(S2406)。ロック時刻取得処理の詳細は、実施例1で説明したとおりである。 CAS 400 executes the lock time acquisition process using the object ID received from NAS 300 as an argument (S2406). The details of the lock time acquisition processing are as described in the first embodiment.
 次に、ディレクトリ同期プログラム306は、引数として受け取った処理対象のパス名に対応するオブジェクトIDを引数として、CAS400へ関連ロック対象取得処理の実行を要求する(S2407)。 Next, the directory synchronization program 306 requests the CAS 400 to execute related lock target acquisition processing using the object ID corresponding to the processing target path name received as an argument (S2407).
 CAS400は、NAS300から受け取ったオブジェクトIDを引数として、関連ロック対象取得処理を実行する(S2408)。関連ロック対象取得処理は、ロック状態管理情報2200において、引数として受け取ったオブジェクトIDと一致するオブジェクトID801を有するエントリの関連ロック対象2201を、NAS300に返却する。 CAS 400 executes related lock target acquisition processing using the object ID received from NAS 300 as an argument (S2408). The related lock target acquisition processing returns the related lock target 2201 of the entry having the object ID 801 that matches the object ID received as an argument in the lock state management information 2200 to the NAS 300.
 次に、ディレクトリ同期プログラム306は、関連ロック対象取得処理(S2408)の処理結果として得たすべてのオブジェクトIDについて、次に示すS2409からS2413までの処理を実行する。 Next, the directory synchronization program 306 executes the following processes from S2409 to S2413 for all object IDs obtained as a result of the related lock target acquisition process (S2408).
 まず、ディレクトリ同期プログラム306は、関連ロック対象取得処理(S2408)の処理結果として得たオブジェクトIDの1つを選択し(S2409)、選択されたオブジェクトIDを引数としてCAS400へロック確認処理の実行を要求する(S2410)。 First, the directory synchronization program 306 selects one of the object IDs obtained as a result of the related lock target acquisition process (S2408) (S2409), and executes the lock confirmation process to the CAS 400 using the selected object ID as an argument. Request (S2410).
 CAS400は、NAS300から受け取ったオブジェクトIDを引数として、ロック処理確認処理を実行する(S2411)。ロック確認処理の詳細は、実施例1で説明した通りである。 CAS 400 executes lock processing confirmation processing using the object ID received from NAS 300 as an argument (S2411). The details of the lock confirmation processing are as described in the first embodiment.
 ロック確認処理(S2411)の処理結果が未ロックであった場合(S2412がNoであった場合)、ディレクトリ同期プログラム306は、同期バージョン確定処理2400の結果を最新バージョンに決定し、呼び出し元に返却する(S2404)。 If the result of the lock confirmation process (S2411) is not locked (if S2412 is No), the directory synchronization program 306 determines the result of the synchronization version confirmation process 2400 as the latest version and returns it to the caller (S2404).
 ロック確認処理(S2402)の処理結果がロック済みであった場合(S2412がYesであった場合)、関連ロック対象取得処理(S2408)の処理結果として得たオブジェクトIDから全てのオブジェクトIDを選択するまで、S2409へ戻り、次のオブジェクトIDを選択し、S2410、S2411、S2412を実行する。 When the processing result of the lock confirmation processing (S2402) is locked (when S2412 is Yes), all object IDs are selected from the object IDs obtained as the processing result of the related lock target acquisition processing (S2408). Up to step S2409, the next object ID is selected, and steps S2410, S2411, and S2412 are executed.
 関連ロック対象取得処理(S2408)の処理結果として得た全てのオブジェクトIDについて、ロック確認処理(S2411)の処理結果がロック済みであった場合(S2412が全てYesであった場合)、ディレクトリ同期プログラム306は、引数として受け取った処理対象のパス名に対応するオブジェクトIDを引数として、CAS400へ処理対象のディレクトリのバージョン一覧取得処理の実行を要求する(S2414)。 If all the object IDs obtained as a result of the related lock target acquisition process (S2408) are locked (if S2412 is Yes), the directory synchronization program In step S2414, 306 requests the CAS 400 to execute the version list acquisition process of the processing target directory, using the object ID corresponding to the processing target path name received as the argument.
 CAS400は、NAS300から受け取ったオブジェクトIDを引数として、バージョン一覧取得処理を実行する(S2415)。バージョン一覧処理の詳細は、実施例1で説明したとおりである。 CAS 400 executes version list acquisition processing using the object ID received from NAS 300 as an argument (S2415). Details of the version list processing are as described in the first embodiment.
 次に、ディレクトリ同期プログラム306は、バージョン一覧取得処理(S2415)の処理結果として取得したバージョン一覧に含まれる各バージョンの作成時刻と、ロック時刻取得処理(S2406)の処理結果として取得したロック時刻と、を比較し、バージョン一覧から、ロック時刻より古い作成時刻を有するバージョンの中で最も後のバージョンを検索する。ディレクトリ同期プログラム306は、同期バージョン確定処理2400の結果を、この検索結果として得られたバージョンに決定し、呼び出し元に返却する(S2416)。 Next, the directory synchronization program 306 creates the creation time of each version included in the version list acquired as the processing result of the version list acquisition processing (S2415), the lock time acquired as the processing result of the lock time acquisition processing (S2406), , And the latest version among the versions having the creation time older than the lock time is searched from the version list. The directory synchronization program 306 determines the result of the synchronization version determination process 2400 as the version obtained as the search result, and returns it to the caller (S2416).
 以上の同期バージョン確定処理2400によれば、NAS300が複数のオブジェクトをロックする更新において、複数のオブジェクトの全てのアンロックに失敗した場合、他のNAS300は、更新が完了していないと見なし、ファイルシステム318内の複数のオブジェクトを更新の直前バージョンに同期させることにより、複数のNAS300のファイルシステム318の一貫性を保つことができる。また、当該更新において複数のオブジェクトの一部のアンロックに失敗した場合、他のNAS300は、更新が完了したと見なし、ファイルシステム318内の複数のオブジェクトを最新バージョンに同期させることにより、複数のNAS300のファイルシステム318の一貫性を保つことができる。また、NAS300がオブジェクトのロックの要求に、ロックが必要な他のオブジェクトを含めることにより、CAS400は、共にロックされる複数のオブジェクトを認識することができる。また、CAS400が、オブジェクトのロックを示す情報に、共にロックされた他のオブジェクトの情報を含めることにより、NAS300は、共にロックされた複数のオブジェクトの情報をCAS400から取得することができる。 According to the synchronous version confirmation processing 2400 described above, when the NAS 300 fails to unlock all the objects in the update that locks the plurality of objects, the other NAS 300 considers that the update has not been completed, and the file By synchronizing a plurality of objects in the system 318 to the version immediately before the update, the consistency of the file systems 318 of the plurality of NAS 300 can be maintained. In addition, if the unlocking of some of the plurality of objects in the update fails, the other NAS 300 considers that the update has been completed, and synchronizes the plurality of objects in the file system 318 with the latest version. The consistency of the file system 318 of the NAS 300 can be maintained. Further, when the NAS 300 includes other objects that need to be locked in the object lock request, the CAS 400 can recognize a plurality of objects that are locked together. Further, when the CAS 400 includes information on another object locked together in the information indicating the lock of the object, the NAS 300 can acquire information on a plurality of objects locked together from the CAS 400.
 本発明の表現のための用語について説明する。更新要求は、クライアントPC201からの更新オペレーションの要求であってもよい。第一ロック時刻は、ロック時刻であってもよい。第二ロック時刻は、再ロック時刻であってもよい。更新情報は、更新リストであってもよい。同期情報は、同期要フラグであってもよい。バージョン情報は、バージョン一覧であってもよい。関連オブジェクトは、特定オブジェクトに対応する関連ロック対象2201に示されるオブジェクトであってもよい。コントローラは、NASコントローラ301であってもよい。記憶デバイスは、記憶装置322であってもよい。特定オブジェクトロック情報は、特定オブジェクトに対応するロック状態803であってもよい。関連オブジェクトロック情報は、関連オブジェクトに対応するロック状態803であってもよい。 The terms for expressing the present invention will be described. The update request may be a request for an update operation from the client PC 201. The first lock time may be a lock time. The second lock time may be a relock time. The update information may be an update list. The synchronization information may be a synchronization required flag. The version information may be a version list. The related object may be an object shown in the related lock target 2201 corresponding to the specific object. The controller may be the NAS controller 301. The storage device may be the storage device 322. The specific object lock information may be a lock state 803 corresponding to the specific object. The related object lock information may be a lock state 803 corresponding to the related object.
 以上、本発明の実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲を上記構成に限定する趣旨ではない。本発明は、他の種々の形態でも実施する事が可能である。 As mentioned above, although embodiment of this invention was described, this is an illustration for description of this invention, Comprising: It is not the meaning which limits the scope of the present invention to the said structure. The present invention can be implemented in various other forms.
 201…クライアントPC、 202…ネットワーク、 300…NAS、 301…NASコントローラ、 302…I/F、 303…CPU、 304…ネットワークI/F、 305…メモリ、 322…記憶装置、400…CAS、 401…CASコントローラ、 402…記憶装置、 403…ネットワークI/F、 404…I/F、 405…CPU、 406…メモリ 201 ... Client PC, 202 ... Network, 300 ... NAS, 301 ... NAS Controller, 302 ... I / F, 303 ... CPU, 304 ... Network I / F, 305 ... Memory, 322 ... Storage device, 400 ... CAS, 401 ... CAS controller, 402 ... Storage device, 403 ... Network I / F, 404 ... I / F, 405 ... CPU, 406 ... Memory

Claims (15)

  1.  オブジェクトストレージ装置と、
     前記オブジェクトストレージ装置に接続されるストレージ装置と、
    を備え、
     前記ストレージ装置は、前記ストレージ装置内の特定オブジェクトの更新を要求する更新要求を受けた場合、前記オブジェクトストレージ装置内の特定オブジェクトのロックを前記オブジェクトストレージ装置に要求し、前記ストレージ装置内の特定オブジェクトを更新し、前記更新された特定オブジェクトを前記オブジェクトストレージ装置へ送信し、前記特定オブジェクトのロックの解放を前記オブジェクトストレージ装置に要求し、
     前記オブジェクトストレージ装置は、前記特定オブジェクトをバージョン毎に格納し、
     前記ストレージ装置は、前記ストレージ装置内の特定オブジェクトを参照する場合、前記オブジェクトストレージ装置内の特定オブジェクトがロックされているか否かを判定し、
     前記オブジェクトストレージ装置内の特定オブジェクトがロックされていると判定された場合、前記ストレージ装置は、前記判定されたロックの直前のバージョンである直前バージョンの特定オブジェクトを前記オブジェクトストレージ装置から取得し、前記ストレージ装置内の特定オブジェクトを前記直前バージョンの特定オブジェクトに一致させる、
    ストレージシステム。
    An object storage device;
    A storage device connected to the object storage device;
    With
    When the storage apparatus receives an update request for requesting an update of a specific object in the storage apparatus, the storage apparatus requests the object storage apparatus to lock the specific object in the object storage apparatus, and the specific object in the storage apparatus Update the specific object, send the updated specific object to the object storage device, request the object storage device to release the lock of the specific object,
    The object storage device stores the specific object for each version,
    When the storage device refers to a specific object in the storage device, the storage device determines whether or not the specific object in the object storage device is locked,
    When it is determined that the specific object in the object storage device is locked, the storage device acquires the specific object of the immediately previous version that is the version immediately before the determined lock from the object storage device, and A specific object in the storage device is matched with the specific object of the previous version,
    Storage system.
  2.  前記オブジェクトストレージ装置内の特定オブジェクトがロックされていないと判定された場合、前記ストレージ装置は、最新バージョンの特定オブジェクトを前記オブジェクトストレージ装置から取得し、前記ストレージ装置内の特定オブジェクトを前記最新バージョンの特定オブジェクトに一致させる、
    請求項1に記載のストレージシステム。
    When it is determined that the specific object in the object storage device is not locked, the storage device acquires the latest version of the specific object from the object storage device, and the specific object in the storage device of the latest version is updated. Match a specific object,
    The storage system according to claim 1.
  3.  前記オブジェクトストレージ装置内の特定オブジェクトがロックされていると判定された場合、前記ストレージ装置は、前記特定オブジェクトがロックされた時刻である第一ロック時刻を、前記オブジェクトストレージ装置から取得し、前記第一ロック時刻に基づいて、前記直前バージョンの特定オブジェクトを前記オブジェクトストレージ装置から取得する、
    請求項2に記載のストレージシステム。
    When it is determined that the specific object in the object storage device is locked, the storage device acquires a first lock time that is a time when the specific object is locked from the object storage device, and Obtaining the specific object of the immediately previous version from the object storage device based on one lock time;
    The storage system according to claim 2.
  4.  前記オブジェクトストレージ装置は、前記オブジェクトストレージ装置内の更新されたオブジェクトを示す更新情報を格納し、
     前記ストレージ装置は、前記更新要求を受けた場合、未取得の更新情報を前記オブジェクトストレージ装置から取得し、前記取得された更新情報に示されたオブジェクトに対し、同期が必要であることを示す同期情報を設定し、前記特定オブジェクトに対して同期情報が設定されている場合、前記ストレージ装置内の特定オブジェクトを参照する場合の処理を実行する、
    請求項3に記載のストレージシステム。
    The object storage device stores update information indicating an updated object in the object storage device,
    When the storage device receives the update request, the storage device acquires unacquired update information from the object storage device, and indicates that synchronization is required for the object indicated in the acquired update information. When information is set and synchronization information is set for the specific object, a process for referring to the specific object in the storage device is executed.
    The storage system according to claim 3.
  5.  前記ストレージ装置は、前記ストレージ装置内の特定オブジェクトを前記最新バージョンの特定オブジェクトに一致させた場合、前記特定オブジェクトに対する同期情報を解除し、
     前記ストレージ装置は、前記ストレージ装置内の特定オブジェクトを前記直前バージョンの特定オブジェクトに一致させた場合、前記特定オブジェクトに対する同期情報を維持する、
    請求項4に記載のストレージシステム。
    When the storage device matches the specific object in the storage device with the specific object of the latest version, the synchronization information for the specific object is released,
    The storage device maintains synchronization information for the specific object when the specific object in the storage device matches the specific object of the immediately previous version.
    The storage system according to claim 4.
  6.  前記オブジェクトストレージ装置は、前記ストレージ装置から、前記特定オブジェクトのロックを要求された場合、前記オブジェクトストレージ装置内の特定オブジェクトがロックされているか否かを判定し、
     前記オブジェクトストレージ装置内の特定オブジェクトがロックされていていないと判定された場合、前記オブジェクトストレージ装置は、前記特定オブジェクトをロックし、前記特定オブジェクトに対し、現在時刻を前記第一ロック時刻として設定し、前記特定オブジェクトがロックされている間、前記第一ロック時刻を格納し、
     前記特定オブジェクトがロックされていると判定された場合、前記オブジェクトストレージ装置は、前記特定オブジェクトに対して格納されている最新のロック時刻からの経過時間が予め設定された上限時間以上であるか否かを判定し、
     前記経過時間が上限時間以上であると判定された場合、前記オブジェクトストレージ装置は、前記特定オブジェクトに対し、現在時刻を第二ロック時刻として設定し、前記特定オブジェクトがロックされている間、前記第二ロック時刻を格納する、
    請求項5に記載のストレージシステム。
    When the object storage device is requested to lock the specific object from the storage device, the object storage device determines whether the specific object in the object storage device is locked,
    When it is determined that the specific object in the object storage device is not locked, the object storage device locks the specific object and sets the current time as the first lock time for the specific object. , Storing the first lock time while the specific object is locked,
    If it is determined that the specific object is locked, the object storage device determines whether the elapsed time from the latest lock time stored for the specific object is equal to or greater than a preset upper limit time. Determine whether
    When it is determined that the elapsed time is equal to or greater than the upper limit time, the object storage device sets the current time as the second lock time for the specific object, and the first time while the specific object is locked. Store the second lock time,
    The storage system according to claim 5.
  7.  前記ストレージ装置は、前記更新要求に基づいて前記ストレージ装置内の特定オブジェクトを更新した後、前記更新された特定オブジェクトを前記オブジェクトストレージ装置へ反映することに失敗した場合、前記ストレージ装置内の特定オブジェクトの更新を元に戻す、
    請求項6に記載のストレージシステム。
    If the storage device fails to reflect the updated specific object to the object storage device after updating the specific object in the storage device based on the update request, the specific object in the storage device Undo updates for,
    The storage system according to claim 6.
  8.  前記オブジェクトストレージ装置は、前記特定オブジェクトの複数のバージョンの夫々の作成時刻を示すバージョン情報を格納し、
     前記オブジェクトストレージ装置内の特定オブジェクトがロックされていると判定された場合、前記ストレージ装置は、前記バージョン情報を前記オブジェクトストレージ装置から取得し、前記第一ロック時刻と前記バージョン情報に基づいて前記直前バージョンを特定し、前記直前バージョンの特定オブジェクトを前記オブジェクトストレージ装置から取得する、
    請求項7に記載のストレージシステム。
    The object storage device stores version information indicating the creation time of each of a plurality of versions of the specific object,
    When it is determined that the specific object in the object storage device is locked, the storage device acquires the version information from the object storage device, and based on the first lock time and the version information, A version is specified, and the specific object of the immediately previous version is acquired from the object storage device;
    The storage system according to claim 7.
  9.  前記オブジェクトストレージ装置は、前記特定オブジェクトの複数のバージョンの夫々の作成時刻を示すバージョン情報を格納し、
     前記オブジェクトストレージ装置内の特定オブジェクトがロックされていると判定された場合、前記ストレージ装置は、前記特定オブジェクト及び前記ロック時刻を示す要求を前記オブジェクトストレージ装置へ送信し、
     前記オブジェクトストレージ装置は、前記第一ロック時刻と前記バージョン情報に基づいて前記直前バージョンを特定し、前記直前バージョンの特定オブジェクトを前記ストレージ装置へ送信する、
    請求項7に記載のストレージシステム。
    The object storage device stores version information indicating the creation time of each of a plurality of versions of the specific object,
    When it is determined that the specific object in the object storage device is locked, the storage device transmits a request indicating the specific object and the lock time to the object storage device,
    The object storage device specifies the immediately previous version based on the first lock time and the version information, and transmits the specific object of the immediately previous version to the storage device.
    The storage system according to claim 7.
  10.  前記更新が、前記特定オブジェクトに関連する関連オブジェクトの更新を含む場合、前記ストレージ装置は、前記オブジェクトストレージ装置内の特定オブジェクトのロックと前記オブジェクトストレージ装置内の関連オブジェクトのロックとを前記オブジェクトストレージ装置に要求し、前記ストレージ装置内の特定オブジェクト及び関連オブジェクトを更新し、前記更新された特定オブジェクト及び前記更新された関連オブジェクトを前記オブジェクトストレージ装置へ送信し、前記特定オブジェクトのロックの解放と関連オブジェクトのロックの解放とを前記オブジェクトストレージ装置に要求し、
     前記ストレージ装置は、前記ストレージ装置内の特定オブジェクトを参照する場合、前記オブジェクトストレージ装置内の特定オブジェクト及び前記オブジェクトストレージ装置内の関連オブジェクトの両方がロックされているか否かを判定し、
     前記オブジェクトストレージ装置内の特定オブジェクト及び前記オブジェクトストレージ装置内の関連オブジェクトの両方がロックされていると判定された場合、前記ストレージ装置は、前記オブジェクトストレージ装置内の特定オブジェクトの状態を示すオブジェクト情報を取得し、前記特定オブジェクト情報に基づいて前記直前バージョンの特定オブジェクトを前記オブジェクトストレージ装置から取得し、前記ストレージ装置内の特定オブジェクトを前記直前バージョンの特定オブジェクトに一致させる、
    請求項7に記載のストレージシステム。
    When the update includes an update of a related object related to the specific object, the storage apparatus sends a lock of the specific object in the object storage apparatus and a lock of the related object in the object storage apparatus to the object storage apparatus. To update the specific object and the related object in the storage device, send the updated specific object and the updated related object to the object storage device, and release the lock of the specific object and the related object. Requesting the object storage device to release the lock of
    When the storage device refers to a specific object in the storage device, it determines whether both the specific object in the object storage device and the related object in the object storage device are locked,
    When it is determined that both the specific object in the object storage device and the related object in the object storage device are locked, the storage device displays object information indicating the state of the specific object in the object storage device. Obtaining the specific object of the immediately previous version from the object storage device based on the specific object information, and matching the specific object in the storage device with the specific object of the immediately previous version;
    The storage system according to claim 7.
  11.  前記オブジェクトストレージ装置内の特定オブジェクト及び前記オブジェクトストレージ装置内の関連オブジェクトの少なくとも一つがロックされていないと判定された場合、前記ストレージ装置は、最新バージョンの特定オブジェクトを前記オブジェクトストレージ装置から取得し、前記ストレージ装置内の特定オブジェクトを前記最新バージョンの特定オブジェクトに一致させる、
    請求項10に記載のストレージシステム。
    When it is determined that at least one of the specific object in the object storage device and the related object in the object storage device is not locked, the storage device acquires the latest version of the specific object from the object storage device, A specific object in the storage device is matched with the specific object of the latest version;
    The storage system according to claim 10.
  12.  前記オブジェクトストレージ装置内の特定オブジェクトのロックと前記オブジェクトストレージ装置内の関連オブジェクトのロックとの要求は、前記特定オブジェクト及び前記関連オブジェクトの間の関連を示し、
    請求項11に記載のストレージシステム。
    A request for a lock of a specific object in the object storage device and a lock of a related object in the object storage device indicates an association between the specific object and the related object;
    The storage system according to claim 11.
  13.  前記ストレージ装置は、前記ストレージ装置内の特定オブジェクトを参照する場合、前記オブジェクトストレージ装置内の特定オブジェクトがロックされているか否かを示す特定オブジェクトロック情報を、前記オブジェクトストレージ装置から取得し、
     前記特定オブジェクトロック情報が、前記オブジェクトストレージ装置内の特定オブジェクトがロックされていることを示す場合、前記ストレージ装置は、前記オブジェクトストレージ装置内の関連オブジェクトがロックされているか否かを示す関連オブジェクトロック情報を、前記オブジェクトストレージ装置から取得する、
    請求項11に記載のストレージシステム。
    When the storage device refers to a specific object in the storage device, the storage device acquires from the object storage device specific object lock information indicating whether or not the specific object in the object storage device is locked,
    When the specific object lock information indicates that a specific object in the object storage device is locked, the storage device indicates whether or not the related object in the object storage device is locked. Obtaining information from the object storage device;
    The storage system according to claim 11.
  14.  記憶デバイスと、
     前記記憶デバイス及びオブジェクトストレージ装置に接続されるコントローラと、
    を備え、
     前記コントローラは、前記記憶デバイス内の特定オブジェクトの更新を要求する更新要求を受けた場合、前記オブジェクトストレージ装置内の特定オブジェクトのロックを前記オブジェクトストレージ装置に要求し、前記記憶デバイス内の特定オブジェクトを更新し、前記更新された特定オブジェクトを前記オブジェクトストレージ装置へ送信し、前記特定オブジェクトのロックの解放を前記オブジェクトストレージ装置に要求し、前記送信された特定オブジェクトは、バージョン毎に前記オブジェクトストレージ装置に格納され、
     前記コントローラは、前記記憶デバイス内の特定オブジェクトを参照する場合、前記オブジェクトストレージ装置内の特定オブジェクトがロックされているか否かを判定し、
     前記オブジェクトストレージ装置内の特定オブジェクトがロックされていると判定された場合、前記コントローラは、前記判定されたロックの直前のバージョンである直前バージョンの特定オブジェクトを前記オブジェクトストレージ装置から取得し、前記記憶デバイス内の特定オブジェクトを前記直前バージョンの特定オブジェクトに一致させる、
    ストレージ装置。
    A storage device;
    A controller connected to the storage device and the object storage device;
    With
    When the controller receives an update request for requesting an update of a specific object in the storage device, the controller requests the object storage device to lock the specific object in the object storage device, and sets the specific object in the storage device. Update, send the updated specific object to the object storage device, request the object storage device to release the lock of the specific object, and send the specific object to the object storage device for each version. Stored,
    When the controller refers to a specific object in the storage device, the controller determines whether or not the specific object in the object storage device is locked,
    When it is determined that the specific object in the object storage device is locked, the controller acquires from the object storage device the specific object of the immediately previous version that is the version immediately before the determined lock, and stores the stored object. Match a specific object in the device with the specific object of the previous version,
    Storage device.
  15.  ストレージ装置とオブジェクトストレージ装置を含むストレージシステムの、制御方法であって、
     前記ストレージ装置が前記ストレージ装置内の特定オブジェクトの更新を要求する更新要求を受けた場合、前記オブジェクトストレージ装置内の特定オブジェクトのロックを前記オブジェクトストレージ装置に要求し、前記ストレージ装置内の特定オブジェクトを更新し、前記更新された特定オブジェクトを前記オブジェクトストレージ装置へ送信し、前記特定オブジェクトのロックの解放を前記オブジェクトストレージ装置に要求し、前記送信された特定オブジェクトは、バージョン毎に前記オブジェクトストレージ装置に格納され、
     前記ストレージ装置内の特定オブジェクトを参照する場合、前記特定オブジェクトがロックされているか否かを判定し、
     前記特定オブジェクトがロックされていると判定された場合、前記判定されたロックの直前のバージョンである直前バージョンの特定オブジェクトを前記オブジェクトストレージ装置から取得し、前記ストレージ装置内の特定オブジェクトを前記直前バージョンの特定オブジェクトに一致させる、
    制御方法。
    A storage system control method including a storage device and an object storage device,
    When the storage apparatus receives an update request for requesting an update of a specific object in the storage apparatus, the storage apparatus requests the object storage apparatus to lock the specific object in the object storage apparatus, and specifies the specific object in the storage apparatus. Update, send the updated specific object to the object storage device, request the object storage device to release the lock of the specific object, and send the specific object to the object storage device for each version. Stored,
    When referring to a specific object in the storage device, determine whether the specific object is locked,
    When it is determined that the specific object is locked, the specific object of the immediately previous version that is the version immediately before the determined lock is acquired from the object storage device, and the specific object in the storage device is acquired as the immediately previous version. Match a specific object of
    Control method.
PCT/JP2015/077272 2015-09-28 2015-09-28 Storage system, storage device, and storage control method WO2017056145A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/077272 WO2017056145A1 (en) 2015-09-28 2015-09-28 Storage system, storage device, and storage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/077272 WO2017056145A1 (en) 2015-09-28 2015-09-28 Storage system, storage device, and storage control method

Publications (1)

Publication Number Publication Date
WO2017056145A1 true WO2017056145A1 (en) 2017-04-06

Family

ID=58422889

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/077272 WO2017056145A1 (en) 2015-09-28 2015-09-28 Storage system, storage device, and storage control method

Country Status (1)

Country Link
WO (1) WO2017056145A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816444A (en) * 1994-06-24 1996-01-19 Internatl Business Mach Corp <Ibm> Client server computer system, its client computer, server computer and object update method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816444A (en) * 1994-06-24 1996-01-19 Internatl Business Mach Corp <Ibm> Client server computer system, its client computer, server computer and object update method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KAZUO KUNIEDA ET AL.: "A Concurrency Control Method Based on the Adaptive Time - Stamp Ordering", TRANSACTIONS OF INFORMATION PROCESSING SOCIETY OF JAPAN, vol. 33, no. 6, 15 June 1992 (1992-06-15), pages 802 - 811, ISSN: 0387-5806 *

Similar Documents

Publication Publication Date Title
CN110502507B (en) Management system, method, equipment and storage medium of distributed database
JP5661188B2 (en) File system and data processing method
JP4995296B2 (en) Computer system and cache control method
US11144510B2 (en) System and method for synchronizing file systems with large namespaces
US8762344B2 (en) Method for managing information processing system and data management computer system
CN112236758A (en) Cloud storage distributed file system
US10798149B2 (en) File storage, object storage, and storage system
JP4919851B2 (en) Intermediate device for file level virtualization
WO2019231689A1 (en) Multi-protocol cloud storage for big data and analytics
JP6492938B2 (en) Authentication system, synchronization method, authentication apparatus, and synchronization program
CN105183400B (en) It is a kind of based on content addressed object storage method and system
JP5485997B2 (en) Data storage device with deduplication function and control device for creating search index of data storage device
WO2019231690A1 (en) Distributed transactions in cloud storage with hierarchical namespace
JP2007299063A (en) Information processor and information processing method
JP2012221419A (en) Information storage system and data duplication method thereof
JP5357068B2 (en) Information processing apparatus, information processing system, data archive method, and data deletion method
US10831719B2 (en) File consistency in shared storage using partial-edit files
CN112653730A (en) User mode network file storage method and system
JPWO2016121083A1 (en) Computer system, distributed object sharing method, edge node
CN115185891A (en) Data management method and device of file system, electronic equipment and storage medium
CN105138275A (en) Data sharing method for Lustre storage system
WO2017056145A1 (en) Storage system, storage device, and storage control method
JP6461101B2 (en) Database system, information processing apparatus, method, and program
JP3810577B2 (en) Directory synchronization method
JP4434838B2 (en) Distributed data equivalence method and system, and program

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15905300

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15905300

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP