Virtual file system
First Claim
1. A method for virtualizing a plurality of underlying file systems hosted on one or more file servers, wherein each file system includes a storage space in which a plurality of data files may be stored comprising:
- aggregating the storage spaces of said plurality of file systems into a single virtual storage space that is exported as a virtual volume that appears to clients as local file system;
creating a virtual volume directory and file name hierarchy including a virtual pathname for each data file stored in the virtual volume;
providing a software virtualization layer including both client-side and server-side software components that cooperatively enable clients to access data files stored in the virtual volume through reference to the virtual pathnames for those data files, wherein clients that access data files stored in the virtual volume do not need to know the file servers and pathnames under which those data files are actually stored.
12 Assignments
0 Petitions
Accused Products
Abstract
A virtual file system and method. The system architecture enables a plurality of underlying file systems running on various file servers to be “virtualized” into one or more “virtual volumes” that appear as a local file system to clients that access the virtual volumes. The system also enables the storage spaces of the underlying file systems to be aggregated into a single virtual storage space, which can be dynamically scaled by adding or removing file servers without taking any of the file systems offline and in a manner transparent to the clients. This functionality is enabled through a software “virtualization” filter on the client that intercepts file system requests and a virtual file system driver on each file server. The system also provides for load balancing file accesses by distributing files across the various file servers in the system, through migration of data files between servers.
410 Citations
30 Claims
-
1. A method for virtualizing a plurality of underlying file systems hosted on one or more file servers, wherein each file system includes a storage space in which a plurality of data files may be stored comprising:
-
aggregating the storage spaces of said plurality of file systems into a single virtual storage space that is exported as a virtual volume that appears to clients as local file system;
creating a virtual volume directory and file name hierarchy including a virtual pathname for each data file stored in the virtual volume;
providing a software virtualization layer including both client-side and server-side software components that cooperatively enable clients to access data files stored in the virtual volume through reference to the virtual pathnames for those data files, wherein clients that access data files stored in the virtual volume do not need to know the file servers and pathnames under which those data files are actually stored. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13)
-
-
12. A method for creating a virtual file system that provides clients access to files stored on a plurality of underlying file systems hosted on one or more file servers, comprising:
-
exporting a virtual file system view to a client comprising a virtual directory and file hierarchy that includes a virtual pathnames for each data file that may be accessed by the client;
maintaining mapping information that maps the virtual pathname for each file to a file server and physical pathname under which the file is stored on that file server;
enabling a data file to be accessed by the client through referencing the file by its virtual pathname;
providing a client-side filter that intercepts file system access requests made by the client that reference the virtual pathname to access a file; and
routing the file system request to the server and pathname under which the file is actually stored based on the mapping information for the file. - View Dependent Claims (14, 15)
-
-
16. A method for providing a virtual file system that aggregates storage space that is partitioned across a plurality of underlying file systems hosted on one or more file servers, comprising:
-
enabling clients to create a virtual directory and file name hierarchy in which data files that may be accessed via the virtual file system are identified by a corresponding virtual pathname;
storing the data files on one or more slave logical volumes hosted by said plurality of underlying file systems; and
providing a software file system virtualization layer including both client-side and server-side software components that cooperatively enable clients to access data files stored in the single virtual storage space through reference to the virtual pathnames for those data files by intercepting client file system requests and routing the file system request to the actual file server and pathname under which the file is stored. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A virtual file system comprising:
-
a computer network that connects a plurality of clients to a plurality of file servers;
a plurality of underlying file systems hosted on the plurality of servers in which a plurality of data files are stored;
a server-side software virtualization component running on each file server;
a client-side software virtualization component running on each client, wherein the client-side and server-side software virtualization components cooperatively enable the clients to create a virtual directory and file name hierarchy including a virtual pathname for each data file that is used to access that data file by intercepting client file system requests that reference the virtual pathname of the data file and routing the file system request to the actual file server and pathname under which the data file is stored. - View Dependent Claims (26, 27, 28, 29, 30)
-
Specification