SYSTEM OF DISTRIBUTED FILES AND METHOD FOR ACCESSING A FILE IN SUCH A SYSTEM
Patent Information
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2020-06-10
- Publication Date
- 2026-04-08
AI Technical Summary
Existing distributed file systems experience a decrease in input/output performance as the number of compute nodes increases, leading to bottlenecks when multiple clients access the same file block simultaneously, despite mechanisms for fault tolerance and replication.
The system allows clients to access replicas of data blocks in addition to the primary block, distributing the load across multiple servers using an access management device that selects servers based on parameters such as load balancing algorithms and performance metrics, ensuring clients connect directly to the selected servers without passing through the management device.
This approach significantly improves read performance by up to twice the original rate for two replications and three times for three replications, preventing server-level bottlenecks and enabling scalable, high-availability file system access.
Description
TECHNICAL FIELD OF THE INVENTION
[0001] The technical domain of the invention is that of distributed file systems.
[0002] The present invention relates to the improvement of the performance of distributed file systems for access by several clients to the same part of a file or to the same file and in particular in a context of high-performance computing (“HPC” according to the Anglo-Saxon term “High-Performance Computing”). TECHNOLOGICAL BACKGROUND OF THE INVENTION
[0003] High-performance computing systems comprise a plurality of compute nodes, storage nodes including disks storing data, and a high-speed communication infrastructure. The stored data might include, for example, network boot images used when the compute nodes start up. The compute nodes implement applications, such as those dedicated to computation, and the storage nodes implement a file system to allow applications to access the data stored on the storage nodes' disks.
[0004] Well-known distributed file systems, such as Ceph® or GlusterFS®, allow network file sharing among multiple clients. Thus, several nodes within a network of compute nodes can access the same data, for example, the same network boot image, in the form of files or objects.
[0005] The files in most distributed file systems are stored as fixed-size blocks of data. This is represented in the [ Fig. 1 ]. In the distributed file system 1 of the [ Fig. 1 A file 10 is divided into three data blocks A, B, and C. For example, if file 10 is 12 megabytes, it is divided into three blocks A, B, and C of 4 megabytes each. Blocks A, B, and C of file 10 can each be stored on a different storage node, also called a file server in a distributed file system. In the example shown in [ Fig. 1File server S1 contains block A, file server S2 contains block B, and file server S3 stores block C. This distribution allows access to file 10 to be spread across multiple servers, S1 through S3, without overloading any single server for an extended period. Thus, a client C1 wishing to access file 10, which includes blocks A, B, and C, will retrieve each block of file 10 independently, making each server, S1 through S3, available for longer periods to other clients because the read load is distributed across three servers instead of just one.
[0006] State-of-the-art distributed file systems also include a mechanism for replicating data across multiple servers for fault tolerance. Thus, each data block in a file will be replicated at least once. Therefore, the distributed file system will store each file block twice. This is represented in the [ Fig. 1[ ], where each block A, B, and C of file 10 is stored at least once on a primary server (S1, S2, and S3, respectively) and once on a secondary server (S4, S5, and S6, respectively). It is also possible to replicate the same block of file 10 multiple times, as shown for block A of file 10, which is stored on all three servers S1, S4, and S5. Current distributed file systems use replication only for fault tolerance: if one server fails, another server takes over. State-of-the-art distributed file systems operate with a primary server and multiple replication servers. Thus, to access each data block of the file, clients C1 through C3 are only allowed to access the primary server, with the secondary servers reserved for data redundancy in case the primary server fails.
[0007] To ensure clients know the location of the primary servers for file blocks, each distributed file system has its own implementation. For example, Ceph®< is a distributed file system that includes a metadata server to provide a client with the address of the server containing a required block, while GlusterFS®< is a distributed file system that does not include a metadata server. GlusterFS®< clients locate files algorithmically using an "elastic" hashing algorithm.
[0008] A problem inherent to distributed file systems is that of high-performance computing. While computing and communication performance increases with the number of compute nodes, the input / output (IOP) performance of the distributed file system decreases as the number of compute nodes increases. IOPs at the file server level in a distributed file system are measured in IOPS (Input / Output Operations Per Second). Therefore, when multiple clients (C1 to C3) attempt to access the same file block (A) simultaneously, a bottleneck occurs: performance depends on the file server's bandwidth and the capacity of its storage disks.
[0009] The following documents are known from the prior art: YANG JUI-PIN: “Intelligent Offload Detection for Achieving Approximately Optimal Load Balancing”, IEEE ACCESS, vol.6, 30 October 2018, pages 58609-58618, WO 2012 / 167094 A1 entitled “systems and methods for secure distributed storage”.
[0010] To solve this problem, so-called "parallel" file systems (Lustre ®< , GPFS ®< , BeeGFS ®< ) have been developed, but their performance could still be improved.
[0011] Therefore, there is a need for a distributed file system that can solve state-of-the-art problems in terms of performance of access by a plurality of clients to files on file servers. SUMMARY OF THE INVENTION
[0012] The invention offers a solution to the problems mentioned above, by allowing customers to access replicas of data blocks in addition to the data blocks already accessible.
[0013] The invention is defined by the independent claims. Several implementation examples are given by the dependent claims.
[0014] Thanks to the invention, the read performance for each server for accessing the same file by a plurality of clients is improved (up to a multiplication by two for two replications, by three for three replications, etc.), by giving access to the plurality of clients to the different replicas stored by the different servers.
[0015] Furthermore, an access management system allows client access to be distributed across multiple servers. Thus, a single server is no longer solely responsible for serving a file or part of a file; instead, several servers share responsibility for serving the file or part of the file. This avoids creating a performance bottleneck at the server level, where servers are solely responsible for serving a file or part of a file to multiple clients.
[0016] The method according to the invention is advantageously implemented by an access management device. Thus, the invention advantageously uses the metadata servers already present in certain distributed file systems to manage load balancing among the different servers storing the same file or part of a file. This also allows for scaling of the file system by simply adding access management devices when more clients are added to the network.
[0017] The term "file part" refers to a portion of a file, for example, a data block when the file is divided into data blocks. In the following description, a file part may also refer to the entire file.
[0018] Furthermore, the invention allows the access management device to select a server based on a parameter. This parameter provides flexibility in selecting the server that will serve the file or part of a file, as it can be modified according to network characteristics and at the discretion of a network administrator. Thus, when the network is small, a certain selection parameter can be chosen, and when the network grows, for example with the addition of new clients and / or servers, this parameter can be updated at the access management device level to better suit the new network characteristics.
[0019] Since the access management system only selects a server and establishes the connection between the selected server and the client, there is no bandwidth saturation, as the file or portion of a file is advantageously sent directly from the selected server to the client without passing through the access management system. In fact, the invention even enables very high availability because it allows for better distribution of reads across more servers, so each server is either less loaded or can handle more requests.
[0020] In addition to the characteristics mentioned in the preceding paragraph, the method for accessing at least part of a file according to one aspect of the invention may have one or more additional characteristics from among the following, considered individually or in all technically possible combinations: when the access management device receives a request to access the same part of the file sent by a third client and access to each replica of the part of the file has already been authorized to clients of the plurality of clients, then the process further includes the steps of: Selection, by the access management device, of a server from among the first server and the second server according to the parameter, Authorization of access, by the access management device, of the third client to the part of the file stored by the server selected from among the first server and the second server.Authorizing access for a client (from the first, second, and third clients) to the portion of the file stored on a server (from the first, second, and third servers) includes: sending the client a server identifier or establishing a connection between the client and the server via the access management device. Establishing the connection includes sending a connection request from the access management device to the server on behalf of the client and receiving confirmation of the connection established between the server and the client. Selecting a server (from the first, second, and third servers) includes sending a request to the server and receiving a response to that request, the response including at least one value of the server-level parameter. The file is divided into blocks, each block being a portion of the file.At least one parameter includes a server identifier defined by a load balancing algorithm. The load balancing algorithm is a round-robin type algorithm or more complex with load management (number of active connections, CPU load, etc.). At least one predefined parameter includes a performance parameter for each server among the plurality of servers storing the portion of the file. The performance parameter for each server is chosen from among the number of simultaneous clients, bandwidth, server type, server disk type, network connection type, and the number of input / output operations per second.
[0021] Another aspect of the invention relates to an access management device configured to implement the method of accessing at least a part of a file according to the invention.
[0022] Yet another aspect of the invention relates to a distributed file system comprising the access management device according to the invention, the distributed file system further comprising the plurality of clients and the plurality of servers, the part of the file being stored on one server of the plurality of servers and replicated on at least one other server of the plurality of servers.
[0023] Yet another aspect of the invention relates to a high-performance computing system comprising a plurality of client computing nodes, at least one server storage node, the high-performance computing system being characterized in that it is configured to implement the distributed file system according to the invention.
[0024] Yet another aspect of the invention relates to a computer program product comprising instructions which, when the program is executed by a computer, lead the computer to implement the steps of the access management process according to the invention.
[0025] Yet another aspect of the invention relates to a computer-readable recording medium comprising instructions which, when executed by a computer, lead the computer to implement the steps of the access management process according to the invention.
[0026] The invention and its various applications will be better understood by reading the following description and examining the accompanying figures. BRIEF DESCRIPTION OF THE FIGURES
[0027] The figures are presented for illustrative purposes only and are in no way limiting to the invention. There figure 1shows a schematic representation of a distributed file system according to the prior art, The figure 2 shows a schematic representation of a distributed file system according to the invention, The figure 3 shows a schematic representation of the method for accessing a file according to the invention, The figure 4 shows a schematic representation of the exchanges between entities in the first part of the file access process according to the invention. figure 5 shows a schematic representation of the exchanges between entities in a second part of the file access method according to the invention DETAILED DESCRIPTION
[0028] The figures are presented for illustrative purposes only and are in no way limiting to the invention.
[0029] Unless otherwise specified, the same element appearing on different figures has a unique reference.
[0030] [ Fig. 2] shows a schematic representation of a distributed file system according to the invention.
[0031] The distributed file system 2 according to the invention represented in the [ Fig. 2 The distributed file system comprises a plurality of clients C1 to C3, a plurality of servers S1 to S5, and an access management device (AG). The distributed file system 2 can implement any known type of distributed file system, such as Ceph® or GlusterFS®, for example. Advantageously, the access management device (AG) can be a metadata server already present in some distributed file systems but implementing the access management method according to the invention and comprising the necessary modules.
[0032] A file 10 is divided into several data blocks A to C. These data blocks are, for example, of the same size, but can be of different sizes depending on the system used, and the desired functionalities.
[0033] As is known from the prior art, blocks A through C of file 10 are distributed across multiple servers. Block A is stored on server S1, block B on server S2, and block C on server S3. The blocks are also replicated on other servers. Thus, blocks A and B are replicated on server S4, and blocks A and C are replicated on server S5. The distributed file system 2 can be configured to duplicate files a fixed number of times, for example, twice, or to duplicate a different number of times depending on the part of the file or depending on the file and / or its characteristics.
[0034] The GA access management device is connected to each of the clients C1 to C3 and to each of the servers S1 to S5. These connections can be implemented using any known network protocol. These connections can be established via Ethernet or InfiniBand® networks when the distributed file system 2 is implemented by a high-performance computing (HPC) system.
[0035] Servers S1 through S5 can be located on the same local area network (LAN) or on different LANs, depending on their physical distribution. Similarly, clients C1 through C3 can be located on the same LAN, for example, in the same server rack, or on different LANs depending on their geographical distribution.
[0036] The access management (AG) device can be located on the same local network as the client(s) seeking access to file 10 or to one of blocks A through C, or it can be located on a different local network, or it can be located on the same local network as one of the clients but not on the same local network as the others. Similarly, the AG device can be located on the same local network as the server(s) containing file 10 or one of blocks A through C, or it can be located on a different local network, or it can be located on the same local network as one of the servers but not on the same local network as the others. These considerations are at the discretion of the distributed file system administrator, depending on the number of clients, servers, and the required performance.
[0037] The GA access management device is configured to implement a process of accessing at least a part of the file 10 by a plurality of clients C1 to C3 in the distributed file system 2.
[0038] [ Fig. 3 ] shows a schematic representation of the method for accessing a file according to the invention.
[0039] A first part of the access process 3 is implemented by the access management device GA between the client C1 and the server S1 of the distributed file system 2, as shown in the [ Fig. 4 ].
[0040] In a first step 31, the access management device GA receives an access request to a part A of the file 10, the request having been sent by client C1 of the plurality of clients. This A_loc request may include an identifier of client C1, such as a network address for example, or any other means of identifying client C1, an indication concerning the file or the part of the file requested, for example here an identifier of block A of file 10, and any other information necessary for the authentication of client C1 with the access management device GA.
[0041] In a second step 32, the access management device GA selects a server from among all the servers in the distributed file system 2 that store block A of file 10. Whether block A is the original block A or replicas can be taken into account in the selection, for example by favoring first the server that contains the original block A. In the example shown in [ Fig. 4 ], the GA access management device selects the S1 server.
[0042] The selection in step 32 is performed based on a parameter. A parameter is associated with at least one rule for selecting a server from among the S1 to S5 servers of the distributed file system 2. Thus, when the selection is performed "based on a parameter," the value of a defined parameter is compared to a rule, for example, a threshold, to determine whether a server should be selected. A parameter can also be one or more server identifiers, defined, for example, by a load balancing algorithm. The load balancing algorithm can then be a round-robin type algorithm, or a more complex algorithm that takes into account the defined parameter(s) and / or one or more additional parameters.For a required block A of file 10, the round-robin type algorithm, which defines a list of servers that can serve block A, gives access to a first server S1 of the list including block A to the first client requesting access, for example to client C1, as represented in the [. Fig. 4 ].
[0043] Then the second client, for example C2, requesting access to block A of file 10, is given access to the second server S4 in the list containing block A as represented in the [ Fig. 5This is repeated until the last server in the list is accessed by a client. When another client requests access to block A of file 10, and all servers containing block A are already serving a client, the algorithm again indicates the first server S1 in the list. The parameter can also be a performance parameter for each server in the plurality of servers storing that part of the file. For example, the performance parameter for each server could be the number of simultaneous clients served by the server, the server's available and / or used bandwidth, the server type (processor type, generation, and frequency, memory size, etc.), the server's disk type (rotary, SSD, NVMe, in-memory), the network connection type, the number of input / output operations per second (IOPS), the CPU load, the number of active network connections, etc.
[0044] The values of these parameters can be obtained by querying the server(s) through the access management system, or through external monitoring devices. These external devices include metric collection functions that can then be used, in particular by the invention.
[0045] The present invention also relates to the use of several parameters to select at least one server. In a preferred embodiment, the combined use of several parameters is favored because it allows for a more precise selection of servers. For example, one could use the number of clients served by the server and the number of input / output operations per second. One could also combine a server identifier parameter, limiting the selection to a predefined number of servers, with a performance parameter for each of the predefined servers.
[0046] Process 3 shown in the [ Fig. 3This then includes a step 33 for authorizing access by the access management device (AG) from client C1 to block A stored by server S1, which was selected in the selection step 32. Depending on the implementation, access authorization step 33 may include sending client C1 an identifier for server S1 so that it can subsequently establish the connection itself. Alternatively, access authorization step 33 may include the establishment of the connection by the AG between client C1 and server S1. This connection establishment process involves the AG sending a connection request to server S1 on behalf of client C1 and receiving confirmation of the connection establishment between server S1 and client C1. This allows the connection to be initiated by server S1 rather than client C1.Access authorization step 33 may also include any other means of giving client C1 access to server S1 in distributed file systems 2.
[0047] When client C1 has been authorized to access a server, here server S1, from the plurality of servers, client C1 can, in a first embodiment, establish a connection with server S1. This includes sending, to server S1, which client C1 has been informed is the allocated server, an A_req request for data block A as represented in the [ Fig. 4The steps of establishing the connection and exchanging block A are not part of the process for accessing at least one file 3 because these steps are not implemented by the access management device A. When the server S1 receives the A_req request, it serves the data block A to the client C1. In an alternative embodiment, the access management device GA can, on behalf of the client C1, directly send a connection establishment request to the server S1, which will then establish the connection between itself and the client C1. Thus, the client C1 is unaware of the server S1 assigned to it for accessing block A. It will only acquire this knowledge by receiving information directly from the server S1.
[0048] Process 3 shown in the [ Fig. 3 ] includes, after step 33 authorizing client C1 to access server S1, a reception step 34, also represented in the [ Fig. 5], by the GA access management device, of an access request to the same block a of file 10 sent by another client C2. The invention advantageously uses the replicas created for fault tolerance purposes by the distributed file system 2 in order to improve the file access performance of the distributed file system 2.
[0049] After receiving the access request for block A, the GA access management device performs step 35, which selects another server S4 from among the servers containing block A, whether it be the original data block A or the replicated data block A, based on the same parameter(s) used for step 32, which selects a server for client C1. Thus, a server other than the one containing block A is selected for client C2 to access block A. This distributes the load across the servers containing block A for simultaneous access to block A by multiple clients, thereby improving the access performance of the distributed file system 2.For example, when block A is a network boot image block and a plurality of nodes of a high-performance computing system seek to access the boot image when these nodes boot simultaneously, boot performance is greatly improved since the nodes will be redirected to different servers whereas in the state of the art performance was limited by the bandwidth of the "primary" server.
[0050] The GA access management device can be aware of clients that have recently requested access to data block A, as well as the servers assigned to them, in order to distribute the load across other servers when other clients request access to the same block A, for example by sharing an access table between the different GA access management devices of the distributed file system or by
[0051] Next, the file access process 3 includes a step 36 of authorizing client C2 to access the server S4 selected in the preceding selection step 35. Depending on the implementation, this access authorization step 36 may involve sending client C2 an identifier for server S4 so that it can subsequently establish the connection itself. Alternatively, this access authorization step 36 may involve the establishment of the connection by the access management device (AG) between client C2 and server S4. This connection establishment process includes sending a connection request from the AG to server S4 on behalf of client C2 and receiving confirmation of the connection establishment between server S4 and client C2. This allows the connection to be initiated by server S4 rather than client C2.Access authorization step 36 may also include any other means of giving the C2 client access to the S4 server in the distributed file system 2.
[0052] Thanks to the invention, a replica of block A is used to improve the access performance of the distributed file system 2 and no longer just to manage server fault tolerance, by accessing several servers by different clients simultaneously.
[0053] The invention is also useful for accessing small files, for example, files smaller than the size of the blocks in the distributed file system. Indeed, with large files, multiple clients may need access to the same server, which would contain different blocks (see the S4 server, which contains blocks A and B, for example). Thus, when trying to access each block of the file, several clients may have to access the same server simultaneously. This problem does not arise with small files, since the same server does not typically contain both an original data block and its replica. It should be noted that, although less advantageous, the invention still allows for the creation of replicas on the same server to improve access performance, for example, by storing the replica on a different disk on the same server, thus avoiding the performance limitations of a single disk, unlike the current state of the art.
Claims
1. Method (3) for a plurality of clients (C1, C2, C3) to access at least one part (A, B, C) of a file (10) in a distributed file system (2) comprising a plurality of servers (S1, S2, S3, S4, S5), the part (A) of the file (10) being stored on a server (S1) of the plurality of servers (S1, S2, S3, S4, S5) and replicated on at least one other server (S4, S5) of the plurality of servers (S1, S2, S3, S4, S5), the method (3) comprising the following steps: - an access management device (GA) receiving (31) a request (A_loc) to access the part (A) of the file (10) sent by a first client (C1) of the plurality of clients (C1, C2, C3), - the access management device (GA) selecting (32), on the basis of at least one parameter, the first server (S1) from the server (S1) comprising the part (A) of the file (10) and the at least one other server (S4, S5) comprising the replica of the part (A) of the file (10) - the access management device (GA) authorizing (33) the first client (C1) to access the part (A) of the file (10) stored by the first server (S1) selected for the first client (C1) to access the part (A) of the file (10), the authorization (33) comprising the access management device (GA), on behalf of the first client (C1), directly sending a connection establishment request to the server (S1) and the first server (S1) establishing a connection with the first client (C1), - the access management device (GA) receiving (34), after authorizing (33) the first client (C1) to access the part (A) of the file (10) stored by the first server (S1), a request (A_loc) to access the same part (A) of the file (10) sent by a second client (C2) of the plurality of clients (C1, C2, C3), the second client (C2) being different from the first client (C1), - the access management device (GA) selecting (35), on the basis of the parameter, a second server (S4) from the server (S1) comprising the part (A) of the file (10) and the at least one other server (S4, S5) comprising the replica of the part (A) of the file (10), the second server (S4) being different from the first server (S1), - the access management device (GA) authorizing (36) the second client (C2) to access the at least one replica of the part (A) of the file (10) stored by the second server (S4) selected for the second client (C2) to access the part (A) of the file (10).
2. Method (3) for accessing at least one part (A) of a file (10) according to the preceding claim, characterized in that, when the access management device (GA) receives a request (A_loc) to access the same part (A) of the file (10) sent by a third client (C3) and access to each replica of the part (A) of the file (10) has already been authorized for clients (C1, C2) of the plurality of clients (C1, C2, C3), then the method (3) further comprises the steps of: - the access management device (GA) selecting a server from the first server (S1) and the second server (S4) on the basis of the parameter, - the access management device (GA) authorizing the third client (C3) to access the part (A) of the file (10) stored by the server selected from the first server (S1) and the second server (S2).
3. Method (3) for accessing at least one part (A) of a file (10) according to either one of the preceding claims, characterized in that authorizing a client from the second client (C2) and the third client (C3) to access the part (A) of the file (10) stored on a server from the first server (S1) and the second server (S4) comprises: - sending an identifier of the server to the client or - the access management device (GA) establishing the connection between the client and the server, establishing the connection comprising the access management device (GA) sending a connection request to the server on behalf of the client and receiving confirmation that the connection between the server and the client has been established.
4. Method (3) for accessing at least one part (A) of a file (10) according to any one of the preceding claims, characterized in that the file (10) is divided into blocks (A, B, C), each block (A, B, C) being a part of the file.
5. Method (3) for accessing at least one part (A) of a file (10) according to any one of the preceding claims, characterized in that the at least one parameter comprises at least one server identifier defined by a load balancing algorithm.
6. Method (3) for accessing at least one part (A) of a file (10) according to the preceding claim, characterized in that the load balancing algorithm is a "round robin" algorithm or a load balancing algorithm that takes at least one parameter into account in terms of the servers.
7. Method (3) for accessing at least one part (A) of a file (10) according to any one of the preceding claims, characterized in that the at least one predefined parameter comprises a performance parameter for each server of the plurality of servers storing the part (A) of the file (10).
8. Method (3) for accessing at least one part (A) of a file (10) according to the preceding claim, characterized in that the performance parameter for each server is chosen from the number of simultaneous clients, the bandwidth, the server type, the type of drives of the server, the type of network connection, and the number of input and output operations per second.
9. Distributed file system (2) configured to carry out the method of any of the preceding claims and comprising the access management device (GA), the distributed file system (2) further comprising the plurality of clients (C1, C2, C3) and the plurality of servers (S1, S2, S3, S4), the part (A) of the file (10) being stored on a server of the plurality of servers and replicated on at least one other server of the plurality of servers.
10. High-performance computing system comprising a plurality of client compute nodes and a plurality of server storage nodes, the high-performance computing system being characterized in that it is configured to implement the distributed file system (2) according to the preceding claim.
11. Computer program product comprising instructions that, when the program is executed by a computer, cause said computer to implement the steps of the access management method (3) according to any one of claims 1 to 8.
12. Computer-readable storage medium comprising instructions that, when executed by a computer, cause said computer to implement the steps of the access management method (3) according to any one of claims 1 to 8.