Storage allocation in a distributed segmented file system
First Claim
1. A method of associating data with a file server in a file system, the method comprising:
- receiving a communication at a first device among an association of devices that implements a distributed, segmented single file system including file system entities residing in segments and comprising at least portions of one of files and directories, the association of devices including a plurality of file servers that control metadata of separate segments, including metadata of file system entities residing in the segments, the communication pertaining to data to be stored in the single file system, the data belonging to a directory of the single file system residing in a first segment controlled by a second file server; and
storing the data in a second segment under control of a third file server concurrently with control of the first segment by the second file server, the data being stored in the single file system non-hierarchically relative to the directory, with the third file server being a file server other than the second file server;
wherein the second segment is selected in accordance with a storage policy dependent upon at least one of (1) amounts of free storage space and free data identifiers, (2) relative amounts of free storage space and free data identifiers on a base file server and a possible controlling server, (3) at least one affinity group associating an application with a preferred segment, (4) a random selection from at least a first subset of the segments, (5) relative amounts of free storage space in different segments, (6) relative free amounts of file/directory location identifiers in different segments, (7) a predetermined pattern of at least a second subset of the segments, (8) a first constraint that subdirectories are to be stored hierarchically and files are to be stored non-hierarchically, and (9) a second constraint that subdirectories are to be stored non-hierarchically and files are to be stored hierarchically.
6 Assignments
0 Petitions
Accused Products
Abstract
A file system (i) permits storage capacity to be added easily, (ii) can be expanded beyond a given unit, (iii) is easy to administer and manage, (iv) permits data sharing, and (v) is able to perform effectively with very large storage capacity and client loads. State information from a newly added unit is communicated (e.g., automatically and transparently) to central administration and management operations. Configuration and control information from such operations is communicated (e.g., automatically) back down to the newly added units, as well as existing units. In this way, a file system can span both local storage devices (like disk drives) and networked computational devices transparently to clients. Such state and configuration and control information can include globally managed segments as the building blocks of the file system, and a fixed mapping of globally unique file identifiers (e.g., Inode numbers) and/or ranges thereof, to such segments.
-
Citations
37 Claims
-
1. A method of associating data with a file server in a file system, the method comprising:
-
receiving a communication at a first device among an association of devices that implements a distributed, segmented single file system including file system entities residing in segments and comprising at least portions of one of files and directories, the association of devices including a plurality of file servers that control metadata of separate segments, including metadata of file system entities residing in the segments, the communication pertaining to data to be stored in the single file system, the data belonging to a directory of the single file system residing in a first segment controlled by a second file server; and storing the data in a second segment under control of a third file server concurrently with control of the first segment by the second file server, the data being stored in the single file system non-hierarchically relative to the directory, with the third file server being a file server other than the second file server; wherein the second segment is selected in accordance with a storage policy dependent upon at least one of (1) amounts of free storage space and free data identifiers, (2) relative amounts of free storage space and free data identifiers on a base file server and a possible controlling server, (3) at least one affinity group associating an application with a preferred segment, (4) a random selection from at least a first subset of the segments, (5) relative amounts of free storage space in different segments, (6) relative free amounts of file/directory location identifiers in different segments, (7) a predetermined pattern of at least a second subset of the segments, (8) a first constraint that subdirectories are to be stored hierarchically and files are to be stored non-hierarchically, and (9) a second constraint that subdirectories are to be stored non-hierarchically and files are to be stored hierarchically. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 35)
-
-
13. An apparatus disposed in a first device of an association of devices and comprising:
-
a memory that stores computer-readable, computer-executable instructions; and a processor coupled to the memory and configured to read and execute the instructions to; determine that a communication is received pertaining to data to be stored in a file system, the file system being implemented by the association of devices and being a distributed, segmented single file system including file system entities residing in segments and comprising at least portions of one of files and directories, the association of devices including a plurality of file servers that control metadata of separate segments, including metadata of file system entities residing in the segments; determine that the data belong to a directory of the single file system residing in a first segment controlled by a second file server; select a second segment in accordance with a non-hierarchical storage policy dependent upon at least one of (1) amounts of free storage space and free data identifiers, (2) relative amounts of free storage space and free data identifiers on a base file server and a possible controlling server, (3) at least one affinity group associating an application with a preferred segment, (4) a random selection from at least a first subset of the segments, (5) relative amounts of free storage space in different segments, (6) relative free amounts of file/directory location identifiers in different segments, (7) a predetermined pattern of at least a second subset of the segments, (8) a first constraint that subdirectories are to be stored hierarchically and files are to be stored non-hierarchically, and (9) a second constraint that subdirectories are to be stored non-hierarchically and files are to be stored hierarchically; and cause the data to be stored in the second segment under control of a third file server concurrently with control of the first segment by the second file server, the data being stored in the single file system non-hierarchically relative to the directory, with the third file server being a file server other than the second file server. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 36)
-
-
23. A computer program product residing on a computer-readable medium, the computer program product for use in an association of devices and comprising computer-readable, computer-executable instructions for causing a computer to:
-
determine that a communication is received pertaining to data to be stored in a file system, the file system being implemented by the association of devices and being a distributed, segmented single file system including file system entities residing in segments and comprising at least portions of one of files and directories, the association of devices including a plurality of file servers that control metadata of separate segments, including metadata of file system entities residing in the segments; determine that the data belong to a directory of the single file system residing in a first segment controlled by a second file server; select a second segment in accordance with a non-hierarchical storage policy dependent upon at least one of (1) amounts of free storage space and free data identifiers, (2) relative amounts of free storage space and free data identifiers on a base file server and a possible controlling server, (3) at least one affinity group associating an application with a preferred segment, (4) a random selection from at least a first subset of the segments, (5) relative amounts of free storage space in different segments, (6) relative free amounts of file/directory location identifiers in different segments, (7) a predetermined pattern of at least a second subset of the segments, (8) a first constraint that subdirectories are to be stored hierarchically and files are to be stored non-hierarchically, and (9) a second constraint that subdirectories are to be stored non-hierarchically and files are to be stored hierarchically; and cause the data to be stored in the second segment under control of a third file server concurrently with control of the first segment by the second file server, the data being stored in the single file system non-hierarchically relative to the directory, with the third file server being a file server other than the second file server. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37)
-
Specification