File storage system and file management method through file storage system

By using management information files and operation logs in a distributed file system and leveraging a counter value update mechanism, the consistency problem of file virtualization management information is solved, client IO performance degradation is avoided, and a highly reliable and fast-response file storage system is achieved.

CN114817141BActive Publication Date: 2025-10-28HITACHI VANDALA CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202110895345.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-01-21
Filing Date
2021-08-05
Publication Date
2025-10-28
Estimated Expiration
2041-08-05

AI Technical Summary

Technical Problem

Existing technologies struggle to ensure consistency of file virtualization management information in distributed file systems, while client input/output performance degrades.

Method used

The file storage system, which consists of multiple nodes, ensures the time sequence of file operations through management information files and operation logs. It uses counter values ​​to describe the operation content and updates the counter values ​​during file transfer to prevent client I/O performance degradation.

Benefits of technology

It achieves consistency of file virtualization management information in the distributed file system, while avoiding the degradation of client IO performance, ensuring high system reliability and response speed.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114817141B_ABST
    Figure CN114817141B_ABST
Patent Text Reader

Abstract

When a file operation request is made, the first storage system performs the operation on the file stored in the first storage system based on the operation request, describes the counter value of the management information file associated with the file to be operated on and the operation content relative to the file in the operation log, responds to the operation request, and updates the counter value of the management information file when the file stored in the first storage system is transferred to the second storage system.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-reference to related applications

[0002] This application relates to and claims priority to Japanese Patent Application No. 2021-7742, filed on January 21, 2021, the entire disclosure of which is incorporated herein by reference. Technical Field

[0003] This invention relates to a file storage system and a file management method using the file storage system.

[0004] Preferably, the present invention relates to a technique for ensuring data consistency among nodes of a distributed file system. Background Technology

[0005] A computer system is known for implementing data transfer between storage devices, wherein the storage devices are installed in multiple locations and coupled to an object storage device.

[0006] The computer system (file storage system) disclosed in this specification provides the ability to copy (migrate) user files stored on a storage device installed in a certain location to an object storage device. It also provides the ability to delete data from a user file (making the user file virtually inaccessible from the storage device installed in that location) while retaining its metadata as a stub, and the ability to retrieve data from the object storage device when the stubped user file is referenced again. These functions, provided through the cooperation of the storage devices installed in these locations and the object storage device, are referred to as file virtualization functions.

[0007] In addition, extended distributed file systems are known, in which the storage device at each location consists of multiple nodes.

[0008] To ensure high reliability of file virtualization, logging is essential to prevent the loss of metadata related to the application state managing file virtualization, thus ensuring data consistency even in the event of failures such as power outages. In distributed file systems, since user files are stored on multiple nodes, data consistency across these nodes must be guaranteed.

[0009] Regarding the technology disclosed in U.S. Patent Application Publication No. 2017 / 0192989, between data and metadata (data management files), logs are applied only to metadata. Furthermore, unique pseudo-timestamps are shared by the cluster, and reliability is improved by creating logs with pseudo-timestamps attached for data operations received by multiple nodes.

[0010] However, regarding the technology disclosed in U.S. Patent Application Publication No. 2017 / 0192989, access conflicts occur from multiple nodes to a single resource serving as a pseudo-timestamp. Furthermore, since the pseudo-timestamp is added first before being attached to client I / O, response performance for client I / O degrades. Additionally, the storage destination for the log to be updated differs from the client I / O receiving node, leading to further performance degradation.

[0011] Therefore, it is desirable to ensure the consistency of management information for file virtualization in a distributed file system, while preventing a decline in client IO performance.

[0012] The present invention is made in view of the above circumstances, and its object is to provide a file storage system and a file management method in the file storage system, which enables the consistency of management information for file virtualization in a distributed file system, while preventing the client's IO performance from degrading. Summary of the Invention

[0013] According to one aspect of the present invention, a file storage system is a file storage system comprising multiple nodes having processors and storage devices. The file storage system includes: a first storage system and a second storage system. The first storage system is configured to store files via a distributed file system and perform input / output of the files for a client. Files stored in the first storage system are transferred to the second storage system. The file storage system implements file virtualization functionality through the first and second storage systems. The file storage system has a management information file and an operation log. The management information file includes counter values ​​indicating a time-series order and is provided for each file. The operation log describes the operation content of the file along with the counter values. The first storage system is configured to: perform operations on the file based on operation requests for files stored in the first storage system; describe the counter values ​​of the management information file associated with the file to be operated and the operation content for the file in the operation log; and respond to the operation requests; and update the counter values ​​of the management information file when a file stored in the first storage system is transferred to the second storage system.

[0014] According to the present invention, a file storage system and a file management method in the file storage system can be implemented, which enables the consistency of management information for file virtualization in a distributed file system, while preventing the client's IO performance from degrading. Attached Figure Description

[0015] Figure 1 This is an example diagram used to explain the outline of a file storage system according to an embodiment;

[0016] Figure 2 Example showing a configuration diagram of a file storage system according to an embodiment;

[0017] Figure 3 This is a configuration diagram of an edge file storage device associated with a file storage system according to an embodiment;

[0018] Figure 4 This is a configuration diagram of an object storage device associated with a file storage system according to an embodiment;

[0019] Figure 5 This represents an example of a management information file 400 associated with a file storage system according to an embodiment;

[0020] Figure 6 Examples of operation logs related to a file storage system according to an embodiment;

[0021] Figure 7 Example of a flowchart illustrating the file / directory creation process in a file storage system according to an embodiment;

[0022] Figure 8 An example of a flowchart illustrating file update processing in a file storage system according to an embodiment;

[0023] Figure 9 An example of a flowchart illustrating file reading processing in a file storage system according to an embodiment;

[0024] Figure 10 An example of a flowchart illustrating file migration processing in a file storage system according to an embodiment;

[0025] Figure 11 An example of a flowchart illustrating directory migration processing in a file storage system according to an embodiment;

[0026] Figure 12 An example of a flowchart illustrating file stub processing in a file storage system according to an embodiment; and

[0027] Figure 13 An example flowchart illustrating a consistency recovery process in a file storage system according to an embodiment. Detailed Implementation

[0028] In the following description, embodiments of the invention will be illustrated with reference to the accompanying drawings. It should be noted that the embodiments described below are not intended to limit the invention as set forth in the appended claims, and all elements described in the embodiments and combinations thereof are not necessarily essential to the solutions proposed by the invention.

[0029] In the following description, "memory" means one or more memories and is typically a main storage device. At least one memory cell can be volatile or non-volatile memory.

[0030] Furthermore, in the following description, "processor" refers to one or more processors. While at least one processor is typically a microprocessor such as a CPU (Central Processing Unit), a processor can be another type of processor such as a GPU (Graphics Processing Unit). At least one processor can be a single-core processor or a multi-core processor.

[0031] In addition, at least one processor can be a processor in the broad sense of the term, such as hardware circuitry that performs part or all of the processing steps (e.g., FPGA (Field Programmable Gate Array) or ASIC (Application-Specific Integrated Circuit)).

[0032] In this disclosure, storage devices (equipment) include a single storage drive such as a single HDD (hard disk drive) or a single SSD (solid-state drive), a RAID device including multiple storage drives, and multiple RAID devices. Furthermore, when the drive is an HDD, the storage device (equipment) may include a SAS (Serial Attached SCSI) HDD or an NL-SAS (Nearline SAS) HDD.

[0033] Furthermore, although expressions such as "xxx table" will be used below to describe information that enables the production of output in response to input, the information can be data of any structure, or it can be a learning model such as a neural network that generates output relative to input. Therefore, "xxx table" can be referred to as "xxx information".

[0034] Furthermore, although expressions such as "identifier," "name," and "ID" are used to represent identification information when describing the content of the corresponding information segments, these expressions are interchangeable. Multiple types of identification information can be used in place of at least one of these expressions.

[0035] Additionally, in the following description, the configuration of each table is for illustrative purposes only, and a table can be divided into two or more tables, and all or part of two or more tables can constitute a single table.

[0036] Furthermore, in the following description, when describing processing steps, the term "program" is sometimes used as the subject. Since a program, when executed by a processor, causes the prescribed processing steps to be performed by appropriate use of storage resources (such as memory) and / or communication interface devices (such as ports), it can be used as the subject of a processing step. Processing steps described using "program" as the subject can be considered as processing steps executed by a processor or by a computer including a processor.

[0037] In the following description, when an operational entity such as "xx unit" is described, it means that the processor of the information processing device constituting the file storage system reads and loads the processing content of xx unit as a program stored in memory, and implements the function of xx unit (to be described in detail later).

[0038] The program may be installed on a device such as a computer, or it may be a recording medium (e.g., a non-transient recording medium) that can be read by a program distribution server or computer. Furthermore, in the following description, two or more programs may be implemented as one program, or one program may be implemented as two or more programs.

[0039] In the figures illustrating embodiments, parts with the same function will be represented by the same reference numerals, and their repeated descriptions will be omitted.

[0040] Furthermore, in the following description, reference symbols (or common symbols among reference symbols) may be used when describing elements of the same type without distinguishing them from each other, but when describing elements of the same type by distinguishing them from each other, the element's identification number (or reference symbol) may be used.

[0041] To facilitate understanding of the present invention, the positions, dimensions, shapes, and ranges of the corresponding components shown in the accompanying drawings may not represent actual positions, dimensions, shapes, or ranges. Therefore, the present invention is not limited to the positions, dimensions, shapes, and ranges disclosed in the accompanying drawings.

[0042] As an example, the file storage system configured according to this embodiment is as follows.

[0043] Specifically, the file storage system according to this embodiment includes multiple file storage devices located at corresponding locations, a file storage device of a data center coupled to the multiple file storage devices located at corresponding locations, and an object storage device of the data center.

[0044] Each file storage device consists of multiple nodes and is configured to store a file system. It stores the paths of elements in the file system and the archive destinations of elements in the object storage device by associating paths with archive destinations. When the file system is updated based on a request from a client, the operation content is added to the operation log within the host node, and the management information file is updated simultaneously for each element targeted by the operation. At this time, a counter is provided for each file, and the current value of the counter is included in the operation log. When the file system is updated based on a request from a client, the counter value for each file is not updated. Therefore, this prevents a degradation in client I / O response performance.

[0045] Furthermore, when the file virtualization function performs migration and stub processing, the value obtained by incrementing the file's counter is added to the operation log. Additionally, 1 is added to the counter value in the management information file corresponding to the file. Therefore, it becomes possible to understand the file system updates performed based on requests from clients and the file's state in chronological order due to file virtualization; in other words, the final state of the file can be uniquely determined, and the consistency of the file virtualization management information can be recovered.

[0046] Figure 1 This is an example diagram used to explain the overview of the file storage system according to this embodiment.

[0047] Site 10-1 includes an edge file storage device (first storage system) 100, representing an example of a file storage device. The edge file storage device 100 has a plurality of nodes 150. According to this embodiment, the edge file storage device 100 is composed of three nodes 150-1, 150-2, and 150-3.

[0048] Edge file storage device 100 provides file sharing services to client 600 and has a distributed file system 130. Edge file storage device 100 is capable of performing operations on files and directories that are elements in the file system 130, respectively.

[0049] The nodes 150 constituting the edge file storage device 100 have an IO hook program 111 and a data mover program 112 and implement file sharing services. The IO hook program 111 detects operations relative to files and directories stored in the file system 130 and adds the operation content to the operation log 500 of each node 150. In addition, the IO hook program 111 stores management information files 400 corresponding to the files and directories in the distributed file system 130. In this case, the operation log 500 is provided in each node 150 to reduce access between nodes 150 for accessing the operation log 500.

[0050] Data mover program 112 transfers files and directories detected by I / O hook program 111 to object storage device (second storage system, see below). Figure 2 300. The purpose of the transfer includes backup and archiving. Data mover program 112 adds information indicating that a copy has been performed to object storage device 300 to the operation log 500 of each node 150. Furthermore, data mover program 112 performs stub processing, which deletes data from the edge file storage device 100 of files that have been copied to object storage device 300. In doing so, data mover program 112 similarly adds information indicating that a stub has been performed to the operation log 500 of each node 150.

[0051] A specific example of file handling related to Operation Log 500, which will be used in consistent recovery, will now be described. In the following description, the numbers in parentheses correspond to... Figure 1 The numbers shown in the balloon boxes.

[0052] (1) Client 600 performs an operation relative to file system 130. The content of the operation is, for example, a "data update" of file B relative to file system 130 of edge file storage device 100, which is the target of the operation. In this case, an example of updating data to file B is shown.

[0053] (2) Next, the IO hook program 111 detects data updates relative to file B and performs data updates relative to file B.

[0054] (3) The IO hook program 111 sets the counter 414 of file B (refer to...) Figure 5 The current value of the file and information about the file update are added to operation log 500.

[0055] (4) The IO hook program 111 stores information about the update range of the detected file B as a partial state change in the metadata of file B, another file, a database, etc. This embodiment shows an example of file B management information file 400.

[0056] (5) After performing migration or stub processing, the data mover program 112 adds the value obtained by incrementing the current value of the counter 414 of file B and the migration or stub information to the operation log 500.

[0057] (6) Data mover program 112 adds 1 to the value of counter 506 in management information file 400 of file B.

[0058] According to the above processing, by storing the operations of the client 600 relative to the file system 130 stored in the edge file storage device 100 and the operations of the data mover program 112 in the operation log 500, when the files and management information file 400 become inconsistent, such as during a power outage outside the location, the operations can be detected from the operation log 500 and consistency can be restored.

[0059] The terminology will be described below.

[0060] For each updated file, the update information for the differential data can be stored in the file's metadata, in a different file, or in a database used to manage the update information for the differential data. The update information for the differential data includes the operation content, the operation target, and the object address, offset, and length of the operation target.

[0061] File status is management information indicating the status of files stored in the file system 130 of the edge file storage device 100. File status can take three forms: Dirty, Cached, and Stub.

[0062] File portion status (or file data status or offset status) is management information indicating the status of each offset of file data stored in the file system 130 of the edge file storage device 100. For each file portion, or in other words, for each offset of file data, the file portion status can take three states: unclean, cached, and stub.

[0063] An unclean state indicates a state where the offset of a file or file data is not reflected on data center 20.

[0064] The cache state represents the offset of a file or file data on the data center 20, while the file data is stored in the file system 130 of the edge file storage device 100.

[0065] The stub status indicates a state that reflects the offset of a file or file data on the data center 20, while the file data is not stored in the file system 130 of the edge file storage device 100.

[0066] The storage location for file status and partial file status can be the metadata of each file, a file different from that file, or a database used to manage file status and partial file status.

[0067] Figure 2 An example of a configuration diagram of a file storage system according to this embodiment.

[0068] File storage system 1 has corresponding sites 10-1 and 10-2, a data center 20, and a network 30 that couples sites 10-1 and 10-2 to the data center 20. One or more clients 600 and one or more edge file storage devices 100 are located at sites 10-1 and 10-2. Data center 20 has one or more clients 600, one or more core file storage devices 200, and one or more object storage devices 300.

[0069] At the corresponding sites 10-1 and 10-2, client 600 and edge file storage device 100 are coupled, for example, via a network such as an intra-base station LAN (local area network). Client 600 uses file sharing services provided by edge file storage device 100 using file sharing protocols such as NFS (Network File System) and CIFS (Public Internet File System).

[0070] At data center 20, client 600, core file storage device 200 and object storage device 300 are coupled, for example, through a network such as a base station LAN (local area network).

[0071] The network 30 that couples the corresponding sites to each other is, for example, a WAN (Wide Area Network), and each edge file storage device 100 uses, for example, a protocol such as HTTP (Hypertext Transfer Protocol) to access the core file storage device 200.

[0072] Although this embodiment is described by way of example, which presents two sites 10-1 and 10-2 provided within a computer system, the computer system may include any number of sites.

[0073] It should be noted that the types of networks are not limited to those mentioned above and various networks can be used.

[0074] Figure 3 This is a configuration diagram of the edge file storage device 100.

[0075] The edge file storage device 100 consists of one or more nodes 150. Although Figure 3 The edge file storage device 100 shown represents an example of three nodes, namely node 150-1, node 150-2 and node 150-3, but the edge file storage device 100 can be composed of any number of nodes.

[0076] Node 150 has a controller 101 and a storage device 102. The controller 101 has a memory 103, a CPU 105, network interfaces (I / F) 106 and 107, and an interface 104. These components are coupled to each other, for example, via communication paths (such as buses).

[0077] CPU 105 executes a program stored in memory 103. Network I / F 106 is an interface for communicating with client 600 via an intra-site network. Network I / F 107 is an interface for communicating with data center 20 via network 30. I / F 104 is an interface coupled to I / F 120 for communication with storage device 102. The I / Fs that couple multiple nodes 150 within edge file storage device 100 to each other can be shared by network I / F 106, shared by network I / F 107, or can be I / Fs of an internal network independent of these networks.

[0078] Memory 103 stores programs and information for controlling the edge file storage device 100. Specifically, for example, memory 103 stores a file sharing program 110, an I / O hook program 111, a data mover program 112, a file system program 113, a consistency recovery program 115, and an operating system (OS) 114. It should be noted that the corresponding programs and information stored in memory 103 may be stored in storage device 102. In this case, the program will be read into memory 103 by CPU 105 and executed by CPU 105.

[0079] File sharing program 110 is a program used to provide an interface between clients 600 using a file sharing protocol. I / O hook program 111 is a program used to detect files and directories stored in file system 130 via file sharing program 110. Data mover program 112 is a program used to transfer files and directories detected by I / O hook program 111 to core file storage device 200. Consistency recovery program 115 is a program used to perform consistency recovery processing when inconsistencies occur in the state or partial state of files due to power interruption. File system program 113 is a program used to control file system 130.

[0080] Storage device 102 includes memory 121, CPU 122, and I / F 120. These components are coupled to each other, for example, via a communication path (such as a bus). I / F 120 is an interface for coupling to controller 101. Memory 121 and disk 123 store programs and data. CPU 122 executes programs in memory 121 based on commands from controller 101. Storage device 102 can provide block format storage capabilities, such as FC-SAN (Fibre Channel Storage Area Network), to controller 101.

[0081] Since the core file storage device 200 is configured the same as the edge file storage device 100, the core file storage device 200 will be shown and described in a simplified manner.

[0082] Figure 4 This is a configuration diagram of object storage device 300.

[0083] The object storage device 300 has a controller 301 and a storage device 302. The controller 301 has a memory 303, a CPU 305, a network I / F 306, and an I / F 304. These components are coupled to each other, for example, via a communication path (such as a bus).

[0084] CPU 305 executes programs stored in memory 303. Network I / F 306 is an interface for communicating with core file storage device 200 via the network within data center 20. I / F 304 is an interface coupled to I / F 320 for communication with storage device 302.

[0085] Memory 303 stores programs and information used to control object storage device 300. Specifically, for example, memory 303 stores object operation program 310, namespace management program 311, and operating system (OS) 312. It should be noted that the corresponding programs and information stored in memory 303 may be stored in storage device 302. In this case, the program will be read into memory 303 by CPU 305 and executed by CPU 305.

[0086] Object manipulation program 310 is a program for handling requests (e.g., PUT requests or GET requests) from core file storage device 200. Namespace management program 311 is a program for creating and managing namespaces.

[0087] Storage device 302 includes memory 321, CPU 322, disk 323, and I / F 320. These components are coupled to each other, for example, via communication paths (such as buses). I / F 320 is an interface for coupling to controller 301. Memory 321 and disk 323 store programs and data. CPU 322 executes programs in memory 321 based on commands from controller 301. Storage device 302 may provide block format storage functionality, such as FC-SAN, to controller 301.

[0088] Figure 5 This is an example of a management information file 400.

[0089] A management information file 400 is generated in association with each user file stored in the edge file storage device 100. The management information file 400 has user file management information 410 and partial management information 420.

[0090] User file management information 410 has entries for each object address 411. Each entry includes the object address 411 added to the user file, the file status 412 of the user file, the file handler 413 of the user file, and a counter 414.

[0091] Object address 411 is the address on object storage device 300 that stores the user file corresponding to management information file 400. File status 412 indicates the status of the user file and is one of unclean, cached, or stub. Counter 414 indicates the number of times the file has been moved or stubbed by data mover program 112. Each time data mover program 112 moves or stubs a file, data mover program 112 increments the counter 414 maintained in management information file 400 corresponding to that file.

[0092] The partial management information 420 has an offset 421, a length 422, and a partial status 423. The offset 421 indicates the starting position of the update process when the user file undergoes partial update processing, the length 422 indicates the length of data that has undergone update processing from the position of offset 421, and the partial status 423 indicates the status of the part and is any one of unclean, stub, and cache.

[0093] Figure 6 An example representing an operation log 500.

[0094] As described above, an operation log 500 is provided for each node 150. The operation log 500 records the operation type 501, file handler 502, type 503, offset 504, length 505, counter 506, and timestamp 507.

[0095] Examples of operation type 501 include creation, update, metadata update, copy, and stub. File handler 502 is the main file handler for the operation on the target file. Type 503 is a value indicating whether the object to be the target of the operation is a file or a directory.

[0096] Offset 504 indicates the starting offset of the target range in the file being operated on. Length 505 indicates the size of the target operation.

[0097] Counter 506 indicates the number of times the file has been migrated or stubbed by data mover program 112 since its creation. When operations are performed by I / O hook program 111, such as when the operation type is create, update, reference, metadata update, and metadata reference, the value of counter 414 for management information file 400 is stored. However, when operations are performed by data mover program 112, such as when the operation type is migrate and stub, the value obtained by incrementing the value of counter 414 for management information file 400 is stored. Timestamp 507 indicates the point in time when the operation was performed.

[0098] Next, we will refer to Figures 7 to 13 The flowchart in the present embodiment describes the processing of the file storage system 1.

[0099] Figure 7Example of a flowchart illustrating file / directory creation process 1000. File / directory creation process 1000 is performed in each edge file storage device 100 when the CPU 105 of controller 101 executes file sharing program 110 and IO hook program 111.

[0100] File sharing program 110 receives a file / directory creation request from client 600 (S1001).

[0101] The IO hook program 111 detects file / directory operations received by the file sharing program 110 (S1002).

[0102] The IO hook procedure 111 determines whether the operation detected in S1002 is file / directory creation (S1003).

[0103] If the operation detected in S1002 is not file / directory creation (S1003: No), end file / directory creation process 1000 (S1010).

[0104] On the other hand, when the operation detected in S1002 is file / directory creation (S1003: Yes), the IO hook program 111 requests the file system program 113 to perform file / directory creation, and the file system program 113 creates the file / directory in the file system 130.

[0105] In this step, based on the file type of the target file detected in S1002, when the file type is a regular file, the IO hook program 111 requests the file system program 113 to perform file creation; when the file type is a directory, the IO hook program requests the file system program 113 to perform directory creation.

[0106] The file system program 113 creates a file / directory based on the requested file type (S1004). The IO hook program 111 adds information about the created file / directory to the operation log 500. At this time, zero is stored in the counter 506 (S1005).

[0107] The IO hook program 111 sets the state of the created file / directory to unclean and stores it as an initial value of zero in the counter 414 (S1006). The method for managing the state of the file / directory can be any method such as storing the state in the file's metadata, storing the state in a file different from the created file / directory (in this embodiment), or storing the state in a database.

[0108] The IO hook program 111 determines the status of the parent directory of the created file / directory (S1007).

[0109] When the parent directory of the created file / directory is not in a state of unclean (step S1007: No), the IO hook program 111 updates the state of the parent directory to unclean (S1008).

[0110] On the other hand, when the parent directory of the created file / directory is in an unclean state (step S1007: Yes), the process transitions to S1009.

[0111] The file sharing program 110 responds to the client 600 (S1009) with the completion of file / directory creation and ends the file / directory creation process 1000 (S1010).

[0112] Since file / directory creation process 1000, information about the created file / directory is stored in operation log 500, the status of the created file / directory and the status of the parent directory of the created file / directory are set to unclean, and files / directories updated after previous migration processes can be identified.

[0113] Figure 8 Example of a flowchart illustrating file update processing 2000. File update processing 2000 is performed in each edge file storage device 100 when the CPU 105 of controller 101 executes file sharing program 110 and IO hook program 111.

[0114] File sharing program 110 receives a file update request from client 600 (S2001). Specifically, file updates include updating and adding file data through write operations, expanding and truncating file data through truncation operations, changing the file's owner / group or access rights, and updating metadata (such as updating and adding extended attributes).

[0115] The IO hook program 111 detects file / directory operations received by the file sharing program 110 (S2002).

[0116] The IO hook procedure 111 determines whether the operation detected in S1002 is a file update (S2003).

[0117] If the operation detected in S2002 is not a file update (S2003: No), end the file update process 2000 (S2011).

[0118] On the other hand, when the operation detected in S2002 is a file update (S2003: Yes), the IO hook program 111 requests the file system program 113 to perform the file update, and the file system program 113 updates the relevant files in the file system 130.

[0119] In this step, based on the file update operation detected in S2002, when the operation is a data update, the IO hook program 111 requests the file system program 113 to perform a write operation or a truncation operation, and when the operation is a metadata update, the IO hook program requests the file system program 113 to perform a metadata update operation. The file system program 113 updates the file based on the requested file operation.

[0120] The IO hooking program 111 confirms the status of the updated portion of the file within the updated file range and determines whether the status of the file portion is unclean (S2005).

[0121] When the file portion of the updated file data is not in an unclean state (step S2005: No), the IO hook program 111 adds the file update information to the operation log 500. At this time, the counter 414 of the user file management information 410 is stored in the counter 506 (S2006).

[0122] The IO hook program 111 changes the status of the updated file portion to unclean (S2007). At this time, the value of the counter 414 in the user file management information 410 does not change.

[0123] The method for managing the state of each scope of file data can be any method such as storing the state in the file's metadata, storing the state in a management file different from the target file (in this embodiment), or storing the state in a database. In this step, when one scope of operations is not unclean while another scope of operations is unclean, only the part that is not unclean is changed to unclean.

[0124] On the other hand, when the file portion of the updated file data of the updated file is in an unclean state (step S2005: Yes), the process transitions to S2008.

[0125] The IO hook program 111 confirms the status of the updated file and determines whether the status is unclean (S2008).

[0126] When the updated file is not in an unclean state (step S2008: No), the IO hook program 111 changes the file's state to unclean (S2009).

[0127] On the other hand, when the status of the updated file is unclean (step S2008: Yes), the process transitions to S2010.

[0128] The file sharing program 110 responds to the client with a file update complete response 600 (S2010) and ends the file update process 2000 (S2011).

[0129] Because of file update processing 2000, information about the updated files is stored in operation log 500, the state of the range of file data of the updated files and the state of the files are set to unclean, and file data and files updated after the previous migration process can be identified.

[0130] Figure 9 Example of a flowchart illustrating file read processing 8000. File read processing 8000 is performed in each edge file storage device 100 when the CPU 105 of controller 101 executes file sharing program 110, IO hook program 111, and data mover program 112.

[0131] File sharing program 110 receives a file read request from client 600 (S8001).

[0132] The IO hook program 111 detects file / directory operations received by the file sharing program 110 (S8002).

[0133] The IO hook procedure 111 determines whether the operation detected in S8002 is a file read (S8003).

[0134] If the operation detected in S8002 is not a file read (S8003: No), end the file read process 8000 (S8012).

[0135] On the other hand, when the operation detected in S8002 is a file read (S8003: Yes), the IO hook program 111 determines whether a portion of the operation range is a stub (S8004).

[0136] When a portion of the operation range is a stub (S8004: Yes), transition to S8005; but when a portion of the operation range is not a stub (S8004: No), transition to S8008. Even if only a portion of the operation range is a stub, the "yes" determination is made in S8004.

[0137] When the operation scope is in stub state, the IO hook program 111 requests the data mover program 112 to issue a recall, and the data mover program 112 requests data from the core file storage device 200 (S8005). Recall refers to the process of retrieving data from the core when the data is not stored in the file system 130 of the edge file storage device 100.

[0138] Data mover program 112 receives data from object storage device 300 (S8006).

[0139] The data mover program 112 stores the data in the file system 130 via the file system program 113 (S8007).

[0140] The IO hook program 111 adds the recall information to the operation log 500. At this time, the counter 414 of the user file management information 410 is stored in the counter 506 (S8008).

[0141] The IO hook procedure 111 changes a portion of the state of the operation range from the stub to the cache (S8009).

[0142] The IO hook program 111 performs file reading via the file system program 113 (S8010).

[0143] The IO hook program 111 sends a response to the client 600 (S8011) and ends the file reading process 8000 (S8012).

[0144] Figure 10 Example of a flowchart illustrating file migration processing 3000. When the CPU 105 of controller 101 executes data mover program 112, file migration processing 3000 is performed in each edge file storage device 100.

[0145] It should be noted that file migration processing 3000 can be executed when the specified conditions are met. For example, file migration processing 3000 can be executed periodically or irregularly, or when client 600 performs an operation relative to file system 130. Furthermore, file migration processing 3000 and directory migration processing can be executed sequentially or simultaneously.

[0146] The data mover program 112 acquires files that meet the conditions of being unclean and being files from files / directories stored in the file system 130, and creates a file list (S3001).

[0147] The method for obtaining a file that meets the conditions in this step can be any of the following: crawling the file system 130, extracting a file from the operation log that records the file system operation (in this embodiment), and extracting a file from a database that manages file system operation information.

[0148] The data mover program 112 determines whether the list created in S3001 is empty (step S3002).

[0149] When the list is empty (step S3002: Yes), the data mover program 112 ends the file migration process 3000 (S3013).

[0150] On the other hand, when the list is not empty (step S3002: No), the data mover program 112 retrieves an entry from the list (S3003).

[0151] The data mover program 112 acquires the management information of the entries. The storage location of the management information may be an extended attribute of a file, a management file (in this embodiment), or a database.

[0152] The data mover program 112 obtains entries whose file data is in an unclean state based on the management information obtained in S3004 as a transfer part list (S3005).

[0153] The data mover program 112 retrieves the position of the record in the transfer part list obtained in S3005 from the main file via the file system program 113 (S3006).

[0154] Data mover program 112 obtains the object address from the management information and issues an update request relative to that object address. At this time, the file data obtained in S3006 is transferred (S3007).

[0155] The object storage device 300 receives a request from the edge file storage device 100 and stores the received data relative to the specified object address (S3008).

[0156] The object storage device 300 sends a response to the edge file storage device 100 (S3009).

[0157] The data mover program 112 adds file migration information to the operation log 500 (S3010). At this time, the value obtained by incrementing the value of the counter 414 of the user file management information 410 is stored in the counter 506.

[0158] The data mover program 112 changes the file status of the file that has been transferred to the core and the partial status of the file data of the transferred part to the cache, and adds 1 to the value of the counter 414 of the user file management information 410 (S3011).

[0159] The data mover program 112 removes the entry for the transferred file from the list created in S3001 and transitions to S3002 (S3012).

[0160] Figure 11 An example flowchart illustrating directory migration process 6000. Directory migration process 6000 is performed in each edge file storage device 100 when the CPU 105 of controller 101 executes data mover program 112.

[0161] It should be noted that directory migration process 6000 can be executed when the specified conditions are met. For example, directory migration process 6000 can be executed periodically or irregularly, or when client 600 performs an operation relative to file system 130. Furthermore, file migration process 3000 and directory migration process can be executed sequentially or simultaneously.

[0162] The data mover program 112 acquires files that meet the conditions of being unclean and having a file type from a directory in a file / directory stored in the file system 130, and creates a file list (S6001).

[0163] The method for obtaining a file that meets the conditions in this step can be any of the following: crawling the file system 130, extracting a file from the operation log that records the file system operation (in this embodiment), and extracting a file from a database that manages file system operation information.

[0164] The data mover program 112 determines whether the list created in S6001 is empty (step S6002).

[0165] When the list is empty (step S6002: Yes), the data mover program 112 ends the directory migration process 6000 (S6013).

[0166] On the other hand, when the list is not empty (step S6002: no), the data mover program 112 retrieves an entry from the list (S6003).

[0167] The data mover program 112 acquires the management information of the entry (S6004). The storage location of the management information may be an extended attribute of a file, a management file (in this embodiment), or a database.

[0168] Data mover program 112 obtains directory information from the management information acquired in S6004 (S6005). The directory information includes the directory's metadata and directory entry information. The directory entry information includes the names and object addresses of files / directories within the directory.

[0169] Data mover program 112 generates directory information for object storage based on the directory information obtained in S6005 (S6006).

[0170] Data mover program 112 obtains the object address from the management information and issues an update request relative to that object address. At this time, the directory information for object storage generated in S6006 is transmitted (S6007).

[0171] The object storage device 300 receives a request from the edge file storage device 100 and stores (updates) the received data relative to the specified object address (S6008).

[0172] The object storage device 300 sends a response to the edge file storage device 100 (S6009).

[0173] The data mover program 112 adds directory migration information to the operation log 500 (S6010). At this time, the value obtained by incrementing the value of the counter 414 of the user file management information 410 is stored in the counter 506.

[0174] The data mover program 112 changes the status of the files that have been transferred to the core directory to the cache and adds 1 to the value of the counter 414 of the user file management information 410 (S6011).

[0175] The data mover program 112 removes the entry for the transfer directory from the list created in S6001 and transitions to S6002 (S6012).

[0176] Figure 12 This is an example of a flowchart illustrating file stub processing 9000. File stub processing 9000 is a process used to delete data from a file whose file state 412 is cached and change the file state 412 to stub in a file that has been migrated to object storage device 300.

[0177] When the CPU 105 of controller 101 executes the data mover program 112, file stub processing 9000 is performed in each edge file storage device 100. It should be noted that file stub processing 9000 can be executed when specified conditions are met. For example, file stub processing 9000 can be executed periodically or irregularly, or when client 600 performs an operation relative to file system 130. Furthermore, file stub processing 9000 can be executed sequentially or simultaneously with file migration processing 3000 and directory migration processing 6000.

[0178] When file stub processing begins (step S9000), the data mover program 112 obtains a list of entries whose file status 412 is cached and whose type is file (step S9001).

[0179] The method for obtaining a file that meets the conditions in this step can be any of the following: crawling the file system 130, extracting files from the operation log that records file system operations, and extracting files from a database that manages file system operation information.

[0180] Next, the data mover program 112 determines whether the file list obtained in step S9001 is empty (step S9002). Therefore, when a positive determination is made (yes in step S9002), the program moves to step S9009, but when a negative determination is made (no in step S9002), the program moves to step S9003.

[0181] In step S9003, the data mover program 112 retrieves an entry from the list obtained in step S9001. Next, the data mover program 112 retrieves the management information file 400 indicated by the entry obtained in step S9003 (step S9004). Next, the data mover program 112 retrieves the user file indicated by the management information file 400 obtained in step S9004 (step S9005).

[0182] The data mover program 112 adds stub information to the operation log 500 (S9006). At this time, the value obtained by incrementing the value of the counter 414 of the user file management information 410 is stored in the counter 506.

[0183] The data mover program 112 changes the file status 412 of the stub file from cache to stub, changes the partial status 423 of the range of data that has been deleted from cache to stub, and adds 1 to the value of counter 414 of user file management information 410 (S9007).

[0184] Data mover program 112 deletes entries from the file list obtained in step S9001 (step S9008).

[0185] Figure 13 An example flowchart of consistency recovery process 7000 is shown. Consistency recovery process 7000 is a process used to reference operation log 500 and restore consistency relative to inconsistent files. Consistency recovery process 7000 is performed in each edge file storage device 100 when the CPU 105 of controller 101 executes consistency recovery procedure 115.

[0186] It should be noted that consistency recovery process 7000 can be executed when specified conditions are met. For example, consistency recovery process 7000 can be executed after node 150 starts up following recovery from a failure such as a power outage. Alternatively, consistency recovery process 7000 can be executed periodically or irregularly, or when client 600 performs operations relative to file system 130.

[0187] The consistency recovery procedure 115 collects the operation logs 500 (S7001) of all nodes 150.

[0188] The consistency recovery procedure 115 determines whether consistency recovery of all files whose information is stored in the operation log 500 has been completed (S7002).

[0189] When the consistency recovery of all files whose information is stored in the operation log 500 is completed (S7002: Yes), the consistency recovery process ends (S7012).

[0190] On the other hand, if the consistency recovery of all files whose information is stored in the operation log 500 is not completed (S7002: No), the target file to be recovered is selected (S7003).

[0191] The consistency recovery procedure 115 recovers the management information file 400, which is the file to be recovered, from the backup (S7004). This embodiment assumes that the management information file 400 was also transferred to the object storage device 300 as a migration target, and in S7004, the management information file 400 is recovered from the object storage device 300. However, backup is not limited to this backup method and another mechanism for backup can be used.

[0192] The consistency recovery procedure 115 collects the operation log 500 of the recovery target file and sorts the operation log 500 according to the value of the counter 506 (S7005).

[0193] The consistency recovery procedure 115 determines whether the recovery of all parts relative to the recovery target file has been completed (S7006).

[0194] When all parts of the recovery relative to the target file are completed (S7006: Yes), transition to S7002.

[0195] On the other hand, when not all parts of the recovery relative to the target file have been completed (S7006: No), the consistency recovery procedure 115 determines whether the write operation is included in the maximum value of the part's counter 506 (S7007).

[0196] When a write operation is included in the maximum value of the part's counter 506 (S7007: Yes), the consistency recovery procedure 115 sets the uncleanness to the part's partial state 423 (S7008).

[0197] On the other hand, when the write operation is not included in the maximum value of the part's counter 506 (S7007: No), the consistency recovery procedure 115 determines whether the maximum value of the part's counter 506 is a stub (S7009).

[0198] When the maximum value of the partial counter 506 is a stub (S7009: Yes), the consistency recovery procedure 115 sets the stub to the partial state 423 of the partial and transitions to S7006 (S7010).

[0199] When the maximum value of the partial counter 506 is not a stub (S7009: No), the consistency recovery procedure 115 sets the cache to the partial state 423 of the partial and transitions to S7007 (S7011).

[0200] It should be noted that simplification can be achieved by not distinguishing between stubs and caches. In this case, the cache is also treated as a quasi-stub. Therefore, even when a change from cache to stub occurs due to a stub, the counter value is not updated. Furthermore, in S7009, a stub is assumed, and processing proceeds to S7010 in all cases, and recovery is performed under the assumption of a stub even if a failure occurs while the partial state is cached. Even when performing these steps, no problems arise because the only difference is ignoring the data of the cached file in the edge file storage device 100 and over-generating recall processing to retrieve the same data from the object storage device.

[0201] According to the configuration described above in this embodiment, the consistency of file virtualization management information in the distributed file system can be guaranteed, while preventing the client's IO performance from degrading.

[0202] It should be noted that the components of the above embodiments have been described in detail to provide a clear understanding of the invention, and the invention is not necessarily limited to embodiments that include all of the above components. Furthermore, a portion of a component of a corresponding embodiment may be added to other components, removed from other components, or replaced with other components.

[0203] Furthermore, the aforementioned components, functions, processing units, and processing devices can be partially or entirely implemented in hardware, for example, by designing using integrated circuits. Additionally, the present invention can also be implemented by software program code that implements the functions of the embodiments. In this case, a computer is provided with a storage medium on which program code is recorded, and a processor included in the computer reads the program code stored in the storage medium. In this case, the program code read from the storage medium itself is used to implement the functions of the aforementioned embodiments, and the program code itself and the storage medium storing the program code constitute the present invention. Examples of storage media used for supplying such program code include floppy disks, CD-ROMs, DVD-ROMs, hard disks, SSDs (Solid State Drives), optical disks, magneto-optical disks, CD-Rs, magnetic tapes, non-volatile memory cards, and ROMs.

[0204] Furthermore, the program code that implements the functions described in this embodiment can be implemented in a wide range of program or scripting languages, such as assembler, C / C++, perl, shell, PHP, Java (registered trademark), and Python.

[0205] In the above embodiments, control lines and information lines are those considered necessary for illustrative purposes, and not all control lines and information lines are necessarily represented in the context of the product. All components may be coupled to each other.

Claims

1. A file storage system comprising multiple nodes having processors and storage devices, the file storage system including a first storage system and a second storage system, the first storage system being configured to store files via a distributed file system and perform input / output of the files for clients, files stored in the first storage system being transferred to the second storage system, the file storage system implementing file virtualization functionality through the first storage system and the second storage system, wherein... The file storage system has a management information file and an operation log. The management information file includes counter values ​​indicating time-series order, and the management information file is provided for each file. The operation log describes the file's operations along with the counter values. The first storage system is configured as follows: The operation is performed on the file based on the operation request for the file stored in the first storage system. The operation log describes the counter value of the management information file associated with the file for which the operation is to be performed, as well as the operation content for the file, and replies to the operation request. When a file stored in the first storage system is transferred to the second storage system, the counter value of the management information file is updated.

2. The file storage system according to claim 1, wherein Even when the file is deleted from the first storage system while it is stored in the second storage system, the counter value of the management information file is updated.

3. The file storage system according to claim 1, wherein... When a file is transferred to the second storage system, the counter value of the management information file associated with the file involved in the operation is updated, but when the file is stored in the first storage system, the counter value is not updated during file operations.

4. The file storage system according to claim 2, wherein The transfer of files to the second storage system is a migration process in which files are transferred but remain in the first storage system. The second storage system, upon receiving the transfer, is configured to store the transferred files or update the stored files. Deleting a file from the first storage system is a stub process, and a recall process can be performed to transfer the deleted file from the second storage system back to the first storage system.

5. The file storage system according to claim 1, wherein... When a failure occurs, the operation content of the operation log, the relationship between the files stored in the first storage system and the files stored in the second storage system are identified based on the counter value, and the consistency between the files and the management information files is restored.

6. The file storage system according to claim 1, wherein The first storage system is deployed in each of the plurality of nodes. The management information file is located in at least one of the plurality of nodes, and The first storage system performing the operation on the file is configured to accept the operation request, obtain the management information file counter value of the file to be the target of the operation from any of the nodes, and describe the operation content and counter value in the operation log of the node on which the first storage system itself is located.

7. The file storage system according to claim 4, wherein The management information file has the status of the file in the first storage system corresponding to the file in the second storage system, and When an operation is performed on a file in the first storage system, the state of the file is updated.

8. The file storage system according to claim 6, wherein The state of a file is the partial state of each part of the file, and The file's partial state includes: The message "unclean" indicates that the file was not reflected in the second storage system after the operation. The cache indicates that the file after the operation is reflected on the second storage system, while the file is simultaneously stored in the first storage system; And a stub, indicating that the file after the operation is reflected on the second storage system, while the file is not stored in the first storage system.

9. The file storage system according to claim 7, wherein When consistency is restored, the processor is configured as follows: Consistency is restored when file updates are included in the operations on the file with the largest counter value, assuming a partially unclean state. When the operation on the file with the largest counter value is only file migration, the consistency of the management information file is restored under the assumption that part of its state is cached. When the operation on the file with the largest counter value is only the stub processing of the file, the consistency of the management information file is restored under the assumption that some of its states are stubs.

10. A file management method using a file storage system, the file storage system comprising multiple nodes having processors and storage devices, the file storage system including a first storage system and a second storage system, the first storage system storing files through a distributed file system and performing file input / output for clients, files stored in the first storage system being transferred to the second storage system, the file storage system implementing file virtualization functionality through the first storage system and the second storage system. The file storage system has a management information file and an operation log. The management information file includes counter values ​​indicating time-series order, and the management information file is provided for each file. The operation log describes the file's operations along with the counter values. The method includes: The operation is performed on the file based on the operation request for the file stored in the first storage system, and the operation log describes the counter value of the management information file associated with the file for which the operation is to be performed and the operation content for the file, and also responds to the operation request. as well as When a file stored in the first storage system is transferred to the second storage system, the counter value of the management information file is updated.

Citation Information

Patent Citations

  • Retractable sleeve for pen needle assembly

    JP2021007742A

  • File system based key value service

    US20170192989A1

  • A failure recovery method in an information processing system and an information processing system

    CN106407044A

  • Cloud storage data grading method based on user behaviors

    CN109918448A