Distributing files across multiple, permissibly heterogeneous, storage devices
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.
Claims
exact text as granted — not AI-modified1 . For use with a distributed file system in which files are distributed across more than one file server, each file server having physical storage media, a method for determining a particular file server to which a file system call pertains, the method comprising:
a) accepting a file system call including a file identifier; b) determining a contiguous unit of the physical storage media of the file servers of the distributed file system based on the file identifier; c) determining the file server having the physical storage media that contains the determined contiguous unit; and d) forwarding a request, based on the file system call accepted, to the file server determined to have the physical storage media that contains the determined contiguous unit.
2 . The method of claim 1 wherein the file identifier is an Inode number.
3 . The method of claim 1 wherein the contiguous unit is a segment.
4 . The method of claim 1 wherein the file identifier is a number,
wherein the contiguous unit is a segment, and wherein the segment is determined by dividing the file identifier number by a predetermined number. Can this be generalized? All that is required is an algorithm which generates a unique mapping of a range of inode numbers to an identifying segment number. Division by a constant is only one such method.
5 . The method of claim 1 wherein the file server having the physical storage media that contains the determined contiguous unit is determined by a table, administered globally across the file system, that maps the contiguous unit to the file server.
6 . The method of claim 5 wherein the table maps the contiguous unit to an address of the file server.
7 . The method of claim 6 wherein the address is an Internet protocol address.
8 . For use with a distributed file system in which files are distributed across more than one file server, each file server having physical storage media, a machine readable medium having stored thereon a data structure, the data structure comprising:
a) a first field for storing an identifier of a contiguous unit of the physical storage media of the file servers of the distributed file system; and b) a second field for storing an identifier of a file server having the physical storage media that contains the contiguous unit identified by the first field.
9 . The data structure of claim 8 wherein the identifier of a contiguous unit is a segment number.
10 . The data structure of claim 8 wherein the identifier of a file server is an address of the file server.
11 . The data structure of claim 10 wherein the address is an Internet protocol address.
12 . The data structure of claim 8 wherein instances of the data structure are stored on machine readable media on each of a number of servers used to access the distributed file system.
13 . For use with a distributed file system in which files are distributed across more than one file server, each file server having physical storage media, a server for providing a access point to the distributed file system, the server comprising:
a) an input for accepting a file system call including a file identifier; b) a translator for determining a contiguous unit of the physical storage media of the file servers of the distributed file system based on the file identifier; c) a router for determining the file server having the physical storage media that contains the determined contiguous unit; and d) a network interface for forwarding a request, based on the file system call accepted, to the file server determined to have the physical storage media that contains the determined contiguous unit.
14 . The server of claim 13 wherein the file identifier is an Inode number.
15 . The server of claim 13 wherein the contiguous unit is a segment.
16 . The server of claim 13 wherein the file identifier is a number,
wherein the contiguous unit is a segment, and wherein translator determines the segment by dividing the file identifier number by a predetermined number.
17 . The server of claim 13 further comprising a table, used by the translator to determine the file server having the physical storage media that contains the determined contiguous unit.
18 . The server of claim 17 wherein the table maps the contiguous unit to an address of the file server.
19 . The server of claim 18 wherein the address is an Internet protocol address.
20 . The server of claim 17 wherein the table is administered globally across the file system.
21 . The server of claim 17 wherein the table maps the contiguous unit to the file server.
22 . The server of claim 13 further comprising:
e) a local cache; and f) means for determining whether or not the file system call can be satisfied using the local cache.
23 . The server of claim 13 wherein the file identifier is a number,
wherein the contiguous unit is a segment, and wherein translator determines the segment by an algorithm that yields a unique integer for a predetermined range of file identifier numbers.Join the waitlist — get patent alerts
Track US2005144178A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.