WO2017056145A1 - Système de stockage, dispositif de stockage et procédé de commande de stockage - Google Patents

Système de stockage, dispositif de stockage et procédé de commande de stockage 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
English (en)
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/fr
Publication of WO2017056145A1 publication Critical patent/WO2017056145A1/fr

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

La présente invention a pour but de maintenir la cohérence entre des objets dans un dispositif de stockage et des objets dans un dispositif de stockage d'objets, même si une défaillance se produit lorsque le dispositif de stockage met à jour un objet dans le dispositif de stockage d'objets. Le dispositif de stockage d'objets stocke chaque version de chacun d'un ou de plusieurs objets particuliers. Lorsque le dispositif de stockage fait référence à un objet particulier stocké dans celui-ci, le dispositif de stockage détermine si l'objet particulier dans le dispositif de stockage d'objets correspondant à l'objet particulier auquel il est fait référence dans le dispositif de stockage est verrouillé ou non, et s'il est déterminé que l'objet particulier dans le dispositif de stockage d'objets est verrouillé, alors le dispositif de stockage extrait la dernière version déverrouillée de l'objet particulier dans le dispositif de stockage d'objets, et restaure l'objet particulier dans le dispositif de stockage pour correspondre à la dernière version déverrouillée extraite.
PCT/JP2015/077272 2015-09-28 2015-09-28 Système de stockage, dispositif de stockage et procédé de commande de stockage WO2017056145A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/077272 WO2017056145A1 (fr) 2015-09-28 2015-09-28 Système de stockage, dispositif de stockage et procédé de commande de stockage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/077272 WO2017056145A1 (fr) 2015-09-28 2015-09-28 Système de stockage, dispositif de stockage et procédé de commande de stockage

Publications (1)

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

Family

ID=58422889

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/077272 WO2017056145A1 (fr) 2015-09-28 2015-09-28 Système de stockage, dispositif de stockage et procédé de commande de stockage

Country Status (1)

Country Link
WO (1) WO2017056145A1 (fr)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816444A (ja) * 1994-06-24 1996-01-19 Internatl Business Mach Corp <Ibm> クライアント・サーバ・コンピュータ・システム、及びそのクライアント・コンピュータ、サーバ・コンピュータ、並びにオブジェクト更新方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816444A (ja) * 1994-06-24 1996-01-19 Internatl Business Mach Corp <Ibm> クライアント・サーバ・コンピュータ・システム、及びそのクライアント・コンピュータ、サーバ・コンピュータ、並びにオブジェクト更新方法

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 (zh) 一种分布式数据库的管理系统、方法、设备和存储介质
JP5661188B2 (ja) ファイルシステム及びデータ処理方法
JP4995296B2 (ja) 計算機システムおよびキャッシュ制御方法
US8762344B2 (en) Method for managing information processing system and data management computer system
JP6725742B2 (ja) ファイルストレージ、オブジェクトストレージ、およびストレージシステム
CN112236758A (zh) 云存储分布式文件系统
JP4919851B2 (ja) ファイルレベルの仮想化を行う中間装置
JP6492938B2 (ja) 認証システム、同期方法、認証装置及び同期プログラム
WO2019231689A1 (fr) Stockage en nuage multiprotocole pour mégadonnées et analytique
WO2011018852A1 (fr) Dispositif de stockage de données avec une fonction d&#39;élimination de double et dispositif de contrôle pour créer un index de recherche pour le dispositif de stockage de données
JP2007299063A (ja) 情報処理装置、情報処理方法
JP2012221419A (ja) 情報記憶システム及びそのデータ複製方法
JP5357068B2 (ja) 情報処理装置、情報処理システム、データ・アーカイブ方法およびデータ削除方法
US10831719B2 (en) File consistency in shared storage using partial-edit files
WO2016121083A1 (fr) Système informatique, procédé de partage d&#39;objet distribué et nœud périphérique
CN115185891A (zh) 文件系统的数据管理方法及装置、电子设备及存储介质
CN105138275A (zh) 一种Lustre存储系统数据共享方法
WO2017056145A1 (fr) Système de stockage, dispositif de stockage et procédé de commande de stockage
JP6461101B2 (ja) データベースシステム、情報処理装置、方法およびプログラム
JP2013210698A (ja) ファイル検索システム及びプログラム
JP6643114B2 (ja) 画像処理装置、その制御方法、及びプログラム
JP4434838B2 (ja) 分散データ等価方法とシステム、およびプログラム
JP2021124889A (ja) リモートコピーシステム及びリモートコピー管理方法
JP7391826B2 (ja) ストレージシステムおよびデータ管理方法
JP2000276391A (ja) ディレクトリ同期方法

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